Valid Usage Database (1.3.236)

VUID NAMECHECKEDSPIRV-TOOLTESTTYPEAPI/STRUCTEXTENSIONVUID TEXT
VUID-BaryCoordKHR-BaryCoordKHR-04154NNoneexplicitBaryCoordKHR(VK_NV_fragment_shader_barycentric,VK_KHR_fragment_shader_barycentric)The BaryCoordKHR decoration must be used only within the Fragment {ExecutionModel}
VUID-BaryCoordKHR-BaryCoordKHR-04155NNoneexplicitBaryCoordKHR(VK_NV_fragment_shader_barycentric,VK_KHR_fragment_shader_barycentric)The variable decorated with BaryCoordKHR must be declared using the Input {StorageClass}
VUID-BaryCoordKHR-BaryCoordKHR-04156NNoneexplicitBaryCoordKHR(VK_NV_fragment_shader_barycentric,VK_KHR_fragment_shader_barycentric)The variable decorated with BaryCoordKHR must be declared as a three-component vector of 32-bit floating-point values
VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04157NNoneexplicitBaryCoordNoPerspAMD(VK_AMD_shader_explicit_vertex_parameter)The BaryCoordNoPerspAMD decoration must be used only within the Fragment {ExecutionModel}
VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04158NNoneexplicitBaryCoordNoPerspAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordNoPerspAMD must be declared using the Input {StorageClass}
VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04159NNoneexplicitBaryCoordNoPerspAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordNoPerspAMD must be declared as a two-component vector of 32-bit floating-point values
VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04163NNoneexplicitBaryCoordNoPerspCentroidAMD(VK_AMD_shader_explicit_vertex_parameter)The BaryCoordNoPerspCentroidAMD decoration must be used only within the Fragment {ExecutionModel}
VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04164NNoneexplicitBaryCoordNoPerspCentroidAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordNoPerspCentroidAMD must be declared using the Input {StorageClass}
VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04165NNoneexplicitBaryCoordNoPerspCentroidAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordNoPerspCentroidAMD must be declared as a three-component vector of 32-bit floating-point values
VUID-BaryCoordNoPerspKHR-BaryCoordNoPerspKHR-04160NNoneexplicitBaryCoordNoPerspKHR(VK_NV_fragment_shader_barycentric,VK_KHR_fragment_shader_barycentric)The BaryCoordNoPerspKHR decoration must be used only within the Fragment {ExecutionModel}
VUID-BaryCoordNoPerspKHR-BaryCoordNoPerspKHR-04161NNoneexplicitBaryCoordNoPerspKHR(VK_NV_fragment_shader_barycentric,VK_KHR_fragment_shader_barycentric)The variable decorated with BaryCoordNoPerspKHR must be declared using the Input {StorageClass}
VUID-BaryCoordNoPerspKHR-BaryCoordNoPerspKHR-04162NNoneexplicitBaryCoordNoPerspKHR(VK_NV_fragment_shader_barycentric,VK_KHR_fragment_shader_barycentric)The variable decorated with BaryCoordNoPerspKHR must be declared as a three-component vector of 32-bit floating-point values
VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04166NNoneexplicitBaryCoordNoPerspSampleAMD(VK_AMD_shader_explicit_vertex_parameter)The BaryCoordNoPerspSampleAMD decoration must be used only within the Fragment {ExecutionModel}
VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04167NNoneexplicitBaryCoordNoPerspSampleAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordNoPerspSampleAMD must be declared using the Input {StorageClass}
VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04168NNoneexplicitBaryCoordNoPerspSampleAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordNoPerspSampleAMD must be declared as a two-component vector of 32-bit floating-point values
VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04169NNoneexplicitBaryCoordPullModelAMD(VK_AMD_shader_explicit_vertex_parameter)The BaryCoordPullModelAMD decoration must be used only within the Fragment {ExecutionModel}
VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04170NNoneexplicitBaryCoordPullModelAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordPullModelAMD must be declared using the Input {StorageClass}
VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04171NNoneexplicitBaryCoordPullModelAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordPullModelAMD must be declared as a three-component vector of 32-bit floating-point values
VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04172NNoneexplicitBaryCoordSmoothAMD(VK_AMD_shader_explicit_vertex_parameter)The BaryCoordSmoothAMD decoration must be used only within the Fragment {ExecutionModel}
VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04173NNoneexplicitBaryCoordSmoothAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordSmoothAMD must be declared using the Input {StorageClass}
VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04174NNoneexplicitBaryCoordSmoothAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordSmoothAMD must be declared as a two-component vector of 32-bit floating-point values
VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04175NNoneexplicitBaryCoordSmoothCentroidAMD(VK_AMD_shader_explicit_vertex_parameter)The BaryCoordSmoothCentroidAMD decoration must be used only within the Fragment {ExecutionModel}
VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04176NNoneexplicitBaryCoordSmoothCentroidAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordSmoothCentroidAMD must be declared using the Input {StorageClass}
VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04177NNoneexplicitBaryCoordSmoothCentroidAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordSmoothCentroidAMD must be declared as a two-component vector of 32-bit floating-point values
VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04178NNoneexplicitBaryCoordSmoothSampleAMD(VK_AMD_shader_explicit_vertex_parameter)The BaryCoordSmoothSampleAMD decoration must be used only within the Fragment {ExecutionModel}
VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04179NNoneexplicitBaryCoordSmoothSampleAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordSmoothSampleAMD must be declared using the Input {StorageClass}
VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04180NNoneexplicitBaryCoordSmoothSampleAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordSmoothSampleAMD must be declared as a two-component vector of 32-bit floating-point values
VUID-BaseInstance-BaseInstance-04181NNoneexplicitBaseInstance(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)The BaseInstance decoration must be used only within the Vertex {ExecutionModel}
VUID-BaseInstance-BaseInstance-04182NNoneexplicitBaseInstance(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)The variable decorated with BaseInstance must be declared using the Input {StorageClass}
VUID-BaseInstance-BaseInstance-04183NNoneexplicitBaseInstance(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)The variable decorated with BaseInstance must be declared as a scalar 32-bit integer value
VUID-BaseVertex-BaseVertex-04184NNoneexplicitBaseVertex(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)The BaseVertex decoration must be used only within the Vertex {ExecutionModel}
VUID-BaseVertex-BaseVertex-04185NNoneexplicitBaseVertex(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)The variable decorated with BaseVertex must be declared using the Input {StorageClass}
VUID-BaseVertex-BaseVertex-04186NNoneexplicitBaseVertex(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)The variable decorated with BaseVertex must be declared as a scalar 32-bit integer value
VUID-ClipDistance-ClipDistance-04187NNoneexplicitClipDistancecoreThe ClipDistance decoration must be used only within the MeshEXT, MeshNV, Vertex, Fragment, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel}
VUID-ClipDistance-ClipDistance-04188NNoneexplicitClipDistancecoreThe variable decorated with ClipDistance within the MeshEXT, MeshNV, or Vertex {ExecutionModel} must be declared using the Output {StorageClass}
VUID-ClipDistance-ClipDistance-04189NNoneexplicitClipDistancecoreThe variable decorated with ClipDistance within the Fragment {ExecutionModel} must be declared using the Input {StorageClass}
VUID-ClipDistance-ClipDistance-04190NNoneexplicitClipDistancecoreThe variable decorated with ClipDistance within the TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel} must not be declared in a {StorageClass} other than Input or Output
VUID-ClipDistance-ClipDistance-04191NNoneexplicitClipDistancecoreThe variable decorated with ClipDistance must be declared as an array of 32-bit floating-point values
VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04192NNoneexplicitClipDistancePerViewNV(VK_NV_mesh_shader)The ClipDistancePerViewNV decoration must be used only within the MeshNV {ExecutionModel}
VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04193NNoneexplicitClipDistancePerViewNV(VK_NV_mesh_shader)The variable decorated with ClipDistancePerViewNV must be declared using the Output {StorageClass}
VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04194NNoneexplicitClipDistancePerViewNV(VK_NV_mesh_shader)The variable decorated with ClipDistancePerViewNV must also be decorated with the PerViewNV decoration
VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04195NNoneexplicitClipDistancePerViewNV(VK_NV_mesh_shader)The variable decorated with ClipDistancePerViewNV must be declared as a two-dimensional array of 32-bit floating-point values
VUID-CoreCountARM-CoreCountARM-07595NNoneexplicitCoreCountARM(VK_ARM_shader_core_builtins)The variable decorated with CoreCountARM must be declared using the Input {StorageClass}
VUID-CoreCountARM-CoreCountARM-07596NNoneexplicitCoreCountARM(VK_ARM_shader_core_builtins)The variable decorated with CoreCountARM must be declared as a scalar 32-bit integer value
VUID-CoreIDARM-CoreIDARM-07599NNoneexplicitCoreIDARM(VK_ARM_shader_core_builtins)The variable decorated with CoreIDARM must be declared using the Input {StorageClass}
VUID-CoreIDARM-CoreIDARM-07600NNoneexplicitCoreIDARM(VK_ARM_shader_core_builtins)The variable decorated with CoreIDARM must be declared as a scalar 32-bit integer value
VUID-CoreMaxIDARM-CoreMaxIDARM-07597NNoneexplicitCoreMaxIDARM(VK_ARM_shader_core_builtins)The variable decorated with CoreMaxIDARM must be declared using the Input {StorageClass}
VUID-CoreMaxIDARM-CoreMaxIDARM-07598NNoneexplicitCoreMaxIDARM(VK_ARM_shader_core_builtins)The variable decorated with CoreMaxIDARM must be declared as a scalar 32-bit integer value
VUID-CullDistance-CullDistance-04196NNoneexplicitCullDistancecoreThe CullDistance decoration must be used only within the MeshEXT, MeshNV, Vertex, Fragment, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel}
VUID-CullDistance-CullDistance-04197NNoneexplicitCullDistancecoreThe variable decorated with CullDistance within the MeshEXT, MeshNV or Vertex {ExecutionModel} must be declared using the Output {StorageClass}
VUID-CullDistance-CullDistance-04198NNoneexplicitCullDistancecoreThe variable decorated with CullDistance within the Fragment {ExecutionModel} must be declared using the Input {StorageClass}
VUID-CullDistance-CullDistance-04199NNoneexplicitCullDistancecoreThe variable decorated with CullDistance within the TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel} must not be declared using a {StorageClass} other than Input or Output
VUID-CullDistance-CullDistance-04200NNoneexplicitCullDistancecoreThe variable decorated with CullDistance must be declared as an array of 32-bit floating-point values
VUID-CullDistancePerViewNV-CullDistancePerViewNV-04201NNoneexplicitCullDistancePerViewNV(VK_NV_mesh_shader)The CullDistancePerViewNV decoration must be used only within the MeshNV {ExecutionModel}
VUID-CullDistancePerViewNV-CullDistancePerViewNV-04202NNoneexplicitCullDistancePerViewNV(VK_NV_mesh_shader)The variable decorated with CullDistancePerViewNV must be declared using the Output {StorageClass}
VUID-CullDistancePerViewNV-CullDistancePerViewNV-04203NNoneexplicitCullDistancePerViewNV(VK_NV_mesh_shader)The variable decorated with CullDistancePerViewNV must also be decorated with the PerViewNV decoration
VUID-CullDistancePerViewNV-CullDistancePerViewNV-04204NNoneexplicitCullDistancePerViewNV(VK_NV_mesh_shader)The variable decorated with CullDistancePerViewNV must be declared as a two-dimensional array of 32-bit floating-point values
VUID-CullMaskKHR-CullMaskKHR-06735NNoneexplicitCullMaskKHR(VK_KHR_ray_tracing_pipeline,VK_KHR_ray_tracing_maintenance1)The CullMaskKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR {ExecutionModel}
VUID-CullMaskKHR-CullMaskKHR-06736NNoneexplicitCullMaskKHR(VK_KHR_ray_tracing_pipeline,VK_KHR_ray_tracing_maintenance1)The variable decorated with CullMaskKHR must be declared using the Input {StorageClass}
VUID-CullMaskKHR-CullMaskKHR-06737NNoneexplicitCullMaskKHR(VK_KHR_ray_tracing_pipeline,VK_KHR_ray_tracing_maintenance1)The variable decorated with CullMaskKHR must be declared as a scalar 32-bit integer value
VUID-CullPrimitiveEXT-CullPrimitiveEXT-07034NNoneexplicitCullPrimitiveEXT(VK_EXT_mesh_shader)The CullPrimitiveEXT decoration must be used only within the MeshEXT {ExecutionModel}
VUID-CullPrimitiveEXT-CullPrimitiveEXT-07035NNoneexplicitCullPrimitiveEXT(VK_EXT_mesh_shader)The variable decorated with CullPrimitiveEXT must be declared using the Output {StorageClass}
VUID-CullPrimitiveEXT-CullPrimitiveEXT-07036NNoneexplicitCullPrimitiveEXT(VK_EXT_mesh_shader)The variable decorated with CullPrimitiveEXT must be declared as an array of boolean values
VUID-CullPrimitiveEXT-CullPrimitiveEXT-07037NNoneexplicitCullPrimitiveEXT(VK_EXT_mesh_shader)The size of the array decorated with CullPrimitiveEXT must match the value specified by OutputPrimitivesEXT
VUID-CullPrimitiveEXT-CullPrimitiveEXT-07038NNoneexplicitCullPrimitiveEXT(VK_EXT_mesh_shader)The variable decorated with CullPrimitiveEXT within the MeshEXT {ExecutionModel} must also be decorated with the PerPrimitiveEXT decoration
VUID-CurrentRayTimeNV-CurrentRayTimeNV-04942NNoneexplicitCurrentRayTimeNV(VK_NV_ray_tracing_motion_blur)The CurrentRayTimeNV decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR {ExecutionModel}
VUID-CurrentRayTimeNV-CurrentRayTimeNV-04943NNoneexplicitCurrentRayTimeNV(VK_NV_ray_tracing_motion_blur)The variable decorated with CurrentRayTimeNV must be declared using the Input {StorageClass}
VUID-CurrentRayTimeNV-CurrentRayTimeNV-04944NNoneexplicitCurrentRayTimeNV(VK_NV_ray_tracing_motion_blur)The variable decorated with CurrentRayTimeNV must be declared as a scalar 32-bit floating-point value
VUID-DeviceIndex-DeviceIndex-04205NNoneexplicitDeviceIndex(VK_VERSION_1_1,VK_KHR_device_group)The variable decorated with DeviceIndex must be declared using the Input {StorageClass}
VUID-DeviceIndex-DeviceIndex-04206NNoneexplicitDeviceIndex(VK_VERSION_1_1,VK_KHR_device_group)The variable decorated with DeviceIndex must be declared as a scalar 32-bit integer value
VUID-DrawIndex-DrawIndex-04207NNoneexplicitDrawIndex(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)The DrawIndex decoration must be used only within the Vertex, MeshEXT, TaskEXT, MeshNV, or TaskNV {ExecutionModel}
VUID-DrawIndex-DrawIndex-04208NNoneexplicitDrawIndex(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)The variable decorated with DrawIndex must be declared using the Input {StorageClass}
VUID-DrawIndex-DrawIndex-04209NNoneexplicitDrawIndex(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)The variable decorated with DrawIndex must be declared as a scalar 32-bit integer value
VUID-FragCoord-FragCoord-04210NNoneexplicitFragCoordcoreThe FragCoord decoration must be used only within the Fragment {ExecutionModel}
VUID-FragCoord-FragCoord-04211NNoneexplicitFragCoordcoreThe variable decorated with FragCoord must be declared using the Input {StorageClass}
VUID-FragCoord-FragCoord-04212NNoneexplicitFragCoordcoreThe variable decorated with FragCoord must be declared as a four-component vector of 32-bit floating-point values
VUID-FragDepth-FragDepth-04213NNoneexplicitFragDepthcoreThe FragDepth decoration must be used only within the Fragment {ExecutionModel}
VUID-FragDepth-FragDepth-04214NNoneexplicitFragDepthcoreThe variable decorated with FragDepth must be declared using the Output {StorageClass}
VUID-FragDepth-FragDepth-04215NNoneexplicitFragDepthcoreThe variable decorated with FragDepth must be declared as a scalar 32-bit floating-point value
VUID-FragDepth-FragDepth-04216NNoneexplicitFragDepthcoreIf the shader dynamically writes to the variable decorated with FragDepth, the DepthReplacing {ExecutionMode} must be declared
VUID-FragInvocationCountEXT-FragInvocationCountEXT-04217NNoneexplicitFragInvocationCountEXT(VK_EXT_fragment_density_map)The FragInvocationCountEXT decoration must be used only within the Fragment {ExecutionModel}
VUID-FragInvocationCountEXT-FragInvocationCountEXT-04218NNoneexplicitFragInvocationCountEXT(VK_EXT_fragment_density_map)The variable decorated with FragInvocationCountEXT must be declared using the Input {StorageClass}
VUID-FragInvocationCountEXT-FragInvocationCountEXT-04219NNoneexplicitFragInvocationCountEXT(VK_EXT_fragment_density_map)The variable decorated with FragInvocationCountEXT must be declared as a scalar 32-bit integer value
VUID-FragSizeEXT-FragSizeEXT-04220NNoneexplicitFragSizeEXT(VK_EXT_fragment_density_map)The FragSizeEXT decoration must be used only within the Fragment {ExecutionModel}
VUID-FragSizeEXT-FragSizeEXT-04221NNoneexplicitFragSizeEXT(VK_EXT_fragment_density_map)The variable decorated with FragSizeEXT must be declared using the Input {StorageClass}
VUID-FragSizeEXT-FragSizeEXT-04222NNoneexplicitFragSizeEXT(VK_EXT_fragment_density_map)The variable decorated with FragSizeEXT must be declared as a two-component vector of 32-bit integer values
VUID-FragStencilRefEXT-FragStencilRefEXT-04223NNoneexplicitFragStencilRefEXT(VK_EXT_shader_stencil_export)The FragStencilRefEXT decoration must be used only within the Fragment {ExecutionModel}
VUID-FragStencilRefEXT-FragStencilRefEXT-04224NNoneexplicitFragStencilRefEXT(VK_EXT_shader_stencil_export)The variable decorated with FragStencilRefEXT must be declared using the Output {StorageClass}
VUID-FragStencilRefEXT-FragStencilRefEXT-04225NNoneexplicitFragStencilRefEXT(VK_EXT_shader_stencil_export)The variable decorated with FragStencilRefEXT must be declared as a scalar integer value
VUID-FragmentSizeNV-FragmentSizeNV-04226NNoneexplicitFragmentSizeNV(VK_NV_shading_rate_image)The FragmentSizeNV decoration must be used only within the Fragment {ExecutionModel}
VUID-FragmentSizeNV-FragmentSizeNV-04227NNoneexplicitFragmentSizeNV(VK_NV_shading_rate_image)The variable decorated with FragmentSizeNV must be declared using the Input {StorageClass}
VUID-FragmentSizeNV-FragmentSizeNV-04228NNoneexplicitFragmentSizeNV(VK_NV_shading_rate_image)The variable decorated with FragmentSizeNV must be declared as a two-component vector of 32-bit integer values
VUID-FrontFacing-FrontFacing-04229NNoneexplicitFrontFacingcoreThe FrontFacing decoration must be used only within the Fragment {ExecutionModel}
VUID-FrontFacing-FrontFacing-04230NNoneexplicitFrontFacingcoreThe variable decorated with FrontFacing must be declared using the Input {StorageClass}
VUID-FrontFacing-FrontFacing-04231NNoneexplicitFrontFacingcoreThe variable decorated with FrontFacing must be declared as a boolean value
VUID-FullyCoveredEXT-FullyCoveredEXT-04232NNoneexplicitFullyCoveredEXT(VK_EXT_conservative_rasterization)The FullyCoveredEXT decoration must be used only within the Fragment {ExecutionModel}
VUID-FullyCoveredEXT-FullyCoveredEXT-04233NNoneexplicitFullyCoveredEXT(VK_EXT_conservative_rasterization)The variable decorated with FullyCoveredEXT must be declared using the Input {StorageClass}
VUID-FullyCoveredEXT-FullyCoveredEXT-04234NNoneexplicitFullyCoveredEXT(VK_EXT_conservative_rasterization)The variable decorated with FullyCoveredEXT must be declared as a boolean value
VUID-FullyCoveredEXT-conservativeRasterizationPostDepthCoverage-04235NNoneexplicitFullyCoveredEXT(VK_EXT_conservative_rasterization)+(VK_EXT_post_depth_coverage)If VkPhysicalDeviceConservativeRasterizationPropertiesEXT::conservativeRasterizationPostDepthCoverage is not supported the PostDepthCoverage {ExecutionMode} must not be declared, when a variable with the FullyCoveredEXT decoration is declared
VUID-GlobalInvocationId-GlobalInvocationId-04236NNoneexplicitGlobalInvocationIdcoreThe GlobalInvocationId decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV {ExecutionModel}
VUID-GlobalInvocationId-GlobalInvocationId-04237NNoneexplicitGlobalInvocationIdcoreThe variable decorated with GlobalInvocationId must be declared using the Input {StorageClass}
VUID-GlobalInvocationId-GlobalInvocationId-04238NNoneexplicitGlobalInvocationIdcoreThe variable decorated with GlobalInvocationId must be declared as a three-component vector of 32-bit integer values
VUID-HelperInvocation-HelperInvocation-04239NNoneexplicitHelperInvocationcoreThe HelperInvocation decoration must be used only within the Fragment {ExecutionModel}
VUID-HelperInvocation-HelperInvocation-04240NNoneexplicitHelperInvocationcoreThe variable decorated with HelperInvocation must be declared using the Input {StorageClass}
VUID-HelperInvocation-HelperInvocation-04241NNoneexplicitHelperInvocationcoreThe variable decorated with HelperInvocation must be declared as a boolean value
VUID-HitKindKHR-HitKindKHR-04242NNoneexplicitHitKindKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The HitKindKHR decoration must be used only within the AnyHitKHR or ClosestHitKHR {ExecutionModel}
VUID-HitKindKHR-HitKindKHR-04243NNoneexplicitHitKindKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with HitKindKHR must be declared using the Input {StorageClass}
VUID-HitKindKHR-HitKindKHR-04244NNoneexplicitHitKindKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with HitKindKHR must be declared as a scalar 32-bit integer value
VUID-HitTNV-HitTNV-04245NNoneexplicitHitTNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)The HitTNV decoration must be used only within the AnyHitNV or ClosestHitNV {ExecutionModel}
VUID-HitTNV-HitTNV-04246NNoneexplicitHitTNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)The variable decorated with HitTNV must be declared using the Input {StorageClass}
VUID-HitTNV-HitTNV-04247NNoneexplicitHitTNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)The variable decorated with HitTNV must be declared as a scalar 32-bit floating-point value
VUID-IncomingRayFlagsKHR-IncomingRayFlagsKHR-04248NNoneexplicitIncomingRayFlagsKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The IncomingRayFlagsKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR {ExecutionModel}
VUID-IncomingRayFlagsKHR-IncomingRayFlagsKHR-04249NNoneexplicitIncomingRayFlagsKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with IncomingRayFlagsKHR must be declared using the Input {StorageClass}
VUID-IncomingRayFlagsKHR-IncomingRayFlagsKHR-04250NNoneexplicitIncomingRayFlagsKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with IncomingRayFlagsKHR must be declared as a scalar 32-bit integer value
VUID-InstanceCustomIndexKHR-InstanceCustomIndexKHR-04251NNoneexplicitInstanceCustomIndexKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The InstanceCustomIndexKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel}
VUID-InstanceCustomIndexKHR-InstanceCustomIndexKHR-04252NNoneexplicitInstanceCustomIndexKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with InstanceCustomIndexKHR must be declared using the Input {StorageClass}
VUID-InstanceCustomIndexKHR-InstanceCustomIndexKHR-04253NNoneexplicitInstanceCustomIndexKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with InstanceCustomIndexKHR must be declared as a scalar 32-bit integer value
VUID-InstanceId-InstanceId-04254NNoneexplicitInstanceId(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The InstanceId decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel}
VUID-InstanceId-InstanceId-04255NNoneexplicitInstanceId(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with InstanceId must be declared using the Input {StorageClass}
VUID-InstanceId-InstanceId-04256NNoneexplicitInstanceId(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with InstanceId must be declared as a scalar 32-bit integer value
VUID-InstanceIndex-InstanceIndex-04263NNoneexplicitInstanceIndexcoreThe InstanceIndex decoration must be used only within the Vertex {ExecutionModel}
VUID-InstanceIndex-InstanceIndex-04264NNoneexplicitInstanceIndexcoreThe variable decorated with InstanceIndex must be declared using the Input {StorageClass}
VUID-InstanceIndex-InstanceIndex-04265NNoneexplicitInstanceIndexcoreThe variable decorated with InstanceIndex must be declared as a scalar 32-bit integer value
VUID-InvocationId-InvocationId-04257NNoneexplicitInvocationIdcoreThe InvocationId decoration must be used only within the TessellationControl or Geometry {ExecutionModel}
VUID-InvocationId-InvocationId-04258NNoneexplicitInvocationIdcoreThe variable decorated with InvocationId must be declared using the Input {StorageClass}
VUID-InvocationId-InvocationId-04259NNoneexplicitInvocationIdcoreThe variable decorated with InvocationId must be declared as a scalar 32-bit integer value
VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04260NNoneexplicitInvocationsPerPixelNV(VK_NV_shading_rate_image)The InvocationsPerPixelNV decoration must be used only within the Fragment {ExecutionModel}
VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04261NNoneexplicitInvocationsPerPixelNV(VK_NV_shading_rate_image)The variable decorated with InvocationsPerPixelNV must be declared using the Input {StorageClass}
VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04262NNoneexplicitInvocationsPerPixelNV(VK_NV_shading_rate_image)The variable decorated with InvocationsPerPixelNV must be declared as a scalar 32-bit integer value
VUID-LaunchIdKHR-LaunchIdKHR-04266NNoneexplicitLaunchIdKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The LaunchIdKHR decoration must be used only within the RayGenerationKHR, IntersectionKHR, AnyHitKHR, ClosestHitKHR, MissKHR, or CallableKHR {ExecutionModel}
VUID-LaunchIdKHR-LaunchIdKHR-04267NNoneexplicitLaunchIdKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with LaunchIdKHR must be declared using the Input {StorageClass}
VUID-LaunchIdKHR-LaunchIdKHR-04268NNoneexplicitLaunchIdKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with LaunchIdKHR must be declared as a three-component vector of 32-bit integer values
VUID-LaunchSizeKHR-LaunchSizeKHR-04269NNoneexplicitLaunchSizeKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The LaunchSizeKHR decoration must be used only within the RayGenerationKHR, IntersectionKHR, AnyHitKHR, ClosestHitKHR, MissKHR, or CallableKHR {ExecutionModel}
VUID-LaunchSizeKHR-LaunchSizeKHR-04270NNoneexplicitLaunchSizeKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with LaunchSizeKHR must be declared using the Input {StorageClass}
VUID-LaunchSizeKHR-LaunchSizeKHR-04271NNoneexplicitLaunchSizeKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with LaunchSizeKHR must be declared as a three-component vector of 32-bit integer values
VUID-Layer-Layer-04272NNoneexplicitLayercoreThe Layer decoration must be used only within the MeshEXT, MeshNV, Vertex, TessellationEvaluation, Geometry, or Fragment {ExecutionModel}
VUID-Layer-Layer-04273NNoneexplicitLayer(VK_VERSION_1_2)If the shaderOutputLayer feature is not enabled then the Layer decoration must be used only within the Geometry or Fragment {ExecutionModel}
VUID-Layer-Layer-04274NNoneexplicitLayercoreThe variable decorated with Layer within the MeshEXT, MeshNV, Vertex, TessellationEvaluation, or Geometry {ExecutionModel} must be declared using the Output {StorageClass}
VUID-Layer-Layer-04275NNoneexplicitLayercoreThe variable decorated with Layer within the Fragment {ExecutionModel} must be declared using the Input {StorageClass}
VUID-Layer-Layer-04276NNoneexplicitLayercoreThe variable decorated with Layer must be declared as a scalar 32-bit integer value
VUID-Layer-Layer-07039NNoneexplicitLayercoreThe variable decorated with Layer within the MeshEXT {ExecutionModel} must also be decorated with the PerPrimitiveEXT decoration
VUID-LayerPerViewNV-LayerPerViewNV-04277NNoneexplicitLayerPerViewNV(VK_NV_mesh_shader)The LayerPerViewNV decoration must be used only within the MeshNV {ExecutionModel}
VUID-LayerPerViewNV-LayerPerViewNV-04278NNoneexplicitLayerPerViewNV(VK_NV_mesh_shader)The variable decorated with LayerPerViewNV must be declared using the Output {StorageClass}
VUID-LayerPerViewNV-LayerPerViewNV-04279NNoneexplicitLayerPerViewNV(VK_NV_mesh_shader)The variable decorated with LayerPerViewNV must also be decorated with the PerViewNV decoration
VUID-LayerPerViewNV-LayerPerViewNV-04280NNoneexplicitLayerPerViewNV(VK_NV_mesh_shader)The variable decorated with LayerPerViewNV must be declared as an array of scalar 32-bit integer values
VUID-LocalInvocationId-LocalInvocationId-04281NNoneexplicitLocalInvocationIdcoreThe LocalInvocationId decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV {ExecutionModel}
VUID-LocalInvocationId-LocalInvocationId-04282NNoneexplicitLocalInvocationIdcoreThe variable decorated with LocalInvocationId must be declared using the Input {StorageClass}
VUID-LocalInvocationId-LocalInvocationId-04283NNoneexplicitLocalInvocationIdcoreThe variable decorated with LocalInvocationId must be declared as a three-component vector of 32-bit integer values
VUID-LocalInvocationIndex-LocalInvocationIndex-04284NNoneexplicitLocalInvocationIndexcoreThe LocalInvocationIndex decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV {ExecutionModel}
VUID-LocalInvocationIndex-LocalInvocationIndex-04285NNoneexplicitLocalInvocationIndexcoreThe variable decorated with LocalInvocationIndex must be declared using the Input {StorageClass}
VUID-LocalInvocationIndex-LocalInvocationIndex-04286NNoneexplicitLocalInvocationIndexcoreThe variable decorated with LocalInvocationIndex must be declared as a scalar 32-bit integer value
VUID-MeshViewCountNV-MeshViewCountNV-04287NNoneexplicitMeshViewCountNV(VK_NV_mesh_shader)The MeshViewCountNV decoration must be used only within the MeshNV or TaskNV {ExecutionModel}
VUID-MeshViewCountNV-MeshViewCountNV-04288NNoneexplicitMeshViewCountNV(VK_NV_mesh_shader)The variable decorated with MeshViewCountNV must be declared using the Input {StorageClass}
VUID-MeshViewCountNV-MeshViewCountNV-04289NNoneexplicitMeshViewCountNV(VK_NV_mesh_shader)The variable decorated with MeshViewCountNV must be declared as a scalar 32-bit integer value
VUID-MeshViewIndicesNV-MeshViewIndicesNV-04290NNoneexplicitMeshViewIndicesNV(VK_NV_mesh_shader)The MeshViewIndicesNV decoration must be used only within the MeshNV or TaskNV {ExecutionModel}
VUID-MeshViewIndicesNV-MeshViewIndicesNV-04291NNoneexplicitMeshViewIndicesNV(VK_NV_mesh_shader)The variable decorated with MeshViewIndicesNV must be declared using the Input {StorageClass}
VUID-MeshViewIndicesNV-MeshViewIndicesNV-04292NNoneexplicitMeshViewIndicesNV(VK_NV_mesh_shader)The variable decorated with MeshViewIndicesNV must be declared as an array of scalar 32-bit integer values
VUID-NumSubgroups-NumSubgroups-04293NNoneexplicitNumSubgroups(VK_VERSION_1_1)The NumSubgroups decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV {ExecutionModel}
VUID-NumSubgroups-NumSubgroups-04294NNoneexplicitNumSubgroups(VK_VERSION_1_1)The variable decorated with NumSubgroups must be declared using the Input {StorageClass}
VUID-NumSubgroups-NumSubgroups-04295NNoneexplicitNumSubgroups(VK_VERSION_1_1)The variable decorated with NumSubgroups must be declared as a scalar 32-bit integer value
VUID-NumWorkgroups-NumWorkgroups-04296NNoneexplicitNumWorkgroupscoreThe NumWorkgroups decoration must be used only within the GLCompute, MeshEXT, or TaskEXT {ExecutionModel}
VUID-NumWorkgroups-NumWorkgroups-04297NNoneexplicitNumWorkgroupscoreThe variable decorated with NumWorkgroups must be declared using the Input {StorageClass}
VUID-NumWorkgroups-NumWorkgroups-04298NNoneexplicitNumWorkgroupscoreThe variable decorated with NumWorkgroups must be declared as a three-component vector of 32-bit integer values
VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04299NNoneexplicitObjectRayDirectionKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The ObjectRayDirectionKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel}
VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04300NNoneexplicitObjectRayDirectionKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with ObjectRayDirectionKHR must be declared using the Input {StorageClass}
VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04301NNoneexplicitObjectRayDirectionKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with ObjectRayDirectionKHR must be declared as a three-component vector of 32-bit floating-point values
VUID-ObjectRayOriginKHR-ObjectRayOriginKHR-04302NNoneexplicitObjectRayOriginKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The ObjectRayOriginKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel}
VUID-ObjectRayOriginKHR-ObjectRayOriginKHR-04303NNoneexplicitObjectRayOriginKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with ObjectRayOriginKHR must be declared using the Input {StorageClass}
VUID-ObjectRayOriginKHR-ObjectRayOriginKHR-04304NNoneexplicitObjectRayOriginKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with ObjectRayOriginKHR must be declared as a three-component vector of 32-bit floating-point values
VUID-ObjectToWorldKHR-ObjectToWorldKHR-04305NNoneexplicitObjectToWorldKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The ObjectToWorldKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel}
VUID-ObjectToWorldKHR-ObjectToWorldKHR-04306NNoneexplicitObjectToWorldKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with ObjectToWorldKHR must be declared using the Input {StorageClass}
VUID-ObjectToWorldKHR-ObjectToWorldKHR-04307NNoneexplicitObjectToWorldKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The 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_vkDebugUtilsMessengerCallbackEXT(VK_EXT_debug_utils)The callback must not make calls to any Vulkan commands
VUID-PatchVertices-PatchVertices-04308NNoneexplicitPatchVerticescoreThe PatchVertices decoration must be used only within the TessellationControl or TessellationEvaluation {ExecutionModel}
VUID-PatchVertices-PatchVertices-04309NNoneexplicitPatchVerticescoreThe variable decorated with PatchVertices must be declared using the Input {StorageClass}
VUID-PatchVertices-PatchVertices-04310NNoneexplicitPatchVerticescoreThe variable decorated with PatchVertices must be declared as a scalar 32-bit integer value
VUID-PointCoord-PointCoord-04311NNoneexplicitPointCoordcoreThe PointCoord decoration must be used only within the Fragment {ExecutionModel}
VUID-PointCoord-PointCoord-04312NNoneexplicitPointCoordcoreThe variable decorated with PointCoord must be declared using the Input {StorageClass}
VUID-PointCoord-PointCoord-04313NNoneexplicitPointCoordcoreThe variable decorated with PointCoord must be declared as a two-component vector of 32-bit floating-point values
VUID-PointSize-PointSize-04314NNoneexplicitPointSizecoreThe PointSize decoration must be used only within the MeshEXT, MeshNV, Vertex, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel}
VUID-PointSize-PointSize-04315NNoneexplicitPointSizecoreThe variable decorated with PointSize within the MeshEXT, MeshNV, or Vertex {ExecutionModel} must be declared using the Output {StorageClass}
VUID-PointSize-PointSize-04316NNoneexplicitPointSizecoreThe variable decorated with PointSize within the TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel} must not be declared using a {StorageClass} other than Input or Output
VUID-PointSize-PointSize-04317NNoneexplicitPointSizecoreThe variable decorated with PointSize must be declared as a scalar 32-bit floating-point value
VUID-Position-Position-04318NNoneexplicitPositioncoreThe Position decoration must be used only within the MeshEXT, MeshNV, Vertex, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel}
VUID-Position-Position-04319NNoneexplicitPositioncoreThe variable decorated with Position within the MeshEXT, MeshNV, or Vertex {ExecutionModel} must be declared using the Output {StorageClass}
VUID-Position-Position-04320NNoneexplicitPositioncoreThe variable decorated with Position within the TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel} must not be declared using a {StorageClass} other than Input or Output
VUID-Position-Position-04321NNoneexplicitPositioncoreThe variable decorated with Position must be declared as a four-component vector of 32-bit floating-point values
VUID-PositionPerViewNV-PositionPerViewNV-04322NNoneexplicitPositionPerViewNV(VK_NVX_multiview_per_view_attributes)The PositionPerViewNV decoration must be used only within the MeshNV, Vertex, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel}
VUID-PositionPerViewNV-PositionPerViewNV-04323NNoneexplicitPositionPerViewNV(VK_NVX_multiview_per_view_attributes)The variable decorated with PositionPerViewNV within the Vertex, or MeshNV {ExecutionModel} must be declared using the Output {StorageClass}
VUID-PositionPerViewNV-PositionPerViewNV-04324NNoneexplicitPositionPerViewNV(VK_NVX_multiview_per_view_attributes)The variable decorated with PositionPerViewNV within the TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel} must not be declared using a {StorageClass} other than Input or Output
VUID-PositionPerViewNV-PositionPerViewNV-04325NNoneexplicitPositionPerViewNV(VK_NVX_multiview_per_view_attributes)The 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-04326NNoneexplicitPositionPerViewNV(VK_NVX_multiview_per_view_attributes)The array variable decorated with PositionPerViewNV must only be indexed by a constant or specialization constant
VUID-PrimitiveCountNV-PrimitiveCountNV-04327NNoneexplicitPrimitiveCountNV(VK_NV_mesh_shader)The PrimitiveCountNV decoration must be used only within the MeshNV {ExecutionModel}
VUID-PrimitiveCountNV-PrimitiveCountNV-04328NNoneexplicitPrimitiveCountNV(VK_NV_mesh_shader)The variable decorated with PrimitiveCountNV must be declared using the Output {StorageClass}
VUID-PrimitiveCountNV-PrimitiveCountNV-04329NNoneexplicitPrimitiveCountNV(VK_NV_mesh_shader)The variable decorated with PrimitiveCountNV must be declared as a scalar 32-bit integer value
VUID-PrimitiveId-Fragment-04331NNoneexplicitPrimitiveIdcoreIf pipeline contains both the Fragment and Geometry {ExecutionModel} and a variable decorated with PrimitiveId is read from Fragment shader, then the Geometry shader must write to the output variables decorated with PrimitiveId in all execution paths
VUID-PrimitiveId-Fragment-04332NNoneexplicitPrimitiveIdcoreIf pipeline contains both the Fragment and MeshEXT or MeshNV {ExecutionModel} and a variable decorated with PrimitiveId is read from Fragment shader, then the MeshEXT or MeshNV shader must write to the output variables decorated with PrimitiveId in all execution paths
VUID-PrimitiveId-Fragment-04333NNoneexplicitPrimitiveIdcoreIf Fragment {ExecutionModel} contains a variable decorated with PrimitiveId, then either the MeshShadingEXT, MeshShadingNV, Geometry or Tessellation capability must also be declared
VUID-PrimitiveId-PrimitiveId-04330NNoneexplicitPrimitiveIdcoreThe PrimitiveId decoration must be used only within the MeshEXT, MeshNV, IntersectionKHR, AnyHitKHR, ClosestHitKHR, TessellationControl, TessellationEvaluation, Geometry, or Fragment {ExecutionModel}
VUID-PrimitiveId-PrimitiveId-04334NNoneexplicitPrimitiveIdcoreThe variable decorated with PrimitiveId within the TessellationControl, TessellationEvaluation, Fragment, IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel} must be declared using the Input {StorageClass}
VUID-PrimitiveId-PrimitiveId-04335NNoneexplicitPrimitiveIdcoreThe variable decorated with PrimitiveId within the Geometry {ExecutionModel} must be declared using the Input or Output {StorageClass}
VUID-PrimitiveId-PrimitiveId-04336NNoneexplicitPrimitiveIdcoreThe variable decorated with PrimitiveId within the MeshEXT or MeshNV {ExecutionModel} must be declared using the Output {StorageClass}
VUID-PrimitiveId-PrimitiveId-04337NNoneexplicitPrimitiveIdcoreThe variable decorated with PrimitiveId must be declared as a scalar 32-bit integer value
VUID-PrimitiveId-PrimitiveId-07040NNoneexplicitPrimitiveIdcoreThe variable decorated with PrimitiveId within the MeshEXT {ExecutionModel} must also be decorated with the PerPrimitiveEXT decoration
VUID-PrimitiveIndicesNV-OutputLinesNV-04343NNoneexplicitPrimitiveIndicesNV(VK_NV_mesh_shader)If the {ExecutionMode} is OutputLinesNV, then the array decorated with PrimitiveIndicesNV must be the size of two times the value specified by OutputPrimitivesNV
VUID-PrimitiveIndicesNV-OutputPoints-04342NNoneexplicitPrimitiveIndicesNV(VK_NV_mesh_shader)If the {ExecutionMode} is OutputPoints, then the array decorated with PrimitiveIndicesNV must be the size of the value specified by OutputPrimitivesNV
VUID-PrimitiveIndicesNV-OutputTrianglesNV-04344NNoneexplicitPrimitiveIndicesNV(VK_NV_mesh_shader)If the {ExecutionMode} is OutputTrianglesNV, then the array decorated with PrimitiveIndicesNV must be the size of three times the value specified by OutputPrimitivesNV
VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04338NNoneexplicitPrimitiveIndicesNV(VK_NV_mesh_shader)The PrimitiveIndicesNV decoration must be used only within the MeshNV {ExecutionModel}
VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04339NNoneexplicitPrimitiveIndicesNV(VK_NV_mesh_shader)The variable decorated with PrimitiveIndicesNV must be declared using the Output {StorageClass}
VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04340NNoneexplicitPrimitiveIndicesNV(VK_NV_mesh_shader)The variable decorated with PrimitiveIndicesNV must be declared as an array of scalar 32-bit integer values
VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04341NNoneexplicitPrimitiveIndicesNV(VK_NV_mesh_shader)All 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 {ExecutionMode}
VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07047NNoneexplicitPrimitiveLineIndicesEXT(VK_EXT_mesh_shader)The PrimitiveLineIndicesEXT decoration must be used only within the MeshEXT {ExecutionModel}
VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07048NNoneexplicitPrimitiveLineIndicesEXT(VK_EXT_mesh_shader)The PrimitiveLineIndicesEXT decoration must be used with the OutputLinesEXT {ExecutionMode}
VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07049NNoneexplicitPrimitiveLineIndicesEXT(VK_EXT_mesh_shader)The variable decorated with PrimitiveLineIndicesEXT must be declared using the Output {StorageClass}
VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07050NNoneexplicitPrimitiveLineIndicesEXT(VK_EXT_mesh_shader)The variable decorated with PrimitiveLineIndicesEXT must be declared as an array of two component vector 32-bit integer values
VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07051NNoneexplicitPrimitiveLineIndicesEXT(VK_EXT_mesh_shader)All 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 {ExecutionMode}
VUID-PrimitiveLineIndicesEXT-PrimitiveLineIndicesEXT-07052NNoneexplicitPrimitiveLineIndicesEXT(VK_EXT_mesh_shader)The size of the array decorated with PrimitiveLineIndicesEXT must match the value specified by OutputPrimitivesEXT
VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07041NNoneexplicitPrimitivePointIndicesEXT(VK_EXT_mesh_shader)The PrimitivePointIndicesEXT decoration must be used only within the MeshEXT {ExecutionModel}
VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07042NNoneexplicitPrimitivePointIndicesEXT(VK_EXT_mesh_shader)The PrimitivePointIndicesEXT decoration must be used with the OutputPoints {ExecutionMode}
VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07043NNoneexplicitPrimitivePointIndicesEXT(VK_EXT_mesh_shader)The variable decorated with PrimitivePointIndicesEXT must be declared using the Output {StorageClass}
VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07044NNoneexplicitPrimitivePointIndicesEXT(VK_EXT_mesh_shader)The variable decorated with PrimitivePointIndicesEXT must be declared as an array of scalar 32-bit integer values
VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07045NNoneexplicitPrimitivePointIndicesEXT(VK_EXT_mesh_shader)All 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 {ExecutionMode}
VUID-PrimitivePointIndicesEXT-PrimitivePointIndicesEXT-07046NNoneexplicitPrimitivePointIndicesEXT(VK_EXT_mesh_shader)The size of the array decorated with PrimitivePointIndicesEXT must match the value specified by OutputPrimitivesEXT
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04484NNoneexplicitPrimitiveShadingRateKHR(VK_KHR_fragment_shading_rate)The PrimitiveShadingRateKHR decoration must be used only within the MeshEXT, MeshNV, Vertex, or Geometry {ExecutionModel}
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04485NNoneexplicitPrimitiveShadingRateKHR(VK_KHR_fragment_shading_rate)The variable decorated with PrimitiveShadingRateKHR must be declared using the Output {StorageClass}
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04486NNoneexplicitPrimitiveShadingRateKHR(VK_KHR_fragment_shading_rate)The variable decorated with PrimitiveShadingRateKHR must be declared as a scalar 32-bit integer value
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04487NNoneexplicitPrimitiveShadingRateKHR(VK_KHR_fragment_shading_rate)The value written to PrimitiveShadingRateKHR must include no more than one of Vertical2Pixels and Vertical4Pixels
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04488NNoneexplicitPrimitiveShadingRateKHR(VK_KHR_fragment_shading_rate)The value written to PrimitiveShadingRateKHR must include no more than one of Horizontal2Pixels and Horizontal4Pixels
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04489NNoneexplicitPrimitiveShadingRateKHR(VK_KHR_fragment_shading_rate)The 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-07059NNoneexplicitPrimitiveShadingRateKHR(VK_KHR_fragment_shading_rate)The variable decorated with PrimitiveShadingRateKHR within the MeshEXT {ExecutionModel} must also be decorated with the PerPrimitiveEXT decoration
VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07053NNoneexplicitPrimitiveTriangleIndicesEXT(VK_EXT_mesh_shader)The PrimitiveTriangleIndicesEXT decoration must be used only within the MeshEXT {ExecutionModel}
VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07054NNoneexplicitPrimitiveTriangleIndicesEXT(VK_EXT_mesh_shader)The PrimitiveTriangleIndicesEXT decoration must be used with the OutputTrianglesEXT {ExecutionMode}
VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07055NNoneexplicitPrimitiveTriangleIndicesEXT(VK_EXT_mesh_shader)The variable decorated with PrimitiveTriangleIndicesEXT must be declared using the Output {StorageClass}
VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07056NNoneexplicitPrimitiveTriangleIndicesEXT(VK_EXT_mesh_shader)The variable decorated with PrimitiveTriangleIndicesEXT must be declared as an array of three component vector 32-bit integer values
VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07057NNoneexplicitPrimitiveTriangleIndicesEXT(VK_EXT_mesh_shader)All 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 {ExecutionMode}
VUID-PrimitiveTriangleIndicesEXT-PrimitiveTriangleIndicesEXT-07058NNoneexplicitPrimitiveTriangleIndicesEXT(VK_EXT_mesh_shader)The size of the array decorated with PrimitiveTriangleIndicesEXT must match the value specified by OutputPrimitivesEXT
VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04345NNoneexplicitRayGeometryIndexKHR(VK_KHR_ray_tracing_pipeline)The RayGeometryIndexKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel}
VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04346NNoneexplicitRayGeometryIndexKHR(VK_KHR_ray_tracing_pipeline)The variable decorated with RayGeometryIndexKHR must be declared using the Input {StorageClass}
VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04347NNoneexplicitRayGeometryIndexKHR(VK_KHR_ray_tracing_pipeline)The variable decorated with RayGeometryIndexKHR must be declared as a scalar 32-bit integer value
VUID-RayTmaxKHR-RayTmaxKHR-04348NNoneexplicitRayTmaxKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The RayTmaxKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR {ExecutionModel}
VUID-RayTmaxKHR-RayTmaxKHR-04349NNoneexplicitRayTmaxKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with RayTmaxKHR must be declared using the Input {StorageClass}
VUID-RayTmaxKHR-RayTmaxKHR-04350NNoneexplicitRayTmaxKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with RayTmaxKHR must be declared as a scalar 32-bit floating-point value
VUID-RayTminKHR-RayTminKHR-04351NNoneexplicitRayTminKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The RayTminKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR {ExecutionModel}
VUID-RayTminKHR-RayTminKHR-04352NNoneexplicitRayTminKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with RayTminKHR must be declared using the Input {StorageClass}
VUID-RayTminKHR-RayTminKHR-04353NNoneexplicitRayTminKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with RayTminKHR must be declared as a scalar 32-bit floating-point value
VUID-RuntimeSpirv-DescriptorSet-06323NNoneexplicitRuntimeSpirvcoreDescriptorSet and Binding decorations must obey the constraints on storage class, type, and descriptor type described in DescriptorSet and Binding Assignment
VUID-RuntimeSpirv-Fragment-06427YTestMaxFragmentDualSrcAttachmentsexplicitRuntimeSpirvcoreWhen blending is enabled and one of the dual source blend modes is in use, the maximum number of output attachments written to in the Fragment {ExecutionModel} must be less than or equal to maxFragmentDualSrcAttachments
VUID-RuntimeSpirv-LocalSizeId-06433YNoneexplicitRuntimeSpirv!(VK_VERSION_1_3,VK_KHR_maintenance4)The execution mode LocalSizeId must not be used
VUID-RuntimeSpirv-LocalSizeId-06434YTestLocalSizeIdExecutionModeexplicitRuntimeSpirv(VK_VERSION_1_3,VK_KHR_maintenance4)If execution mode LocalSizeId is used, maintenance4 must be enabled
VUID-RuntimeSpirv-Location-06272YCreatePipelineExceedVertexMaxComponentsWithBuiltins, CreatePipelineExceedMaxTessellationControlInputOutputComponents, CreatePipelineExceedMaxFragmentInputComponents, CreatePipelineExceedMaxTessellationEvaluationInputOutputComponents, CreatePipelineExceedMaxVertexOutputComponents, CreatePipelineExceedMaxGeometryInputOutputComponents, CreatePipelineExceedFragmentMaxComponentsWithBuiltins, CreatePipelineExceedMaxComponentsBlocksexplicitRuntimeSpirvcoreThe 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 {ExecutionModel} defined in Shader Input and Output Locations
VUID-RuntimeSpirv-Location-06428NNoneexplicitRuntimeSpirvcoreThe maximum number of storage buffers, storage images, and output Location decorated color attachments written to in the Fragment {ExecutionModel} must be less than or equal to maxFragmentCombinedOutputResources
VUID-RuntimeSpirv-MeshEXT-07115YMeshShaderEXTRuntimeSpirvexplicitRuntimeSpirv(VK_EXT_mesh_shader)For mesh shaders using the MeshEXT {ExecutionModel} the OutputVertices OpExecutionMode must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputVertices
VUID-RuntimeSpirv-MeshEXT-07116YMeshShaderEXTRuntimeSpirvexplicitRuntimeSpirv(VK_EXT_mesh_shader)For mesh shaders using the MeshEXT {ExecutionModel} the OutputPrimitivesEXT OpExecutionMode must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputPrimitives
VUID-RuntimeSpirv-MeshEXT-07118NNoneexplicitRuntimeSpirv(VK_EXT_mesh_shader)In mesh shaders using the MeshEXT {ExecutionModel} OpSetMeshOutputsEXT must be called at most once under dynamically uniform conditions
VUID-RuntimeSpirv-MeshEXT-07295YMeshShaderEXTRuntimeSpirvexplicitRuntimeSpirv(VK_EXT_mesh_shader)For mesh shaders using the MeshEXT {ExecutionModel} the x size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupSize[0]
VUID-RuntimeSpirv-MeshEXT-07296YMeshShaderEXTRuntimeSpirvexplicitRuntimeSpirv(VK_EXT_mesh_shader)For mesh shaders using the MeshEXT {ExecutionModel} the y size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupSize[1]
VUID-RuntimeSpirv-MeshEXT-07297YMeshShaderEXTRuntimeSpirvexplicitRuntimeSpirv(VK_EXT_mesh_shader)For mesh shaders using the MeshEXT {ExecutionModel} the z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupSize[2]
VUID-RuntimeSpirv-MeshEXT-07298YMeshShaderEXTRuntimeSpirvexplicitRuntimeSpirv(VK_EXT_mesh_shader)For mesh shaders using the MeshEXT {ExecutionModel} 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-07332NNoneexplicitRuntimeSpirv(VK_EXT_mesh_shader)For mesh shaders using the MeshEXT {ExecutionModel} the "Vertex Count" operand of OpSetMeshOutputsEXT must be less than or equal to OutputVertices OpExecutionMode
VUID-RuntimeSpirv-MeshEXT-07333NNoneexplicitRuntimeSpirv(VK_EXT_mesh_shader)For mesh shaders using the MeshEXT {ExecutionModel} the "Primitive Count" operand of OpSetMeshOutputsEXT must be less than or equal to OutputPrimitivesEXT OpExecutionMode
VUID-RuntimeSpirv-MeshNV-07113YMeshShaderNVRuntimeSpirvexplicitRuntimeSpirv(VK_NV_mesh_shader)For mesh shaders using the MeshNV {ExecutionModel} the OutputVertices OpExecutionMode must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputVertices
VUID-RuntimeSpirv-MeshNV-07114YMeshShaderNVRuntimeSpirvexplicitRuntimeSpirv(VK_NV_mesh_shader)For mesh shaders using the MeshNV {ExecutionModel} the OutputPrimitivesNV OpExecutionMode must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputPrimitives
VUID-RuntimeSpirv-NonUniform-06274NNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If an instruction loads from or stores to a resource (including atomics and image instructions) and the resource descriptor being accessed is not dynamically uniform, then the operand corresponding to that resource (e.g. the pointer or sampled image operand) must be decorated with NonUniform
VUID-RuntimeSpirv-NonWritable-06340YFragmentStoresAndAtomicsFeatureDisableexplicitRuntimeSpirvcoreIf 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-06341YVertexStoresAndAtomicsFeatureDisableexplicitRuntimeSpirvcoreIf 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-06275YSubgroupExtendedTypesDisabledexplicitRuntimeSpirv(VK_VERSION_1_1)+(VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types)shaderSubgroupExtendedTypes 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-06278YShaderAtomicInt64explicitRuntimeSpirv(VK_KHR_shader_atomic_int64)shaderBufferInt64Atomics 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-06279YShaderAtomicInt64explicitRuntimeSpirv(VK_KHR_shader_atomic_int64)shaderSharedInt64Atomics must be enabled for 64-bit integer atomic operations to be supported on a Pointer with a Storage Class of Workgroup
VUID-RuntimeSpirv-None-06280YShaderAtomicFloat2, ShaderAtomicFloatexplicitRuntimeSpirv(VK_EXT_shader_atomic_float)+!(VK_EXT_shader_atomic_float2)shaderBufferFloat32Atomics, or shaderBufferFloat32AtomicAdd, or shaderBufferFloat64Atomics, or shaderBufferFloat64AtomicAdd must be enabled for floating-point atomic operations to be supported on a Pointer with a Storage Class of StorageBuffer
VUID-RuntimeSpirv-None-06281YShaderAtomicFloat2, ShaderAtomicFloatexplicitRuntimeSpirv(VK_EXT_shader_atomic_float)+!(VK_EXT_shader_atomic_float2)shaderSharedFloat32Atomics, or shaderSharedFloat32AtomicAdd, or shaderSharedFloat64Atomics, or shaderSharedFloat64AtomicAdd must be enabled for floating-point atomic operations to be supported on a Pointer with a Storage Class of Workgroup
VUID-RuntimeSpirv-None-06282YShaderAtomicFloat, ShaderAtomicFloat2, FragmentStoresAndAtomicsFeatureDisable, VertexStoresAndAtomicsFeatureDisableexplicitRuntimeSpirv(VK_EXT_shader_atomic_float)+!(VK_EXT_shader_atomic_float2)shaderImageFloat32Atomics or shaderImageFloat32AtomicAdd 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-06283NNoneexplicitRuntimeSpirv(VK_EXT_shader_atomic_float)+!(VK_EXT_shader_atomic_float2)sparseImageFloat32Atomics or sparseImageFloat32AtomicAdd must be enabled for 32-bit floating-point atomics to be supported on sparse images
VUID-RuntimeSpirv-None-06284YNoneexplicitRuntimeSpirv(VK_EXT_shader_atomic_float2)shaderBufferFloat32Atomics, or shaderBufferFloat32AtomicAdd, or shaderBufferFloat64Atomics, or shaderBufferFloat64AtomicAdd, or shaderBufferFloat16Atomics, or shaderBufferFloat16AtomicAdd, or shaderBufferFloat16AtomicMinMax, or shaderBufferFloat32AtomicMinMax, or shaderBufferFloat64AtomicMinMax must be enabled for floating-point atomic operations to be supported on a Pointer with a Storage Class of StorageBuffer
VUID-RuntimeSpirv-None-06285YNoneexplicitRuntimeSpirv(VK_EXT_shader_atomic_float2)shaderSharedFloat32Atomics, or shaderSharedFloat32AtomicAdd, or shaderSharedFloat64Atomics, or shaderSharedFloat64AtomicAdd, or shaderSharedFloat16Atomics, or shaderSharedFloat16AtomicAdd, or shaderSharedFloat16AtomicMinMax, or shaderSharedFloat32AtomicMinMax, or shaderSharedFloat64AtomicMinMax must be enabled for floating-point atomic operations to be supported on a Pointer with a Storage Class of Workgroup
VUID-RuntimeSpirv-None-06286YNoneexplicitRuntimeSpirv(VK_EXT_shader_atomic_float2)shaderImageFloat32Atomics, 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-06287NNoneexplicitRuntimeSpirv(VK_EXT_shader_atomic_float2)sparseImageFloat32Atomics, or sparseImageFloat32AtomicAdd, or sparseImageFloat32AtomicMinMax must be enabled for 32-bit floating-point atomics to be supported on sparse images
VUID-RuntimeSpirv-None-06288YShaderImageAtomicInt64explicitRuntimeSpirv(VK_EXT_shader_image_atomic_int64)shaderImageInt64Atomics must be enabled for 64-bit integer atomic operations to be supported on a Pointer with a Storage Class of Image
VUID-RuntimeSpirv-None-06335YNoneexplicitRuntimeSpirv(VK_EXT_shader_atomic_float)+!(VK_EXT_shader_atomic_float2)shaderBufferFloat32Atomics, or shaderBufferFloat32AtomicAdd, or shaderSharedFloat32Atomics, or shaderSharedFloat32AtomicAdd, or shaderImageFloat32Atomics, or shaderImageFloat32AtomicAdd must be enabled for 32-bit floating point atomic operations
VUID-RuntimeSpirv-None-06336YNoneexplicitRuntimeSpirv(VK_EXT_shader_atomic_float)+!(VK_EXT_shader_atomic_float2)shaderBufferFloat64Atomics, or shaderBufferFloat64AtomicAdd, or shaderSharedFloat64Atomics, or shaderSharedFloat64AtomicAdd must be enabled for 64-bit floating point atomic operations
VUID-RuntimeSpirv-None-06337YNoneexplicitRuntimeSpirv(VK_EXT_shader_atomic_float2)shaderBufferFloat16Atomics, or shaderBufferFloat16AtomicAdd, or shaderBufferFloat16AtomicMinMax, or shaderSharedFloat16Atomics, or shaderSharedFloat16AtomicAdd, or shaderSharedFloat16AtomicMinMax must be enabled for 16-bit floating point atomic operations
VUID-RuntimeSpirv-None-06338YNoneexplicitRuntimeSpirv(VK_EXT_shader_atomic_float2)shaderBufferFloat32Atomics, 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-06339YNoneexplicitRuntimeSpirv(VK_EXT_shader_atomic_float2)shaderBufferFloat64Atomics, or shaderBufferFloat64AtomicAdd, or shaderSharedFloat64Atomics, or shaderSharedFloat64AtomicAdd, or shaderBufferFloat64AtomicMinMax, or shaderSharedFloat64AtomicMinMax, must be enabled for 64-bit floating point atomic operations
VUID-RuntimeSpirv-None-06342YSubgroupSupportedPropertiesexplicitRuntimeSpirvcoreIf subgroupQuadOperationsInAllStages is VK_FALSE, then quad subgroup operations must not be used except for in fragment and compute stages
VUID-RuntimeSpirv-None-06343YSubgroupSupportedPropertiesexplicitRuntimeSpirv(VK_VERSION_1_1)Group operations with subgroup scope must not be used if the shader stage is not in subgroupSupportedStages
VUID-RuntimeSpirv-Offset-06308YTestRuntimeSpirvTransformFeedbackexplicitRuntimeSpirv(VK_EXT_transform_feedback)The Offset plus size of the type of each variable, in the output interface of the entry point being compiled, decorated with XfbBuffer must not be greater than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferDataSize
VUID-RuntimeSpirv-Offset-06344NNoneexplicitRuntimeSpirvcoreThe first element of the Offset operand of InterpolateAtOffset must be greater than or equal to:
VUID-RuntimeSpirv-Offset-06345NNoneexplicitRuntimeSpirvcoreThe first element of the Offset operand of InterpolateAtOffset must be less than or equal to:
VUID-RuntimeSpirv-Offset-06346NNoneexplicitRuntimeSpirvcoreThe second element of the Offset operand of InterpolateAtOffset must be greater than or equal to:
VUID-RuntimeSpirv-Offset-06347NNoneexplicitRuntimeSpirvcoreThe second element of the Offset operand of InterpolateAtOffset must be less than or equal to:
VUID-RuntimeSpirv-OpCooperativeMatrixLoadNV-06324NNoneexplicitRuntimeSpirv(VK_NV_cooperative_matrix)For 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-OpCooperativeMatrixMulAddNV-06317NNoneexplicitRuntimeSpirv(VK_NV_cooperative_matrix)For OpCooperativeMatrixMulAddNV, the type of A must have VkCooperativeMatrixPropertiesNV::MSize rows and VkCooperativeMatrixPropertiesNV::KSize columns and have a component type that matches VkCooperativeMatrixPropertiesNV::AType
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06318NNoneexplicitRuntimeSpirv(VK_NV_cooperative_matrix)For OpCooperativeMatrixMulAddNV, the type of B must have VkCooperativeMatrixPropertiesNV::KSize rows and VkCooperativeMatrixPropertiesNV::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesNV::BType
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06319NNoneexplicitRuntimeSpirv(VK_NV_cooperative_matrix)For OpCooperativeMatrixMulAddNV, the type of C must have VkCooperativeMatrixPropertiesNV::MSize rows and VkCooperativeMatrixPropertiesNV::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesNV::CType
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06320NNoneexplicitRuntimeSpirv(VK_NV_cooperative_matrix)For OpCooperativeMatrixMulAddNV, the type of Result must have VkCooperativeMatrixPropertiesNV::MSize rows and VkCooperativeMatrixPropertiesNV::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesNV::DType
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06321NNoneexplicitRuntimeSpirv(VK_NV_cooperative_matrix)For OpCooperativeMatrixMulAddNV, the type of A, B, C, and Result must all have a scope of scope
VUID-RuntimeSpirv-OpEmitStreamVertex-06310YTestRuntimeSpirvTransformFeedbackexplicitRuntimeSpirv(VK_EXT_transform_feedback)The Stream value to OpEmitStreamVertex and OpEndStreamPrimitive must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams
VUID-RuntimeSpirv-OpEntryPoint-07754NNoneexplicitRuntimeSpirvcoreAny user-defined variables between the OpEntryPoint of two shader stages must have the same type and width for each component
VUID-RuntimeSpirv-OpHitObjectTraceRayMotionNV-07704NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_invocation_reorder)For 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-07709NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_invocation_reorder)For 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-07711NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_invocation_reorder)For OpHitObjectTraceRayMotionNV instructions the pipeline must have been created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV set
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07705NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_invocation_reorder)For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07706NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_invocation_reorder)For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the RayTmin and RayTmax operands must be non-negative floating-point values
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07707NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_invocation_reorder)For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the RayTmin operand must be less than or equal to the RayTmax operand
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07708NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_invocation_reorder)For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07710NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_invocation_reorder)For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions the time operand must be between 0.0 and 1.0
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07712NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_invocation_reorder)For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the Rayflags operand must not contain both SkipTrianglesKHR and SkipAABBsKHR
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07713NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_invocation_reorder)For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the Rayflags operand must not contain more than one of SkipTrianglesKHR, CullBackFacingTrianglesKHR, and CullFrontFacingTrianglesKHR
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07714NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_invocation_reorder)For OpHitObjectTraceRayNV and OpHitObjectTraceRayMotionNV instructions, the Rayflags operand must not contain more than one of OpaqueKHR, NoOpaqueKHR, CullOpaqueKHR, and CullNoOpaqueKHR
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07715NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_invocation_reorder)For 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-07716NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_invocation_reorder)For 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-06376YTestMinAndMaxTexelGatherOffsetexplicitRuntimeSpirvcoreIf 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-06377YTestMinAndMaxTexelGatherOffsetexplicitRuntimeSpirvcoreIf 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-06982NNoneexplicitRuntimeSpirv(VK_QCOM_image_processing)If 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-06983NNoneexplicitRuntimeSpirv(VK_QCOM_image_processing)If 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-06984NNoneexplicitRuntimeSpirv(VK_QCOM_image_processing)If 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-06985NNoneexplicitRuntimeSpirv(VK_QCOM_image_processing)If 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-06986NNoneexplicitRuntimeSpirv(VK_QCOM_image_processing)If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then target sampled image and reference sampled image parameters must have been created with sampler object with unnormalizeCordinates equal to VK_TRUE
VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06987NNoneexplicitRuntimeSpirv(VK_QCOM_image_processing)If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then target sampled image and reference sampled image parameters must have been created with sampler object with unnormalizeCordinates equal to VK_TRUE
VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06988NNoneexplicitRuntimeSpirv(VK_QCOM_image_processing)If an OpImageBlockMatchSSDQCOM or OpImageBlockMatchSADQCOM operation is used, then Block Size less than or equal to maxBlockMatchRegion
VUID-RuntimeSpirv-OpImageBoxFilterQCOM-06989NNoneexplicitRuntimeSpirv(VK_QCOM_image_processing)If 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-06990NNoneexplicitRuntimeSpirv(VK_QCOM_image_processing)If an OpImageBoxFilterQCOM operation is used, then Sampled Texture Image and Box Size parameters must be dynamically uniform
VUID-RuntimeSpirv-OpImageSample-06435YTestMinAndMaxTexelOffsetexplicitRuntimeSpirvcoreIf 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-06436YTestMinAndMaxTexelOffsetexplicitRuntimeSpirvcoreIf 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-06979NNoneexplicitRuntimeSpirv(VK_QCOM_image_processing)If 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-06980NNoneexplicitRuntimeSpirv(VK_QCOM_image_processing)If 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-06981NNoneexplicitRuntimeSpirv(VK_QCOM_image_processing)If an OpImageWeightedSampleQCOM operation is used, then the Weight Image parameter must be decorated with WeightTextureQCOM
VUID-RuntimeSpirv-OpImageWrite-07112YStorageTexelBufferWriteLessComponent, StorageImageWriteLessComponent, StorageImageWriteSpecConstantLessComponentexplicitRuntimeSpirvcoreOpImageWrite 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-06353NNoneexplicitRuntimeSpirv(VK_KHR_ray_query)For OpRayQueryGenerateIntersectionKHR instructions, Hit T must satisfy the condition RayTmin {leq} Hit T {leq} 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-06354NNoneexplicitRuntimeSpirv(VK_KHR_ray_query)+(VK_NV_ray_tracing_motion_blur)For OpRayQueryGenerateIntersectionKHR instructions, Acceleration Structure must not be built with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06348NNoneexplicitRuntimeSpirv(VK_KHR_ray_query)For OpRayQueryInitializeKHR instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06349NNoneexplicitRuntimeSpirv(VK_KHR_ray_query)For OpRayQueryInitializeKHR instructions, the RayTmin and RayTmax operands must be non-negative floating-point values
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06350NNoneexplicitRuntimeSpirv(VK_KHR_ray_query)For OpRayQueryInitializeKHR instructions, the RayTmin operand must be less than or equal to the RayTmax operand
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06351NNoneexplicitRuntimeSpirv(VK_KHR_ray_query)For OpRayQueryInitializeKHR instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06352NNoneexplicitRuntimeSpirv(VK_KHR_ray_query)For OpRayQueryInitializeKHR instructions, Acceleration Structure must be an acceleration structure built as a top-level acceleration structure
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06889NNoneexplicitRuntimeSpirv(VK_KHR_ray_query)For OpRayQueryInitializeKHR instructions, the Rayflags operand must not contain both SkipTrianglesKHR and SkipAABBsKHR
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06890NNoneexplicitRuntimeSpirv(VK_KHR_ray_query)For OpRayQueryInitializeKHR instructions, the Rayflags operand must not contain more than one of SkipTrianglesKHR, CullBackFacingTrianglesKHR, and CullFrontFacingTrianglesKHR
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06891NNoneexplicitRuntimeSpirv(VK_KHR_ray_query)For OpRayQueryInitializeKHR instructions, the Rayflags operand must not contain more than one of OpaqueKHR, NoOpaqueKHR, CullOpaqueKHR, and CullNoOpaqueKHR
VUID-RuntimeSpirv-OpReportIntersectionKHR-06998NNoneexplicitRuntimeSpirv(VK_KHR_ray_tracing_pipeline)The value of the "Hit Kind" operand of OpReportIntersectionKHR must be in the range [0,127]
VUID-RuntimeSpirv-OpTraceRayKHR-06355NNoneexplicitRuntimeSpirv(VK_KHR_ray_tracing_pipeline)For OpTraceRayKHR instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values
VUID-RuntimeSpirv-OpTraceRayKHR-06356NNoneexplicitRuntimeSpirv(VK_KHR_ray_tracing_pipeline)For OpTraceRayKHR instructions, the RayTmin and RayTmax operands must be non-negative floating-point values
VUID-RuntimeSpirv-OpTraceRayKHR-06357NNoneexplicitRuntimeSpirv(VK_KHR_ray_tracing_pipeline)For OpTraceRayKHR instructions, the RayTmin operand must be less than or equal to the RayTmax operand
VUID-RuntimeSpirv-OpTraceRayKHR-06358NNoneexplicitRuntimeSpirv(VK_KHR_ray_tracing_pipeline)For OpTraceRayKHR instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs
VUID-RuntimeSpirv-OpTraceRayKHR-06359NNoneexplicitRuntimeSpirv(VK_KHR_ray_tracing_pipeline)For OpTraceRayKHR instructions, Acceleration Structure must be an acceleration structure built as a top-level acceleration structure
VUID-RuntimeSpirv-OpTraceRayKHR-06360NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_motion_blur)For 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-06552NNoneexplicitRuntimeSpirv(VK_KHR_ray_tracing_pipeline)For OpTraceRayKHR instructions, the Rayflags operand must not contain both SkipTrianglesKHR and SkipAABBsKHR
VUID-RuntimeSpirv-OpTraceRayKHR-06553NNoneexplicitRuntimeSpirv(VK_KHR_ray_tracing_pipeline)For 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-06554NNoneexplicitRuntimeSpirv(VK_KHR_ray_tracing_pipeline)For 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-06892NNoneexplicitRuntimeSpirv(VK_KHR_ray_tracing_pipeline)For OpTraceRayKHR instructions, the Rayflags operand must not contain more than one of SkipTrianglesKHR, CullBackFacingTrianglesKHR, and CullFrontFacingTrianglesKHR
VUID-RuntimeSpirv-OpTraceRayKHR-06893NNoneexplicitRuntimeSpirv(VK_KHR_ray_tracing_pipeline)For OpTraceRayKHR instructions, the Rayflags operand must not contain more than one of OpaqueKHR, NoOpaqueKHR, CullOpaqueKHR, and CullNoOpaqueKHR
VUID-RuntimeSpirv-OpTraceRayMotionNV-06361NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_motion_blur)For OpTraceRayMotionNV instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values
VUID-RuntimeSpirv-OpTraceRayMotionNV-06362NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_motion_blur)For OpTraceRayMotionNV instructions, the RayTmin and RayTmax operands must be non-negative floating-point values
VUID-RuntimeSpirv-OpTraceRayMotionNV-06363NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_motion_blur)For OpTraceRayMotionNV instructions, the RayTmin operand must be less than or equal to the RayTmax operand
VUID-RuntimeSpirv-OpTraceRayMotionNV-06364NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_motion_blur)For OpTraceRayMotionNV instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs
VUID-RuntimeSpirv-OpTraceRayMotionNV-06365NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_motion_blur)For 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-06366NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_motion_blur)For OpTraceRayMotionNV instructions the time operand must be between 0.0 and 1.0
VUID-RuntimeSpirv-OpTraceRayMotionNV-06367NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_motion_blur)For OpTraceRayMotionNV instructions the pipeline must have been created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV set
VUID-RuntimeSpirv-OpTypeCooperativeMatrixNV-06316NNoneexplicitRuntimeSpirv(VK_NV_cooperative_matrix)For 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-06322YNoneexplicitRuntimeSpirv(VK_NV_cooperative_matrix)OpTypeCooperativeMatrixNV and OpCooperativeMatrix* instructions must not be used in shader stages not included in VkPhysicalDeviceCooperativeMatrixPropertiesNV::cooperativeMatrixSupportedStages
VUID-RuntimeSpirv-OpTypeImage-06269YMissingNonWritableDecorationStorageImageFormatWriteexplicitRuntimeSpirv!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-OpTypeImage-06270YMissingNonReadableDecorationStorageImageFormatReadexplicitRuntimeSpirv!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-OpTypeVector-06816NNoneexplicitRuntimeSpirv!(VK_VERSION_1_3,VK_KHR_maintenance4)Any OpTypeVector output interface variables must not have a higher Component Count than a matching OpTypeVector input interface variable
VUID-RuntimeSpirv-OpVariable-06373YTestShaderZeroInitializeWorkgroupMemoryexplicitRuntimeSpirv!(VK_VERSION_1_3,VK_KHR_zero_initialize_workgroup_memory)Any OpVariable with Workgroup as its Storage Class must not have an Initializer operand
VUID-RuntimeSpirv-PhysicalStorageBuffer64-06314NNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)If 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-06315NNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)If 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-06378YInvalidPipelineRenderPassShaderResolveQCOMexplicitRuntimeSpirv(VK_QCOM_render_pass_shader_resolve)If 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-Stream-06312YTestRuntimeSpirvTransformFeedbackexplicitRuntimeSpirv(VK_EXT_transform_feedback)The stream number value to Stream must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams
VUID-RuntimeSpirv-SubgroupUniformControlFlowKHR-06379YTestSubgroupUniformControlFlowexplicitRuntimeSpirv(VK_KHR_shader_subgroup_uniform_control_flow)The execution mode SubgroupUniformControlFlowKHR must not be applied to an entry point unless shaderSubgroupUniformControlFlow is enabled and the corresponding shader stage bit is set in subgroup supportedStages and the entry point does not execute any invocation repack instructions
VUID-RuntimeSpirv-TaskEXT-07117NNoneexplicitRuntimeSpirv(VK_EXT_mesh_shader)In task shaders using the TaskEXT {ExecutionModel} OpEmitMeshTasksEXT must be called exactly once under dynamically uniform conditions
VUID-RuntimeSpirv-TaskEXT-07291YMeshShaderEXTRuntimeSpirvexplicitRuntimeSpirv(VK_EXT_mesh_shader)In task shaders using the TaskEXT {ExecutionModel} the x size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupSize[0]
VUID-RuntimeSpirv-TaskEXT-07292YMeshShaderEXTRuntimeSpirvexplicitRuntimeSpirv(VK_EXT_mesh_shader)In task shaders using the TaskEXT {ExecutionModel} the y size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupSize[1]
VUID-RuntimeSpirv-TaskEXT-07293YMeshShaderEXTRuntimeSpirvexplicitRuntimeSpirv(VK_EXT_mesh_shader)In task shaders using the TaskEXT {ExecutionModel} the z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupSize[2]
VUID-RuntimeSpirv-TaskEXT-07294YMeshShaderEXTRuntimeSpirvexplicitRuntimeSpirv(VK_EXT_mesh_shader)In task shaders using the TaskEXT {ExecutionModel} 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-07299NNoneexplicitRuntimeSpirv(VK_EXT_mesh_shader)In task shaders using the TaskEXT {ExecutionModel} the value of the "Group Count X" operand of OpEmitMeshTasksEXT must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[0]
VUID-RuntimeSpirv-TaskEXT-07300NNoneexplicitRuntimeSpirv(VK_EXT_mesh_shader)In task shaders using the TaskEXT {ExecutionModel} the value of the "Group Count Y" operand of OpEmitMeshTasksEXT must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[1]
VUID-RuntimeSpirv-TaskEXT-07301NNoneexplicitRuntimeSpirv(VK_EXT_mesh_shader)In task shaders using the TaskEXT {ExecutionModel} the value of the "Group Count Z" operand of OpEmitMeshTasksEXT must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[2]
VUID-RuntimeSpirv-TaskEXT-07302NNoneexplicitRuntimeSpirv(VK_EXT_mesh_shader)In task shaders using the TaskEXT {ExecutionModel} the product of the "Group Count" operands of OpEmitMeshTasksEXT must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupTotalCount
VUID-RuntimeSpirv-Workgroup-06530YComputeSharedMemoryBooleanOverLimit, ComputeSharedMemoryOverLimit, ComputeSharedMemorySpecConstantDefault, ComputeSharedMemorySpecConstantSet, ComputeSharedMemoryOverLimitWorkgroupMemoryExplicitLayoutexplicitRuntimeSpirvcoreThe sum of size in bytes for variables and padding in the Workgroup storage class in the GLCompute {ExecutionModel} must be less than or equal to maxComputeSharedMemorySize
VUID-RuntimeSpirv-XfbBuffer-06309YTestRuntimeSpirvTransformFeedbackexplicitRuntimeSpirv(VK_EXT_transform_feedback)For 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-06313YTestRuntimeSpirvTransformFeedbackexplicitRuntimeSpirv(VK_EXT_transform_feedback)The XFB Stride value to XfbStride must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferDataStride
VUID-RuntimeSpirv-denormBehaviorIndependence-06289YNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If 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-06290YNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If 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-maintenance4-06817NNoneexplicitRuntimeSpirv(VK_VERSION_1_3,VK_KHR_maintenance4)If 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-roundingModeIndependence-06291YNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If 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-06292YNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If 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-shaderDenormFlushToZeroFloat16-06299YNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If shaderDenormFlushToZeroFloat16 is VK_FALSE, then DenormFlushToZero for 16-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderDenormFlushToZeroFloat32-06300YShaderFloatControlexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If shaderDenormFlushToZeroFloat32 is VK_FALSE, then DenormFlushToZero for 32-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderDenormFlushToZeroFloat64-06301YNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If shaderDenormFlushToZeroFloat64 is VK_FALSE, then DenormFlushToZero for 64-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderDenormPreserveFloat16-06296YNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If shaderDenormPreserveFloat16 is VK_FALSE, then DenormPreserve for 16-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderDenormPreserveFloat32-06297YShaderFloatControlexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If shaderDenormPreserveFloat32 is VK_FALSE, then DenormPreserve for 32-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderDenormPreserveFloat64-06298YNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If shaderDenormPreserveFloat64 is VK_FALSE, then DenormPreserve for 64-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderDeviceClock-06268YReadShaderClockexplicitRuntimeSpirv(VK_KHR_shader_clock)If shaderDeviceClock is not enabled, the Device scope must not be used for OpReadClockKHR
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06767NNoneexplicitRuntimeSpirv(VK_AMD_shader_early_and_late_fragment_tests)If shaderEarlyAndLateFragmentTests is not enabled, the EarlyAndLateFragmentTestsEXT Execution Mode must not be used
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06768NNoneexplicitRuntimeSpirv(VK_AMD_shader_early_and_late_fragment_tests)If shaderEarlyAndLateFragmentTests feature is not enabled, the StencilRefUnchangedFrontEXT Execution Mode must not be used
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06769NNoneexplicitRuntimeSpirv(VK_AMD_shader_early_and_late_fragment_tests)If shaderEarlyAndLateFragmentTests is not enabled, the StencilRefUnchangedBackEXT Execution Mode must not be used
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06770NNoneexplicitRuntimeSpirv(VK_AMD_shader_early_and_late_fragment_tests)If shaderEarlyAndLateFragmentTests is not enabled, the StencilRefGreaterFrontEXT Execution Mode must not be used
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06771NNoneexplicitRuntimeSpirv(VK_AMD_shader_early_and_late_fragment_tests)If shaderEarlyAndLateFragmentTests is not enabled, the StencilRefGreaterBackEXT Execution Mode must not be used
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06772NNoneexplicitRuntimeSpirv(VK_AMD_shader_early_and_late_fragment_tests)If shaderEarlyAndLateFragmentTests is not enabled, the StencilRefLessFrontEXT Execution Mode must not be used
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06773NNoneexplicitRuntimeSpirv(VK_AMD_shader_early_and_late_fragment_tests)If shaderEarlyAndLateFragmentTests is not enabled, the StencilRefLessBackEXT Execution Mode must not be used
VUID-RuntimeSpirv-shaderRoundingModeRTEFloat16-06302YNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If shaderRoundingModeRTEFloat16 is VK_FALSE, then RoundingModeRTE for 16-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderRoundingModeRTEFloat32-06303YShaderFloatControlexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If shaderRoundingModeRTEFloat32 is VK_FALSE, then RoundingModeRTE for 32-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderRoundingModeRTEFloat64-06304YNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If shaderRoundingModeRTEFloat64 is VK_FALSE, then RoundingModeRTE for 64-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderRoundingModeRTZFloat16-06305YNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If shaderRoundingModeRTZFloat16 is VK_FALSE, then RoundingModeRTZ for 16-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderRoundingModeRTZFloat32-06306YShaderFloatControlexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If shaderRoundingModeRTZFloat32 is VK_FALSE, then RoundingModeRTZ for 32-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderRoundingModeRTZFloat64-06307YNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If shaderRoundingModeRTZFloat64 is VK_FALSE, then RoundingModeRTZ for 64-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderSampleRateInterpolationFunctions-06325YInvalidDepthStencilStateForReadOnlyLayoutexplicitRuntimeSpirv(VK_KHR_portability_subset)If 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-06293YNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If shaderSignedZeroInfNanPreserveFloat16 is VK_FALSE, then SignedZeroInfNanPreserve for 16-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat32-06294YShaderFloatControlexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If shaderSignedZeroInfNanPreserveFloat32 is VK_FALSE, then SignedZeroInfNanPreserve for 32-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat64-06295YNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If shaderSignedZeroInfNanPreserveFloat64 is VK_FALSE, then SignedZeroInfNanPreserve for 64-bit floating-point type must not be used
VUID-RuntimeSpirv-shaderSubgroupClock-06267YReadShaderClockexplicitRuntimeSpirv(VK_KHR_shader_clock)If shaderSubgroupClock is not enabled, the Subgroup scope must not be used for OpReadClockKHR
VUID-RuntimeSpirv-shaderZeroInitializeWorkgroupMemory-06372YTestShaderZeroInitializeWorkgroupMemoryexplicitRuntimeSpirv(VK_VERSION_1_3,VK_KHR_zero_initialize_workgroup_memory)If shaderZeroInitializeWorkgroupMemory is not enabled, any OpVariable with Workgroup as its Storage Class must not have an Initializer operand
VUID-RuntimeSpirv-storageBuffer16BitAccess-06331YStorage8and16bitCapability, Storage8and16bitFeaturesexplicitRuntimeSpirv(VK_KHR_16bit_storage)If 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-06328YStorage8and16bitCapability, Storage8and16bitFeaturesexplicitRuntimeSpirv(VK_KHR_8bit_storage)If 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-06334YStorage8and16bitCapability, Storage8and16bitFeaturesexplicitRuntimeSpirv(VK_KHR_16bit_storage)If 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-06333YStorage8and16bitCapability, Storage8and16bitFeaturesexplicitRuntimeSpirv(VK_KHR_16bit_storage)If 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-06330YStorage8and16bitCapability, Storage8and16bitFeaturesexplicitRuntimeSpirv(VK_KHR_8bit_storage)If storagePushConstant8 is VK_FALSE, then objects containing an 8-bit integer element must not have storage class of PushConstant
VUID-RuntimeSpirv-subgroupBroadcastDynamicId-06276NNoneexplicitRuntimeSpirv(VK_VERSION_1_2)If 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-06277NNoneexplicitRuntimeSpirv(VK_VERSION_1_2)If subgroupBroadcastDynamicId is VK_TRUE, and the shader module version is 1.5 or higher, the "Id" for OpGroupNonUniformBroadcast must be dynamically uniform within the subgroup. Otherwise, "Id" must be a constant
VUID-RuntimeSpirv-tessellationShader-06326YInvalidDepthStencilStateForReadOnlyLayoutexplicitRuntimeSpirv(VK_KHR_portability_subset)If 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-06327YInvalidDepthStencilStateForReadOnlyLayoutexplicitRuntimeSpirv(VK_KHR_portability_subset)If 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-06311YTestRuntimeSpirvTransformFeedbackexplicitRuntimeSpirv(VK_EXT_transform_feedback)If 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-06332YStorage8and16bitCapability, Storage8and16bitFeaturesexplicitRuntimeSpirv(VK_KHR_16bit_storage)If 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-06329YStorage8and16bitCapability, Storage8and16bitFeaturesexplicitRuntimeSpirv(VK_KHR_8bit_storage)If 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-06265YDeviceMemoryScopeexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_vulkan_memory_model)If vulkanMemoryModel is enabled and vulkanMemoryModelDeviceScope is not enabled, Device memory scope must not be used
VUID-RuntimeSpirv-vulkanMemoryModel-06266YQueueFamilyMemoryScopeexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_vulkan_memory_model)If vulkanMemoryModel is not enabled, QueueFamily memory scope must not be used
VUID-RuntimeSpirv-x-06429YComputeWorkGroupSizeConstantDefault, ComputeWorkGroupSizeLocalSizeIdSpecConstantSet, ComputeWorkGroupSizeSpecConstant, ComputeWorkGroupSizeLocalSizeIdSpecConstantDefault, CmdDispatchExceedLimits, ComputeWorkGroupSizeLocalSizeId, ComputeWorkGroupSizeSpecConstantDefaultexplicitRuntimeSpirvcoreThe x size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]
VUID-RuntimeSpirv-x-06432YComputeWorkGroupSizeConstantDefault, ComputeWorkGroupSizeLocalSizeIdSpecConstantSet, ComputeWorkGroupSizeSpecConstant, ComputeWorkGroupSizeLocalSizeIdSpecConstantDefault, CmdDispatchExceedLimits, TestComputeLocalWorkgroupSize, ComputeWorkGroupSizeLocalSizeId, ComputeWorkGroupSizeSpecConstantDefaultexplicitRuntimeSpirvcoreThe 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-06430YComputeWorkGroupSizeSpecConstant, CmdDispatchExceedLimitsexplicitRuntimeSpirvcoreThe y size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]
VUID-RuntimeSpirv-z-06431YCmdDispatchExceedLimitsexplicitRuntimeSpirvcoreThe z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2]
VUID-SMCountNV-SMCountNV-04363NNoneexplicitSMCountNV(VK_NV_shader_sm_builtins)The variable decorated with SMCountNV must be declared using the Input {StorageClass}
VUID-SMCountNV-SMCountNV-04364NNoneexplicitSMCountNV(VK_NV_shader_sm_builtins)The variable decorated with SMCountNV must be declared as a scalar 32-bit integer value
VUID-SMIDNV-SMIDNV-04365NNoneexplicitSMIDNV(VK_NV_shader_sm_builtins)The variable decorated with SMIDNV must be declared using the Input {StorageClass}
VUID-SMIDNV-SMIDNV-04366NNoneexplicitSMIDNV(VK_NV_shader_sm_builtins)The variable decorated with SMIDNV must be declared as a scalar 32-bit integer value
VUID-SampleId-SampleId-04354NNoneexplicitSampleIdcoreThe SampleId decoration must be used only within the Fragment {ExecutionModel}
VUID-SampleId-SampleId-04355NNoneexplicitSampleIdcoreThe variable decorated with SampleId must be declared using the Input {StorageClass}
VUID-SampleId-SampleId-04356NNoneexplicitSampleIdcoreThe variable decorated with SampleId must be declared as a scalar 32-bit integer value
VUID-SampleMask-SampleMask-04357NNoneexplicitSampleMaskcoreThe SampleMask decoration must be used only within the Fragment {ExecutionModel}
VUID-SampleMask-SampleMask-04358NNoneexplicitSampleMaskcoreThe variable decorated with SampleMask must be declared using the Input or Output {StorageClass}
VUID-SampleMask-SampleMask-04359NNoneexplicitSampleMaskcoreThe variable decorated with SampleMask must be declared as an array of 32-bit integer values
VUID-SamplePosition-SamplePosition-04360NNoneexplicitSamplePositioncoreThe SamplePosition decoration must be used only within the Fragment {ExecutionModel}
VUID-SamplePosition-SamplePosition-04361NNoneexplicitSamplePositioncoreThe variable decorated with SamplePosition must be declared using the Input {StorageClass}
VUID-SamplePosition-SamplePosition-04362NNoneexplicitSamplePositioncoreThe variable decorated with SamplePosition must be declared as a two-component vector of 32-bit floating-point values
VUID-ShadingRateKHR-ShadingRateKHR-04490NNoneexplicitShadingRateKHR(VK_KHR_fragment_shading_rate)The ShadingRateKHR decoration must be used only within the Fragment {ExecutionModel}
VUID-ShadingRateKHR-ShadingRateKHR-04491NNoneexplicitShadingRateKHR(VK_KHR_fragment_shading_rate)The variable decorated with ShadingRateKHR must be declared using the Input {StorageClass}
VUID-ShadingRateKHR-ShadingRateKHR-04492NNoneexplicitShadingRateKHR(VK_KHR_fragment_shading_rate)The variable decorated with ShadingRateKHR must be declared as a scalar 32-bit integer value
VUID-StandaloneSpirv-Base-04781NNoneexplicitStandaloneSpirvcoreThe 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-07650NNoneexplicitStandaloneSpirvcoreThe Base operand of OpPtrAccessChain must have a storage class of Workgroup, StorageBuffer, or PhysicalStorageBuffer
VUID-StandaloneSpirv-Base-07651NNoneexplicitStandaloneSpirvcoreIf the Base operand of OpPtrAccessChain has a Workgroup storage class, then the VariablePointers capability must be declared
VUID-StandaloneSpirv-Base-07652NNoneexplicitStandaloneSpirvcoreIf the Base operand of OpPtrAccessChain has a StorageBuffer storage class, then the VariablePointers or VariablePointersStorageBuffer capability must be declared
VUID-StandaloneSpirv-BuiltIn-04668NNoneexplicitStandaloneSpirvcoreAny BuiltIn decoration not listed in Built-In Variables must not be used
VUID-StandaloneSpirv-CallableDataKHR-04704NNoneexplicitStandaloneSpirvcoreCallableDataKHR storage class must only be used in ray generation, closest hit, miss, and callable shaders
VUID-StandaloneSpirv-Component-04920NNoneexplicitStandaloneSpirvcoreThe Component decoration value must not be greater than 3
VUID-StandaloneSpirv-Component-04921NNoneexplicitStandaloneSpirvcoreIf 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-04922NNoneexplicitStandaloneSpirvcoreIf 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-04923NNoneexplicitStandaloneSpirvcoreThe Component decorations value must not be 1 or 3 for scalar or two-component 64-bit data types
VUID-StandaloneSpirv-Component-04924NNoneexplicitStandaloneSpirvcoreThe Component decorations must not used with any type that is not a scalar or vector
VUID-StandaloneSpirv-Component-07703NNoneexplicitStandaloneSpirvcoreThe Component decorations must not be used for a 64-bit vector type with more than two components
VUID-StandaloneSpirv-DerivativeGroupLinearNV-04778NNoneexplicitStandaloneSpirvcoreFor compute shaders using the DerivativeGroupLinearNV execution mode, the product of the dimensions of the local workgroup size must be a multiple of four
VUID-StandaloneSpirv-DerivativeGroupQuadsNV-04684NNoneexplicitStandaloneSpirvcoreFor compute shaders using the DerivativeGroupQuadsNV execution mode, the first two dimensions of the local workgroup size must be a multiple of two
VUID-StandaloneSpirv-DescriptorSet-06491NNoneexplicitStandaloneSpirvcoreIf 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-07320NNoneexplicitStandaloneSpirvcoreIf the ExecutionModel is TessellationControl, and the MemoryModel is GLSL450, the Scope for memory must not be Workgroup
VUID-StandaloneSpirv-FPRoundingMode-04675NNoneexplicitStandaloneSpirvcoreRounding modes other than round-to-nearest-even and round-towards-zero must not be used for the FPRoundingMode decoration
VUID-StandaloneSpirv-Flat-04670NNoneexplicitStandaloneSpirvcoreThe Flat, NoPerspective, Sample, and Centroid decorations must only be used on variables with the Output or Input storage class
VUID-StandaloneSpirv-Flat-04744NNoneexplicitStandaloneSpirvcoreAny 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-06201NNoneexplicitStandaloneSpirvcoreThe Flat, NoPerspective, Sample, and Centroid decorations must not be used on variables with the Output storage class in a fragment shader
VUID-StandaloneSpirv-Flat-06202NNoneexplicitStandaloneSpirvcoreThe Flat, NoPerspective, Sample, and Centroid decorations must not be used on variables with the Input storage class in a vertex shader
VUID-StandaloneSpirv-Function-04681NNoneexplicitStandaloneSpirvcoreA type T that is an array sized with a specialization constant must neither be, nor be contained in, the type T2 of a variable V, unless either: a) T is equal to T2, b) V is declared in the Function, or Private storage classes, 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-04669NNoneexplicitStandaloneSpirvcoreThe GLSLShared and GLSLPacked decorations must not be used
VUID-StandaloneSpirv-HitAttributeKHR-04701NNoneexplicitStandaloneSpirvcoreHitAttributeKHR storage class must only be used in intersection, any-hit, or closest hit shaders
VUID-StandaloneSpirv-HitAttributeKHR-04702NNoneexplicitStandaloneSpirvcoreThere must be at most one variable with the HitAttributeKHR storage class in the input interface of an entry point
VUID-StandaloneSpirv-HitAttributeKHR-04703NNoneexplicitStandaloneSpirvcoreA variable with HitAttributeKHR storage class must only be written to in an intersection shader
VUID-StandaloneSpirv-Image-04965NNoneexplicitStandaloneSpirvcoreThe converted bit width, signedness, and numeric 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-04705NNoneexplicitStandaloneSpirvcoreIncomingCallableDataKHR storage class must only be used in callable shaders
VUID-StandaloneSpirv-IncomingCallableDataKHR-04706NNoneexplicitStandaloneSpirvcoreThere must be at most one variable with the IncomingCallableDataKHR storage class in the input interface of an entry point
VUID-StandaloneSpirv-IncomingRayPayloadKHR-04699NNoneexplicitStandaloneSpirvcoreIncomingRayPayloadKHR storage class must only be used in closest hit, any-hit, or miss shaders
VUID-StandaloneSpirv-IncomingRayPayloadKHR-04700NNoneexplicitStandaloneSpirvcoreThere must be at most one variable with the IncomingRayPayloadKHR storage class in the input interface of an entry point
VUID-StandaloneSpirv-Input-06778NNoneexplicitStandaloneSpirvcoreVariables with a storage class of Input in a fragment shader stage that are decorated with PerVertexKHR must be declared as arrays
VUID-StandaloneSpirv-Input-07290NNoneexplicitStandaloneSpirvcoreVariables with a storage class of Input or Output and a type of OpTypeBool must be decorated with the BuiltIn decoration
VUID-StandaloneSpirv-InputAttachmentIndex-06678NNoneexplicitStandaloneSpirvcoreVariables decorated with InputAttachmentIndex must be in the UniformConstant storage class
VUID-StandaloneSpirv-Invariant-04677NNoneexplicitStandaloneSpirvcoreVariables 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-06426NNoneexplicitStandaloneSpirvcoreFor 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-04915NNoneexplicitStandaloneSpirvcoreThe Location or Component decorations must not be used with BuiltIn
VUID-StandaloneSpirv-Location-04916NNoneexplicitStandaloneSpirvcoreThe Location decorations must be used on user-defined variables
VUID-StandaloneSpirv-Location-04917NNoneexplicitStandaloneSpirvcoreThe Location decorations must be used on an OpVariable with a structure type that is not a block
VUID-StandaloneSpirv-Location-04918NNoneexplicitStandaloneSpirvcoreThe Location decorations must not be used on the members of OpVariable with a structure type that is decorated with Location
VUID-StandaloneSpirv-Location-04919NNoneexplicitStandaloneSpirvcoreThe Location decorations must be used on each member of OpVariable with a structure type that is a block not decorated with Location
VUID-StandaloneSpirv-Location-06672NNoneexplicitStandaloneSpirvcoreThe 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-07102NNoneexplicitStandaloneSpirvcoreThe module must not contain both an entry point that uses the TaskEXT or MeshEXT {ExecutionModel} and an entry point that uses the TaskNV or MeshNV {ExecutionModel}
VUID-StandaloneSpirv-MeshEXT-07106NNoneexplicitStandaloneSpirvcoreIn mesh shaders using the MeshEXT {ExecutionModel} OpSetMeshOutputsEXT must be called before any outputs are written
VUID-StandaloneSpirv-MeshEXT-07107NNoneexplicitStandaloneSpirvcoreIn mesh shaders using the MeshEXT {ExecutionModel} all variables declared as output must not be read from
VUID-StandaloneSpirv-MeshEXT-07108NNoneexplicitStandaloneSpirvcoreIn mesh shaders using the MeshEXT {ExecutionModel} for OpSetMeshOutputsEXT instructions, the "Vertex Count" and "Primitive Count" operands must not depend on ViewIndex
VUID-StandaloneSpirv-MeshEXT-07109NNoneexplicitStandaloneSpirvcoreIn mesh shaders using the MeshEXT {ExecutionModel} variables decorated with PrimitivePointIndicesEXT, PrimitiveLineIndicesEXT, or PrimitiveTriangleIndicesEXT declared as an array must not be accessed by indices that depend on ViewIndex
VUID-StandaloneSpirv-MeshEXT-07110NNoneexplicitStandaloneSpirvcoreIn mesh shaders using the MeshEXT {ExecutionModel} any values stored in variables decorated with PrimitivePointIndicesEXT, PrimitiveLineIndicesEXT, or PrimitiveTriangleIndicesEXT must not depend on ViewIndex
VUID-StandaloneSpirv-MeshEXT-07111NNoneexplicitStandaloneSpirvcoreIn mesh shaders using the MeshEXT {ExecutionModel} variables in workgroup or private storage class declared as or containing a composite type must not be accessed by indices that depend on ViewIndex
VUID-StandaloneSpirv-MeshEXT-07330NNoneexplicitStandaloneSpirvcoreIn mesh shaders using the MeshEXT {ExecutionModel} the OutputVertices {ExecutionMode} must be greater than 0
VUID-StandaloneSpirv-MeshEXT-07331NNoneexplicitStandaloneSpirvcoreIn mesh shaders using the MeshEXT {ExecutionModel} the OutputPrimitivesEXT {ExecutionMode} must be greater than 0
VUID-StandaloneSpirv-MeshEXT-07728NNoneexplicitStandaloneSpirvcoreIn mesh shaders using the MeshEXT or MeshNV {ExecutionModel} and the OutputPoints {ExecutionMode}, if the number of output points is greater than 0, a PointSize decorated variable must be written to for each output point
VUID-StandaloneSpirv-None-04633NNoneexplicitStandaloneSpirvcoreEvery entry point must have no return value and accept no arguments
VUID-StandaloneSpirv-None-04634NNoneexplicitStandaloneSpirvcoreThe static function-call graph for an entry point must not contain cycles; that is, static recursion is not allowed
VUID-StandaloneSpirv-None-04635NNoneexplicitStandaloneSpirvcoreThe Logical or PhysicalStorageBuffer64 addressing model must be selected
VUID-StandaloneSpirv-None-04636NNoneexplicitStandaloneSpirvcoreScope for execution must be limited to Workgroup or Subgroup
VUID-StandaloneSpirv-None-04637NNoneexplicitStandaloneSpirvcoreIf the Scope for execution is Workgroup, then it must only be used in the task, mesh, tessellation control, or compute execution models
VUID-StandaloneSpirv-None-04638NNoneexplicitStandaloneSpirvcoreScope for memory must be limited to Device, QueueFamily, Workgroup, ShaderCallKHR, Subgroup, or Invocation
VUID-StandaloneSpirv-None-04640NNoneexplicitStandaloneSpirvcoreIf the Scope for memory is ShaderCallKHR, then it must only be used in ray generation, intersection, closest hit, any-hit, miss, and callable execution models
VUID-StandaloneSpirv-None-04641NNoneexplicitStandaloneSpirvcoreIf the Scope for memory is Invocation, then memory semantics must be None
VUID-StandaloneSpirv-None-04642NNoneexplicitStandaloneSpirv(VK_VERSION_1_1)Scope for group operations must be limited to Subgroup
VUID-StandaloneSpirv-None-04643NNoneexplicitStandaloneSpirvcoreStorage Class must be limited to UniformConstant, Input, Uniform, Output, Workgroup, Private, Function, PushConstant, Image, StorageBuffer, RayPayloadKHR, IncomingRayPayloadKHR, HitAttributeKHR, CallableDataKHR, IncomingCallableDataKHR, ShaderRecordBufferKHR, or PhysicalStorageBuffer
VUID-StandaloneSpirv-None-04644NNoneexplicitStandaloneSpirvcoreIf the Storage Class is Output, then it must not be used in the GlCompute, RayGenerationKHR, IntersectionKHR, AnyHitKHR, ClosestHitKHR, MissKHR, or CallableKHR execution models
VUID-StandaloneSpirv-None-04645NNoneexplicitStandaloneSpirvcoreIf the Storage Class is Workgroup, then it must only be used in the task, mesh, or compute execution models
VUID-StandaloneSpirv-None-04667NNoneexplicitStandaloneSpirvcoreStructure types must not contain opaque types
VUID-StandaloneSpirv-None-04686NNoneexplicitStandaloneSpirvcoreThe Pointer operand of all atomic instructions must have a Storage Class limited to Uniform, Workgroup, Image, StorageBuffer, PhysicalStorageBuffer, or TaskPayloadWorkgroupEXT
VUID-StandaloneSpirv-None-04745NNoneexplicitStandaloneSpirvcoreAll block members in a variable with a storage class of PushConstant declared as an array must only be accessed by dynamically uniform indices
VUID-StandaloneSpirv-None-07321NNoneexplicitStandaloneSpirvcoreIf the Scope for memory is Workgroup, then it must only be used in the task, mesh, tessellation control, or compute execution models
VUID-StandaloneSpirv-Offset-04662NNoneexplicitStandaloneSpirvcoreAny image operation must use at most one of the Offset, ConstOffset, and ConstOffsets image operands
VUID-StandaloneSpirv-Offset-04663NNoneexplicitStandaloneSpirvcoreImage operand Offset must only be used with OpImage*Gather instructions
VUID-StandaloneSpirv-Offset-04687NNoneexplicitStandaloneSpirvcoreOutput variables or block members decorated with Offset that have a 64-bit type, or a composite type containing a 64-bit type, must specify an Offset value aligned to a 8 byte boundary
VUID-StandaloneSpirv-Offset-04689NNoneexplicitStandaloneSpirvcoreThe size of any output block containing any member decorated with Offset that is a 64-bit type must be a multiple of 8
VUID-StandaloneSpirv-Offset-04690NNoneexplicitStandaloneSpirvcoreThe first member of an output block specifying a Offset decoration must specify a Offset value that is aligned to an 8 byte boundary if that block contains any member decorated with Offset and is a 64-bit type
VUID-StandaloneSpirv-Offset-04691NNoneexplicitStandaloneSpirvcoreOutput variables or block members decorated with Offset that have a 32-bit type, or a composite type contains a 32-bit type, must specify an Offset value aligned to a 4 byte boundary
VUID-StandaloneSpirv-Offset-04692NNoneexplicitStandaloneSpirvcoreOutput variables, blocks or block members decorated with Offset must only contain base types that have components that are either 32-bit or 64-bit in size
VUID-StandaloneSpirv-Offset-04716NNoneexplicitStandaloneSpirvcoreOnly variables or block members in the output interface decorated with Offset can be captured for transform feedback, and those variables or block members must also be decorated with XfbBuffer and XfbStride, or inherit XfbBuffer and XfbStride decorations from a block containing them
VUID-StandaloneSpirv-Offset-04865NNoneexplicitStandaloneSpirvcoreAny image instruction which uses an Offset, ConstOffset, or ConstOffsets image operand, must only consume a "Sampled Image" operand whose type has its "Sampled" operand set to 1
VUID-StandaloneSpirv-OpAtomicLoad-04731NNoneexplicitStandaloneSpirvcoreOpAtomicLoad must not use Release, AcquireRelease, or SequentiallyConsistent memory semantics
VUID-StandaloneSpirv-OpAtomicStore-04730NNoneexplicitStandaloneSpirvcoreOpAtomicStore must not use Acquire, AcquireRelease, or SequentiallyConsistent memory semantics
VUID-StandaloneSpirv-OpControlBarrier-04650NNoneexplicitStandaloneSpirvcoreIf the semantics for OpControlBarrier includes one of Acquire, Release, AcquireRelease, or SequentiallyConsistent memory semantics, then it must include at least one storage class
VUID-StandaloneSpirv-OpControlBarrier-04682NNoneexplicitStandaloneSpirvcoreIf 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-06674NNoneexplicitStandaloneSpirvcoreEach OpEntryPoint must not statically use more than one OpVariable in the PushConstant storage class
VUID-StandaloneSpirv-OpGroupNonUniformBallotBitCount-04685NNoneexplicitStandaloneSpirvcoreIf OpGroupNonUniformBallotBitCount is used, the group operation must be limited to Reduce, InclusiveScan, or ExclusiveScan
VUID-StandaloneSpirv-OpImage-04777NNoneexplicitStandaloneSpirvcoreOpImage*Dref* instructions must not consume an image whose Dim is 3D
VUID-StandaloneSpirv-OpImageGather-04664NNoneexplicitStandaloneSpirvcoreThe "Component" operand of OpImageGather, and OpImageSparseGather must be the of a constant instruction
VUID-StandaloneSpirv-OpImageQuerySizeLod-04659NNoneexplicitStandaloneSpirvcoreOpImageQuerySizeLod, OpImageQueryLod, and OpImageQueryLevels must only consume an "Image" operand whose type has its "Sampled" operand set to 1
VUID-StandaloneSpirv-OpImageTexelPointer-04658NNoneexplicitStandaloneSpirvcoreIf 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-04732NNoneexplicitStandaloneSpirvcoreOpMemoryBarrier must use one of Acquire, Release, AcquireRelease, or SequentiallyConsistent memory semantics
VUID-StandaloneSpirv-OpMemoryBarrier-04733NNoneexplicitStandaloneSpirvcoreOpMemoryBarrier must include at least one storage class
VUID-StandaloneSpirv-OpReadClockKHR-04652NNoneexplicitStandaloneSpirvcoreScope for OpReadClockKHR must be limited to Subgroup or Device
VUID-StandaloneSpirv-OpTypeForwardPointer-04711NNoneexplicitStandaloneSpirvcoreOpTypeForwardPointer must have a storage class of PhysicalStorageBuffer
VUID-StandaloneSpirv-OpTypeImage-04656NNoneexplicitStandaloneSpirvcoreOpTypeImage 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-04657NNoneexplicitStandaloneSpirvcoreOpTypeImage must have a "Sampled" operand of 1 (sampled image) or 2 (storage image)
VUID-StandaloneSpirv-OpTypeImage-06214NNoneexplicitStandaloneSpirvcoreAn OpTypeImage with a "Dim" operand of SubpassData must have an "Arrayed" operand of 0 (non-arrayed) and a "Sampled" operand of 2 (storage image)
VUID-StandaloneSpirv-OpTypeImage-06924NNoneexplicitStandaloneSpirvcoreObjects of types OpTypeImage, OpTypeSampler, OpTypeSampledImage, OpTypeAccelerationStructureKHR, and arrays of these types must not be stored to or modified
VUID-StandaloneSpirv-OpTypeRuntimeArray-04680NNoneexplicitStandaloneSpirvcoreOpTypeRuntimeArray must only be used for the last member of a Block-decorated OpTypeStruct in StorageBuffer or PhysicalStorageBuffer storage classes; BufferBlock-decorated OpTypeStruct in Uniform storage class; the outermost dimension of an arrayed variable in the StorageBuffer, Uniform, or UniformConstant storage classes
VUID-StandaloneSpirv-OpTypeSampledImage-06671NNoneexplicitStandaloneSpirvcoreOpTypeSampledImage must have a OpTypeImage with a "Sampled" operand of 1 (sampled image)
VUID-StandaloneSpirv-OpVariable-04651NNoneexplicitStandaloneSpirvcoreAny OpVariable with an Initializer operand must have Output, Private, Function, or Workgroup as its Storage Class operand
VUID-StandaloneSpirv-OpVariable-04734NNoneexplicitStandaloneSpirvcoreAny OpVariable with an Initializer operand and Workgroup as its Storage Class operand must use OpConstantNull as the initializer
VUID-StandaloneSpirv-OpVariable-06673NNoneexplicitStandaloneSpirvcoreThere must not be more than one OpVariable in the PushConstant storage class listed in the Interface for each OpEntryPoint
VUID-StandaloneSpirv-OriginLowerLeft-04653NNoneexplicitStandaloneSpirvcoreThe OriginLowerLeft execution mode must not be used; fragment entry points must declare OriginUpperLeft
VUID-StandaloneSpirv-PerVertexKHR-06777NNoneexplicitStandaloneSpirvcoreThe PerVertexKHR decoration must only be used on variables with the Input storage class in a fragment shader
VUID-StandaloneSpirv-PhysicalStorageBuffer64-04708NNoneexplicitStandaloneSpirvcoreIf the PhysicalStorageBuffer64 addressing model is enabled, all instructions that support memory access operands and that use a physical pointer must include the Aligned operand
VUID-StandaloneSpirv-PhysicalStorageBuffer64-04709NNoneexplicitStandaloneSpirvcoreIf the PhysicalStorageBuffer64 addressing model is enabled, any access chain instruction that accesses into a RowMajor matrix must only be used as the Pointer operand to OpLoad or OpStore
VUID-StandaloneSpirv-PhysicalStorageBuffer64-04710NNoneexplicitStandaloneSpirvcoreIf the PhysicalStorageBuffer64 addressing model is enabled, OpConvertUToPtr and OpConvertPtrToU must use an integer type whose Width is 64
VUID-StandaloneSpirv-PixelCenterInteger-04654NNoneexplicitStandaloneSpirvcoreThe PixelCenterInteger execution mode must not be used (pixels are always centered at half-integer coordinates)
VUID-StandaloneSpirv-PushConstant-06675NNoneexplicitStandaloneSpirvcoreAny variable in the PushConstant or StorageBuffer storage class must be decorated as Block
VUID-StandaloneSpirv-PushConstant-06808NNoneexplicitStandaloneSpirvcoreAny variable in the PushConstant storage class must be typed as OpTypeStruct
VUID-StandaloneSpirv-RayPayloadKHR-04698NNoneexplicitStandaloneSpirvcoreRayPayloadKHR storage class must only be used in ray generation, closest hit or miss shaders
VUID-StandaloneSpirv-Result-04780NNoneexplicitStandaloneSpirvcoreThe Result Type operand of any OpImageRead or OpImageSparseRead instruction must be a vector of four components
VUID-StandaloneSpirv-ShaderRecordBufferKHR-07119NNoneexplicitStandaloneSpirvcoreShaderRecordBufferKHR storage class must only be used in ray generation, intersection, any-hit, closest hit, callable, or miss shaders
VUID-StandaloneSpirv-Stream-04694NNoneexplicitStandaloneSpirvcoreIf any variables or block members in the output interface of the entry point being compiled are decorated with Stream, then all variables belonging to the same XfbBuffer must specify the same Stream value
VUID-StandaloneSpirv-SubgroupVoteKHR-06997NNoneexplicitStandaloneSpirv!(VK_VERSION_1_1)If the SubgroupVoteKHR or SubgroupBallotKHR capability is not declared, Scope for memory must not be Subgroup
VUID-StandaloneSpirv-SubpassData-04660NNoneexplicitStandaloneSpirvcoreThe (u,v) coordinates used for a SubpassData must be the of a constant vector (0,0), or if a layer coordinate is used, must be a vector that was formed with constant 0 for the u and v components
VUID-StandaloneSpirv-Uniform-06676NNoneexplicitStandaloneSpirvcoreAny variable in the Uniform storage class must be decorated as Block or BufferBlock
VUID-StandaloneSpirv-Uniform-06807NNoneexplicitStandaloneSpirvcoreAny variable in the Uniform or StorageBuffer storage class must be typed as OpTypeStruct or an array of this type
VUID-StandaloneSpirv-Uniform-06925NNoneexplicitStandaloneSpirvcoreAny variable in the Uniform storage class decorated as Block must not be stored to or modified
VUID-StandaloneSpirv-UniformConstant-04655NNoneexplicitStandaloneSpirvcoreAny 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-06677NNoneexplicitStandaloneSpirvcoreAny variable in the UniformConstant, StorageBuffer, or Uniform storage class must be decorated with DescriptorSet and Binding
VUID-StandaloneSpirv-ViewportMaskNV-04674NNoneexplicitStandaloneSpirvcoreThe ViewportMaskNV and ViewportIndex decorations must not both be statically used by one or more OpEntryPoint's that form the pre-rasterization shader stages of a graphics pipeline
VUID-StandaloneSpirv-ViewportRelativeNV-04672NNoneexplicitStandaloneSpirvcoreThe ViewportRelativeNV decoration must only be used on a variable decorated with Layer in the vertex, tessellation evaluation, or geometry shader stages
VUID-StandaloneSpirv-ViewportRelativeNV-04673NNoneexplicitStandaloneSpirvcoreThe ViewportRelativeNV decoration must not be used unless a variable decorated with one of ViewportIndex or ViewportMaskNV is also statically used by the same OpEntryPoint
VUID-StandaloneSpirv-VulkanMemoryModel-04678NNoneexplicitStandaloneSpirvcore If the VulkanMemoryModel capability is not declared, the Volatile decoration must be used on any variable declaration that includes one of the SMIDNV, WarpIDNV, SubgroupSize, SubgroupLocalInvocationId, SubgroupEqMask, SubgroupGeMask, SubgroupGtMask, SubgroupLeMask, or SubgroupLtMask BuiltIn decorations when used in the ray generation, closest hit, miss, intersection, or callable shaders, or with the RayTmaxKHR Builtin decoration when used in an intersection shader
VUID-StandaloneSpirv-VulkanMemoryModel-04679NNoneexplicitStandaloneSpirvcoreIf the VulkanMemoryModel capability is declared, the OpLoad instruction must use the Volatile memory semantics when it accesses into any variable that includes one of the SMIDNV, WarpIDNV, SubgroupSize, SubgroupLocalInvocationId, SubgroupEqMask, SubgroupGeMask, SubgroupGtMask, SubgroupLeMask, or SubgroupLtMask BuiltIn decorations when used in the ray generation, closest hit, miss, intersection, or callable shaders, or with the RayTmaxKHR Builtin decoration when used in an intersection shader
VUID-StandaloneSpirv-XfbBuffer-04693NNoneexplicitStandaloneSpirvcoreAll variables or block members in the output interface of the entry point being compiled decorated with a specific XfbBuffer value must all be decorated with identical XfbStride values
VUID-StandaloneSpirv-XfbBuffer-04696NNoneexplicitStandaloneSpirvcoreFor any two variables or block members in the output interface of the entry point being compiled with the same XfbBuffer value, the ranges determined by the Offset decoration and the size of the type must not overlap
VUID-StandaloneSpirv-XfbBuffer-04697NNoneexplicitStandaloneSpirvcoreAll block members in the output interface of the entry point being compiled that are in the same block and have a declared or inherited XfbBuffer decoration must specify the same XfbBuffer value
VUID-SubgroupEqMask-SubgroupEqMask-04370NNoneexplicitSubgroupEqMask(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)The variable decorated with SubgroupEqMask must be declared using the Input {StorageClass}
VUID-SubgroupEqMask-SubgroupEqMask-04371NNoneexplicitSubgroupEqMask(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)The variable decorated with SubgroupEqMask must be declared as a four-component vector of 32-bit integer values
VUID-SubgroupGeMask-SubgroupGeMask-04372NNoneexplicitSubgroupGeMask(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)The variable decorated with SubgroupGeMask must be declared using the Input {StorageClass}
VUID-SubgroupGeMask-SubgroupGeMask-04373NNoneexplicitSubgroupGeMask(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)The variable decorated with SubgroupGeMask must be declared as a four-component vector of 32-bit integer values
VUID-SubgroupGtMask-SubgroupGtMask-04374NNoneexplicitSubgroupGtMask(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)The variable decorated with SubgroupGtMask must be declared using the Input {StorageClass}
VUID-SubgroupGtMask-SubgroupGtMask-04375NNoneexplicitSubgroupGtMask(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)The variable decorated with SubgroupGtMask must be declared as a four-component vector of 32-bit integer values
VUID-SubgroupId-SubgroupId-04367NNoneexplicitSubgroupId(VK_VERSION_1_1)The SubgroupId decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV {ExecutionModel}
VUID-SubgroupId-SubgroupId-04368NNoneexplicitSubgroupId(VK_VERSION_1_1)The variable decorated with SubgroupId must be declared using the Input {StorageClass}
VUID-SubgroupId-SubgroupId-04369NNoneexplicitSubgroupId(VK_VERSION_1_1)The variable decorated with SubgroupId must be declared as a scalar 32-bit integer value
VUID-SubgroupLeMask-SubgroupLeMask-04376NNoneexplicitSubgroupLeMask(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)The variable decorated with SubgroupLeMask must be declared using the Input {StorageClass}
VUID-SubgroupLeMask-SubgroupLeMask-04377NNoneexplicitSubgroupLeMask(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)The variable decorated with SubgroupLeMask must be declared as a four-component vector of 32-bit integer values
VUID-SubgroupLocalInvocationId-SubgroupLocalInvocationId-04380NNoneexplicitSubgroupLocalInvocationId(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)The variable decorated with SubgroupLocalInvocationId must be declared using the Input {StorageClass}
VUID-SubgroupLocalInvocationId-SubgroupLocalInvocationId-04381NNoneexplicitSubgroupLocalInvocationId(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)The variable decorated with SubgroupLocalInvocationId must be declared as a scalar 32-bit integer value
VUID-SubgroupLtMask-SubgroupLtMask-04378NNoneexplicitSubgroupLtMask(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)The variable decorated with SubgroupLtMask must be declared using the Input {StorageClass}
VUID-SubgroupLtMask-SubgroupLtMask-04379NNoneexplicitSubgroupLtMask(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)The variable decorated with SubgroupLtMask must be declared as a four-component vector of 32-bit integer values
VUID-SubgroupSize-SubgroupSize-04382NNoneexplicitSubgroupSize(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)The variable decorated with SubgroupSize must be declared using the Input {StorageClass}
VUID-SubgroupSize-SubgroupSize-04383NNoneexplicitSubgroupSize(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)The variable decorated with SubgroupSize must be declared as a scalar 32-bit integer value
VUID-TaskCountNV-TaskCountNV-04384NNoneexplicitTaskCountNV(VK_NV_mesh_shader)The TaskCountNV decoration must be used only within the TaskNV {ExecutionModel}
VUID-TaskCountNV-TaskCountNV-04385NNoneexplicitTaskCountNV(VK_NV_mesh_shader)The variable decorated with TaskCountNV must be declared using the Output {StorageClass}
VUID-TaskCountNV-TaskCountNV-04386NNoneexplicitTaskCountNV(VK_NV_mesh_shader)The variable decorated with TaskCountNV must be declared as a scalar 32-bit integer value
VUID-TessCoord-TessCoord-04387NNoneexplicitTessCoordcoreThe TessCoord decoration must be used only within the TessellationEvaluation {ExecutionModel}
VUID-TessCoord-TessCoord-04388NNoneexplicitTessCoordcoreThe variable decorated with TessCoord must be declared using the Input {StorageClass}
VUID-TessCoord-TessCoord-04389NNoneexplicitTessCoordcoreThe variable decorated with TessCoord must be declared as a three-component vector of 32-bit floating-point values
VUID-TessLevelInner-TessLevelInner-04394NNoneexplicitTessLevelInnercoreThe TessLevelInner decoration must be used only within the TessellationControl or TessellationEvaluation {ExecutionModel}
VUID-TessLevelInner-TessLevelInner-04395NNoneexplicitTessLevelInnercoreThe variable decorated with TessLevelInner within the TessellationControl {ExecutionModel} must be declared using the Output {StorageClass}
VUID-TessLevelInner-TessLevelInner-04396NNoneexplicitTessLevelInnercoreThe variable decorated with TessLevelInner within the TessellationEvaluation {ExecutionModel} must be declared using the Input {StorageClass}
VUID-TessLevelInner-TessLevelInner-04397NNoneexplicitTessLevelInnercoreThe variable decorated with TessLevelInner must be declared as an array of size two, containing 32-bit floating-point values
VUID-TessLevelOuter-TessLevelOuter-04390NNoneexplicitTessLevelOutercoreThe TessLevelOuter decoration must be used only within the TessellationControl or TessellationEvaluation {ExecutionModel}
VUID-TessLevelOuter-TessLevelOuter-04391NNoneexplicitTessLevelOutercoreThe variable decorated with TessLevelOuter within the TessellationControl {ExecutionModel} must be declared using the Output {StorageClass}
VUID-TessLevelOuter-TessLevelOuter-04392NNoneexplicitTessLevelOutercoreThe variable decorated with TessLevelOuter within the TessellationEvaluation {ExecutionModel} must be declared using the Input {StorageClass}
VUID-TessLevelOuter-TessLevelOuter-04393NNoneexplicitTessLevelOutercoreThe variable decorated with TessLevelOuter must be declared as an array of size four, containing 32-bit floating-point values
VUID-VertexIndex-VertexIndex-04398NNoneexplicitVertexIndexcoreThe VertexIndex decoration must be used only within the Vertex {ExecutionModel}
VUID-VertexIndex-VertexIndex-04399NNoneexplicitVertexIndexcoreThe variable decorated with VertexIndex must be declared using the Input {StorageClass}
VUID-VertexIndex-VertexIndex-04400NNoneexplicitVertexIndexcoreThe variable decorated with VertexIndex must be declared as a scalar 32-bit integer value
VUID-ViewIndex-ViewIndex-04401NNoneexplicitViewIndex(VK_VERSION_1_1,VK_KHR_multiview)The ViewIndex decoration must be used only within the MeshEXT, Vertex, Geometry, TessellationControl, TessellationEvaluation or Fragment {ExecutionModel}
VUID-ViewIndex-ViewIndex-04402NNoneexplicitViewIndex(VK_VERSION_1_1,VK_KHR_multiview)The variable decorated with ViewIndex must be declared using the Input {StorageClass}
VUID-ViewIndex-ViewIndex-04403NNoneexplicitViewIndex(VK_VERSION_1_1,VK_KHR_multiview)The variable decorated with ViewIndex must be declared as a scalar 32-bit integer value
VUID-ViewportIndex-ViewportIndex-04404NNoneexplicitViewportIndexcoreThe ViewportIndex decoration must be used only within the MeshEXT, MeshNV, Vertex, TessellationEvaluation, Geometry, or Fragment {ExecutionModel}
VUID-ViewportIndex-ViewportIndex-04405NNoneexplicitViewportIndex(VK_VERSION_1_2)If the shaderOutputViewportIndex feature is not enabled then the ViewportIndex decoration must be used only within the Geometry or Fragment {ExecutionModel}
VUID-ViewportIndex-ViewportIndex-04406NNoneexplicitViewportIndexcoreThe variable decorated with ViewportIndex within the MeshEXT, MeshNV, Vertex, TessellationEvaluation, or Geometry {ExecutionModel} must be declared using the Output {StorageClass}
VUID-ViewportIndex-ViewportIndex-04407NNoneexplicitViewportIndexcoreThe variable decorated with ViewportIndex within the Fragment {ExecutionModel} must be declared using the Input {StorageClass}
VUID-ViewportIndex-ViewportIndex-04408NNoneexplicitViewportIndexcoreThe variable decorated with ViewportIndex must be declared as a scalar 32-bit integer value
VUID-ViewportIndex-ViewportIndex-07060NNoneexplicitViewportIndexcoreThe variable decorated with ViewportIndex within the MeshEXT {ExecutionModel} must also be decorated with the PerPrimitiveEXT decoration
VUID-ViewportMaskNV-ViewportMaskNV-04409NNoneexplicitViewportMaskNV(VK_NV_viewport_array2)The ViewportMaskNV decoration must be used only within the Vertex, MeshNV, TessellationEvaluation, or Geometry {ExecutionModel}
VUID-ViewportMaskNV-ViewportMaskNV-04410NNoneexplicitViewportMaskNV(VK_NV_viewport_array2)The variable decorated with ViewportMaskNV must be declared using the Output {StorageClass}
VUID-ViewportMaskNV-ViewportMaskNV-04411NNoneexplicitViewportMaskNV(VK_NV_viewport_array2)The variable decorated with ViewportMaskNV must be declared as an array of 32-bit integer values
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04412NNoneexplicitViewportMaskPerViewNV(VK_NVX_multiview_per_view_attributes+VK_NV_viewport_array2)The ViewportMaskPerViewNV decoration must be used only within the Vertex, MeshNV, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel}
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04413NNoneexplicitViewportMaskPerViewNV(VK_NVX_multiview_per_view_attributes+VK_NV_viewport_array2)The variable decorated with ViewportMaskPerViewNV must be declared using the Output {StorageClass}
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04414NNoneexplicitViewportMaskPerViewNV(VK_NVX_multiview_per_view_attributes+VK_NV_viewport_array2)The variable decorated with ViewportMaskPerViewNV must be declared as an array of 32-bit integer values
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04415NNoneexplicitViewportMaskPerViewNV(VK_NVX_multiview_per_view_attributes+VK_NV_viewport_array2)The array decorated with ViewportMaskPerViewNV must be a size less than or equal to 32
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04416NNoneexplicitViewportMaskPerViewNV(VK_NVX_multiview_per_view_attributes+VK_NV_viewport_array2)The array decorated with ViewportMaskPerViewNV must be a size greater than the maximum view in the subpass's view mask
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04417NNoneexplicitViewportMaskPerViewNV(VK_NVX_multiview_per_view_attributes+VK_NV_viewport_array2)The array variable decorated with ViewportMaskPerViewNV must only be indexed by a constant or specialization constant
VUID-VkAabbPositionsKHR-minX-03546NNoneexplicitVkAabbPositionsKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)minX must be less than or equal to maxX
VUID-VkAabbPositionsKHR-minY-03547NNoneexplicitVkAabbPositionsKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)minY must be less than or equal to maxY
VUID-VkAabbPositionsKHR-minZ-03548NNoneexplicitVkAabbPositionsKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)minZ must be less than or equal to maxZ
VUID-VkAccelerationStructureBuildGeometryInfoKHR-commonparentYNoneimplicitVkAccelerationStructureBuildGeometryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)Both 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-04927NNoneexplicitVkAccelerationStructureBuildGeometryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)If 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-03796YNoneexplicitVkAccelerationStructureBuildGeometryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If 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-04928NNoneexplicitVkAccelerationStructureBuildGeometryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)If 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-04929NNoneexplicitVkAccelerationStructureBuildGeometryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)If VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV is set in flags, type must not be VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-07334NNoneexplicitVkAccelerationStructureBuildGeometryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_EXT_opacity_micromap)If 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-parameterYRayTracingValidateCmdBuildAccelerationStructuresKHRimplicitVkAccelerationStructureBuildGeometryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)flags must be a valid combination of VkBuildAccelerationStructureFlagBitsKHR values
VUID-VkAccelerationStructureBuildGeometryInfoKHR-pGeometries-03788YRayTracingValidateCmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureBuildGeometryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)Only one of pGeometries or ppGeometries can be a valid pointer, the other must be NULL
VUID-VkAccelerationStructureBuildGeometryInfoKHR-pGeometries-parameterYNoneimplicitVkAccelerationStructureBuildGeometryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If 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-pNextYNoneimplicitVkAccelerationStructureBuildGeometryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)pNext must be NULL
VUID-VkAccelerationStructureBuildGeometryInfoKHR-ppGeometries-parameterYNoneimplicitVkAccelerationStructureBuildGeometryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If 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-sTypeYRayTracingValidateCmdBuildAccelerationStructuresKHRimplicitVkAccelerationStructureBuildGeometryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR
VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03654YRayTracingValidateCmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureBuildGeometryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)type must not be VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03789YNoneexplicitVkAccelerationStructureBuildGeometryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If 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-03790YNoneexplicitVkAccelerationStructureBuildGeometryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, geometryCount must be 1
VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03791YNoneexplicitVkAccelerationStructureBuildGeometryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If 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-03792YNoneexplicitVkAccelerationStructureBuildGeometryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If 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-03793YNoneexplicitVkAccelerationStructureBuildGeometryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR then geometryCount must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxGeometryCount
VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03794NNoneexplicitVkAccelerationStructureBuildGeometryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If 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-03795NNoneexplicitVkAccelerationStructureBuildGeometryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If 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-parameterYRayTracingValidateCmdBuildAccelerationStructuresKHRimplicitVkAccelerationStructureBuildGeometryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)type must be a valid VkAccelerationStructureTypeKHR value
VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03656NNoneexplicitVkAccelerationStructureBuildRangeInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03657NNoneexplicitVkAccelerationStructureBuildRangeInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03659NNoneexplicitVkAccelerationStructureBuildRangeInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For geometries of type VK_GEOMETRY_TYPE_AABBS_KHR, the offset primitiveOffset from VkAccelerationStructureGeometryAabbsDataKHR::data must be a multiple of 8
VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03660NNoneexplicitVkAccelerationStructureBuildRangeInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For geometries of type VK_GEOMETRY_TYPE_INSTANCES_KHR, the offset primitiveOffset from VkAccelerationStructureGeometryInstancesDataKHR::data must be a multiple of 16
VUID-VkAccelerationStructureBuildRangeInfoKHR-transformOffset-03658NNoneexplicitVkAccelerationStructureBuildRangeInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For geometries of type VK_GEOMETRY_TYPE_TRIANGLES_KHR, the offset transformOffset from VkAccelerationStructureGeometryTrianglesDataKHR::transformData must be a multiple of 16
VUID-VkAccelerationStructureBuildSizesInfoKHR-pNext-pNextNNoneimplicitVkAccelerationStructureBuildSizesInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)pNext must be NULL
VUID-VkAccelerationStructureBuildSizesInfoKHR-sType-sTypeYNoneimplicitVkAccelerationStructureBuildSizesInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR
VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructure-08091YDescriptorBufferNotEnabledexplicitVkAccelerationStructureCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)+(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If 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-08093YNoneexplicitVkAccelerationStructureCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)+(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If accelerationStructure is not VK_NULL_HANDLE then accelerationStructureNV must be VK_NULL_HANDLE
VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructure-parameterYNoneimplicitVkAccelerationStructureCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)+(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If accelerationStructure is not VK_NULL_HANDLE, accelerationStructure must be a valid VkAccelerationStructureKHR handle
VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructureNV-08092YNoneexplicitVkAccelerationStructureCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)+(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If 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-08094YNoneexplicitVkAccelerationStructureCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)+(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If accelerationStructureNV is not VK_NULL_HANDLE then accelerationStructure must be VK_NULL_HANDLE
VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructureNV-parameterYNoneimplicitVkAccelerationStructureCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)+(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If accelerationStructureNV is not VK_NULL_HANDLE, accelerationStructureNV must be a valid VkAccelerationStructureNV handle
VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-commonparentYNoneimplicitVkAccelerationStructureCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)+(VK_NV_ray_tracing,VK_KHR_acceleration_structure)Both 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-pNextYNoneimplicitVkAccelerationStructureCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)+(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pNext must be NULL
VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-sType-sTypeYNoneimplicitVkAccelerationStructureCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)+(VK_NV_ray_tracing,VK_KHR_acceleration_structure)sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
VUID-VkAccelerationStructureCreateInfoKHR-buffer-03614YRayTracingValidateCreateAccelerationStructureKHRexplicitVkAccelerationStructureCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)buffer must have been created with a usage value containing VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR
VUID-VkAccelerationStructureCreateInfoKHR-buffer-03615YNoneexplicitVkAccelerationStructureCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)buffer must not have been created with VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkAccelerationStructureCreateInfoKHR-buffer-parameterYNoneimplicitVkAccelerationStructureCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)buffer must be a valid VkBuffer handle
VUID-VkAccelerationStructureCreateInfoKHR-createFlags-03613YRayTracingValidateCreateAccelerationStructureKHRReplayFeatureexplicitVkAccelerationStructureCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If createFlags includes VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR, VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureCaptureReplay must be VK_TRUE
VUID-VkAccelerationStructureCreateInfoKHR-createFlags-08108YDescriptorBufferNotEnabledexplicitVkAccelerationStructureCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_EXT_descriptor_buffer)If createFlags includes VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled
VUID-VkAccelerationStructureCreateInfoKHR-createFlags-parameterYRayTracingValidateCreateAccelerationStructureKHRimplicitVkAccelerationStructureCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)createFlags must be a valid combination of VkAccelerationStructureCreateFlagBitsKHR values
VUID-VkAccelerationStructureCreateInfoKHR-deviceAddress-03612YRayTracingValidateCreateAccelerationStructureKHRexplicitVkAccelerationStructureCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If deviceAddress is not zero, createFlags must include VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR
VUID-VkAccelerationStructureCreateInfoKHR-flags-04954NNoneexplicitVkAccelerationStructureCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)If VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV is set in flags 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-flags-04955NNoneexplicitVkAccelerationStructureCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)If any geometry includes VkAccelerationStructureGeometryMotionTrianglesDataNV then flags must contain VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV
VUID-VkAccelerationStructureCreateInfoKHR-offset-03616YRayTracingValidateCreateAccelerationStructureKHRexplicitVkAccelerationStructureCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The sum of offset and size must be less than the size of buffer
VUID-VkAccelerationStructureCreateInfoKHR-offset-03734YNoneexplicitVkAccelerationStructureCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)offset must be a multiple of 256 bytes
VUID-VkAccelerationStructureCreateInfoKHR-pNext-08109YDescriptorBufferNotEnabledexplicitVkAccelerationStructureCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_EXT_descriptor_buffer)If the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, createFlags must contain VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
VUID-VkAccelerationStructureCreateInfoKHR-pNext-pNextYNoneimplicitVkAccelerationStructureCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkAccelerationStructureMotionInfoNV or VkOpaqueCaptureDescriptorDataCreateInfoEXT
VUID-VkAccelerationStructureCreateInfoKHR-sType-sTypeYRayTracingValidateCreateAccelerationStructureKHRimplicitVkAccelerationStructureCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR
VUID-VkAccelerationStructureCreateInfoKHR-sType-uniqueYNoneimplicitVkAccelerationStructureCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The sType value of each struct in the pNext chain must be unique
VUID-VkAccelerationStructureCreateInfoKHR-type-parameterYRayTracingValidateCreateAccelerationStructureKHRimplicitVkAccelerationStructureCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)type must be a valid VkAccelerationStructureTypeKHR value
VUID-VkAccelerationStructureCreateInfoNV-compactedSize-02421YNVRayTracingValidateCreateAccelerationStructureexplicitVkAccelerationStructureCreateInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If compactedSize is not 0 then both info.geometryCount and info.instanceCount must be 0
VUID-VkAccelerationStructureCreateInfoNV-info-parameterNNoneimplicitVkAccelerationStructureCreateInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)info must be a valid VkAccelerationStructureInfoNV structure
VUID-VkAccelerationStructureCreateInfoNV-pNext-pNextYNoneimplicitVkAccelerationStructureCreateInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)pNext must be NULL or a pointer to a valid instance of VkOpaqueCaptureDescriptorDataCreateInfoEXT
VUID-VkAccelerationStructureCreateInfoNV-sType-sTypeYNoneimplicitVkAccelerationStructureCreateInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV
VUID-VkAccelerationStructureCreateInfoNV-sType-uniqueYNoneimplicitVkAccelerationStructureCreateInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)The sType value of each struct in the pNext chain must be unique
VUID-VkAccelerationStructureDeviceAddressInfoKHR-accelerationStructure-parameterNNoneimplicitVkAccelerationStructureDeviceAddressInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)accelerationStructure must be a valid VkAccelerationStructureKHR handle
VUID-VkAccelerationStructureDeviceAddressInfoKHR-pNext-pNextYNoneimplicitVkAccelerationStructureDeviceAddressInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)pNext must be NULL
VUID-VkAccelerationStructureDeviceAddressInfoKHR-sType-sTypeYNoneimplicitVkAccelerationStructureDeviceAddressInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR
VUID-VkAccelerationStructureGeometryAabbsDataKHR-pNext-pNextYNoneimplicitVkAccelerationStructureGeometryAabbsDataKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)pNext must be NULL
VUID-VkAccelerationStructureGeometryAabbsDataKHR-sType-sTypeYNoneimplicitVkAccelerationStructureGeometryAabbsDataKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR
VUID-VkAccelerationStructureGeometryAabbsDataKHR-stride-03545NNoneexplicitVkAccelerationStructureGeometryAabbsDataKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)stride must be a multiple of 8
VUID-VkAccelerationStructureGeometryAabbsDataKHR-stride-03820YNoneexplicitVkAccelerationStructureGeometryAabbsDataKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)stride must be less than or equal to 232-1
VUID-VkAccelerationStructureGeometryInstancesDataKHR-pNext-pNextYNoneimplicitVkAccelerationStructureGeometryInstancesDataKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)pNext must be NULL
VUID-VkAccelerationStructureGeometryInstancesDataKHR-sType-sTypeYNoneimplicitVkAccelerationStructureGeometryInstancesDataKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR
VUID-VkAccelerationStructureGeometryKHR-aabbs-parameterYNoneimplicitVkAccelerationStructureGeometryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If geometryType is VK_GEOMETRY_TYPE_AABBS_KHR, the aabbs member of geometry must be a valid VkAccelerationStructureGeometryAabbsDataKHR structure
VUID-VkAccelerationStructureGeometryKHR-flags-parameterYNoneimplicitVkAccelerationStructureGeometryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)flags must be a valid combination of VkGeometryFlagBitsKHR values
VUID-VkAccelerationStructureGeometryKHR-geometryType-parameterYNoneimplicitVkAccelerationStructureGeometryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)geometryType must be a valid VkGeometryTypeKHR value
VUID-VkAccelerationStructureGeometryKHR-instances-parameterYNoneimplicitVkAccelerationStructureGeometryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If geometryType is VK_GEOMETRY_TYPE_INSTANCES_KHR, the instances member of geometry must be a valid VkAccelerationStructureGeometryInstancesDataKHR structure
VUID-VkAccelerationStructureGeometryKHR-pNext-pNextYNoneimplicitVkAccelerationStructureGeometryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)pNext must be NULL
VUID-VkAccelerationStructureGeometryKHR-sType-sTypeYNoneimplicitVkAccelerationStructureGeometryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR
VUID-VkAccelerationStructureGeometryKHR-triangles-parameterYNoneimplicitVkAccelerationStructureGeometryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, the triangles member of geometry must be a valid VkAccelerationStructureGeometryTrianglesDataKHR structure
VUID-VkAccelerationStructureGeometryMotionTrianglesDataNV-sType-sTypeYNoneimplicitVkAccelerationStructureGeometryMotionTrianglesDataNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-03798YRayTracingValidateCmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureGeometryTrianglesDataKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)indexType must be VK_INDEX_TYPE_UINT16, VK_INDEX_TYPE_UINT32, or VK_INDEX_TYPE_NONE_KHR
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-parameterYNoneimplicitVkAccelerationStructureGeometryTrianglesDataKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)indexType must be a valid VkIndexType value
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-pNext-pNextYNoneimplicitVkAccelerationStructureGeometryTrianglesDataKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkAccelerationStructureGeometryMotionTrianglesDataNV or VkAccelerationStructureTrianglesOpacityMicromapEXT
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-sType-sTypeYNoneimplicitVkAccelerationStructureGeometryTrianglesDataKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-sType-uniqueNNoneimplicitVkAccelerationStructureGeometryTrianglesDataKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The sType value of each struct in the pNext chain must be unique
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-03797NNoneexplicitVkAccelerationStructureGeometryTrianglesDataKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)vertexFormat must support the VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR in VkFormatProperties::bufferFeatures as returned by vkGetPhysicalDeviceFormatProperties2
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-parameterYNoneimplicitVkAccelerationStructureGeometryTrianglesDataKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)vertexFormat must be a valid VkFormat value
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03735NNoneexplicitVkAccelerationStructureGeometryTrianglesDataKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)vertexStride must be a multiple of the size in bytes of the smallest component of vertexFormat
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03819YRayTracingValidateCmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureGeometryTrianglesDataKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)vertexStride must be less than or equal to 232-1
VUID-VkAccelerationStructureInfoNV-flags-02592YNVRayTracingValidateCreateAccelerationStructureexplicitVkAccelerationStructureInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If 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-parameterYNoneimplicitVkAccelerationStructureInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)flags must be a valid combination of VkBuildAccelerationStructureFlagBitsNV values
VUID-VkAccelerationStructureInfoNV-geometryCount-02422YNoneexplicitVkAccelerationStructureInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)geometryCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxGeometryCount
VUID-VkAccelerationStructureInfoNV-instanceCount-02423YNoneexplicitVkAccelerationStructureInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)instanceCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxInstanceCount
VUID-VkAccelerationStructureInfoNV-instanceData-02782YNVRayTracingValidateCmdBuildAccelerationStructureexplicitVkAccelerationStructureInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If instanceData is not VK_NULL_HANDLE, instanceData must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag
VUID-VkAccelerationStructureInfoNV-maxTriangleCount-02424YNoneexplicitVkAccelerationStructureInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)The total number of triangles in all geometries must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxTriangleCount
VUID-VkAccelerationStructureInfoNV-pGeometries-parameterYNoneimplicitVkAccelerationStructureInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If geometryCount is not 0, pGeometries must be a valid pointer to an array of geometryCount valid VkGeometryNV structures
VUID-VkAccelerationStructureInfoNV-pNext-pNextYNoneimplicitVkAccelerationStructureInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)pNext must be NULL
VUID-VkAccelerationStructureInfoNV-sType-sTypeYNoneimplicitVkAccelerationStructureInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV
VUID-VkAccelerationStructureInfoNV-scratch-02781YNVRayTracingValidateCmdBuildAccelerationStructureexplicitVkAccelerationStructureInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)scratch must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag
VUID-VkAccelerationStructureInfoNV-type-02425YNVRayTracingValidateCreateAccelerationStructureexplicitVkAccelerationStructureInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV then geometryCount must be 0
VUID-VkAccelerationStructureInfoNV-type-02426YNVRayTracingValidateCreateAccelerationStructureexplicitVkAccelerationStructureInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV then instanceCount must be 0
VUID-VkAccelerationStructureInfoNV-type-02786YNVRayTracingValidateCreateAccelerationStructureexplicitVkAccelerationStructureInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If 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-04623YNVRayTracingValidateCreateAccelerationStructureexplicitVkAccelerationStructureInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)+(VK_KHR_acceleration_structure)type must not be VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR
VUID-VkAccelerationStructureInfoNV-type-parameterYNoneimplicitVkAccelerationStructureInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)type must be a valid VkAccelerationStructureTypeNV value
VUID-VkAccelerationStructureInstanceKHR-flags-parameterNNoneimplicitVkAccelerationStructureInstanceKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)flags must be a valid combination of VkGeometryInstanceFlagBitsKHR values
VUID-VkAccelerationStructureMatrixMotionInstanceNV-flags-parameterNNoneimplicitVkAccelerationStructureMatrixMotionInstanceNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)flags must be a valid combination of VkGeometryInstanceFlagBitsKHR values
VUID-VkAccelerationStructureMemoryRequirementsInfoNV-accelerationStructure-parameterYNoneimplicitVkAccelerationStructureMemoryRequirementsInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)accelerationStructure must be a valid VkAccelerationStructureNV handle
VUID-VkAccelerationStructureMemoryRequirementsInfoNV-pNext-pNextYNoneimplicitVkAccelerationStructureMemoryRequirementsInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)pNext must be NULL
VUID-VkAccelerationStructureMemoryRequirementsInfoNV-sType-sTypeYNoneimplicitVkAccelerationStructureMemoryRequirementsInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV
VUID-VkAccelerationStructureMemoryRequirementsInfoNV-type-parameterYNoneimplicitVkAccelerationStructureMemoryRequirementsInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)type must be a valid VkAccelerationStructureMemoryRequirementsTypeNV value
VUID-VkAccelerationStructureMotionInfoNV-flags-zerobitmaskYNoneimplicitVkAccelerationStructureMotionInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)flags must be 0
VUID-VkAccelerationStructureMotionInfoNV-sType-sTypeYNoneimplicitVkAccelerationStructureMotionInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV
VUID-VkAccelerationStructureMotionInstanceNV-flags-zerobitmaskNNoneimplicitVkAccelerationStructureMotionInstanceNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)flags must be 0
VUID-VkAccelerationStructureMotionInstanceNV-matrixMotionInstance-parameterNNoneimplicitVkAccelerationStructureMotionInstanceNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)If 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-parameterNNoneimplicitVkAccelerationStructureMotionInstanceNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)If 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-parameterNNoneimplicitVkAccelerationStructureMotionInstanceNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)If type is VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV, the staticInstance member of data must be a valid VkAccelerationStructureInstanceKHR structure
VUID-VkAccelerationStructureMotionInstanceNV-type-parameterNNoneimplicitVkAccelerationStructureMotionInstanceNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)type must be a valid VkAccelerationStructureMotionInstanceTypeNV value
VUID-VkAccelerationStructureSRTMotionInstanceNV-flags-parameterNNoneimplicitVkAccelerationStructureSRTMotionInstanceNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)flags must be a valid combination of VkGeometryInstanceFlagBitsKHR values
VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-indexType-parameterYNoneimplicitVkAccelerationStructureTrianglesOpacityMicromapEXT(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_EXT_opacity_micromap)indexType must be a valid VkIndexType value
VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-micromap-parameterNNoneimplicitVkAccelerationStructureTrianglesOpacityMicromapEXT(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_EXT_opacity_micromap)micromap must be a valid VkMicromapEXT handle
VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-pUsageCounts-07335NNoneexplicitVkAccelerationStructureTrianglesOpacityMicromapEXT(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_EXT_opacity_micromap)Only one of pUsageCounts or ppUsageCounts can be a valid pointer, the other must be NULL
VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-pUsageCounts-parameterNNoneimplicitVkAccelerationStructureTrianglesOpacityMicromapEXT(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_EXT_opacity_micromap)If 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-parameterNNoneimplicitVkAccelerationStructureTrianglesOpacityMicromapEXT(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_EXT_opacity_micromap)If 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-sTypeYNoneimplicitVkAccelerationStructureTrianglesOpacityMicromapEXT(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_EXT_opacity_micromap)sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT
VUID-VkAccelerationStructureVersionInfoKHR-pNext-pNextYNoneimplicitVkAccelerationStructureVersionInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pNext must be NULL
VUID-VkAccelerationStructureVersionInfoKHR-pVersionData-parameterYRayTracingValidateVkAccelerationStructureVersionInfoKHRimplicitVkAccelerationStructureVersionInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pVersionData must be a valid pointer to an array of \(2 \times \mathtt{VK\_UUID\_SIZE}\) uint8_t values
VUID-VkAccelerationStructureVersionInfoKHR-sType-sTypeYRayTracingValidateVkAccelerationStructureVersionInfoKHRimplicitVkAccelerationStructureVersionInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR
VUID-VkAcquireNextImageInfoKHR-commonparentYNoneimplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)Each 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-01290YInvalidDeviceMaskexplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)deviceMask must be a valid device mask
VUID-VkAcquireNextImageInfoKHR-deviceMask-01291YInvalidDeviceMaskexplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)deviceMask must not be zero
VUID-VkAcquireNextImageInfoKHR-fence-01289NNoneexplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If fence is not VK_NULL_HANDLE it must be unsignaled and must not be associated with any other queue command that has not yet completed execution on that queue
VUID-VkAcquireNextImageInfoKHR-fence-parameterYNoneimplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle
VUID-VkAcquireNextImageInfoKHR-pNext-pNextYNoneimplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)pNext must be NULL
VUID-VkAcquireNextImageInfoKHR-sType-sTypeYNoneimplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)sType must be VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR
VUID-VkAcquireNextImageInfoKHR-semaphore-01288YSwapchainAcquireImageWithSignaledSemaphoreexplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If semaphore is not VK_NULL_HANDLE it must be unsignaled
VUID-VkAcquireNextImageInfoKHR-semaphore-01781NNoneexplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If semaphore is not VK_NULL_HANDLE it must not have any uncompleted signal or wait operations pending
VUID-VkAcquireNextImageInfoKHR-semaphore-01782YSwapchainAcquireImageNoSync2KHRexplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)semaphore and fence must not both be equal to VK_NULL_HANDLE
VUID-VkAcquireNextImageInfoKHR-semaphore-03266YSwapchainAcquireImageNoBinarySemaphore2KHRexplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)semaphore must have a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY
VUID-VkAcquireNextImageInfoKHR-semaphore-parameterYNoneimplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle
VUID-VkAcquireNextImageInfoKHR-swapchain-01675YSwapchainAcquireImageRetiredexplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)swapchain must not be in the retired state
VUID-VkAcquireNextImageInfoKHR-swapchain-parameterYNoneimplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)swapchain must be a valid VkSwapchainKHR handle
VUID-VkAcquireProfilingLockInfoKHR-flags-zerobitmaskYNoneimplicitVkAcquireProfilingLockInfoKHR(VK_KHR_performance_query)flags must be 0
VUID-VkAcquireProfilingLockInfoKHR-pNext-pNextYNoneimplicitVkAcquireProfilingLockInfoKHR(VK_KHR_performance_query)pNext must be NULL
VUID-VkAcquireProfilingLockInfoKHR-sType-sTypeYNoneimplicitVkAcquireProfilingLockInfoKHR(VK_KHR_performance_query)sType must be VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR
VUID-VkAllocationCallbacks-pfnAllocation-00632YInvalidAllocationCallbacksexplicitVkAllocationCallbackscorepfnAllocation must be a valid pointer to a valid user-defined PFN_vkAllocationFunction
VUID-VkAllocationCallbacks-pfnFree-00634YInvalidAllocationCallbacksexplicitVkAllocationCallbackscorepfnFree must be a valid pointer to a valid user-defined PFN_vkFreeFunction
VUID-VkAllocationCallbacks-pfnInternalAllocation-00635YInvalidAllocationCallbacksexplicitVkAllocationCallbackscoreIf either of pfnInternalAllocation or pfnInternalFree is not NULL, both must be valid callbacks
VUID-VkAllocationCallbacks-pfnReallocation-00633YInvalidAllocationCallbacksexplicitVkAllocationCallbackscorepfnReallocation must be a valid pointer to a valid user-defined PFN_vkReallocationFunction
VUID-VkAmigoProfilingSubmitInfoSEC-sType-sTypeYNoneimplicitVkAmigoProfilingSubmitInfoSEC(VK_SEC_amigo_profiling)sType must be VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC
VUID-VkAndroidHardwareBufferFormatProperties2ANDROID-sType-sTypeYNoneimplicitVkAndroidHardwareBufferFormatProperties2ANDROID(VK_ANDROID_external_memory_android_hardware_buffer)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID
VUID-VkAndroidHardwareBufferFormatPropertiesANDROID-sType-sTypeYNoneimplicitVkAndroidHardwareBufferFormatPropertiesANDROID(VK_ANDROID_external_memory_android_hardware_buffer)sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID
VUID-VkAndroidHardwareBufferPropertiesANDROID-pNext-pNextYNoneimplicitVkAndroidHardwareBufferPropertiesANDROID(VK_ANDROID_external_memory_android_hardware_buffer)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkAndroidHardwareBufferFormatProperties2ANDROID or VkAndroidHardwareBufferFormatPropertiesANDROID
VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-sTypeYNoneimplicitVkAndroidHardwareBufferPropertiesANDROID(VK_ANDROID_external_memory_android_hardware_buffer)sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID
VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-uniqueYNoneimplicitVkAndroidHardwareBufferPropertiesANDROID(VK_ANDROID_external_memory_android_hardware_buffer)The sType value of each struct in the pNext chain must be unique
VUID-VkAndroidHardwareBufferUsageANDROID-sType-sTypeYNoneimplicitVkAndroidHardwareBufferUsageANDROID(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_ANDROID_external_memory_android_hardware_buffer)sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID
VUID-VkAndroidSurfaceCreateInfoKHR-flags-zerobitmaskYNoneimplicitVkAndroidSurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_android_surface)flags must be 0
VUID-VkAndroidSurfaceCreateInfoKHR-pNext-pNextYNoneimplicitVkAndroidSurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_android_surface)pNext must be NULL
VUID-VkAndroidSurfaceCreateInfoKHR-sType-sTypeYNoneimplicitVkAndroidSurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_android_surface)sType must be VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR
VUID-VkAndroidSurfaceCreateInfoKHR-window-01248NNoneexplicitVkAndroidSurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_android_surface)window must point to a valid Android ANativeWindow
VUID-VkApplicationInfo-apiVersion-04010YNoneexplicitVkApplicationInfocoreIf apiVersion is not 0, then it must be greater than or equal to VK_API_VERSION_1_0
VUID-VkApplicationInfo-pApplicationName-parameterNNoneimplicitVkApplicationInfocoreIf pApplicationName is not NULL, pApplicationName must be a null-terminated UTF-8 string
VUID-VkApplicationInfo-pEngineName-parameterNNoneimplicitVkApplicationInfocoreIf pEngineName is not NULL, pEngineName must be a null-terminated UTF-8 string
VUID-VkApplicationInfo-pNext-pNextYNoneimplicitVkApplicationInfocorepNext must be NULL
VUID-VkApplicationInfo-sType-sTypeYInstanceAppInfoBadStypeimplicitVkApplicationInfocoresType must be VK_STRUCTURE_TYPE_APPLICATION_INFO
VUID-VkAttachmentDescription-attachmentFeedbackLoopLayout-07309YAttachmentFeedbackLoopLayoutFeatureexplicitVkAttachmentDescription(VK_EXT_attachment_feedback_loop_layout)If the attachmentFeedbackLoopLayout feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkAttachmentDescription-attachmentFeedbackLoopLayout-07310YAttachmentFeedbackLoopLayoutFeatureexplicitVkAttachmentDescription(VK_EXT_attachment_feedback_loop_layout)If the attachmentFeedbackLoopLayout feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkAttachmentDescription-finalLayout-00843YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescriptioncorefinalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED
VUID-VkAttachmentDescription-finalLayout-parameterYNoneimplicitVkAttachmentDescriptioncorefinalLayout must be a valid VkImageLayout value
VUID-VkAttachmentDescription-flags-parameterYNoneimplicitVkAttachmentDescriptioncoreflags must be a valid combination of VkAttachmentDescriptionFlagBits values
VUID-VkAttachmentDescription-format-03280YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescriptioncoreIf 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-03281YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescriptioncoreIf format is a depth/stencil format, initialLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
VUID-VkAttachmentDescription-format-03282YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescriptioncoreIf 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-03283YInvalidImageLayout, RenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescriptioncoreIf format is a depth/stencil format, finalLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
VUID-VkAttachmentDescription-format-03286YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-03287YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-03290YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If format is a depth/stencil format which includes only the depth aspect, initialLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-03291YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If format is a depth/stencil format which includes only the depth aspect, finalLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-03292YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescriptioncoreIf format is a depth/stencil format which includes only the stencil aspect, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-03293YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescriptioncoreIf format is a depth/stencil format which includes only the stencil aspect, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-06242NNoneexplicitVkAttachmentDescriptioncoreIf format is a depth/stencil format which includes both depth and stencil aspects, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-06243NNoneexplicitVkAttachmentDescriptioncoreIf format is a depth/stencil format which includes both depth and stencil aspects, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-06487YNoneexplicitVkAttachmentDescription(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06488YNoneexplicitVkAttachmentDescription(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06698YAttachmentDescriptionUndefinedFormat, InvalidRenderPassAttachmentFormat, RenderPassCreate2SubpassInvalidInputAttachmentParametersexplicitVkAttachmentDescriptioncoreformat must not be VK_FORMAT_UNDEFINED
VUID-VkAttachmentDescription-format-06699YInvalidRenderPassAttachmentUndefinedLayoutexplicitVkAttachmentDescriptioncoreIf format includes a color or depth aspect and loadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then initialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED
VUID-VkAttachmentDescription-format-06700YInvalidRenderPassAttachmentUndefinedLayoutexplicitVkAttachmentDescriptioncoreIf format includes a stencil aspect and stencilLoadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then initialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED
VUID-VkAttachmentDescription-format-06906YRenderPassCreateAttachmentReferenceInvalidLayoutexplicitVkAttachmentDescription(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If format is a depth/stencil format which includes both depth and stencil aspects, initialLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-06907YRenderPassCreateAttachmentReferenceInvalidLayoutexplicitVkAttachmentDescription(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If format is a depth/stencil format which includes both depth and stencil aspects, finalLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-parameterYNoneimplicitVkAttachmentDescriptioncoreformat must be a valid VkFormat value
VUID-VkAttachmentDescription-initialLayout-parameterYNoneimplicitVkAttachmentDescriptioncoreinitialLayout must be a valid VkImageLayout value
VUID-VkAttachmentDescription-loadOp-parameterYNoneimplicitVkAttachmentDescriptioncoreloadOp must be a valid VkAttachmentLoadOp value
VUID-VkAttachmentDescription-samples-parameterYNoneimplicitVkAttachmentDescriptioncoresamples must be a valid VkSampleCountFlagBits value
VUID-VkAttachmentDescription-separateDepthStencilLayouts-03284YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-03285YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If the separateDepthStencilLayouts feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
VUID-VkAttachmentDescription-stencilLoadOp-parameterYNoneimplicitVkAttachmentDescriptioncorestencilLoadOp must be a valid VkAttachmentLoadOp value
VUID-VkAttachmentDescription-stencilStoreOp-parameterYNoneimplicitVkAttachmentDescriptioncorestencilStoreOp must be a valid VkAttachmentStoreOp value
VUID-VkAttachmentDescription-storeOp-parameterYNoneimplicitVkAttachmentDescriptioncorestoreOp must be a valid VkAttachmentStoreOp value
VUID-VkAttachmentDescription-synchronization2-06908NNoneexplicitVkAttachmentDescription(VK_KHR_synchronization2)If 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-06909NNoneexplicitVkAttachmentDescription(VK_KHR_synchronization2)If 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-07309YAttachmentFeedbackLoopLayoutFeatureexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_attachment_feedback_loop_layout)If the attachmentFeedbackLoopLayout feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkAttachmentDescription2-attachmentFeedbackLoopLayout-07310YAttachmentFeedbackLoopLayoutFeatureexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_attachment_feedback_loop_layout)If the attachmentFeedbackLoopLayout feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkAttachmentDescription2-finalLayout-00843NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)finalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED
VUID-VkAttachmentDescription2-finalLayout-parameterYNoneimplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)finalLayout must be a valid VkImageLayout value
VUID-VkAttachmentDescription2-flags-parameterYNoneimplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)flags must be a valid combination of VkAttachmentDescriptionFlagBits values
VUID-VkAttachmentDescription2-format-03280NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-03281NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If format is a depth/stencil format, initialLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
VUID-VkAttachmentDescription2-format-03282NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-03283NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If format is a depth/stencil format, finalLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
VUID-VkAttachmentDescription2-format-03286NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-03287NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-03290NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If format is a depth/stencil format which includes only the depth aspect, initialLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription2-format-03291NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If format is a depth/stencil format which includes only the depth aspect, finalLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription2-format-06247NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If the pNext chain does not include a VkAttachmentDescriptionStencilLayout structure and format only includes a stencil aspect, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription2-format-06248NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If the pNext chain does not include a VkAttachmentDescriptionStencilLayout structure and format only includes a stencil aspect, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription2-format-06249NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If format is a depth/stencil format which includes both depth and stencil aspects, 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-06250NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If format is a depth/stencil format which includes both depth and stencil aspects, 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-06487NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06488NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06698NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)format must not be VK_FORMAT_UNDEFINED
VUID-VkAttachmentDescription2-format-06699NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If format includes a color or depth aspect and loadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then initialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED
VUID-VkAttachmentDescription2-format-06703YNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+!(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If format includes a stencil aspect and stencilLoadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then initialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED
VUID-VkAttachmentDescription2-format-06906NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If format is a depth/stencil format which includes both depth and stencil aspects, initialLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription2-format-06907NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If format is a depth/stencil format which includes both depth and stencil aspects, finalLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription2-format-parameterYNoneimplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)format must be a valid VkFormat value
VUID-VkAttachmentDescription2-initialLayout-parameterYNoneimplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)initialLayout must be a valid VkImageLayout value
VUID-VkAttachmentDescription2-loadOp-parameterYNoneimplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)loadOp must be a valid VkAttachmentLoadOp value
VUID-VkAttachmentDescription2-pNext-06704YCreateRenderPassWithInvalidStencilLoadOpexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If the pNext chain does not include a VkAttachmentDescriptionStencilLayout structure, format includes a stencil aspect, and stencilLoadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then initialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED
VUID-VkAttachmentDescription2-pNext-06705YCreateRenderPassWithInvalidStencilLoadOpexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If the pNext chain does includes a VkAttachmentDescriptionStencilLayout structure, format includes a stencil aspect, and stencilLoadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then VkAttachmentDescriptionStencilLayout::stencilInitialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED
VUID-VkAttachmentDescription2-pNext-pNextYNoneimplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)pNext must be NULL or a pointer to a valid instance of VkAttachmentDescriptionStencilLayout
VUID-VkAttachmentDescription2-sType-sTypeYNoneimplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)sType must be VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2
VUID-VkAttachmentDescription2-sType-uniqueYNoneimplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)The sType value of each struct in the pNext chain must be unique
VUID-VkAttachmentDescription2-samples-parameterYNoneimplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)samples must be a valid VkSampleCountFlagBits value
VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03284NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-03285NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-parameterYNoneimplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)stencilLoadOp must be a valid VkAttachmentLoadOp value
VUID-VkAttachmentDescription2-stencilStoreOp-parameterYNoneimplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)stencilStoreOp must be a valid VkAttachmentStoreOp value
VUID-VkAttachmentDescription2-storeOp-parameterYNoneimplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)storeOp must be a valid VkAttachmentStoreOp value
VUID-VkAttachmentDescription2-synchronization2-06908NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_synchronization2)If 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-06909NNoneexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_synchronization2)If 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-sTypeYNoneimplicitVkAttachmentDescriptionStencilLayout(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)sType must be VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT
VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-03309YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescriptionStencilLayout(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)stencilFinalLayout 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-03310YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescriptionStencilLayout(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)stencilFinalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED
VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-parameterYNoneimplicitVkAttachmentDescriptionStencilLayout(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)stencilFinalLayout must be a valid VkImageLayout value
VUID-VkAttachmentDescriptionStencilLayout-stencilInitialLayout-03308YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescriptionStencilLayout(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)stencilInitialLayout 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-parameterYNoneimplicitVkAttachmentDescriptionStencilLayout(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)stencilInitialLayout must be a valid VkImageLayout value
VUID-VkAttachmentReference-attachmentFeedbackLoopLayout-07311YAttachmentFeedbackLoopLayoutFeatureexplicitVkAttachmentReference(VK_EXT_attachment_feedback_loop_layout)If the attachmentFeedbackLoopLayout feature is not enabled, layout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkAttachmentReference-layout-03077YRenderPassCreateAttachmentReferenceInvalidLayoutexplicitVkAttachmentReferencecoreIf attachment is not VK_ATTACHMENT_UNUSED, layout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_PREINITIALIZED, or VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
VUID-VkAttachmentReference-layout-parameterYNoneimplicitVkAttachmentReferencecorelayout must be a valid VkImageLayout value
VUID-VkAttachmentReference-separateDepthStencilLayouts-03313NNoneexplicitVkAttachmentReference(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06910YRenderPassCreateAttachmentReferenceInvalidSync2LayoutexplicitVkAttachmentReference(VK_KHR_synchronization2)If 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-07311YAttachmentFeedbackLoopLayoutFeatureexplicitVkAttachmentReference2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_attachment_feedback_loop_layout)If the attachmentFeedbackLoopLayout feature is not enabled, layout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkAttachmentReference2-layout-03077YRenderPassCreateAttachmentReferenceInvalidLayoutexplicitVkAttachmentReference2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-parameterYNoneimplicitVkAttachmentReference2(VK_VERSION_1_2,VK_KHR_create_renderpass2)layout must be a valid VkImageLayout value
VUID-VkAttachmentReference2-pNext-pNextYNoneimplicitVkAttachmentReference2(VK_VERSION_1_2,VK_KHR_create_renderpass2)pNext must be NULL or a pointer to a valid instance of VkAttachmentReferenceStencilLayout
VUID-VkAttachmentReference2-sType-sTypeYNoneimplicitVkAttachmentReference2(VK_VERSION_1_2,VK_KHR_create_renderpass2)sType must be VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2
VUID-VkAttachmentReference2-sType-uniqueYNoneimplicitVkAttachmentReference2(VK_VERSION_1_2,VK_KHR_create_renderpass2)The sType value of each struct in the pNext chain must be unique
VUID-VkAttachmentReference2-separateDepthStencilLayouts-03313YRenderPassCreateAttachmentReferenceInvalidLayoutexplicitVkAttachmentReference2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06910YRenderPassCreateAttachmentReferenceInvalidSync2LayoutexplicitVkAttachmentReference2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_synchronization2)If 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-sTypeYNoneimplicitVkAttachmentReferenceStencilLayout(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)sType must be VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT
VUID-VkAttachmentReferenceStencilLayout-stencilLayout-03318YRenderPassCreateAttachmentReferenceInvalidLayoutexplicitVkAttachmentReferenceStencilLayout(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)stencilLayout 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-parameterYNoneimplicitVkAttachmentReferenceStencilLayout(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)stencilLayout must be a valid VkImageLayout value
VUID-VkAttachmentSampleCountInfoAMD-sType-sTypeYNoneimplicitVkAttachmentSampleCountInfoAMD(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)sType must be VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD
VUID-VkAttachmentSampleLocationsEXT-attachmentIndex-01531YRenderPassBeginSampleLocationsInvalidIndicesEXTexplicitVkAttachmentSampleLocationsEXT(VK_EXT_sample_locations)attachmentIndex must be less than the attachmentCount specified in VkRenderPassCreateInfo the render pass specified by VkRenderPassBeginInfo::renderPass was created with
VUID-VkAttachmentSampleLocationsEXT-sampleLocationsInfo-parameterNNoneimplicitVkAttachmentSampleLocationsEXT(VK_EXT_sample_locations)sampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure
VUID-VkBindAccelerationStructureMemoryInfoNV-accelerationStructure-03620YNVRayTracingValidateBindAccelerationStructureexplicitVkBindAccelerationStructureMemoryInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)accelerationStructure must not already be backed by a memory object
VUID-VkBindAccelerationStructureMemoryInfoNV-accelerationStructure-parameterYNoneimplicitVkBindAccelerationStructureMemoryInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)accelerationStructure must be a valid VkAccelerationStructureNV handle
VUID-VkBindAccelerationStructureMemoryInfoNV-commonparentYNoneimplicitVkBindAccelerationStructureMemoryInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)Both of accelerationStructure, and memory must have been created, allocated, or retrieved from the same VkDevice
VUID-VkBindAccelerationStructureMemoryInfoNV-memory-03622YNVRayTracingValidateBindAccelerationStructureexplicitVkBindAccelerationStructureMemoryInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)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 vkGetAccelerationStructureMemoryRequirementsNV with accelerationStructure and type of VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV
VUID-VkBindAccelerationStructureMemoryInfoNV-memory-parameterYNVRayTracingValidateBindAccelerationStructureimplicitVkBindAccelerationStructureMemoryInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)memory must be a valid VkDeviceMemory handle
VUID-VkBindAccelerationStructureMemoryInfoNV-memoryOffset-03621YNVRayTracingValidateBindAccelerationStructureexplicitVkBindAccelerationStructureMemoryInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)memoryOffset must be less than the size of memory
VUID-VkBindAccelerationStructureMemoryInfoNV-memoryOffset-03623YNVRayTracingValidateBindAccelerationStructureexplicitVkBindAccelerationStructureMemoryInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)memoryOffset 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-parameterYNoneimplicitVkBindAccelerationStructureMemoryInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values
VUID-VkBindAccelerationStructureMemoryInfoNV-pNext-pNextYNoneimplicitVkBindAccelerationStructureMemoryInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)pNext must be NULL
VUID-VkBindAccelerationStructureMemoryInfoNV-sType-sTypeYNoneimplicitVkBindAccelerationStructureMemoryInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)sType must be VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV
VUID-VkBindAccelerationStructureMemoryInfoNV-size-03624YNVRayTracingValidateBindAccelerationStructureexplicitVkBindAccelerationStructureMemoryInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)The 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-01606YTestBindBufferMemoryDeviceGroupexplicitVkBindBufferMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)deviceIndexCount must either be zero or equal to the number of physical devices in the logical device
VUID-VkBindBufferMemoryDeviceGroupInfo-pDeviceIndices-01607YTestBindBufferMemoryDeviceGroupexplicitVkBindBufferMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)All elements of pDeviceIndices must be valid device indices
VUID-VkBindBufferMemoryDeviceGroupInfo-pDeviceIndices-parameterYNoneimplicitVkBindBufferMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)If deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values
VUID-VkBindBufferMemoryDeviceGroupInfo-sType-sTypeYNoneimplicitVkBindBufferMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)sType must be VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO
VUID-VkBindBufferMemoryInfo-None-01898YNoneexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1)If 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-01899YNoneexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1)If 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-buffer-01030YNoneexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)buffer must not have been created with any sparse memory binding flags
VUID-VkBindBufferMemoryInfo-buffer-01038NNoneexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)If 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-01039NNoneexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)If 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-01444NNoneexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)If 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-06408NNoneexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_FUCHSIA_buffer_collection)If buffer was created with VkBufferCollectionBufferCreateInfoFUCHSIA chained to VkBufferCreateInfo::pNext, memory must be allocated with a VkImportMemoryBufferCollectionFUCHSIA chained to VkMemoryAllocateInfo::pNext
VUID-VkBindBufferMemoryInfo-buffer-07459YNoneexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)buffer must not have been bound to a memory object
VUID-VkBindBufferMemoryInfo-buffer-parameterYNoneimplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)buffer must be a valid VkBuffer handle
VUID-VkBindBufferMemoryInfo-bufferDeviceAddress-03339NNoneexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_2,VK_KHR_buffer_device_address)If 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-commonparentYNoneimplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)Both of buffer, and memory must have been created, allocated, or retrieved from the same VkDevice
VUID-VkBindBufferMemoryInfo-descriptorBufferCaptureReplay-08112YNoneexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_EXT_descriptor_buffer)If the VkPhysicalDeviceDescriptorBufferFeaturesEXT ::descriptorBufferCaptureReplay feature is enabled and 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-01035YAndroidHardwareBufferImportBufferHandleTypeexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)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 vkGetBufferMemoryRequirements with buffer
VUID-VkBindBufferMemoryInfo-memory-01508YNoneexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)If 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-02726YInvalidExportExternalBufferHandleTypeexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_external_memory)If 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-02727YValidateImportMemoryHandleTypeexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)If memory was allocated by a memory import operation, the external handle type of the imported memory must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created
VUID-VkBindBufferMemoryInfo-memory-02985YNoneexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)If 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-02986YAndroidHardwareBufferImportBufferHandleTypeexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)If 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-parameterYNoneimplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)memory must be a valid VkDeviceMemory handle
VUID-VkBindBufferMemoryInfo-memoryOffset-01031YNoneexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)memoryOffset must be less than the size of memory
VUID-VkBindBufferMemoryInfo-memoryOffset-01036YNoneexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer
VUID-VkBindBufferMemoryInfo-pNext-01605NNoneexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)If the pNext chain includes a VkBindBufferMemoryDeviceGroupInfo structure, all instances of memory specified by VkBindBufferMemoryDeviceGroupInfo::pDeviceIndices must have been allocated
VUID-VkBindBufferMemoryInfo-pNext-pNextYNoneimplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)pNext must be NULL or a pointer to a valid instance of VkBindBufferMemoryDeviceGroupInfo
VUID-VkBindBufferMemoryInfo-sType-sTypeYNoneimplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)sType must be VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO
VUID-VkBindBufferMemoryInfo-sType-uniqueYNoneimplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)The sType value of each struct in the pNext chain must be unique
VUID-VkBindBufferMemoryInfo-size-01037YNoneexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)The 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-VkBindImageMemoryDeviceGroupInfo-deviceIndexCount-01633YInvalidImageSplitInstanceBindRegionCount, InvalidBindIMageMemoryDeviceGroupInfoexplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)At least one of deviceIndexCount and splitInstanceBindRegionCount must be zero
VUID-VkBindImageMemoryDeviceGroupInfo-deviceIndexCount-01634YInvalidImageSplitInstanceBindRegionCount, TestBindBufferMemoryDeviceGroupexplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)deviceIndexCount must either be zero or equal to the number of physical devices in the logical device
VUID-VkBindImageMemoryDeviceGroupInfo-extent-01640NNoneexplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)The 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-01641NNoneexplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)The 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-01638NNoneexplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)The 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-01639NNoneexplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)The 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-01635NNoneexplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)All elements of pDeviceIndices must be valid device indices
VUID-VkBindImageMemoryDeviceGroupInfo-pDeviceIndices-parameterYNoneimplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)If deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values
VUID-VkBindImageMemoryDeviceGroupInfo-pSplitInstanceBindRegions-01637NNoneexplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)Elements of pSplitInstanceBindRegions that correspond to the same instance of an image must not overlap
VUID-VkBindImageMemoryDeviceGroupInfo-pSplitInstanceBindRegions-parameterYNoneimplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)If splitInstanceBindRegionCount is not 0, pSplitInstanceBindRegions must be a valid pointer to an array of splitInstanceBindRegionCount VkRect2D structures
VUID-VkBindImageMemoryDeviceGroupInfo-sType-sTypeYNoneimplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO
VUID-VkBindImageMemoryDeviceGroupInfo-splitInstanceBindRegionCount-01636YInvalidImageSplitInstanceBindRegionCountWithDeviceGroupexplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)splitInstanceBindRegionCount must either be zero or equal to the number of physical devices in the logical device squared
VUID-VkBindImageMemoryInfo-None-01901YNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1)If 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-01902YNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1)If 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-commonparentYNoneimplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)Both 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-08113YNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_EXT_descriptor_buffer)If the VkPhysicalDeviceDescriptorBufferFeaturesEXT ::descriptorBufferCaptureReplay feature is enabled and 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-01045YNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)image must not have been created with any sparse memory binding flags
VUID-VkBindImageMemoryInfo-image-01050NNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)If 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-01051NNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)If 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-image-01445NNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)If 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-01630YBindImageMemorySwapchainexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)If 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-07460YNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)image must not have been bound to a memory object
VUID-VkBindImageMemoryInfo-image-07736YBindInvalidMemory2BindInfos, BindInvalidMemoryYcbcrexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If image was created with the VK_IMAGE_CREATE_DISJOINT_BIT bit set, then the pNext chain must include a VkBindImagePlaneMemoryInfo structure
VUID-VkBindImageMemoryInfo-image-parameterYNoneimplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)image must be a valid VkImage handle
VUID-VkBindImageMemoryInfo-memory-01509YNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+!(VK_NV_dedicated_allocation_image_aliasing)If 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-01612YValidateImportMemoryHandleType, BindInvalidMemory2DisjointexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)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 vkGetImageMemoryRequirements with image
VUID-VkBindImageMemoryInfo-memory-01614YValidateImportMemoryHandleType, BindInvalidMemory2DisjointexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)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 vkGetImageMemoryRequirements with the same image
VUID-VkBindImageMemoryInfo-memory-01625NNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+!(VK_VERSION_1_1+VK_KHR_swapchain)+!(VK_KHR_device_group+VK_KHR_swapchain)memory must be a valid VkDeviceMemory handle
VUID-VkBindImageMemoryInfo-memory-02628NNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_NV_dedicated_allocation_image_aliasing)If 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-02629YNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_NV_dedicated_allocation_image_aliasing)If 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-02728YInvalidExportExternalImageHandleTypeexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_external_memory)If 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-02729YValidateImportMemoryHandleTypeexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)If 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-VkBindImageMemoryInfo-memory-02989YNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)If 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-02990YAndroidHardwareBufferImportImageHandleTypeexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)If 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-01046YNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)memoryOffset must be less than the size of memory
VUID-VkBindImageMemoryInfo-memoryOffset-01613YBindInvalidMemory2DisjointexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with image
VUID-VkBindImageMemoryInfo-pNext-01615YBindInvalidMemory2Disjoint, AndroidHardwareBufferImportImageHandleTypeexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-01616YBindInvalidMemory2DisjointexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-01617YBindInvalidMemory2Disjoint, AndroidHardwareBufferImportImageHandleTypeexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-01618YBindInvalidMemoryYcbcrexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the pNext chain includes a VkBindImagePlaneMemoryInfo structure, image must have been created with the VK_IMAGE_CREATE_DISJOINT_BIT bit set
VUID-VkBindImageMemoryInfo-pNext-01619YBindInvalidMemory2Disjoint, BindInvalidMemoryYcbcrexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-01620YBindInvalidMemory2Disjoint, BindInvalidMemoryNoCheckexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-01621YBindInvalidMemory2Disjoint, BindInvalidMemoryYcbcrexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-01626NNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)If the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, all instances of memory specified by VkBindImageMemoryDeviceGroupInfo::pDeviceIndices must have been allocated
VUID-VkBindImageMemoryInfo-pNext-01627YInvalidImageSplitInstanceBindRegionCountexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-01628NNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-01629NNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-01631YBindImageMemorySwapchainexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)If the pNext chain includes a VkBindImageMemorySwapchainInfoKHR structure, memory must be VK_NULL_HANDLE
VUID-VkBindImageMemoryInfo-pNext-01632YBindImageMemorySwapchainexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)If the pNext chain does not include a VkBindImageMemorySwapchainInfoKHR structure, memory must be a valid VkDeviceMemory handle
VUID-VkBindImageMemoryInfo-pNext-pNextYNoneimplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkBindImageMemoryDeviceGroupInfo, VkBindImageMemorySwapchainInfoKHR, or VkBindImagePlaneMemoryInfo
VUID-VkBindImageMemoryInfo-sType-sTypeYNoneimplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO
VUID-VkBindImageMemoryInfo-sType-uniqueYNoneimplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)The sType value of each struct in the pNext chain must be unique
VUID-VkBindImageMemorySwapchainInfoKHR-imageIndex-01644YBindImageMemorySwapchainexplicitVkBindImageMemorySwapchainInfoKHR(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)imageIndex must be less than the number of images in swapchain
VUID-VkBindImageMemorySwapchainInfoKHR-sType-sTypeYNoneimplicitVkBindImageMemorySwapchainInfoKHR(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR
VUID-VkBindImageMemorySwapchainInfoKHR-swapchain-parameterNNoneimplicitVkBindImageMemorySwapchainInfoKHR(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)swapchain must be a valid VkSwapchainKHR handle
VUID-VkBindImagePlaneMemoryInfo-planeAspect-02283YBindInvalidMemoryYcbcrexplicitVkBindImagePlaneMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the image's tiling is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, then planeAspect must be a single valid format plane for the image (that is, for a two-plane image planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT, and for a three-plane image planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT or VK_IMAGE_ASPECT_PLANE_2_BIT)
VUID-VkBindImagePlaneMemoryInfo-planeAspect-02284NNoneexplicitVkBindImagePlaneMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier)If 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-parameterYNoneimplicitVkBindImagePlaneMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)planeAspect must be a valid VkImageAspectFlagBits value
VUID-VkBindImagePlaneMemoryInfo-sType-sTypeYNoneimplicitVkBindImagePlaneMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO
VUID-VkBindIndexBufferIndirectCommandNV-None-02946NNoneexplicitVkBindIndexBufferIndirectCommandNV(VK_NV_device_generated_commands)The buffer's usage flag from which the address was acquired must have the VK_BUFFER_USAGE_INDEX_BUFFER_BIT bit set
VUID-VkBindIndexBufferIndirectCommandNV-None-02948NNoneexplicitVkBindIndexBufferIndirectCommandNV(VK_NV_device_generated_commands)Each element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBindIndexBufferIndirectCommandNV-bufferAddress-02947NNoneexplicitVkBindIndexBufferIndirectCommandNV(VK_NV_device_generated_commands)The bufferAddress must be aligned to the indexType used
VUID-VkBindIndexBufferIndirectCommandNV-indexType-parameterNNoneimplicitVkBindIndexBufferIndirectCommandNV(VK_NV_device_generated_commands)indexType must be a valid VkIndexType value
VUID-VkBindShaderGroupIndirectCommandNV-None-02944NNoneexplicitVkBindShaderGroupIndirectCommandNV(VK_NV_device_generated_commands)The 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-02945NNoneexplicitVkBindShaderGroupIndirectCommandNV(VK_NV_device_generated_commands)The index must be within range of the accessible shader groups of the current bound graphics pipeline. See vkCmdBindPipelineShaderGroupNV for further details
VUID-VkBindSparseInfo-commonparentYNoneimplicitVkBindSparseInfocoreBoth of the elements of pSignalSemaphores, and the elements of pWaitSemaphores that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkBindSparseInfo-pBufferBinds-parameterYNoneimplicitVkBindSparseInfocoreIf bufferBindCount is not 0, pBufferBinds must be a valid pointer to an array of bufferBindCount valid VkSparseBufferMemoryBindInfo structures
VUID-VkBindSparseInfo-pImageBinds-parameterYNoneimplicitVkBindSparseInfocoreIf imageBindCount is not 0, pImageBinds must be a valid pointer to an array of imageBindCount valid VkSparseImageMemoryBindInfo structures
VUID-VkBindSparseInfo-pImageOpaqueBinds-parameterYNoneimplicitVkBindSparseInfocoreIf imageOpaqueBindCount is not 0, pImageOpaqueBinds must be a valid pointer to an array of imageOpaqueBindCount valid VkSparseImageOpaqueMemoryBindInfo structures
VUID-VkBindSparseInfo-pNext-03247YQueueBindSparseTimelineSemaphoreBadValueexplicitVkBindSparseInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)If 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-03248YQueueBindSparseTimelineSemaphoreBadValueexplicitVkBindSparseInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)If the pNext chain of this structure includes a VkTimelineSemaphoreSubmitInfo structure and any element of pSignalSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE then its signalSemaphoreValueCount member must equal signalSemaphoreCount
VUID-VkBindSparseInfo-pNext-pNextYNoneimplicitVkBindSparseInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceGroupBindSparseInfo or VkTimelineSemaphoreSubmitInfo
VUID-VkBindSparseInfo-pSignalSemaphores-03249YQueueBindSparseTimelineSemaphoreBadValueexplicitVkBindSparseInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)For 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-03251YQueueBindSparseTimelineSemaphoreBadValueexplicitVkBindSparseInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)For each element of pSignalSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pSignalSemaphoreValues must have a value which does not differ from the current value of the semaphore or from the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference
VUID-VkBindSparseInfo-pSignalSemaphores-parameterYNoneimplicitVkBindSparseInfocoreIf signalSemaphoreCount is not 0, pSignalSemaphores must be a valid pointer to an array of signalSemaphoreCount valid VkSemaphore handles
VUID-VkBindSparseInfo-pWaitSemaphores-03246YQueueBindSparseTimelineSemaphoreBadValueexplicitVkBindSparseInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)If 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-03250YQueueBindSparseTimelineSemaphoreBadValueexplicitVkBindSparseInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)For each element of pWaitSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pWaitSemaphoreValues must have a value which does not differ from the current value of the semaphore or from the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference
VUID-VkBindSparseInfo-pWaitSemaphores-parameterYNoneimplicitVkBindSparseInfocoreIf waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles
VUID-VkBindSparseInfo-sType-sTypeYNoneimplicitVkBindSparseInfocoresType must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
VUID-VkBindSparseInfo-sType-uniqueYNoneimplicitVkBindSparseInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkBindVertexBufferIndirectCommandNV-None-02949NNoneexplicitVkBindVertexBufferIndirectCommandNV(VK_NV_device_generated_commands)The buffer's usage flag from which the address was acquired must have the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT bit set
VUID-VkBindVertexBufferIndirectCommandNV-None-02950NNoneexplicitVkBindVertexBufferIndirectCommandNV(VK_NV_device_generated_commands)Each element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBindVideoSessionMemoryInfoKHR-memory-parameterYNoneimplicitVkBindVideoSessionMemoryInfoKHR(VK_KHR_video_queue)memory must be a valid VkDeviceMemory handle
VUID-VkBindVideoSessionMemoryInfoKHR-pNext-pNextYNoneimplicitVkBindVideoSessionMemoryInfoKHR(VK_KHR_video_queue)pNext must be NULL
VUID-VkBindVideoSessionMemoryInfoKHR-sType-sTypeYNoneimplicitVkBindVideoSessionMemoryInfoKHR(VK_KHR_video_queue)sType must be VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR
VUID-VkBlitImageInfo2-aspectMask-00241YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage
VUID-VkBlitImageInfo2-aspectMask-00242YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage
VUID-VkBlitImageInfo2-commonparentYNoneimplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-VkBlitImageInfo2-dstImage-00224YCopyCommands2V13explicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkBlitImageInfo2-dstImage-00225YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBlitImageInfo2-dstImage-00234YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT
VUID-VkBlitImageInfo2-dstImage-00250YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If 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-00252YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If 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-02000YBlitImageFormatTypesexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The format features of dstImage must contain VK_FORMAT_FEATURE_BLIT_DST_BIT
VUID-VkBlitImageInfo2-dstImage-02545YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkBlitImageInfo2-dstImage-06422YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)dstImage must not use a format that requires a sampler {YCbCr} conversion
VUID-VkBlitImageInfo2-dstImage-parameterYNoneimplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImage must be a valid VkImage handle
VUID-VkBlitImageInfo2-dstImageLayout-00226YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImageLayout 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-00227YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkBlitImageInfo2-dstImageLayout-01399YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkBlitImageInfo2-dstImageLayout-parameterYNoneimplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImageLayout must be a valid VkImageLayout value
VUID-VkBlitImageInfo2-dstOffset-00248YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, dstOffsets[0].x and dstOffsets[1].x must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage
VUID-VkBlitImageInfo2-dstOffset-00249YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, dstOffsets[0].y and dstOffsets[1].y must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage
VUID-VkBlitImageInfo2-dstOffset-00251YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, dstOffsets[0].z and dstOffsets[1].z must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage
VUID-VkBlitImageInfo2-dstSubresource-01706YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-VkBlitImageInfo2-dstSubresource-01708YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The 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-00237YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If filter is VK_FILTER_CUBIC_EXT, srcImage must be of type VK_IMAGE_TYPE_2D
VUID-VkBlitImageInfo2-filter-02001YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If filter is VK_FILTER_LINEAR, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-VkBlitImageInfo2-filter-02002YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-parameterYNoneimplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)filter must be a valid VkFilter value
VUID-VkBlitImageInfo2-pNext-pNextYNoneimplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)pNext must be NULL
VUID-VkBlitImageInfo2-pRegions-00215YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The source region specified by each element of pRegions must be a region that is contained within srcImage
VUID-VkBlitImageInfo2-pRegions-00216YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The destination region specified by each element of pRegions must be a region that is contained within dstImage
VUID-VkBlitImageInfo2-pRegions-00217YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The union of all destination regions, specified by the elements of pRegions, must not overlap in memory with any texel that may be sampled during the blit operation
VUID-VkBlitImageInfo2-pRegions-04561NNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage and dstImage must not be block-compressed images
VUID-VkBlitImageInfo2-pRegions-parameterYNoneimplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)pRegions must be a valid pointer to an array of regionCount valid VkImageBlit2 structures
VUID-VkBlitImageInfo2-regionCount-arraylengthYNoneimplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)regionCount must be greater than 0
VUID-VkBlitImageInfo2-sType-sTypeYNoneimplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2
VUID-VkBlitImageInfo2-srcImage-00219YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkBlitImageInfo2-srcImage-00220YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBlitImageInfo2-srcImage-00229YBlitImageFormatTypesexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If 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-00230YBlitImageFormatTypesexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If 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-00231YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If either of srcImage or dstImage was created with a depth/stencil format, the other must have exactly the same format
VUID-VkBlitImageInfo2-srcImage-00232YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If srcImage was created with a depth/stencil format, filter must be VK_FILTER_NEAREST
VUID-VkBlitImageInfo2-srcImage-00233YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT
VUID-VkBlitImageInfo2-srcImage-00240YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If 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-00245YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If 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-00247YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If 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-01999YBlitImageFormatTypesexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The format features of srcImage must contain VK_FORMAT_FEATURE_BLIT_SRC_BIT
VUID-VkBlitImageInfo2-srcImage-06421YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)srcImage must not use a format that requires a sampler {YCbCr} conversion
VUID-VkBlitImageInfo2-srcImage-parameterYNoneimplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImage must be a valid VkImage handle
VUID-VkBlitImageInfo2-srcImageLayout-00221YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImageLayout 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-00222YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkBlitImageInfo2-srcImageLayout-01398YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkBlitImageInfo2-srcImageLayout-parameterYNoneimplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImageLayout must be a valid VkImageLayout value
VUID-VkBlitImageInfo2-srcOffset-00243YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, srcOffsets[0].x and srcOffsets[1].x must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage
VUID-VkBlitImageInfo2-srcOffset-00244YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, srcOffsets[0].y and srcOffsets[1].y must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage
VUID-VkBlitImageInfo2-srcOffset-00246YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, srcOffsets[0].z and srcOffsets[1].z must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage
VUID-VkBlitImageInfo2-srcSubresource-01705YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-VkBlitImageInfo2-srcSubresource-01707YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The 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-06207NNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must be of type VK_IMAGE_TYPE_2D
VUID-VkBlitImageInfo2KHR-pRegions-06208NNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must not have a multi-planar format
VUID-VkBufferCaptureDescriptorDataInfoEXT-buffer-08075YDescriptorBufferNotEnabledexplicitVkBufferCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)buffer must have been created with VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkBufferCreateInfo::flags
VUID-VkBufferCaptureDescriptorDataInfoEXT-buffer-parameterYNoneimplicitVkBufferCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)buffer must be a valid VkBuffer handle
VUID-VkBufferCaptureDescriptorDataInfoEXT-pNext-pNextYNoneimplicitVkBufferCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)pNext must be NULL
VUID-VkBufferCaptureDescriptorDataInfoEXT-sType-sTypeYNoneimplicitVkBufferCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)sType must be VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
VUID-VkBufferCollectionBufferCreateInfoFUCHSIA-collection-parameterNNoneimplicitVkBufferCollectionBufferCreateInfoFUCHSIA(VK_FUCHSIA_buffer_collection)collection must be a valid VkBufferCollectionFUCHSIA handle
VUID-VkBufferCollectionBufferCreateInfoFUCHSIA-index-06388NNoneexplicitVkBufferCollectionBufferCreateInfoFUCHSIA(VK_FUCHSIA_buffer_collection)index must be less than VkBufferCollectionPropertiesFUCHSIA::bufferCount
VUID-VkBufferCollectionBufferCreateInfoFUCHSIA-sType-sTypeYNoneimplicitVkBufferCollectionBufferCreateInfoFUCHSIA(VK_FUCHSIA_buffer_collection)sType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA
VUID-VkBufferCollectionConstraintsInfoFUCHSIA-pNext-pNextYNoneimplicitVkBufferCollectionConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)pNext must be NULL
VUID-VkBufferCollectionConstraintsInfoFUCHSIA-sType-sTypeYNoneimplicitVkBufferCollectionConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)sType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA
VUID-VkBufferCollectionCreateInfoFUCHSIA-collectionToken-06393NNoneexplicitVkBufferCollectionCreateInfoFUCHSIA(VK_FUCHSIA_buffer_collection)collectionToken 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-pNextYNoneimplicitVkBufferCollectionCreateInfoFUCHSIA(VK_FUCHSIA_buffer_collection)pNext must be NULL
VUID-VkBufferCollectionCreateInfoFUCHSIA-sType-sTypeYNoneimplicitVkBufferCollectionCreateInfoFUCHSIA(VK_FUCHSIA_buffer_collection)sType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA
VUID-VkBufferCollectionImageCreateInfoFUCHSIA-collection-parameterNNoneimplicitVkBufferCollectionImageCreateInfoFUCHSIA(VK_FUCHSIA_buffer_collection)collection must be a valid VkBufferCollectionFUCHSIA handle
VUID-VkBufferCollectionImageCreateInfoFUCHSIA-index-06391NNoneexplicitVkBufferCollectionImageCreateInfoFUCHSIA(VK_FUCHSIA_buffer_collection)index must be less than VkBufferCollectionPropertiesFUCHSIA::bufferCount
VUID-VkBufferCollectionImageCreateInfoFUCHSIA-sType-sTypeYNoneimplicitVkBufferCollectionImageCreateInfoFUCHSIA(VK_FUCHSIA_buffer_collection)sType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA
VUID-VkBufferCollectionPropertiesFUCHSIA-formatFeatures-parameterNNoneimplicitVkBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)formatFeatures must be a valid combination of VkFormatFeatureFlagBits values
VUID-VkBufferCollectionPropertiesFUCHSIA-formatFeatures-requiredbitmaskNNoneimplicitVkBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)formatFeatures must not be 0
VUID-VkBufferCollectionPropertiesFUCHSIA-pNext-pNextNNoneimplicitVkBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)pNext must be NULL
VUID-VkBufferCollectionPropertiesFUCHSIA-sType-sTypeYNoneimplicitVkBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)sType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA
VUID-VkBufferCollectionPropertiesFUCHSIA-samplerYcbcrConversionComponents-parameterNNoneimplicitVkBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)samplerYcbcrConversionComponents must be a valid VkComponentMapping structure
VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedXChromaOffset-parameterNNoneimplicitVkBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)suggestedXChromaOffset must be a valid VkChromaLocation value
VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedYChromaOffset-parameterNNoneimplicitVkBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)suggestedYChromaOffset must be a valid VkChromaLocation value
VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedYcbcrModel-parameterNNoneimplicitVkBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)suggestedYcbcrModel must be a valid VkSamplerYcbcrModelConversion value
VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedYcbcrRange-parameterNNoneimplicitVkBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)suggestedYcbcrRange must be a valid VkSamplerYcbcrRange value
VUID-VkBufferCollectionPropertiesFUCHSIA-sysmemColorSpaceIndex-parameterNNoneimplicitVkBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)sysmemColorSpaceIndex must be a valid VkSysmemColorSpaceFUCHSIA structure
VUID-VkBufferConstraintsInfoFUCHSIA-bufferCollectionConstraints-parameterNNoneimplicitVkBufferConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)bufferCollectionConstraints must be a valid VkBufferCollectionConstraintsInfoFUCHSIA structure
VUID-VkBufferConstraintsInfoFUCHSIA-createInfo-parameterNNoneimplicitVkBufferConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)createInfo must be a valid VkBufferCreateInfo structure
VUID-VkBufferConstraintsInfoFUCHSIA-pNext-pNextYNoneimplicitVkBufferConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)pNext must be NULL
VUID-VkBufferConstraintsInfoFUCHSIA-requiredFormatFeatures-06404NNoneexplicitVkBufferConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)The requiredFormatFeatures bitmask of VkFormatFeatureFlagBits must be chosen from among the buffer compatible format features listed in buffer compatible format features
VUID-VkBufferConstraintsInfoFUCHSIA-requiredFormatFeatures-parameterYNoneimplicitVkBufferConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)requiredFormatFeatures must be a valid combination of VkFormatFeatureFlagBits values
VUID-VkBufferConstraintsInfoFUCHSIA-sType-sTypeYNoneimplicitVkBufferConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)sType must be VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA
VUID-VkBufferCopy-size-01988YBufferExtentsexplicitVkBufferCopycoreThe size must be greater than 0
VUID-VkBufferCopy2-pNext-pNextYNoneimplicitVkBufferCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)pNext must be NULL
VUID-VkBufferCopy2-sType-sTypeYNoneimplicitVkBufferCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_BUFFER_COPY_2
VUID-VkBufferCopy2-size-01988YNoneexplicitVkBufferCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)The size must be greater than 0
VUID-VkBufferCreateInfo-None-01888YInvalidProtectedMemoryexplicitVkBufferCreateInfo(VK_VERSION_1_1)If 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-deviceAddress-02604YBufferDeviceAddressEXTexplicitVkBufferCreateInfo(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+(VK_EXT_buffer_device_address)If VkBufferDeviceAddressCreateInfoEXT::deviceAddress is not zero, flags must include VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
VUID-VkBufferCreateInfo-flags-00915YNoneexplicitVkBufferCreateInfocoreIf the sparseBinding feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_BINDING_BIT
VUID-VkBufferCreateInfo-flags-00916YNoneexplicitVkBufferCreateInfocoreIf the sparseResidencyBuffer feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkBufferCreateInfo-flags-00917YNoneexplicitVkBufferCreateInfocoreIf the sparseResidencyAliased feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_ALIASED_BIT
VUID-VkBufferCreateInfo-flags-00918YSparseBindingImageBufferCreateexplicitVkBufferCreateInfocoreIf 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-01887YInvalidProtectedSubmitexplicitVkBufferCreateInfo(VK_VERSION_1_1)If the protectedMemory feature is not enabled, flags must not contain VK_BUFFER_CREATE_PROTECTED_BIT
VUID-VkBufferCreateInfo-flags-03338YBufferDeviceAddressEXT, BufferDeviceAddressKHRexplicitVkBufferCreateInfo(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+(VK_EXT_buffer_device_address)If flags includes VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, the bufferDeviceAddressCaptureReplay or bufferDeviceAddressCaptureReplayEXT feature must be enabled
VUID-VkBufferCreateInfo-flags-06549NNoneexplicitVkBufferCreateInfo(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+!(VK_EXT_buffer_device_address)If flags includes VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, the bufferDeviceAddressCaptureReplay feature must be enabled
VUID-VkBufferCreateInfo-flags-08099YDescriptorBufferNotEnabledexplicitVkBufferCreateInfo(VK_EXT_descriptor_buffer)If flags includes VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled
VUID-VkBufferCreateInfo-flags-parameterYNoneimplicitVkBufferCreateInfocoreflags must be a valid combination of VkBufferCreateFlagBits values
VUID-VkBufferCreateInfo-opaqueCaptureAddress-03337YBufferDeviceAddressKHRexplicitVkBufferCreateInfo(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+(VK_VERSION_1_2,VK_KHR_buffer_device_address)If VkBufferOpaqueCaptureAddressCreateInfo::opaqueCaptureAddress is not zero, flags must include VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
VUID-VkBufferCreateInfo-pNext-00920NNoneexplicitVkBufferCreateInfo(VK_VERSION_1_1,VK_KHR_external_memory)If 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-01571YDedicatedAllocationBufferWithInvalidFlagsexplicitVkBufferCreateInfo(VK_NV_dedicated_allocation)If 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-08100YDescriptorBufferNotEnabledexplicitVkBufferCreateInfo(VK_EXT_descriptor_buffer)If the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
VUID-VkBufferCreateInfo-pNext-pNextYNoneimplicitVkBufferCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkBufferCollectionBufferCreateInfoFUCHSIA, VkBufferDeviceAddressCreateInfoEXT, VkBufferOpaqueCaptureAddressCreateInfo, VkDedicatedAllocationBufferCreateInfoNV, VkExternalMemoryBufferCreateInfo, VkOpaqueCaptureDescriptorDataCreateInfoEXT, or VkVideoProfileListInfoKHR
VUID-VkBufferCreateInfo-sType-sTypeYNoneimplicitVkBufferCreateInfocoresType must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
VUID-VkBufferCreateInfo-sType-uniqueYNoneimplicitVkBufferCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkBufferCreateInfo-sharingMode-00913YNoneexplicitVkBufferCreateInfocoreIf sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values
VUID-VkBufferCreateInfo-sharingMode-00914YNoneexplicitVkBufferCreateInfocoreIf sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1
VUID-VkBufferCreateInfo-sharingMode-01391YInvalidQueueFamilyIndexexplicitVkBufferCreateInfo!(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the physicalDevice that was used to create device
VUID-VkBufferCreateInfo-sharingMode-01419YInvalidQueueFamilyIndexexplicitVkBufferCreateInfo(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)If 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-VkBufferCreateInfo-sharingMode-parameterYNoneimplicitVkBufferCreateInfocoresharingMode must be a valid VkSharingMode value
VUID-VkBufferCreateInfo-size-00912YInvalidCreateBufferSizeexplicitVkBufferCreateInfocoresize must be greater than 0
VUID-VkBufferCreateInfo-size-06409YNoneexplicitVkBufferCreateInfo(VK_VERSION_1_3,VK_KHR_maintenance4)size must be less than or equal to VkPhysicalDeviceMaintenance4Properties::maxBufferSize
VUID-VkBufferCreateInfo-usage-04813YVideoBufferUsageexplicitVkBufferCreateInfo(VK_KHR_video_decode_queue)If usage includes VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR, VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR, then the pNext chain must include a valid VkVideoProfileListInfoKHR structure with profileCount greater than 0 and pProfiles including at least one VkVideoProfileInfoKHR::videoCodecOperation specifying a decode operation
VUID-VkBufferCreateInfo-usage-04814YVideoBufferUsageexplicitVkBufferCreateInfo(VK_KHR_video_encode_queue)If usage includes VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR, VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR, then the pNext chain must include a valid VkVideoProfileListInfoKHR structure with profileCount greater than 0 and pProfiles including at least one VkVideoProfileInfoKHR::videoCodecOperation specifying an encode operation
VUID-VkBufferCreateInfo-usage-08097YNoneexplicitVkBufferCreateInfo(VK_EXT_descriptor_buffer)If 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-08098YNoneexplicitVkBufferCreateInfo(VK_EXT_descriptor_buffer)If 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-08101YDescriptorBufferNotEnabledexplicitVkBufferCreateInfo(VK_EXT_descriptor_buffer)If usage includes VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT, the descriptorBufferPushDescriptors feature must be enabled
VUID-VkBufferCreateInfo-usage-08102YDescriptorBufferNotEnabledexplicitVkBufferCreateInfo(VK_EXT_descriptor_buffer)If usage includes VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT VkPhysicalDeviceDescriptorBufferPropertiesEXT::bufferlessPushDescriptors must be VK_FALSE
VUID-VkBufferCreateInfo-usage-08103YDescriptorBufferNotEnabledexplicitVkBufferCreateInfo(VK_EXT_descriptor_buffer)If 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-VkBufferCreateInfo-usage-parameterYNoneimplicitVkBufferCreateInfocoreusage must be a valid combination of VkBufferUsageFlagBits values
VUID-VkBufferCreateInfo-usage-requiredbitmaskYTransformFeedbackCmdBeginTransformFeedbackEXT, TransformFeedbackCmdEndTransformFeedbackEXT, TransformFeedbackCmdBindTransformFeedbackBuffersEXTimplicitVkBufferCreateInfocoreusage must not be 0
VUID-VkBufferDeviceAddressCreateInfoEXT-sType-sTypeYNoneimplicitVkBufferDeviceAddressCreateInfoEXT(VK_EXT_buffer_device_address)sType must be VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT
VUID-VkBufferDeviceAddressInfo-buffer-02600YBufferDeviceAddressKHRDisabled, BufferDeviceAddressEXTDisabled, BufferDeviceAddressEXT, BufferDeviceAddressKHRexplicitVkBufferDeviceAddressInfo(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)If 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-02601YBufferDeviceAddressEXTDisabled, BufferDeviceAddressKHRDisabledexplicitVkBufferDeviceAddressInfo(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)buffer must have been created with VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT
VUID-VkBufferDeviceAddressInfo-buffer-parameterNNoneimplicitVkBufferDeviceAddressInfo(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)buffer must be a valid VkBuffer handle
VUID-VkBufferDeviceAddressInfo-pNext-pNextYNoneimplicitVkBufferDeviceAddressInfo(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)pNext must be NULL
VUID-VkBufferDeviceAddressInfo-sType-sTypeYNoneimplicitVkBufferDeviceAddressInfo(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)sType must be VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO
VUID-VkBufferImageCopy-aspectMask-00212YImageBufferCopyTestsexplicitVkBufferImageCopycoreThe aspectMask member of imageSubresource must only have a single bit set
VUID-VkBufferImageCopy-bufferImageHeight-00196YMiscImageLayerTestsexplicitVkBufferImageCopycorebufferImageHeight must be 0, or greater than or equal to the height member of imageExtent
VUID-VkBufferImageCopy-bufferRowLength-00195YMiscImageLayerTestsexplicitVkBufferImageCopycorebufferRowLength must be 0, or greater than or equal to the width member of imageExtent
VUID-VkBufferImageCopy-imageExtent-06659YImageBufferCopyTestsexplicitVkBufferImageCopycoreimageExtent.width must not be 0
VUID-VkBufferImageCopy-imageExtent-06660YCopyImageZeroSizeexplicitVkBufferImageCopycoreimageExtent.height must not be 0
VUID-VkBufferImageCopy-imageExtent-06661YCopyImageZeroSize, MiscImageLayerTestsexplicitVkBufferImageCopycoreimageExtent.depth must not be 0
VUID-VkBufferImageCopy-imageSubresource-parameterNNoneimplicitVkBufferImageCopycoreimageSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkBufferImageCopy2-aspectMask-00212YNoneexplicitVkBufferImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)The aspectMask member of imageSubresource must only have a single bit set
VUID-VkBufferImageCopy2-bufferImageHeight-00196YNoneexplicitVkBufferImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent
VUID-VkBufferImageCopy2-bufferRowLength-00195YNoneexplicitVkBufferImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)bufferRowLength must be 0, or greater than or equal to the width member of imageExtent
VUID-VkBufferImageCopy2-imageExtent-06659YNoneexplicitVkBufferImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)imageExtent.width must not be 0
VUID-VkBufferImageCopy2-imageExtent-06660YNoneexplicitVkBufferImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)imageExtent.height must not be 0
VUID-VkBufferImageCopy2-imageExtent-06661YNoneexplicitVkBufferImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)imageExtent.depth must not be 0
VUID-VkBufferImageCopy2-imageSubresource-parameterNNoneimplicitVkBufferImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)imageSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkBufferImageCopy2-pNext-pNextYNoneimplicitVkBufferImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)pNext must be NULL or a pointer to a valid instance of VkCopyCommandTransformInfoQCOM
VUID-VkBufferImageCopy2-sType-sTypeYNoneimplicitVkBufferImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2
VUID-VkBufferImageCopy2-sType-uniqueYNoneimplicitVkBufferImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)The sType value of each struct in the pNext chain must be unique
VUID-VkBufferMemoryBarrier-buffer-01931YNoneexplicitVkBufferMemoryBarriercoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBufferMemoryBarrier-buffer-04086YInvalidBarrierQueueFamilyexplicitVkBufferMemoryBarrier!(VK_VERSION_1_1,VK_KHR_external_memory)If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must be valid queue families
VUID-VkBufferMemoryBarrier-buffer-04088YInvalidBarrierQueueFamilyWithMemExtexplicitVkBufferMemoryBarrier(VK_VERSION_1_1,VK_KHR_external_memory)If buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, and one of srcQueueFamilyIndex and dstQueueFamilyIndex is one of the special queue family values reserved for external memory transfers, the other must be VK_QUEUE_FAMILY_IGNORED
VUID-VkBufferMemoryBarrier-buffer-04089YInvalidBarrierQueueFamilyWithMemExtexplicitVkBufferMemoryBarrier(VK_VERSION_1_1,VK_KHR_external_memory)If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in Queue Family Ownership Transfer
VUID-VkBufferMemoryBarrier-buffer-parameterYNoneimplicitVkBufferMemoryBarriercorebuffer must be a valid VkBuffer handle
VUID-VkBufferMemoryBarrier-offset-01187YInvalidBarriersexplicitVkBufferMemoryBarriercoreoffset must be less than the size of buffer
VUID-VkBufferMemoryBarrier-pNext-pNextYNoneimplicitVkBufferMemoryBarriercorepNext must be NULL
VUID-VkBufferMemoryBarrier-sType-sTypeYNoneimplicitVkBufferMemoryBarriercoresType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
VUID-VkBufferMemoryBarrier-size-01188YInvalidBarriersexplicitVkBufferMemoryBarriercoreIf size is not equal to VK_WHOLE_SIZE, size must be greater than 0
VUID-VkBufferMemoryBarrier-size-01189YInvalidBarriersexplicitVkBufferMemoryBarriercoreIf 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-04087YTestInvalidBarrierQueuesexplicitVkBufferMemoryBarrier(VK_VERSION_1_1,VK_KHR_external_memory)If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one must not be a special queue family reserved for external memory ownership transfers, as described in Queue Family Ownership Transfer
VUID-VkBufferMemoryBarrier-synchronization2-03852YInvalidBarrierQueueFamilyexplicitVkBufferMemoryBarrier!(VK_VERSION_1_1,VK_KHR_external_memory)If the synchronization2 feature is not enabled, and buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex must both be VK_QUEUE_FAMILY_IGNORED
VUID-VkBufferMemoryBarrier-synchronization2-03853YInvalidBarrierQueueFamilyWithMemExtexplicitVkBufferMemoryBarrier(VK_VERSION_1_1,VK_KHR_external_memory)If 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-VkBufferMemoryBarrier2-buffer-01931YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBufferMemoryBarrier2-buffer-04086YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+!(VK_VERSION_1_1,VK_KHR_external_memory)If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must be valid queue families
VUID-VkBufferMemoryBarrier2-buffer-04088YSync2InvalidBarrierQueueFamilyexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory)If buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, and one of srcQueueFamilyIndex and dstQueueFamilyIndex is one of the special queue family values reserved for external memory transfers, the other must be VK_QUEUE_FAMILY_IGNORED
VUID-VkBufferMemoryBarrier2-buffer-04089YSync2InvalidBarrierQueueFamilyexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory)If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in Queue Family Ownership Transfer
VUID-VkBufferMemoryBarrier2-buffer-parameterYNoneimplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)buffer must be a valid VkBuffer handle
VUID-VkBufferMemoryBarrier2-dstAccessMask-03900YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, pname: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-03901YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, pname: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-03902YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, pname: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-03903YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03904YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, pname: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-03905YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, pname: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-03906YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, pname: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-03907YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, pname: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-03908YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+!(VK_EXT_opacity_micromap)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, pname: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, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-dstAccessMask-03909YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, pname: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-03910YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, pname: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-03911YSync2InvalidBarriersexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, pname: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-03912YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, pname: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-03913YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, pname: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-03914YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, pname: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, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03915YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, pname: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_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03916YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_HOST_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03917YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03918YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)If pname:dstAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, pname: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-03919YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)If pname:dstAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, pname: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-03920YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, pname: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-03922YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, pname: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-03923YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)If pname:dstAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, pname: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-03924YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_device_generated_commands)If pname:dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03925YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_device_generated_commands)If pname:dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-03926YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_blend_operation_advanced)If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, pname: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-03927YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)If pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-dstAccessMask-03928YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)If pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-dstAccessMask-04747YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, pname: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-04858YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_decode_queue)If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-dstAccessMask-04859YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_decode_queue)If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-dstAccessMask-04860YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_encode_queue)If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-dstAccessMask-04861YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_encode_queue)If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-dstAccessMask-04994YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)If pname:dstAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, pname:dstStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkBufferMemoryBarrier2-dstAccessMask-06254NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname: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-06255NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:dstStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-dstAccessMask-06256NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If the rayQuery feature is not enabled and pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname: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-06257NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If the rayQuery feature is not enabled and pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:dstStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-dstAccessMask-07272NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_tracing_maintenance1)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkBufferMemoryBarrier2-dstAccessMask-07454NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, pname: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-07455NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_optical_flow)If pname:dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkBufferMemoryBarrier2-dstAccessMask-07456NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_optical_flow)If pname:dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkBufferMemoryBarrier2-dstAccessMask-07457NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)If pname:dstAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
VUID-VkBufferMemoryBarrier2-dstAccessMask-07458NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)If pname:dstAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
VUID-VkBufferMemoryBarrier2-dstAccessMask-08118YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_descriptor_buffer)If pname:dstAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, pname: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-parameterYNoneimplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)dstAccessMask must be a valid combination of VkAccessFlagBits2 values
VUID-VkBufferMemoryBarrier2-dstStageMask-03929YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If the geometryShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-VkBufferMemoryBarrier2-dstStageMask-03930YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If the tessellationShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkBufferMemoryBarrier2-dstStageMask-03931YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkBufferMemoryBarrier2-dstStageMask-03932YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkBufferMemoryBarrier2-dstStageMask-03933YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkBufferMemoryBarrier2-dstStageMask-03934YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-VkBufferMemoryBarrier2-dstStageMask-03935YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-VkBufferMemoryBarrier2-dstStageMask-04956YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV
VUID-VkBufferMemoryBarrier2-dstStageMask-04957NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)If the subpassShading feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
VUID-VkBufferMemoryBarrier2-dstStageMask-04995NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)If the invocationMask feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkBufferMemoryBarrier2-dstStageMask-07316NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkBufferMemoryBarrier2-dstStageMask-07317NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkBufferMemoryBarrier2-dstStageMask-parameterYNoneimplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)dstStageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-VkBufferMemoryBarrier2-offset-01187YSync2InvalidBarriersexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)offset must be less than the size of buffer
VUID-VkBufferMemoryBarrier2-pNext-pNextYNoneimplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)pNext must be NULL
VUID-VkBufferMemoryBarrier2-sType-sTypeYNoneimplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2
VUID-VkBufferMemoryBarrier2-size-01188YSync2InvalidBarriersexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If size is not equal to VK_WHOLE_SIZE, size must be greater than 0
VUID-VkBufferMemoryBarrier2-size-01189YSync2InvalidBarriersexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-03900YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, pname: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-03901YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, pname: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-03902YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, pname: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-03903YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03904YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, pname: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-03905YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, pname: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-03906YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, pname: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-03907YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, pname: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-03908YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+!(VK_EXT_opacity_micromap)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, pname: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, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-srcAccessMask-03909YSync2InvalidBarriersexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, pname: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-03910YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, pname: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-03911YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, pname: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-03912YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, pname: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-03913YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, pname: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-03914YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, pname: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, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03915YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, pname: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_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03916YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_HOST_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03917YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03918YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)If pname:srcAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, pname: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-03919YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)If pname:srcAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, pname: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-03920YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, pname: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-03922YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, pname: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-03923YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)If pname:srcAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, pname: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-03924YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_device_generated_commands)If pname:srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03925YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_device_generated_commands)If pname:srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-03926YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_blend_operation_advanced)If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, pname: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-03927YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)If pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-srcAccessMask-03928YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)If pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkBufferMemoryBarrier2-srcAccessMask-04747YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, pname: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-04858YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_decode_queue)If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-srcAccessMask-04859YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_decode_queue)If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-srcAccessMask-04860YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_encode_queue)If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-srcAccessMask-04861YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_encode_queue)If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkBufferMemoryBarrier2-srcAccessMask-04994YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)If pname:srcAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, pname:srcStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkBufferMemoryBarrier2-srcAccessMask-06254NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname: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-06255NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:srcStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-srcAccessMask-06256NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If the rayQuery feature is not enabled and pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname: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-06257NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If the rayQuery feature is not enabled and pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:srcStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2-srcAccessMask-07272NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_tracing_maintenance1)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkBufferMemoryBarrier2-srcAccessMask-07454NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, pname: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-07455NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_optical_flow)If pname:srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkBufferMemoryBarrier2-srcAccessMask-07456NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_optical_flow)If pname:srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkBufferMemoryBarrier2-srcAccessMask-07457NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)If pname:srcAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
VUID-VkBufferMemoryBarrier2-srcAccessMask-07458NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)If pname:srcAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
VUID-VkBufferMemoryBarrier2-srcAccessMask-08118YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_descriptor_buffer)If pname:srcAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, pname: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-parameterYNoneimplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)srcAccessMask must be a valid combination of VkAccessFlagBits2 values
VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-04087YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory)If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one must not be a special queue family reserved for external memory ownership transfers, as described in Queue Family Ownership Transfer
VUID-VkBufferMemoryBarrier2-srcStageMask-03851NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If either srcStageMask or dstStageMask includes VK_PIPELINE_STAGE_2_HOST_BIT, srcQueueFamilyIndex and dstQueueFamilyIndex must be equal
VUID-VkBufferMemoryBarrier2-srcStageMask-03929YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If the geometryShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-VkBufferMemoryBarrier2-srcStageMask-03930YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If the tessellationShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkBufferMemoryBarrier2-srcStageMask-03931YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkBufferMemoryBarrier2-srcStageMask-03932YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkBufferMemoryBarrier2-srcStageMask-03933YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkBufferMemoryBarrier2-srcStageMask-03934YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-VkBufferMemoryBarrier2-srcStageMask-03935YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-VkBufferMemoryBarrier2-srcStageMask-04956YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV
VUID-VkBufferMemoryBarrier2-srcStageMask-04957NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)If the subpassShading feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
VUID-VkBufferMemoryBarrier2-srcStageMask-04995NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)If the invocationMask feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkBufferMemoryBarrier2-srcStageMask-07316NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkBufferMemoryBarrier2-srcStageMask-07317NNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkBufferMemoryBarrier2-srcStageMask-parameterYNoneimplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)srcStageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-VkBufferMemoryRequirementsInfo2-buffer-parameterYNoneimplicitVkBufferMemoryRequirementsInfo2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)buffer must be a valid VkBuffer handle
VUID-VkBufferMemoryRequirementsInfo2-pNext-pNextYNoneimplicitVkBufferMemoryRequirementsInfo2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)pNext must be NULL
VUID-VkBufferMemoryRequirementsInfo2-sType-sTypeYNoneimplicitVkBufferMemoryRequirementsInfo2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2
VUID-VkBufferOpaqueCaptureAddressCreateInfo-sType-sTypeYNoneimplicitVkBufferOpaqueCaptureAddressCreateInfo(VK_VERSION_1_2,VK_KHR_buffer_device_address)sType must be VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO
VUID-VkBufferViewCreateInfo-buffer-00932YInvalidBufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocorebuffer 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-00933YInvalidBufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocoreIf buffer was created with usage containing VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, format must be supported for uniform texel buffers, as specified by the VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT flag in VkFormatProperties::bufferFeatures returned by vkGetPhysicalDeviceFormatProperties
VUID-VkBufferViewCreateInfo-buffer-00934YInvalidStorageAtomicOperation, InvalidBufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocoreIf buffer was created with usage containing VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, format must be supported for storage texel buffers, as specified by the VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT flag in VkFormatProperties::bufferFeatures returned by vkGetPhysicalDeviceFormatProperties
VUID-VkBufferViewCreateInfo-buffer-00935YNoneexplicitVkBufferViewCreateInfocoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBufferViewCreateInfo-buffer-02750YInvalidTexelBufferAlignmentexplicitVkBufferViewCreateInfo(VK_VERSION_1_3,VK_EXT_texel_buffer_alignment)If 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-02751YInvalidTexelBufferAlignmentexplicitVkBufferViewCreateInfo(VK_VERSION_1_3,VK_EXT_texel_buffer_alignment)If the texelBufferAlignment feature is enabled and if buffer was created with usage containing VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, offset must be a multiple of the lesser of VkPhysicalDeviceTexelBufferAlignmentProperties::uniformTexelBufferOffsetAlignmentBytes or, if VkPhysicalDeviceTexelBufferAlignmentProperties::uniformTexelBufferOffsetSingleTexelAlignment is VK_TRUE, the size of a texel of the requested format. If the size of a texel is a multiple of three bytes, then the size of a single component of format is used instead
VUID-VkBufferViewCreateInfo-buffer-parameterYNoneimplicitVkBufferViewCreateInfocorebuffer must be a valid VkBuffer handle
VUID-VkBufferViewCreateInfo-flags-zerobitmaskYNoneimplicitVkBufferViewCreateInfocoreflags must be 0
VUID-VkBufferViewCreateInfo-format-parameterYNoneimplicitVkBufferViewCreateInfocoreformat must be a valid VkFormat value
VUID-VkBufferViewCreateInfo-offset-00925YInvalidBufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocoreoffset must be less than the size of buffer
VUID-VkBufferViewCreateInfo-offset-00926YInvalidBufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfo!(VK_VERSION_1_3,VK_EXT_texel_buffer_alignment)offset must be a multiple of VkPhysicalDeviceLimits::minTexelBufferOffsetAlignment
VUID-VkBufferViewCreateInfo-offset-00931YInvalidBufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocoreIf 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-02749YInvalidBufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfo(VK_VERSION_1_3,VK_EXT_texel_buffer_alignment)If the texelBufferAlignment feature is not enabled, offset must be a multiple of VkPhysicalDeviceLimits::minTexelBufferOffsetAlignment
VUID-VkBufferViewCreateInfo-pNext-06782YExportMetalObjectsexplicitVkBufferViewCreateInfo(VK_EXT_metal_objects)If the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT
VUID-VkBufferViewCreateInfo-pNext-pNextYNoneimplicitVkBufferViewCreateInfocorepNext must be NULL or a pointer to a valid instance of VkExportMetalObjectCreateInfoEXT
VUID-VkBufferViewCreateInfo-range-00928YInvalidBufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocoreIf range is not equal to VK_WHOLE_SIZE, range must be greater than 0
VUID-VkBufferViewCreateInfo-range-00929YInvalidBufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocoreIf range is not equal to VK_WHOLE_SIZE, range must be an integer multiple of the texel block size of format
VUID-VkBufferViewCreateInfo-range-00930YInvalidBufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocoreIf range is not equal to VK_WHOLE_SIZE, the number of texel buffer elements given by ({lfloor}range / (texel block size){rfloor} {times} (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-04059YInvalidBufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocoreIf range is equal to VK_WHOLE_SIZE, the number of texel buffer elements given by ({lfloor}(size - offset) / (texel block size){rfloor} {times} (texels per block)) where size is the size of buffer, and texel block size and texels per block are as defined in the Compatible Formats table for format, must be less than or equal to VkPhysicalDeviceLimits::maxTexelBufferElements
VUID-VkBufferViewCreateInfo-sType-sTypeYNoneimplicitVkBufferViewCreateInfocoresType must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
VUID-VkBufferViewCreateInfo-sType-uniqueYNoneimplicitVkBufferViewCreateInfocoreThe sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT
VUID-VkCalibratedTimestampInfoEXT-pNext-pNextYNoneimplicitVkCalibratedTimestampInfoEXT(VK_EXT_calibrated_timestamps)pNext must be NULL
VUID-VkCalibratedTimestampInfoEXT-sType-sTypeYNoneimplicitVkCalibratedTimestampInfoEXT(VK_EXT_calibrated_timestamps)sType must be VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT
VUID-VkCalibratedTimestampInfoEXT-timeDomain-02354NNoneexplicitVkCalibratedTimestampInfoEXT(VK_EXT_calibrated_timestamps)timeDomain must be one of the VkTimeDomainEXT values returned by vkGetPhysicalDeviceCalibrateableTimeDomainsEXT
VUID-VkCalibratedTimestampInfoEXT-timeDomain-parameterYNoneimplicitVkCalibratedTimestampInfoEXT(VK_EXT_calibrated_timestamps)timeDomain must be a valid VkTimeDomainEXT value
VUID-VkCheckpointData2NV-pNext-pNextYNoneimplicitVkCheckpointData2NV(VK_NV_device_diagnostic_checkpoints)+(VK_VERSION_1_3,VK_KHR_synchronization2)pNext must be NULL
VUID-VkCheckpointData2NV-sType-sTypeYNoneimplicitVkCheckpointData2NV(VK_NV_device_diagnostic_checkpoints)+(VK_VERSION_1_3,VK_KHR_synchronization2)sType must be VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV
VUID-VkCheckpointDataNV-pNext-pNextYNoneimplicitVkCheckpointDataNV(VK_NV_device_diagnostic_checkpoints)pNext must be NULL
VUID-VkCheckpointDataNV-sType-sTypeYNoneimplicitVkCheckpointDataNV(VK_NV_device_diagnostic_checkpoints)sType must be VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV
VUID-VkClearAttachment-aspectMask-00019YDynamicRenderingClearAttachmentsexplicitVkClearAttachmentcoreIf 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-00020YClearAttachmentsInvalidAspectMasksexplicitVkClearAttachmentcoreaspectMask must not include VK_IMAGE_ASPECT_METADATA_BIT
VUID-VkClearAttachment-aspectMask-02246YClearAttachmentsInvalidAspectMasksexplicitVkClearAttachment(VK_EXT_image_drm_format_modifier)aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE{ibit}BIT_EXT for any index i
VUID-VkClearAttachment-aspectMask-parameterYClearAttachmentsImplicitCheckimplicitVkClearAttachmentcoreaspectMask must be a valid combination of VkImageAspectFlagBits values
VUID-VkClearAttachment-aspectMask-requiredbitmaskYClearAttachmentsImplicitCheckimplicitVkClearAttachmentcoreaspectMask must not be 0
VUID-VkClearAttachment-clearValue-00021NNoneexplicitVkClearAttachmentcoreclearValue must be a valid VkClearValue union
VUID-VkClearDepthStencilValue-depth-00022YNoneexplicitVkClearDepthStencilValue(VK_EXT_depth_range_unrestricted)Unless the VK_EXT_depth_range_unrestricted extension is enabled depth must be between 0.0 and 1.0, inclusive
VUID-VkClearDepthStencilValue-depth-02506YClearDepthRangeUnrestrictedexplicitVkClearDepthStencilValue!(VK_EXT_depth_range_unrestricted)depth must be between 0.0 and 1.0, inclusive
VUID-VkCoarseSampleLocationNV-pixelX-02078YShadingRateImageNVexplicitVkCoarseSampleLocationNV(VK_NV_shading_rate_image)pixelX must be less than the width (in pixels) of the fragment
VUID-VkCoarseSampleLocationNV-pixelY-02079YShadingRateImageNVexplicitVkCoarseSampleLocationNV(VK_NV_shading_rate_image)pixelY must be less than the height (in pixels) of the fragment
VUID-VkCoarseSampleLocationNV-sample-02080YShadingRateImageNVexplicitVkCoarseSampleLocationNV(VK_NV_shading_rate_image)sample must be less than the number of coverage samples in each pixel belonging to the fragment
VUID-VkCoarseSampleOrderCustomNV-pSampleLocations-02077YShadingRateImageNVexplicitVkCoarseSampleOrderCustomNV(VK_NV_shading_rate_image)The 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-parameterYNoneimplicitVkCoarseSampleOrderCustomNV(VK_NV_shading_rate_image)pSampleLocations must be a valid pointer to an array of sampleLocationCount VkCoarseSampleLocationNV structures
VUID-VkCoarseSampleOrderCustomNV-sampleCount-02074YShadingRateImageNVexplicitVkCoarseSampleOrderCustomNV(VK_NV_shading_rate_image)sampleCount must correspond to a sample count enumerated in VkSampleCountFlags whose corresponding bit is set in VkPhysicalDeviceLimits::framebufferNoAttachmentsSampleCounts
VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02075YShadingRateImageNVexplicitVkCoarseSampleOrderCustomNV(VK_NV_shading_rate_image)sampleLocationCount must be equal to the product of sampleCount, the fragment width for shadingRate, and the fragment height for shadingRate
VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02076YShadingRateImageNVexplicitVkCoarseSampleOrderCustomNV(VK_NV_shading_rate_image)sampleLocationCount must be less than or equal to the value of VkPhysicalDeviceShadingRateImagePropertiesNV::shadingRateMaxCoarseSamples
VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-arraylengthYNoneimplicitVkCoarseSampleOrderCustomNV(VK_NV_shading_rate_image)sampleLocationCount must be greater than 0
VUID-VkCoarseSampleOrderCustomNV-shadingRate-02073YShadingRateImageNVexplicitVkCoarseSampleOrderCustomNV(VK_NV_shading_rate_image)shadingRate must be a shading rate that generates fragments with more than one pixel
VUID-VkCoarseSampleOrderCustomNV-shadingRate-parameterYNoneimplicitVkCoarseSampleOrderCustomNV(VK_NV_shading_rate_image)shadingRate must be a valid VkShadingRatePaletteEntryNV value
VUID-VkColorBlendAdvancedEXT-advancedBlendOp-parameterYNoneimplicitVkColorBlendAdvancedEXT(VK_EXT_blend_operation_advanced)+(VK_EXT_extended_dynamic_state3)advancedBlendOp must be a valid VkBlendOp value
VUID-VkColorBlendAdvancedEXT-blendOverlap-07507YValidateExtendedDynamicState3EnabledexplicitVkColorBlendAdvancedEXT(VK_EXT_blend_operation_advanced)+(VK_EXT_extended_dynamic_state3)If the correlated overlap property is not supported, blendOverlap must be VK_BLEND_OVERLAP_UNCORRELATED_EXT
VUID-VkColorBlendAdvancedEXT-blendOverlap-parameterYNoneimplicitVkColorBlendAdvancedEXT(VK_EXT_blend_operation_advanced)+(VK_EXT_extended_dynamic_state3)blendOverlap must be a valid VkBlendOverlapEXT value
VUID-VkColorBlendAdvancedEXT-dstPremultiplied-07506YValidateExtendedDynamicState3EnabledexplicitVkColorBlendAdvancedEXT(VK_EXT_blend_operation_advanced)+(VK_EXT_extended_dynamic_state3)If the non-premultiplied destination color property is not supported, dstPremultiplied must be VK_TRUE
VUID-VkColorBlendAdvancedEXT-srcPremultiplied-07505YValidateExtendedDynamicState3EnabledexplicitVkColorBlendAdvancedEXT(VK_EXT_blend_operation_advanced)+(VK_EXT_extended_dynamic_state3)If the non-premultiplied source color property is not supported, srcPremultiplied must be VK_TRUE
VUID-VkColorBlendEquationEXT-alphaBlendOp-parameterYNoneimplicitVkColorBlendEquationEXT(VK_EXT_extended_dynamic_state3)alphaBlendOp must be a valid VkBlendOp value
VUID-VkColorBlendEquationEXT-colorBlendOp-07361YValidateExtendedDynamicState3EnabledexplicitVkColorBlendEquationEXT(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)colorBlendOp 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_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-VkColorBlendEquationEXT-colorBlendOp-parameterYNoneimplicitVkColorBlendEquationEXT(VK_EXT_extended_dynamic_state3)colorBlendOp must be a valid VkBlendOp value
VUID-VkColorBlendEquationEXT-constantAlphaColorBlendFactors-07362YNoneexplicitVkColorBlendEquationEXT(VK_EXT_extended_dynamic_state3)+(VK_KHR_portability_subset)If 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-07363YNoneexplicitVkColorBlendEquationEXT(VK_EXT_extended_dynamic_state3)+(VK_KHR_portability_subset)If 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-parameterYNoneimplicitVkColorBlendEquationEXT(VK_EXT_extended_dynamic_state3)dstAlphaBlendFactor must be a valid VkBlendFactor value
VUID-VkColorBlendEquationEXT-dstColorBlendFactor-parameterYNoneimplicitVkColorBlendEquationEXT(VK_EXT_extended_dynamic_state3)dstColorBlendFactor must be a valid VkBlendFactor value
VUID-VkColorBlendEquationEXT-dualSrcBlend-07357YValidateExtendedDynamicState3EnabledexplicitVkColorBlendEquationEXT(VK_EXT_extended_dynamic_state3)If 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-07358YValidateExtendedDynamicState3EnabledexplicitVkColorBlendEquationEXT(VK_EXT_extended_dynamic_state3)If 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-07359YValidateExtendedDynamicState3EnabledexplicitVkColorBlendEquationEXT(VK_EXT_extended_dynamic_state3)If 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-07360YValidateExtendedDynamicState3EnabledexplicitVkColorBlendEquationEXT(VK_EXT_extended_dynamic_state3)If 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-parameterYNoneimplicitVkColorBlendEquationEXT(VK_EXT_extended_dynamic_state3)srcAlphaBlendFactor must be a valid VkBlendFactor value
VUID-VkColorBlendEquationEXT-srcColorBlendFactor-parameterYNoneimplicitVkColorBlendEquationEXT(VK_EXT_extended_dynamic_state3)srcColorBlendFactor must be a valid VkBlendFactor value
VUID-VkCommandBufferAllocateInfo-commandPool-parameterYNoneimplicitVkCommandBufferAllocateInfocorecommandPool must be a valid VkCommandPool handle
VUID-VkCommandBufferAllocateInfo-level-parameterYNoneimplicitVkCommandBufferAllocateInfocorelevel must be a valid VkCommandBufferLevel value
VUID-VkCommandBufferAllocateInfo-pNext-pNextYNoneimplicitVkCommandBufferAllocateInfocorepNext must be NULL
VUID-VkCommandBufferAllocateInfo-sType-sTypeYNoneimplicitVkCommandBufferAllocateInfocoresType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
VUID-VkCommandBufferBeginInfo-flags-00053YDynamicRenderingBufferBeginInfoLegacyexplicitVkCommandBufferBeginInfo!(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, the renderPass member of pInheritanceInfo must be a valid VkRenderPass
VUID-VkCommandBufferBeginInfo-flags-00054YDynamicRenderingBufferBeginInfoLegacyexplicitVkCommandBufferBeginInfo!(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, the subpass member of pInheritanceInfo must be a valid subpass index within the renderPass member of pInheritanceInfo
VUID-VkCommandBufferBeginInfo-flags-00055YNoneexplicitVkCommandBufferBeginInfocoreIf 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-06000YDynamicRenderingSecondaryCommandBufferexplicitVkCommandBufferBeginInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT and the renderPass member of pInheritanceInfo is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass
VUID-VkCommandBufferBeginInfo-flags-06001YDynamicRenderingSecondaryCommandBufferexplicitVkCommandBufferBeginInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06002YDynamicRenderingSecondaryCommandBufferexplicitVkCommandBufferBeginInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06003YexplicitVkCommandBufferBeginInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-parameterYNoneimplicitVkCommandBufferBeginInfocoreflags must be a valid combination of VkCommandBufferUsageFlagBits values
VUID-VkCommandBufferBeginInfo-pNext-pNextYNoneimplicitVkCommandBufferBeginInfocorepNext must be NULL or a pointer to a valid instance of VkDeviceGroupCommandBufferBeginInfo
VUID-VkCommandBufferBeginInfo-sType-sTypeYNoneimplicitVkCommandBufferBeginInfocoresType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
VUID-VkCommandBufferBeginInfo-sType-uniqueYNoneimplicitVkCommandBufferBeginInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-conditionalRenderingEnable-01977YNoneexplicitVkCommandBufferInheritanceConditionalRenderingInfoEXT(VK_EXT_conditional_rendering)If the inheritedConditionalRendering feature is not enabled, conditionalRenderingEnable must be VK_FALSE
VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-sType-sTypeYNoneimplicitVkCommandBufferInheritanceConditionalRenderingInfoEXT(VK_EXT_conditional_rendering)sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT
VUID-VkCommandBufferInheritanceInfo-commonparentYNoneimplicitVkCommandBufferInheritanceInfocoreBoth of framebuffer, and renderPass that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCommandBufferInheritanceInfo-occlusionQueryEnable-00056YNoneexplicitVkCommandBufferInheritanceInfocoreIf the inheritedQueries feature is not enabled, occlusionQueryEnable must be VK_FALSE
VUID-VkCommandBufferInheritanceInfo-pNext-pNextYNoneimplicitVkCommandBufferInheritanceInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkAttachmentSampleCountInfoAMD, VkCommandBufferInheritanceConditionalRenderingInfoEXT, VkCommandBufferInheritanceRenderPassTransformInfoQCOM, VkCommandBufferInheritanceRenderingInfo, VkCommandBufferInheritanceViewportScissorInfoNV, or VkMultiviewPerViewAttributesInfoNVX
VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-00058YNoneexplicitVkCommandBufferInheritanceInfocoreIf the pipelineStatisticsQuery feature is not enabled, pipelineStatistics must be 0
VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-02789YNoneexplicitVkCommandBufferInheritanceInfocoreIf the pipelineStatisticsQuery feature is enabled, pipelineStatistics must be a valid combination of VkQueryPipelineStatisticFlagBits values
VUID-VkCommandBufferInheritanceInfo-queryFlags-00057YNoneexplicitVkCommandBufferInheritanceInfocoreIf the inheritedQueries feature is enabled, queryFlags must be a valid combination of VkQueryControlFlagBits values
VUID-VkCommandBufferInheritanceInfo-queryFlags-02788YNoneexplicitVkCommandBufferInheritanceInfocoreIf the inheritedQueries feature is not enabled, queryFlags must be 0
VUID-VkCommandBufferInheritanceInfo-sType-sTypeYNoneimplicitVkCommandBufferInheritanceInfocoresType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
VUID-VkCommandBufferInheritanceInfo-sType-uniqueYNoneimplicitVkCommandBufferInheritanceInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkCommandBufferInheritanceRenderPassTransformInfoQCOM-sType-sTypeYNoneimplicitVkCommandBufferInheritanceRenderPassTransformInfoQCOM(VK_QCOM_render_pass_transform)sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM
VUID-VkCommandBufferInheritanceRenderPassTransformInfoQCOM-transform-02864NNoneexplicitVkCommandBufferInheritanceRenderPassTransformInfoQCOM(VK_QCOM_render_pass_transform)transform 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-06004YexplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If colorAttachmentCount is not 0, rasterizationSamples must be a valid VkSampleCountFlagBits value
VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06007YexplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06200YexplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If depthAttachmentFormat is not VK_FORMAT_UNDEFINED and stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, depthAttachmentFormat must equal stencilAttachmentFormat
VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06540Y, DynamicRenderingCommandBufferInheritanceWithInvalidDepthFormatexplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If depthAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format that includes a depth aspect
VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-parameterYNoneimplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)depthAttachmentFormat must be a valid VkFormat value
VUID-VkCommandBufferInheritanceRenderingInfo-flags-parameterYNoneimplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)flags must be a valid combination of VkRenderingFlagBits values
VUID-VkCommandBufferInheritanceRenderingInfo-multiview-06008YexplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the multiview feature is not enabled, viewMask must be 0
VUID-VkCommandBufferInheritanceRenderingInfo-pColorAttachmentFormats-06006YexplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+!(VK_NV_linear_color_attachment)If 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
VUID-VkCommandBufferInheritanceRenderingInfo-pColorAttachmentFormats-parameterNNoneimplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If colorAttachmentCount is not 0, pColorAttachmentFormats must be a valid pointer to an array of colorAttachmentCount valid VkFormat values
VUID-VkCommandBufferInheritanceRenderingInfo-rasterizationSamples-parameterYNoneimplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If rasterizationSamples is not 0, rasterizationSamples must be a valid VkSampleCountFlagBits value
VUID-VkCommandBufferInheritanceRenderingInfo-sType-sTypeYNoneimplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO
VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-06199YexplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06541Y, DynamicRenderingInheritanceRenderingInfoStencilAttachmentFormatexplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format that includes a stencil aspect
VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-parameterYNoneimplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)stencilAttachmentFormat must be a valid VkFormat value
VUID-VkCommandBufferInheritanceRenderingInfo-variableMultisampleRate-06005YexplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the variableMultisampleRate feature is not enabled, rasterizationSamples must be a valid VkSampleCountFlagBits value
VUID-VkCommandBufferInheritanceRenderingInfo-viewMask-06009YexplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_multiview)The index of the most significant bit in viewMask must be less than maxMultiviewViewCount
VUID-VkCommandBufferInheritanceRenderingInfoKHR-pColorAttachmentFormats-06492YexplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_NV_linear_color_attachment)If 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-VkCommandBufferInheritanceViewportScissorInfoNV-sType-sTypeYNoneimplicitVkCommandBufferInheritanceViewportScissorInfoNV(VK_NV_inherited_viewport_scissor)sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV
VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04782YViewportInheritanceMissingFeatureexplicitVkCommandBufferInheritanceViewportScissorInfoNV(VK_NV_inherited_viewport_scissor)If the inheritedViewportScissor2D feature is not enabled, viewportScissor2D must be VK_FALSE
VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04783YViewportInheritanceScissorMissingFeatureexplicitVkCommandBufferInheritanceViewportScissorInfoNV(VK_NV_inherited_viewport_scissor)If the multiViewport feature is not enabled and viewportScissor2D is VK_TRUE, then viewportDepthCount must be 1
VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04784YViewportInheritanceexplicitVkCommandBufferInheritanceViewportScissorInfoNV(VK_NV_inherited_viewport_scissor)If viewportScissor2D is VK_TRUE, then viewportDepthCount must be greater than 0
VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04785NNoneexplicitVkCommandBufferInheritanceViewportScissorInfoNV(VK_NV_inherited_viewport_scissor)If 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-04786YViewportInheritanceexplicitVkCommandBufferInheritanceViewportScissorInfoNV(VK_NV_inherited_viewport_scissor)If viewportScissor2D is VK_TRUE, then the command buffer must be recorded with the VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
VUID-VkCommandBufferSubmitInfo-commandBuffer-03890YSync2SecondaryCommandbufferAsPrimaryexplicitVkCommandBufferSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)commandBuffer must not have been allocated with VK_COMMAND_BUFFER_LEVEL_SECONDARY
VUID-VkCommandBufferSubmitInfo-commandBuffer-parameterYNoneimplicitVkCommandBufferSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)commandBuffer must be a valid VkCommandBuffer handle
VUID-VkCommandBufferSubmitInfo-deviceMask-03891YNoneexplicitVkCommandBufferSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_device_group_creation,VK_VERSION_1_1)If deviceMask is not 0, it must be a valid device mask
VUID-VkCommandBufferSubmitInfo-pNext-pNextYNoneimplicitVkCommandBufferSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)pNext must be NULL
VUID-VkCommandBufferSubmitInfo-sType-sTypeYNoneimplicitVkCommandBufferSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO
VUID-VkCommandPoolCreateInfo-flags-02860YInvalidProtectedSubmitexplicitVkCommandPoolCreateInfo(VK_VERSION_1_1)If the protectedMemory feature is not enabled, the VK_COMMAND_POOL_CREATE_PROTECTED_BIT bit of flags must not be set
VUID-VkCommandPoolCreateInfo-flags-parameterYNoneimplicitVkCommandPoolCreateInfocoreflags must be a valid combination of VkCommandPoolCreateFlagBits values
VUID-VkCommandPoolCreateInfo-pNext-pNextYInvalidStructPNextimplicitVkCommandPoolCreateInfocorepNext must be NULL
VUID-VkCommandPoolCreateInfo-sType-sTypeYNoneimplicitVkCommandPoolCreateInfocoresType must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
VUID-VkComponentMapping-a-parameterYNoneimplicitVkComponentMappingcorea must be a valid VkComponentSwizzle value
VUID-VkComponentMapping-b-parameterYNoneimplicitVkComponentMappingcoreb must be a valid VkComponentSwizzle value
VUID-VkComponentMapping-g-parameterYNoneimplicitVkComponentMappingcoreg must be a valid VkComponentSwizzle value
VUID-VkComponentMapping-r-parameterYNoneimplicitVkComponentMappingcorer must be a valid VkComponentSwizzle value
VUID-VkComputePipelineCreateInfo-commonparentYNoneimplicitVkComputePipelineCreateInfocoreBoth of basePipelineHandle, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkComputePipelineCreateInfo-flags-00697YNoneexplicitVkComputePipelineCreateInfocoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid handle to a compute VkPipeline
VUID-VkComputePipelineCreateInfo-flags-00698YCreateComputesPipelineWithBadBasePointerexplicitVkComputePipelineCreateInfocoreIf 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-00699YCreateComputesPipelineWithBadBasePointerexplicitVkComputePipelineCreateInfocoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is not -1, basePipelineHandle must be VK_NULL_HANDLE
VUID-VkComputePipelineCreateInfo-flags-00700YCreateComputesPipelineWithBadBasePointerexplicitVkComputePipelineCreateInfocoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is not VK_NULL_HANDLE, basePipelineIndex must be -1
VUID-VkComputePipelineCreateInfo-flags-02874YComputePipelineInvalidFlagsexplicitVkComputePipelineCreateInfo(VK_NV_device_generated_commands)flags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
VUID-VkComputePipelineCreateInfo-flags-03364YComputePipelineInvalidFlagsexplicitVkComputePipelineCreateInfo(VK_KHR_pipeline_library)flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-03365YComputePipelineInvalidFlagsexplicitVkComputePipelineCreateInfo(VK_KHR_ray_tracing_pipeline)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-03366YComputePipelineInvalidFlagsexplicitVkComputePipelineCreateInfo(VK_KHR_ray_tracing_pipeline)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-03367YComputePipelineInvalidFlagsexplicitVkComputePipelineCreateInfo(VK_KHR_ray_tracing_pipeline)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-03368YComputePipelineInvalidFlagsexplicitVkComputePipelineCreateInfo(VK_KHR_ray_tracing_pipeline)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-03369YComputePipelineInvalidFlagsexplicitVkComputePipelineCreateInfo(VK_KHR_ray_tracing_pipeline)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-03370YComputePipelineInvalidFlagsexplicitVkComputePipelineCreateInfo(VK_KHR_ray_tracing_pipeline)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-03576YComputePipelineInvalidFlagsexplicitVkComputePipelineCreateInfo(VK_KHR_ray_tracing_pipeline)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-04945YComputePipelineInvalidFlagsexplicitVkComputePipelineCreateInfo(VK_NV_ray_tracing_motion_blur)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
VUID-VkComputePipelineCreateInfo-flags-07367NNoneexplicitVkComputePipelineCreateInfo(VK_EXT_opacity_micromap)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT
VUID-VkComputePipelineCreateInfo-flags-parameterYNoneimplicitVkComputePipelineCreateInfocoreflags must be a valid combination of VkPipelineCreateFlagBits values
VUID-VkComputePipelineCreateInfo-layout-00703YCreateComputePipelineDescriptorTypeMismatch, CreateComputePipelineMissingDescriptorexplicitVkComputePipelineCreateInfocorelayout must be consistent with the layout of the compute shader specified in stage
VUID-VkComputePipelineCreateInfo-layout-01687YPipelineMaxPerStageResourcesexplicitVkComputePipelineCreateInfocoreThe number of resources in layout accessible to the compute shader stage must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources
VUID-VkComputePipelineCreateInfo-layout-parameterYNoneimplicitVkComputePipelineCreateInfocorelayout must be a valid VkPipelineLayout handle
VUID-VkComputePipelineCreateInfo-pNext-pNextYNoneimplicitVkComputePipelineCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineCompilerControlCreateInfoAMD, VkPipelineCreationFeedbackCreateInfo, VkPipelineRobustnessCreateInfoEXT, or VkSubpassShadingPipelineCreateInfoHUAWEI
VUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875YPipelineCreationCacheControlexplicitVkComputePipelineCreateInfo(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)If 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-06566YComputePipelineStageCreationFeedbackCountexplicitVkComputePipelineCreateInfo(VK_EXT_pipeline_creation_feedback,VK_VERSION_1_3)If VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be 1
VUID-VkComputePipelineCreateInfo-sType-sTypeYNoneimplicitVkComputePipelineCreateInfocoresType must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
VUID-VkComputePipelineCreateInfo-sType-uniqueYNoneimplicitVkComputePipelineCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkComputePipelineCreateInfo-stage-00701YInvalidPipelineCreateStateBadStageBitexplicitVkComputePipelineCreateInfocoreThe stage member of stage must be VK_SHADER_STAGE_COMPUTE_BIT
VUID-VkComputePipelineCreateInfo-stage-00702NNoneexplicitVkComputePipelineCreateInfocoreThe shader code for the entry point identified by stage and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter
VUID-VkComputePipelineCreateInfo-stage-parameterNNoneimplicitVkComputePipelineCreateInfocorestage must be a valid VkPipelineShaderStageCreateInfo structure
VUID-VkConditionalRenderingBeginInfoEXT-buffer-01981NNoneexplicitVkConditionalRenderingBeginInfoEXT(VK_EXT_conditional_rendering)If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkConditionalRenderingBeginInfoEXT-buffer-01982YInvalidConditionalRenderingBufferUsageexplicitVkConditionalRenderingBeginInfoEXT(VK_EXT_conditional_rendering)buffer must have been created with the VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT bit set
VUID-VkConditionalRenderingBeginInfoEXT-buffer-parameterYNoneimplicitVkConditionalRenderingBeginInfoEXT(VK_EXT_conditional_rendering)buffer must be a valid VkBuffer handle
VUID-VkConditionalRenderingBeginInfoEXT-flags-parameterYNoneimplicitVkConditionalRenderingBeginInfoEXT(VK_EXT_conditional_rendering)flags must be a valid combination of VkConditionalRenderingFlagBitsEXT values
VUID-VkConditionalRenderingBeginInfoEXT-offset-01983YInvalidConditionalRenderingOffsetexplicitVkConditionalRenderingBeginInfoEXT(VK_EXT_conditional_rendering)offset must be less than the size of buffer by at least 32 bits
VUID-VkConditionalRenderingBeginInfoEXT-offset-01984YInvalidConditionalRenderingOffsetexplicitVkConditionalRenderingBeginInfoEXT(VK_EXT_conditional_rendering)offset must be a multiple of 4
VUID-VkConditionalRenderingBeginInfoEXT-pNext-pNextYNoneimplicitVkConditionalRenderingBeginInfoEXT(VK_EXT_conditional_rendering)pNext must be NULL
VUID-VkConditionalRenderingBeginInfoEXT-sType-sTypeYNoneimplicitVkConditionalRenderingBeginInfoEXT(VK_EXT_conditional_rendering)sType must be VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT
VUID-VkCooperativeMatrixPropertiesNV-AType-parameterNNoneimplicitVkCooperativeMatrixPropertiesNV(VK_NV_cooperative_matrix)AType must be a valid VkComponentTypeNV value
VUID-VkCooperativeMatrixPropertiesNV-BType-parameterNNoneimplicitVkCooperativeMatrixPropertiesNV(VK_NV_cooperative_matrix)BType must be a valid VkComponentTypeNV value
VUID-VkCooperativeMatrixPropertiesNV-CType-parameterNNoneimplicitVkCooperativeMatrixPropertiesNV(VK_NV_cooperative_matrix)CType must be a valid VkComponentTypeNV value
VUID-VkCooperativeMatrixPropertiesNV-DType-parameterNNoneimplicitVkCooperativeMatrixPropertiesNV(VK_NV_cooperative_matrix)DType must be a valid VkComponentTypeNV value
VUID-VkCooperativeMatrixPropertiesNV-pNext-pNextNNoneimplicitVkCooperativeMatrixPropertiesNV(VK_NV_cooperative_matrix)pNext must be NULL
VUID-VkCooperativeMatrixPropertiesNV-sType-sTypeYNoneimplicitVkCooperativeMatrixPropertiesNV(VK_NV_cooperative_matrix)sType must be VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV
VUID-VkCooperativeMatrixPropertiesNV-scope-parameterNNoneimplicitVkCooperativeMatrixPropertiesNV(VK_NV_cooperative_matrix)scope must be a valid VkScopeNV value
VUID-VkCopyAccelerationStructureInfoKHR-buffer-03718YRayTracingCopyUnboundAccelerationStructure, RayTracingCmdCopyUnboundAccelerationStructureexplicitVkCopyAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The buffer used to create src must be bound to device memory
VUID-VkCopyAccelerationStructureInfoKHR-buffer-03719YRayTracingCopyUnboundAccelerationStructure, RayTracingCmdCopyUnboundAccelerationStructureexplicitVkCopyAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The buffer used to create dst must be bound to device memory
VUID-VkCopyAccelerationStructureInfoKHR-commonparentYNoneimplicitVkCopyAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)Both of dst, and src must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyAccelerationStructureInfoKHR-dst-parameterYNoneimplicitVkCopyAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)dst must be a valid VkAccelerationStructureKHR handle
VUID-VkCopyAccelerationStructureInfoKHR-mode-03410YNoneexplicitVkCopyAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR or VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR
VUID-VkCopyAccelerationStructureInfoKHR-mode-parameterYNoneimplicitVkCopyAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)mode must be a valid VkCopyAccelerationStructureModeKHR value
VUID-VkCopyAccelerationStructureInfoKHR-pNext-pNextYNoneimplicitVkCopyAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)pNext must be NULL
VUID-VkCopyAccelerationStructureInfoKHR-sType-sTypeYNoneimplicitVkCopyAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)sType must be VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR
VUID-VkCopyAccelerationStructureInfoKHR-src-03411YNoneexplicitVkCopyAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If 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-04963NNoneexplicitVkCopyAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The source acceleration structure src must have been constructed prior to the execution of this command
VUID-VkCopyAccelerationStructureInfoKHR-src-parameterYNoneimplicitVkCopyAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)src must be a valid VkAccelerationStructureKHR handle
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-dst-03561NNoneexplicitVkCopyAccelerationStructureToMemoryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The 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-03412YNoneexplicitVkCopyAccelerationStructureToMemoryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-mode-parameterYNoneimplicitVkCopyAccelerationStructureToMemoryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)mode must be a valid VkCopyAccelerationStructureModeKHR value
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-pNext-pNextYNoneimplicitVkCopyAccelerationStructureToMemoryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pNext must be NULL
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-sType-sTypeYNoneimplicitVkCopyAccelerationStructureToMemoryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)sType must be VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-src-04959NNoneexplicitVkCopyAccelerationStructureToMemoryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The source acceleration structure src must have been constructed prior to the execution of this command
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-src-parameterYNoneimplicitVkCopyAccelerationStructureToMemoryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)src must be a valid VkAccelerationStructureKHR handle
VUID-VkCopyBufferInfo2-commonparentYNoneimplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)Both of dstBuffer, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyBufferInfo2-dstBuffer-00120YNoneexplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkCopyBufferInfo2-dstBuffer-00121YNoneexplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyBufferInfo2-dstBuffer-parameterYNoneimplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstBuffer must be a valid VkBuffer handle
VUID-VkCopyBufferInfo2-dstOffset-00114YBufferExtentsexplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The dstOffset member of each element of pRegions must be less than the size of dstBuffer
VUID-VkCopyBufferInfo2-pNext-pNextYNoneimplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)pNext must be NULL
VUID-VkCopyBufferInfo2-pRegions-00117YNoneexplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The union of the source regions, and the union of the destination regions, specified by the elements of pRegions, must not overlap in memory
VUID-VkCopyBufferInfo2-pRegions-parameterYNoneimplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)pRegions must be a valid pointer to an array of regionCount valid VkBufferCopy2 structures
VUID-VkCopyBufferInfo2-regionCount-arraylengthYNoneimplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)regionCount must be greater than 0
VUID-VkCopyBufferInfo2-sType-sTypeYNoneimplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2
VUID-VkCopyBufferInfo2-size-00115YBufferExtentsexplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The size member of each element of pRegions must be less than or equal to the size of srcBuffer minus srcOffset
VUID-VkCopyBufferInfo2-size-00116YBufferExtentsexplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The size member of each element of pRegions must be less than or equal to the size of dstBuffer minus dstOffset
VUID-VkCopyBufferInfo2-srcBuffer-00118YCopyCommands2V13explicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkCopyBufferInfo2-srcBuffer-00119YNoneexplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyBufferInfo2-srcBuffer-parameterYNoneimplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcBuffer must be a valid VkBuffer handle
VUID-VkCopyBufferInfo2-srcOffset-00113YBufferExtentsexplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The srcOffset member of each element of pRegions must be less than the size of srcBuffer
VUID-VkCopyBufferToImageInfo2-None-00214NNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_EXT_depth_range_unrestricted)For each element of pRegions whose imageSubresource contains a depth aspect, the data in srcBuffer must be in the range [0,1]
VUID-VkCopyBufferToImageInfo2-aspectMask-00211YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, imageSubresource.aspectMask must specify aspects present in pname:dstImage
VUID-VkCopyBufferToImageInfo2-baseArrayLayer-00213YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname: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-bufferImageHeight-00204YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of pname:dstImage
VUID-VkCopyBufferToImageInfo2-bufferOffset-00193YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If pname:dstImage does not have a depth/stencil format, then for each element of pRegions, bufferOffset must be a multiple of the format's texel block size
VUID-VkCopyBufferToImageInfo2-bufferOffset-01558YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If pname:dstImage does not have either a depth/stencil or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the format's texel block size
VUID-VkCopyBufferToImageInfo2-bufferOffset-01559YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If pname: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-bufferRowLength-00203YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, bufferRowLength must be a multiple of the texel block extent width of the VkFormat of pname:dstImage
VUID-VkCopyBufferToImageInfo2-commonparentYNoneimplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)Both of dstImage, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyBufferToImageInfo2-dstImage-00177YInvalidUsageBits, CopyCommands2V13explicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkCopyBufferToImageInfo2-dstImage-00178YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyBufferToImageInfo2-dstImage-00179YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-VkCopyBufferToImageInfo2-dstImage-01997YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-VkCopyBufferToImageInfo2-dstImage-02543YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkCopyBufferToImageInfo2-dstImage-parameterYNoneimplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImage must be a valid VkImage handle
VUID-VkCopyBufferToImageInfo2-dstImageLayout-00180YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImageLayout 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-00181YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkCopyBufferToImageInfo2-dstImageLayout-01396YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
VUID-VkCopyBufferToImageInfo2-dstImageLayout-parameterYNoneimplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImageLayout must be a valid VkImageLayout value
VUID-VkCopyBufferToImageInfo2-imageExtent-00207YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, if the sum of imageOffset.x and extent.width does not equal the width of the the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of pname:dstImage
VUID-VkCopyBufferToImageInfo2-imageExtent-00208YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, if the sum of imageOffset.y and extent.height does not equal the height of the the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of pname:dstImage
VUID-VkCopyBufferToImageInfo2-imageExtent-00209YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, if the sum of imageOffset.z and extent.depth does not equal the depth of the the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of pname:dstImage
VUID-VkCopyBufferToImageInfo2-imageOffset-00200YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of pname:dstImage
VUID-VkCopyBufferToImageInfo2-imageSubresource-01701YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-VkCopyBufferToImageInfo2-imageSubresource-01702YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The 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-pNext-pNextYNoneimplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)pNext must be NULL
VUID-VkCopyBufferToImageInfo2-pRegions-00171YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcBuffer 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-00172YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_QCOM_rotated_copy_commands)The image region specified by each element of pRegions must be contained within the specified imageSubresource of dstImage
VUID-VkCopyBufferToImageInfo2-pRegions-00173NNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory
VUID-VkCopyBufferToImageInfo2-pRegions-04565NNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If the image region specified by each element of pRegions does not contain VkCopyCommandTransformInfoQCOM in its pNext chain, it must be a region that is contained within the specified imageSubresource of dstImage
VUID-VkCopyBufferToImageInfo2-pRegions-06223YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For 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-06224YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For 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-07273YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, bufferOffset must be a multiple of the texel block size of the VkFormat of pname:dstImage
VUID-VkCopyBufferToImageInfo2-pRegions-07274YCompressedImageMipCopyTestsexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of pname:dstImage
VUID-VkCopyBufferToImageInfo2-pRegions-07275YCompressedImageMipCopyTestsexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of pname:dstImage
VUID-VkCopyBufferToImageInfo2-pRegions-07276YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of pname:dstImage
VUID-VkCopyBufferToImageInfo2-pRegions-07277NNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, bufferRowLength divided by the texel block extent width and then multiplied by the texel block size of pname:dstImage must be less than or equal to 231-1
VUID-VkCopyBufferToImageInfo2-pRegions-07740YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If pname:dstImage has a VkFormat with two planes then for each element of pRegions, imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT
VUID-VkCopyBufferToImageInfo2-pRegions-07741YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If pname:dstImage has a VkFormat with three planes then for each element of pRegions, imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT
VUID-VkCopyBufferToImageInfo2-pRegions-parameterYNoneimplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy2 structures
VUID-VkCopyBufferToImageInfo2-regionCount-arraylengthYNoneimplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)regionCount must be greater than 0
VUID-VkCopyBufferToImageInfo2-sType-sTypeYNoneimplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2
VUID-VkCopyBufferToImageInfo2-srcBuffer-00174YInvalidUsageBitsexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkCopyBufferToImageInfo2-srcBuffer-00176YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyBufferToImageInfo2-srcBuffer-parameterYNoneimplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcBuffer must be a valid VkBuffer handle
VUID-VkCopyBufferToImageInfo2-srcImage-00199YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname: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-srcImage-00201YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname: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-srcImage-04053YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:dstImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4
VUID-VkCopyBufferToImageInfo2KHR-pRegions-04554NNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If 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-04555NNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then dstImage must have a 1x1x1 texel block extent
VUID-VkCopyBufferToImageInfo2KHR-pRegions-06203NNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then dstImage must be of type VK_IMAGE_TYPE_2D
VUID-VkCopyBufferToImageInfo2KHR-pRegions-06204NNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then dstImage must not have a multi-planar format
VUID-VkCopyCommandTransformInfoQCOM-sType-sTypeYNoneimplicitVkCopyCommandTransformInfoQCOM(VK_QCOM_rotated_copy_commands)sType must be VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM
VUID-VkCopyCommandTransformInfoQCOM-transform-04560NNoneexplicitVkCopyCommandTransformInfoQCOM(VK_QCOM_rotated_copy_commands)transform must be VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR
VUID-VkCopyDescriptorSet-commonparentYNoneimplicitVkCopyDescriptorSetcoreBoth of dstSet, and srcSet must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyDescriptorSet-dstArrayElement-00348YNoneexplicitVkCopyDescriptorSetcoreThe 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-00347YNoneexplicitVkCopyDescriptorSetcoredstBinding must be a valid binding within dstSet
VUID-VkCopyDescriptorSet-dstBinding-02224YInlineUniformBlockEXTexplicitVkCopyDescriptorSet(VK_VERSION_1_3,VK_EXT_inline_uniform_block)If 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-02632YNoneexplicitVkCopyDescriptorSetcoreThe type of dstBinding within dstSet must be equal to the type of srcBinding within srcSet
VUID-VkCopyDescriptorSet-dstBinding-02753YCopyDescriptorUpdateErrorsexplicitVkCopyDescriptorSetcoreIf 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-04612YCopyMutableDescriptorsexplicitVkCopyDescriptorSet(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If 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-04614YCopyMutableDescriptorsexplicitVkCopyDescriptorSet(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If 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-parameterYUpdateDestroyDescriptorSetLayoutimplicitVkCopyDescriptorSetcoredstSet must be a valid VkDescriptorSet handle
VUID-VkCopyDescriptorSet-pNext-pNextYNoneimplicitVkCopyDescriptorSetcorepNext must be NULL
VUID-VkCopyDescriptorSet-sType-sTypeYNoneimplicitVkCopyDescriptorSetcoresType must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
VUID-VkCopyDescriptorSet-srcArrayElement-00346YNoneexplicitVkCopyDescriptorSetcoreThe 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-00345YNoneexplicitVkCopyDescriptorSetcoresrcBinding must be a valid binding within srcSet
VUID-VkCopyDescriptorSet-srcBinding-02223YInlineUniformBlockEXTexplicitVkCopyDescriptorSet(VK_VERSION_1_3,VK_EXT_inline_uniform_block)If 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-02225YInlineUniformBlockEXTexplicitVkCopyDescriptorSet(VK_VERSION_1_3,VK_EXT_inline_uniform_block)If the descriptor type of the descriptor set binding specified by either srcBinding or dstBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, descriptorCount must be an integer multiple of 4
VUID-VkCopyDescriptorSet-srcSet-00349YNoneexplicitVkCopyDescriptorSetcoreIf srcSet is equal to dstSet, then the source and destination ranges of descriptors must not overlap, where the ranges may include array elements from consecutive bindings as described by consecutive binding updates
VUID-VkCopyDescriptorSet-srcSet-01918YNoneexplicitVkCopyDescriptorSet(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If 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-01920YNoneexplicitVkCopyDescriptorSet(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If 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-04613YCopyMutableDescriptorsexplicitVkCopyDescriptorSet(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If 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-04885YNoneexplicitVkCopyDescriptorSet(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If srcSet's layout was created with neither VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT nor VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT flags 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-04886YNoneexplicitVkCopyDescriptorSet(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+!(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If srcSet's layout was created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT flag set, then dstSet's layout must also have been created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT flag set
VUID-VkCopyDescriptorSet-srcSet-04887YNoneexplicitVkCopyDescriptorSet(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If the descriptor pool from which srcSet was allocated was created with neither VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT nor VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT flags 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-04888YNoneexplicitVkCopyDescriptorSet(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+!(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If the descriptor pool from which srcSet was allocated was created without 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 without the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set
VUID-VkCopyDescriptorSet-srcSet-parameterYUpdateDestroyDescriptorSetLayoutimplicitVkCopyDescriptorSetcoresrcSet must be a valid VkDescriptorSet handle
VUID-VkCopyImageInfo2-None-01549YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)In 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-aspect-06662YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If 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-06663NNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If 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-06664YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If 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-06665YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If 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-00142YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage
VUID-VkCopyImageInfo2-aspectMask-00143YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage
VUID-VkCopyImageInfo2-commonparentYNoneimplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyImageInfo2-dstImage-00131YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkCopyImageInfo2-dstImage-00132YCopyInvalidImageMemoryexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyImageInfo2-dstImage-00152YCopyImageTypeExtentMismatchexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If 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-01547YCopyInvalidImageMemoryexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If dstImage is non-sparse then the image or disjoint plane that is the destination of the copy must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyImageInfo2-dstImage-01554YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If dstImage has a VkFormat with two planes then for each element of pRegions, dstSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT
VUID-VkCopyImageInfo2-dstImage-01555YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If dstImage has a VkFormat with three planes then for each element of pRegions, dstSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT
VUID-VkCopyImageInfo2-dstImage-01557YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-01732YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, if the sum of dstOffset.x and extent.width does not equal the width of the 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-01733YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, if the sum of dstOffset.y and extent.height does not equal the height of the 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-01734YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, if the sum of dstOffset.z and extent.depth does not equal the depth of the 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-01786YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If 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-01788YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0
VUID-VkCopyImageInfo2-dstImage-01792YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)If 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-01996YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-VkCopyImageInfo2-dstImage-02542YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkCopyImageInfo2-dstImage-04444YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)If 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-parameterYNoneimplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImage must be a valid VkImage handle
VUID-VkCopyImageInfo2-dstImageLayout-00133YInvalidImageLayoutexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImageLayout 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-00134YInvalidImageLayoutexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkCopyImageInfo2-dstImageLayout-01395YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
VUID-VkCopyImageInfo2-dstImageLayout-parameterYNoneimplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImageLayout must be a valid VkImageLayout value
VUID-VkCopyImageInfo2-dstOffset-00150YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, dstOffset.x and (extent.width + dstOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage
VUID-VkCopyImageInfo2-dstOffset-00151YCopyImageTypeExtentMismatchexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, dstOffset.y and (extent.height + dstOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage
VUID-VkCopyImageInfo2-dstOffset-00153YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If 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-01784YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The dstOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties
VUID-VkCopyImageInfo2-dstSubresource-01697YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-VkCopyImageInfo2-dstSubresource-01699YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The 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-pNextYNoneimplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)pNext must be NULL
VUID-VkCopyImageInfo2-pRegions-00124YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory
VUID-VkCopyImageInfo2-pRegions-07278YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, srcOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-VkCopyImageInfo2-pRegions-07279YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, srcOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-VkCopyImageInfo2-pRegions-07280YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, srcOffset.z must be a multiple of the texel block extent depth of the VkFormat of srcImage
VUID-VkCopyImageInfo2-pRegions-07281YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, dstOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-VkCopyImageInfo2-pRegions-07282YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, dstOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-VkCopyImageInfo2-pRegions-07283YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, dstOffset.z must be a multiple of the texel block extent depth of the VkFormat of dstImage
VUID-VkCopyImageInfo2-pRegions-parameterYNoneimplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)pRegions must be a valid pointer to an array of regionCount valid VkImageCopy2 structures
VUID-VkCopyImageInfo2-regionCount-arraylengthYNoneimplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)regionCount must be greater than 0
VUID-VkCopyImageInfo2-sType-sTypeYNoneimplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2
VUID-VkCopyImageInfo2-srcImage-00126YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkCopyImageInfo2-srcImage-00127YCopyInvalidImageMemoryexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyImageInfo2-srcImage-00135YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)The VkFormat of each of srcImage and dstImage must be size-compatible
VUID-VkCopyImageInfo2-srcImage-00136YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The sample count of srcImage and dstImage must match
VUID-VkCopyImageInfo2-srcImage-00139YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_maintenance1)If 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-VkCopyImageInfo2-srcImage-00146YCopyImageTypeExtentMismatchexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If 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-01546YCopyInvalidImageMemoryexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If srcImage is non-sparse then the image or disjoint plane to be copied must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyImageInfo2-srcImage-01548YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-01551YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-01552YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If srcImage has a VkFormat with two planes then for each element of pRegions, srcSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT
VUID-VkCopyImageInfo2-srcImage-01553YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If srcImage has a VkFormat with three planes then for each element of pRegions, srcSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT
VUID-VkCopyImageInfo2-srcImage-01556YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-01728YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, if the sum of srcOffset.x and extent.width does not equal the width of the 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-01729YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, if the sum of srcOffset.y and extent.height does not equal the height of the 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-01730YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, if the sum of srcOffset.z and extent.depth does not equal the depth of the 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-01785YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If 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-01787YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If srcImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0
VUID-VkCopyImageInfo2-srcImage-01789YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_maintenance1)If srcImage or dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1
VUID-VkCopyImageInfo2-srcImage-01790YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)If 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-01791YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)If 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-01995YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
VUID-VkCopyImageInfo2-srcImage-04443YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)If 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-07742NNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_maintenance1)srcImage and dstImage must have the same VkImageType
VUID-VkCopyImageInfo2-srcImage-07743NNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)If srcImage and dstImage have a different VkImageType, one must be VK_IMAGE_TYPE_3D and the other must be VK_IMAGE_TYPE_2D
VUID-VkCopyImageInfo2-srcImage-07744NNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)If srcImage and dstImage have the same VkImageType, the layerCount member of srcSubresource and dstSubresource in each element of pRegions must match
VUID-VkCopyImageInfo2-srcImage-07745NNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImage and dstImage must have the same sample count
VUID-VkCopyImageInfo2-srcImage-parameterYNoneimplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImage must be a valid VkImage handle
VUID-VkCopyImageInfo2-srcImageLayout-00128YInvalidImageLayoutexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImageLayout 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-00129YInvalidImageLayoutexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkCopyImageInfo2-srcImageLayout-01917YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
VUID-VkCopyImageInfo2-srcImageLayout-parameterYNoneimplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImageLayout must be a valid VkImageLayout value
VUID-VkCopyImageInfo2-srcOffset-00144YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage
VUID-VkCopyImageInfo2-srcOffset-00145YCopyImageTypeExtentMismatchexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage
VUID-VkCopyImageInfo2-srcOffset-00147YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If 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-01783YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The srcOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties
VUID-VkCopyImageInfo2-srcSubresource-01696YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-VkCopyImageInfo2-srcSubresource-01698YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The 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-aspectMask-00211YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, imageSubresource.aspectMask must specify aspects present in pname:srcImage
VUID-VkCopyImageToBufferInfo2-baseArrayLayer-00213YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname: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-bufferImageHeight-00204YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of pname:srcImage
VUID-VkCopyImageToBufferInfo2-bufferOffset-00193YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If pname:srcImage does not have a depth/stencil format, then for each element of pRegions, bufferOffset must be a multiple of the format's texel block size
VUID-VkCopyImageToBufferInfo2-bufferOffset-01558YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If pname:srcImage does not have either a depth/stencil or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the format's texel block size
VUID-VkCopyImageToBufferInfo2-bufferOffset-01559YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If pname: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-bufferRowLength-00203YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, bufferRowLength must be a multiple of the texel block extent width of the VkFormat of pname:srcImage
VUID-VkCopyImageToBufferInfo2-commonparentYNoneimplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)Both of dstBuffer, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyImageToBufferInfo2-dstBuffer-00191YCopyCommands2V13explicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkCopyImageToBufferInfo2-dstBuffer-00192NNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyImageToBufferInfo2-dstBuffer-parameterYNoneimplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstBuffer must be a valid VkBuffer handle
VUID-VkCopyImageToBufferInfo2-imageExtent-00207YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, if the sum of imageOffset.x and extent.width does not equal the width of the the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of pname:srcImage
VUID-VkCopyImageToBufferInfo2-imageExtent-00208YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, if the sum of imageOffset.y and extent.height does not equal the height of the the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of pname:srcImage
VUID-VkCopyImageToBufferInfo2-imageExtent-00209YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, if the sum of imageOffset.z and extent.depth does not equal the depth of the the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of pname:srcImage
VUID-VkCopyImageToBufferInfo2-imageOffset-00197YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For 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-00198YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For 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-00200YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of pname:srcImage
VUID-VkCopyImageToBufferInfo2-imageSubresource-01703YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-VkCopyImageToBufferInfo2-imageSubresource-01704YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The 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-pNext-pNextYNoneimplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)pNext must be NULL
VUID-VkCopyImageToBufferInfo2-pRegions-00182YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_QCOM_rotated_copy_commands)The image region specified by each element of pRegions must be contained within the specified imageSubresource of srcImage
VUID-VkCopyImageToBufferInfo2-pRegions-00183YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstBuffer 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-00184NNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory
VUID-VkCopyImageToBufferInfo2-pRegions-04566NNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If the image region specified by each element of pRegions does not contain VkCopyCommandTransformInfoQCOM in its pNext chain, it must be contained within the specified imageSubresource of srcImage
VUID-VkCopyImageToBufferInfo2-pRegions-07273YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, bufferOffset must be a multiple of the texel block size of the VkFormat of pname:srcImage
VUID-VkCopyImageToBufferInfo2-pRegions-07274YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of pname:srcImage
VUID-VkCopyImageToBufferInfo2-pRegions-07275YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of pname:srcImage
VUID-VkCopyImageToBufferInfo2-pRegions-07276YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of pname:srcImage
VUID-VkCopyImageToBufferInfo2-pRegions-07277NNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, bufferRowLength divided by the texel block extent width and then multiplied by the texel block size of pname:srcImage must be less than or equal to 231-1
VUID-VkCopyImageToBufferInfo2-pRegions-07740YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If pname:srcImage has a VkFormat with two planes then for each element of pRegions, imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT
VUID-VkCopyImageToBufferInfo2-pRegions-07741YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If pname:srcImage has a VkFormat with three planes then for each element of pRegions, imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT
VUID-VkCopyImageToBufferInfo2-pRegions-parameterYNoneimplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy2 structures
VUID-VkCopyImageToBufferInfo2-regionCount-arraylengthYNoneimplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)regionCount must be greater than 0
VUID-VkCopyImageToBufferInfo2-sType-sTypeYNoneimplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2
VUID-VkCopyImageToBufferInfo2-srcImage-00186YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkCopyImageToBufferInfo2-srcImage-00187YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyImageToBufferInfo2-srcImage-00188YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-VkCopyImageToBufferInfo2-srcImage-00199YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname: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-00201YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname: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-01998YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
VUID-VkCopyImageToBufferInfo2-srcImage-02544YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkCopyImageToBufferInfo2-srcImage-04053YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:srcImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4
VUID-VkCopyImageToBufferInfo2-srcImage-parameterYNoneimplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImage must be a valid VkImage handle
VUID-VkCopyImageToBufferInfo2-srcImageLayout-00189YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImageLayout 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-00190YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkCopyImageToBufferInfo2-srcImageLayout-01397YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
VUID-VkCopyImageToBufferInfo2-srcImageLayout-parameterYNoneimplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImageLayout must be a valid VkImageLayout value
VUID-VkCopyImageToBufferInfo2KHR-pRegions-04557NNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If 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-04558NNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must have a 1x1x1 texel block extent
VUID-VkCopyImageToBufferInfo2KHR-pRegions-06205NNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must be of type VK_IMAGE_TYPE_2D
VUID-VkCopyImageToBufferInfo2KHR-pRegions-06206NNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must not have a multi-planar format
VUID-VkCopyMemoryIndirectCommandNV-dstAddress-07658NNoneexplicitVkCopyMemoryIndirectCommandNV(VK_NV_copy_memory_indirect)The dstAddress must be 4 byte aligned
VUID-VkCopyMemoryIndirectCommandNV-size-07659NNoneexplicitVkCopyMemoryIndirectCommandNV(VK_NV_copy_memory_indirect)The size must be 4 byte aligned
VUID-VkCopyMemoryIndirectCommandNV-srcAddress-07657NNoneexplicitVkCopyMemoryIndirectCommandNV(VK_NV_copy_memory_indirect)The srcAddress must be 4 byte aligned
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-dst-03746NNoneexplicitVkCopyMemoryToAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)dst must have been created with a size greater than or equal to that used to serialize the data in src
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-dst-parameterYNoneimplicitVkCopyMemoryToAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)dst must be a valid VkAccelerationStructureKHR handle
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-03413YNoneexplicitVkCopyMemoryToAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-parameterYNoneimplicitVkCopyMemoryToAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)mode must be a valid VkCopyAccelerationStructureModeKHR value
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pInfo-03414NNoneexplicitVkCopyMemoryToAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The data in src must have a format compatible with the destination physical device as returned by vkGetDeviceAccelerationStructureCompatibilityKHR
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pNext-pNextYNoneimplicitVkCopyMemoryToAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pNext must be NULL
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-sType-sTypeYNoneimplicitVkCopyMemoryToAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)sType must be VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-src-04960NNoneexplicitVkCopyMemoryToAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The 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-07680NNoneexplicitVkCopyMemoryToImageIndirectCommandNV(VK_NV_copy_memory_indirect)bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent
VUID-VkCopyMemoryToImageIndirectCommandNV-bufferRowLength-07679NNoneexplicitVkCopyMemoryToImageIndirectCommandNV(VK_NV_copy_memory_indirect)bufferRowLength must be 0, or greater than or equal to the width member of imageExtent
VUID-VkCopyMemoryToImageIndirectCommandNV-imageExtent-07682NNoneexplicitVkCopyMemoryToImageIndirectCommandNV(VK_NV_copy_memory_indirect)imageExtent must specify a valid region in the destination image and can be 0
VUID-VkCopyMemoryToImageIndirectCommandNV-imageOffset-07681NNoneexplicitVkCopyMemoryToImageIndirectCommandNV(VK_NV_copy_memory_indirect)imageOffset must specify a valid offset in the destination image
VUID-VkCopyMemoryToImageIndirectCommandNV-imageSubresource-parameterNNoneimplicitVkCopyMemoryToImageIndirectCommandNV(VK_NV_copy_memory_indirect)imageSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkCopyMemoryToImageIndirectCommandNV-srcAddress-07678NNoneexplicitVkCopyMemoryToImageIndirectCommandNV(VK_NV_copy_memory_indirect)The srcAddress must be 4 byte aligned
VUID-VkCopyMemoryToMicromapInfoEXT-dst-07550NNoneexplicitVkCopyMemoryToMicromapInfoEXT(VK_EXT_opacity_micromap)dst must have been created with a size greater than or equal to that used to serialize the data in src
VUID-VkCopyMemoryToMicromapInfoEXT-dst-parameterYNoneimplicitVkCopyMemoryToMicromapInfoEXT(VK_EXT_opacity_micromap)dst must be a valid VkMicromapEXT handle
VUID-VkCopyMemoryToMicromapInfoEXT-mode-07548NNoneexplicitVkCopyMemoryToMicromapInfoEXT(VK_EXT_opacity_micromap)mode must be VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT
VUID-VkCopyMemoryToMicromapInfoEXT-mode-parameterYNoneimplicitVkCopyMemoryToMicromapInfoEXT(VK_EXT_opacity_micromap)mode must be a valid VkCopyMicromapModeEXT value
VUID-VkCopyMemoryToMicromapInfoEXT-pNext-pNextYNoneimplicitVkCopyMemoryToMicromapInfoEXT(VK_EXT_opacity_micromap)pNext must be NULL
VUID-VkCopyMemoryToMicromapInfoEXT-sType-sTypeYNoneimplicitVkCopyMemoryToMicromapInfoEXT(VK_EXT_opacity_micromap)sType must be VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT
VUID-VkCopyMemoryToMicromapInfoEXT-src-07547NNoneexplicitVkCopyMemoryToMicromapInfoEXT(VK_EXT_opacity_micromap)The source memory pointed to by src must contain data previously serialized using vkCmdCopyMicromapToMemoryEXT
VUID-VkCopyMemoryToMicromapInfoEXT-src-07549NNoneexplicitVkCopyMemoryToMicromapInfoEXT(VK_EXT_opacity_micromap)The data in src must have a format compatible with the destination physical device as returned by vkGetDeviceMicromapCompatibilityEXT
VUID-VkCopyMicromapInfoEXT-buffer-07534NNoneexplicitVkCopyMicromapInfoEXT(VK_EXT_opacity_micromap)The buffer used to create src must be bound to device memory
VUID-VkCopyMicromapInfoEXT-buffer-07535NNoneexplicitVkCopyMicromapInfoEXT(VK_EXT_opacity_micromap)The buffer used to create dst must be bound to device memory
VUID-VkCopyMicromapInfoEXT-commonparentYNoneimplicitVkCopyMicromapInfoEXT(VK_EXT_opacity_micromap)Both of dst, and src must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyMicromapInfoEXT-dst-parameterYNoneimplicitVkCopyMicromapInfoEXT(VK_EXT_opacity_micromap)dst must be a valid VkMicromapEXT handle
VUID-VkCopyMicromapInfoEXT-mode-07531NNoneexplicitVkCopyMicromapInfoEXT(VK_EXT_opacity_micromap)mode must be VK_COPY_MICROMAP_MODE_COMPACT_EXT or VK_COPY_MICROMAP_MODE_CLONE_EXT
VUID-VkCopyMicromapInfoEXT-mode-07533NNoneexplicitVkCopyMicromapInfoEXT(VK_EXT_opacity_micromap)If 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-parameterYNoneimplicitVkCopyMicromapInfoEXT(VK_EXT_opacity_micromap)mode must be a valid VkCopyMicromapModeEXT value
VUID-VkCopyMicromapInfoEXT-pNext-pNextYNoneimplicitVkCopyMicromapInfoEXT(VK_EXT_opacity_micromap)pNext must be NULL
VUID-VkCopyMicromapInfoEXT-sType-sTypeYNoneimplicitVkCopyMicromapInfoEXT(VK_EXT_opacity_micromap)sType must be VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT
VUID-VkCopyMicromapInfoEXT-src-07532NNoneexplicitVkCopyMicromapInfoEXT(VK_EXT_opacity_micromap)The source acceleration structure src must have been constructed prior to the execution of this command
VUID-VkCopyMicromapInfoEXT-src-parameterYNoneimplicitVkCopyMicromapInfoEXT(VK_EXT_opacity_micromap)src must be a valid VkMicromapEXT handle
VUID-VkCopyMicromapToMemoryInfoEXT-dst-07541NNoneexplicitVkCopyMicromapToMemoryInfoEXT(VK_EXT_opacity_micromap)The 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-07542NNoneexplicitVkCopyMicromapToMemoryInfoEXT(VK_EXT_opacity_micromap)mode must be VK_COPY_MICROMAP_MODE_SERIALIZE_EXT
VUID-VkCopyMicromapToMemoryInfoEXT-mode-parameterYNoneimplicitVkCopyMicromapToMemoryInfoEXT(VK_EXT_opacity_micromap)mode must be a valid VkCopyMicromapModeEXT value
VUID-VkCopyMicromapToMemoryInfoEXT-pNext-pNextYNoneimplicitVkCopyMicromapToMemoryInfoEXT(VK_EXT_opacity_micromap)pNext must be NULL
VUID-VkCopyMicromapToMemoryInfoEXT-sType-sTypeYNoneimplicitVkCopyMicromapToMemoryInfoEXT(VK_EXT_opacity_micromap)sType must be VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT
VUID-VkCopyMicromapToMemoryInfoEXT-src-07540NNoneexplicitVkCopyMicromapToMemoryInfoEXT(VK_EXT_opacity_micromap)The source micromap src must have been constructed prior to the execution of this command
VUID-VkCopyMicromapToMemoryInfoEXT-src-parameterYNoneimplicitVkCopyMicromapToMemoryInfoEXT(VK_EXT_opacity_micromap)src must be a valid VkMicromapEXT handle
VUID-VkCuFunctionCreateInfoNVX-module-parameterYNoneimplicitVkCuFunctionCreateInfoNVX(VK_NVX_binary_import)module must be a valid VkCuModuleNVX handle
VUID-VkCuFunctionCreateInfoNVX-pName-parameterYNoneimplicitVkCuFunctionCreateInfoNVX(VK_NVX_binary_import)pName must be a null-terminated UTF-8 string
VUID-VkCuFunctionCreateInfoNVX-pNext-pNextYNoneimplicitVkCuFunctionCreateInfoNVX(VK_NVX_binary_import)pNext must be NULL
VUID-VkCuFunctionCreateInfoNVX-sType-sTypeYNoneimplicitVkCuFunctionCreateInfoNVX(VK_NVX_binary_import)sType must be VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX
VUID-VkCuLaunchInfoNVX-function-parameterYNoneimplicitVkCuLaunchInfoNVX(VK_NVX_binary_import)function must be a valid VkCuFunctionNVX handle
VUID-VkCuLaunchInfoNVX-pExtras-parameterYNoneimplicitVkCuLaunchInfoNVX(VK_NVX_binary_import)If extraCount is not 0, pExtras must be a valid pointer to an array of extraCount bytes
VUID-VkCuLaunchInfoNVX-pNext-pNextYNoneimplicitVkCuLaunchInfoNVX(VK_NVX_binary_import)pNext must be NULL
VUID-VkCuLaunchInfoNVX-pParams-parameterYNoneimplicitVkCuLaunchInfoNVX(VK_NVX_binary_import)If paramCount is not 0, pParams must be a valid pointer to an array of paramCount bytes
VUID-VkCuLaunchInfoNVX-sType-sTypeYNoneimplicitVkCuLaunchInfoNVX(VK_NVX_binary_import)sType must be VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX
VUID-VkCuModuleCreateInfoNVX-dataSize-arraylengthYNoneimplicitVkCuModuleCreateInfoNVX(VK_NVX_binary_import)dataSize must be greater than 0
VUID-VkCuModuleCreateInfoNVX-pData-parameterYNoneimplicitVkCuModuleCreateInfoNVX(VK_NVX_binary_import)pData must be a valid pointer to an array of dataSize bytes
VUID-VkCuModuleCreateInfoNVX-pNext-pNextYNoneimplicitVkCuModuleCreateInfoNVX(VK_NVX_binary_import)pNext must be NULL
VUID-VkCuModuleCreateInfoNVX-sType-sTypeYNoneimplicitVkCuModuleCreateInfoNVX(VK_NVX_binary_import)sType must be VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX
VUID-VkD3D12FenceSubmitInfoKHR-pSignalSemaphoreValues-parameterNNoneimplicitVkD3D12FenceSubmitInfoKHR(VK_KHR_external_semaphore_win32)If 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-parameterNNoneimplicitVkD3D12FenceSubmitInfoKHR(VK_KHR_external_semaphore_win32)If 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-sTypeYNoneimplicitVkD3D12FenceSubmitInfoKHR(VK_KHR_external_semaphore_win32)sType must be VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR
VUID-VkD3D12FenceSubmitInfoKHR-signalSemaphoreValuesCount-00080NNoneexplicitVkD3D12FenceSubmitInfoKHR(VK_KHR_external_semaphore_win32)signalSemaphoreValuesCount must be the same value as VkSubmitInfo::signalSemaphoreCount, where VkSubmitInfo is in the pNext chain of this VkD3D12FenceSubmitInfoKHR structure
VUID-VkD3D12FenceSubmitInfoKHR-waitSemaphoreValuesCount-00079NNoneexplicitVkD3D12FenceSubmitInfoKHR(VK_KHR_external_semaphore_win32)waitSemaphoreValuesCount must be the same value as VkSubmitInfo::waitSemaphoreCount, where VkSubmitInfo is in the pNext chain of this VkD3D12FenceSubmitInfoKHR structure
VUID-VkDebugMarkerMarkerInfoEXT-pMarkerName-parameterYNoneimplicitVkDebugMarkerMarkerInfoEXT(VK_EXT_debug_marker)pMarkerName must be a null-terminated UTF-8 string
VUID-VkDebugMarkerMarkerInfoEXT-pNext-pNextYNoneimplicitVkDebugMarkerMarkerInfoEXT(VK_EXT_debug_marker)pNext must be NULL
VUID-VkDebugMarkerMarkerInfoEXT-sType-sTypeYNoneimplicitVkDebugMarkerMarkerInfoEXT(VK_EXT_debug_marker)sType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT
VUID-VkDebugMarkerObjectNameInfoEXT-object-01491NNoneexplicitVkDebugMarkerObjectNameInfoEXT(VK_EXT_debug_marker)object must not be VK_NULL_HANDLE
VUID-VkDebugMarkerObjectNameInfoEXT-object-01492NNoneexplicitVkDebugMarkerObjectNameInfoEXT(VK_EXT_debug_marker)object must be a Vulkan object of the type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship
VUID-VkDebugMarkerObjectNameInfoEXT-objectType-01490NNoneexplicitVkDebugMarkerObjectNameInfoEXT(VK_EXT_debug_marker)objectType must not be VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT
VUID-VkDebugMarkerObjectNameInfoEXT-objectType-parameterYNoneimplicitVkDebugMarkerObjectNameInfoEXT(VK_EXT_debug_marker)objectType must be a valid VkDebugReportObjectTypeEXT value
VUID-VkDebugMarkerObjectNameInfoEXT-pNext-pNextYNoneimplicitVkDebugMarkerObjectNameInfoEXT(VK_EXT_debug_marker)pNext must be NULL
VUID-VkDebugMarkerObjectNameInfoEXT-pObjectName-parameterYNoneimplicitVkDebugMarkerObjectNameInfoEXT(VK_EXT_debug_marker)pObjectName must be a null-terminated UTF-8 string
VUID-VkDebugMarkerObjectNameInfoEXT-sType-sTypeYNoneimplicitVkDebugMarkerObjectNameInfoEXT(VK_EXT_debug_marker)sType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT
VUID-VkDebugMarkerObjectTagInfoEXT-object-01494NNoneexplicitVkDebugMarkerObjectTagInfoEXT(VK_EXT_debug_marker)object must not be VK_NULL_HANDLE
VUID-VkDebugMarkerObjectTagInfoEXT-object-01495NNoneexplicitVkDebugMarkerObjectTagInfoEXT(VK_EXT_debug_marker)object must be a Vulkan object of the type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship
VUID-VkDebugMarkerObjectTagInfoEXT-objectType-01493NNoneexplicitVkDebugMarkerObjectTagInfoEXT(VK_EXT_debug_marker)objectType must not be VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT
VUID-VkDebugMarkerObjectTagInfoEXT-objectType-parameterYNoneimplicitVkDebugMarkerObjectTagInfoEXT(VK_EXT_debug_marker)objectType must be a valid VkDebugReportObjectTypeEXT value
VUID-VkDebugMarkerObjectTagInfoEXT-pNext-pNextYNoneimplicitVkDebugMarkerObjectTagInfoEXT(VK_EXT_debug_marker)pNext must be NULL
VUID-VkDebugMarkerObjectTagInfoEXT-pTag-parameterYNoneimplicitVkDebugMarkerObjectTagInfoEXT(VK_EXT_debug_marker)pTag must be a valid pointer to an array of tagSize bytes
VUID-VkDebugMarkerObjectTagInfoEXT-sType-sTypeYNoneimplicitVkDebugMarkerObjectTagInfoEXT(VK_EXT_debug_marker)sType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT
VUID-VkDebugMarkerObjectTagInfoEXT-tagSize-arraylengthYNoneimplicitVkDebugMarkerObjectTagInfoEXT(VK_EXT_debug_marker)tagSize must be greater than 0
VUID-VkDebugReportCallbackCreateInfoEXT-flags-parameterYNoneimplicitVkDebugReportCallbackCreateInfoEXT(VK_EXT_debug_report)flags must be a valid combination of VkDebugReportFlagBitsEXT values
VUID-VkDebugReportCallbackCreateInfoEXT-pfnCallback-parameterYNoneimplicitVkDebugReportCallbackCreateInfoEXT(VK_EXT_debug_report)pfnCallback must be a valid PFN_vkDebugReportCallbackEXT value
VUID-VkDebugReportCallbackCreateInfoEXT-sType-sTypeYNoneimplicitVkDebugReportCallbackCreateInfoEXT(VK_EXT_debug_report)sType must be VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
VUID-VkDebugUtilsLabelEXT-pLabelName-parameterYNoneimplicitVkDebugUtilsLabelEXT(VK_EXT_debug_utils)pLabelName must be a null-terminated UTF-8 string
VUID-VkDebugUtilsLabelEXT-pNext-pNextYNoneimplicitVkDebugUtilsLabelEXT(VK_EXT_debug_utils)pNext must be NULL
VUID-VkDebugUtilsLabelEXT-sType-sTypeYNoneimplicitVkDebugUtilsLabelEXT(VK_EXT_debug_utils)sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT
VUID-VkDebugUtilsMessengerCallbackDataEXT-flags-zerobitmaskYNoneimplicitVkDebugUtilsMessengerCallbackDataEXT(VK_EXT_debug_utils)flags must be 0
VUID-VkDebugUtilsMessengerCallbackDataEXT-pCmdBufLabels-parameterYNoneimplicitVkDebugUtilsMessengerCallbackDataEXT(VK_EXT_debug_utils)If cmdBufLabelCount is not 0, pCmdBufLabels must be a valid pointer to an array of cmdBufLabelCount valid VkDebugUtilsLabelEXT structures
VUID-VkDebugUtilsMessengerCallbackDataEXT-pMessage-parameterYNoneimplicitVkDebugUtilsMessengerCallbackDataEXT(VK_EXT_debug_utils)pMessage must be a null-terminated UTF-8 string
VUID-VkDebugUtilsMessengerCallbackDataEXT-pMessageIdName-parameterNNoneimplicitVkDebugUtilsMessengerCallbackDataEXT(VK_EXT_debug_utils)If pMessageIdName is not NULL, pMessageIdName must be a null-terminated UTF-8 string
VUID-VkDebugUtilsMessengerCallbackDataEXT-pNext-pNextYNoneimplicitVkDebugUtilsMessengerCallbackDataEXT(VK_EXT_debug_utils)pNext must be NULL or a pointer to a valid instance of VkDeviceAddressBindingCallbackDataEXT
VUID-VkDebugUtilsMessengerCallbackDataEXT-pObjects-parameterYNoneimplicitVkDebugUtilsMessengerCallbackDataEXT(VK_EXT_debug_utils)If objectCount is not 0, pObjects must be a valid pointer to an array of objectCount valid VkDebugUtilsObjectNameInfoEXT structures
VUID-VkDebugUtilsMessengerCallbackDataEXT-pQueueLabels-parameterYNoneimplicitVkDebugUtilsMessengerCallbackDataEXT(VK_EXT_debug_utils)If queueLabelCount is not 0, pQueueLabels must be a valid pointer to an array of queueLabelCount valid VkDebugUtilsLabelEXT structures
VUID-VkDebugUtilsMessengerCallbackDataEXT-sType-sTypeYNoneimplicitVkDebugUtilsMessengerCallbackDataEXT(VK_EXT_debug_utils)sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT
VUID-VkDebugUtilsMessengerCallbackDataEXT-sType-uniqueYNoneimplicitVkDebugUtilsMessengerCallbackDataEXT(VK_EXT_debug_utils)The sType value of each struct in the pNext chain must be unique
VUID-VkDebugUtilsMessengerCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkDebugUtilsMessengerCreateInfoEXT(VK_EXT_debug_utils)flags must be 0
VUID-VkDebugUtilsMessengerCreateInfoEXT-messageSeverity-parameterYNoneimplicitVkDebugUtilsMessengerCreateInfoEXT(VK_EXT_debug_utils)messageSeverity must be a valid combination of VkDebugUtilsMessageSeverityFlagBitsEXT values
VUID-VkDebugUtilsMessengerCreateInfoEXT-messageSeverity-requiredbitmaskYNoneimplicitVkDebugUtilsMessengerCreateInfoEXT(VK_EXT_debug_utils)messageSeverity must not be 0
VUID-VkDebugUtilsMessengerCreateInfoEXT-messageType-parameterYNoneimplicitVkDebugUtilsMessengerCreateInfoEXT(VK_EXT_debug_utils)messageType must be a valid combination of VkDebugUtilsMessageTypeFlagBitsEXT values
VUID-VkDebugUtilsMessengerCreateInfoEXT-messageType-requiredbitmaskYNoneimplicitVkDebugUtilsMessengerCreateInfoEXT(VK_EXT_debug_utils)messageType must not be 0
VUID-VkDebugUtilsMessengerCreateInfoEXT-pfnUserCallback-01914NNoneexplicitVkDebugUtilsMessengerCreateInfoEXT(VK_EXT_debug_utils)pfnUserCallback must be a valid PFN_vkDebugUtilsMessengerCallbackEXT
VUID-VkDebugUtilsMessengerCreateInfoEXT-pfnUserCallback-parameterYNoneimplicitVkDebugUtilsMessengerCreateInfoEXT(VK_EXT_debug_utils)pfnUserCallback must be a valid PFN_vkDebugUtilsMessengerCallbackEXT value
VUID-VkDebugUtilsMessengerCreateInfoEXT-sType-sTypeYNoneimplicitVkDebugUtilsMessengerCreateInfoEXT(VK_EXT_debug_utils)sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT
VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02589YNoneexplicitVkDebugUtilsObjectNameInfoEXT(VK_EXT_debug_utils)If objectType is VK_OBJECT_TYPE_UNKNOWN, objectHandle must not be VK_NULL_HANDLE
VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02590YDebugUtilsNameTestexplicitVkDebugUtilsObjectNameInfoEXT(VK_EXT_debug_utils)If 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-parameterYNoneimplicitVkDebugUtilsObjectNameInfoEXT(VK_EXT_debug_utils)objectType must be a valid VkObjectType value
VUID-VkDebugUtilsObjectNameInfoEXT-pObjectName-parameterNNoneimplicitVkDebugUtilsObjectNameInfoEXT(VK_EXT_debug_utils)If pObjectName is not NULL, pObjectName must be a null-terminated UTF-8 string
VUID-VkDebugUtilsObjectNameInfoEXT-sType-sTypeYNoneimplicitVkDebugUtilsObjectNameInfoEXT(VK_EXT_debug_utils)sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT
VUID-VkDebugUtilsObjectTagInfoEXT-objectHandle-01910YNoneexplicitVkDebugUtilsObjectTagInfoEXT(VK_EXT_debug_utils)objectHandle 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-01908YNoneexplicitVkDebugUtilsObjectTagInfoEXT(VK_EXT_debug_utils)objectType must not be VK_OBJECT_TYPE_UNKNOWN
VUID-VkDebugUtilsObjectTagInfoEXT-objectType-parameterYNoneimplicitVkDebugUtilsObjectTagInfoEXT(VK_EXT_debug_utils)objectType must be a valid VkObjectType value
VUID-VkDebugUtilsObjectTagInfoEXT-pNext-pNextYNoneimplicitVkDebugUtilsObjectTagInfoEXT(VK_EXT_debug_utils)pNext must be NULL
VUID-VkDebugUtilsObjectTagInfoEXT-pTag-parameterYNoneimplicitVkDebugUtilsObjectTagInfoEXT(VK_EXT_debug_utils)pTag must be a valid pointer to an array of tagSize bytes
VUID-VkDebugUtilsObjectTagInfoEXT-sType-sTypeYNoneimplicitVkDebugUtilsObjectTagInfoEXT(VK_EXT_debug_utils)sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT
VUID-VkDebugUtilsObjectTagInfoEXT-tagSize-arraylengthYNoneimplicitVkDebugUtilsObjectTagInfoEXT(VK_EXT_debug_utils)tagSize must be greater than 0
VUID-VkDecompressMemoryRegionNV-decompressedSize-07689NNoneexplicitVkDecompressMemoryRegionNV(VK_NV_memory_decompression)The decompressedSize must be large enough to hold the decompressed data based on the decompressionMethod
VUID-VkDecompressMemoryRegionNV-decompressionMethod-07690NNoneexplicitVkDecompressMemoryRegionNV(VK_NV_memory_decompression)The decompressionMethod must have a single bit set
VUID-VkDecompressMemoryRegionNV-decompressionMethod-parameterYNoneimplicitVkDecompressMemoryRegionNV(VK_NV_memory_decompression)decompressionMethod must be a valid combination of VkMemoryDecompressionMethodFlagBitsNV values
VUID-VkDecompressMemoryRegionNV-decompressionMethod-requiredbitmaskYNoneimplicitVkDecompressMemoryRegionNV(VK_NV_memory_decompression)decompressionMethod must not be 0
VUID-VkDecompressMemoryRegionNV-dstAddress-07687NNoneexplicitVkDecompressMemoryRegionNV(VK_NV_memory_decompression)The dstAddress must be 4 byte aligned
VUID-VkDecompressMemoryRegionNV-dstAddress-07688NNoneexplicitVkDecompressMemoryRegionNV(VK_NV_memory_decompression)The memory in range dstAddress and dstAddress + decompressedSize must be valid and bound to a VkDeviceMemory object
VUID-VkDecompressMemoryRegionNV-srcAddress-07685NNoneexplicitVkDecompressMemoryRegionNV(VK_NV_memory_decompression)The srcAddress must be 4 byte aligned
VUID-VkDecompressMemoryRegionNV-srcAddress-07686NNoneexplicitVkDecompressMemoryRegionNV(VK_NV_memory_decompression)The memory in range srcAddress and srcAddress + compressedSize must be valid and bound to a VkDeviceMemory object
VUID-VkDecompressMemoryRegionNV-srcAddress-07691NNoneexplicitVkDecompressMemoryRegionNV(VK_NV_memory_decompression)The srcAddress to srcAddress + compressedSize region must not overlap with the dstAddress and dstAddress + decompressedSize region
VUID-VkDedicatedAllocationBufferCreateInfoNV-sType-sTypeYNoneimplicitVkDedicatedAllocationBufferCreateInfoNV(VK_NV_dedicated_allocation)sType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV
VUID-VkDedicatedAllocationImageCreateInfoNV-dedicatedAllocation-00994NNoneexplicitVkDedicatedAllocationImageCreateInfoNV(VK_NV_dedicated_allocation)If 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-sTypeYNoneimplicitVkDedicatedAllocationImageCreateInfoNV(VK_NV_dedicated_allocation)sType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00651NNoneexplicitVkDedicatedAllocationMemoryAllocateInfoNV(VK_NV_dedicated_allocation)If buffer is not VK_NULL_HANDLE, the buffer must have been created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00653NNoneexplicitVkDedicatedAllocationMemoryAllocateInfoNV(VK_NV_dedicated_allocation)If buffer is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the buffer
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00655NNoneexplicitVkDedicatedAllocationMemoryAllocateInfoNV(VK_NV_dedicated_allocation)+(VK_KHR_external_memory_win32,VK_KHR_external_memory_fd)If 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-parameterNNoneimplicitVkDedicatedAllocationMemoryAllocateInfoNV(VK_NV_dedicated_allocation)If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-commonparentNNoneimplicitVkDedicatedAllocationMemoryAllocateInfoNV(VK_NV_dedicated_allocation)Both 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-00649NNoneexplicitVkDedicatedAllocationMemoryAllocateInfoNV(VK_NV_dedicated_allocation)At least one of image and buffer must be VK_NULL_HANDLE
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00650NNoneexplicitVkDedicatedAllocationMemoryAllocateInfoNV(VK_NV_dedicated_allocation)If image is not VK_NULL_HANDLE, the image must have been created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00652NNoneexplicitVkDedicatedAllocationMemoryAllocateInfoNV(VK_NV_dedicated_allocation)If image is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the image
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00654NNoneexplicitVkDedicatedAllocationMemoryAllocateInfoNV(VK_NV_dedicated_allocation)+(VK_KHR_external_memory_win32,VK_KHR_external_memory_fd)If 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-parameterNNoneimplicitVkDedicatedAllocationMemoryAllocateInfoNV(VK_NV_dedicated_allocation)If image is not VK_NULL_HANDLE, image must be a valid VkImage handle
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-sType-sTypeYNoneimplicitVkDedicatedAllocationMemoryAllocateInfoNV(VK_NV_dedicated_allocation)sType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV
VUID-VkDependencyInfo-dependencyFlags-parameterYNoneimplicitVkDependencyInfo(VK_VERSION_1_3,VK_KHR_synchronization2)dependencyFlags must be a valid combination of VkDependencyFlagBits values
VUID-VkDependencyInfo-pBufferMemoryBarriers-parameterYNoneimplicitVkDependencyInfo(VK_VERSION_1_3,VK_KHR_synchronization2)If bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier2 structures
VUID-VkDependencyInfo-pImageMemoryBarriers-parameterYNoneimplicitVkDependencyInfo(VK_VERSION_1_3,VK_KHR_synchronization2)If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier2 structures
VUID-VkDependencyInfo-pMemoryBarriers-parameterYNoneimplicitVkDependencyInfo(VK_VERSION_1_3,VK_KHR_synchronization2)If memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier2 structures
VUID-VkDependencyInfo-pNext-pNextYNoneimplicitVkDependencyInfo(VK_VERSION_1_3,VK_KHR_synchronization2)pNext must be NULL
VUID-VkDependencyInfo-sType-sTypeYNoneimplicitVkDependencyInfo(VK_VERSION_1_3,VK_KHR_synchronization2)sType must be VK_STRUCTURE_TYPE_DEPENDENCY_INFO
VUID-VkDescriptorAddressInfoEXT-None-08044YDescriptorBufferVariousexplicitVkDescriptorAddressInfoEXT(VK_EXT_descriptor_buffer)If address is not zero, address must be a valid device address at an offset within a VkBuffer
VUID-VkDescriptorAddressInfoEXT-address-08043YDescriptorBufferDescriptorGetInfoexplicitVkDescriptorAddressInfoEXT(VK_EXT_descriptor_buffer)+(VK_EXT_robustness2)If the nullDescriptor feature is not enabled, address must not be zero
VUID-VkDescriptorAddressInfoEXT-format-parameterNNoneimplicitVkDescriptorAddressInfoEXT(VK_EXT_descriptor_buffer)format must be a valid VkFormat value
VUID-VkDescriptorAddressInfoEXT-pNext-pNextNNoneimplicitVkDescriptorAddressInfoEXT(VK_EXT_descriptor_buffer)pNext must be NULL
VUID-VkDescriptorAddressInfoEXT-range-08045YDescriptorBufferDescriptorGetInfoexplicitVkDescriptorAddressInfoEXT(VK_EXT_descriptor_buffer)range 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-08046YDescriptorBufferDescriptorGetInfoexplicitVkDescriptorAddressInfoEXT(VK_EXT_descriptor_buffer)range must not be VK_WHOLE_SIZE
VUID-VkDescriptorAddressInfoEXT-sType-sTypeNNoneimplicitVkDescriptorAddressInfoEXT(VK_EXT_descriptor_buffer)sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT
VUID-VkDescriptorBufferBindingInfoEXT-address-08057YDescriptorBufferBindingAndOffsetsexplicitVkDescriptorBufferBindingInfoEXT(VK_EXT_descriptor_buffer)address must be aligned to VkPhysicalDeviceDescriptorBufferPropertiesEXT::descriptorBufferOffsetAlignment
VUID-VkDescriptorBufferBindingInfoEXT-bufferlessPushDescriptors-08056YDescriptorBufferBindingAndOffsetsexplicitVkDescriptorBufferBindingInfoEXT(VK_EXT_descriptor_buffer)If 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-pNextYNoneimplicitVkDescriptorBufferBindingInfoEXT(VK_EXT_descriptor_buffer)pNext must be NULL or a pointer to a valid instance of VkDescriptorBufferBindingPushDescriptorBufferHandleEXT
VUID-VkDescriptorBufferBindingInfoEXT-sType-sTypeYNoneimplicitVkDescriptorBufferBindingInfoEXT(VK_EXT_descriptor_buffer)sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT
VUID-VkDescriptorBufferBindingInfoEXT-sType-uniqueYNoneimplicitVkDescriptorBufferBindingInfoEXT(VK_EXT_descriptor_buffer)The sType value of each struct in the pNext chain must be unique
VUID-VkDescriptorBufferBindingInfoEXT-usage-08122YDescriptorBufferBindingAndOffsetsexplicitVkDescriptorBufferBindingInfoEXT(VK_EXT_descriptor_buffer)If 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-08123YDescriptorBufferBindingAndOffsetsexplicitVkDescriptorBufferBindingInfoEXT(VK_EXT_descriptor_buffer)If 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-08124YDescriptorBufferBindingAndOffsetsexplicitVkDescriptorBufferBindingInfoEXT(VK_EXT_descriptor_buffer)+(VK_KHR_push_descriptor)If 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-VkDescriptorBufferBindingInfoEXT-usage-parameterYNoneimplicitVkDescriptorBufferBindingInfoEXT(VK_EXT_descriptor_buffer)usage must be a valid combination of VkBufferUsageFlagBits values
VUID-VkDescriptorBufferBindingInfoEXT-usage-requiredbitmaskYNoneimplicitVkDescriptorBufferBindingInfoEXT(VK_EXT_descriptor_buffer)usage must not be 0
VUID-VkDescriptorBufferBindingPushDescriptorBufferHandleEXT-buffer-parameterNNoneimplicitVkDescriptorBufferBindingPushDescriptorBufferHandleEXT(VK_EXT_descriptor_buffer)buffer must be a valid VkBuffer handle
VUID-VkDescriptorBufferBindingPushDescriptorBufferHandleEXT-bufferlessPushDescriptors-08059YDescriptorBufferBindingAndOffsetsexplicitVkDescriptorBufferBindingPushDescriptorBufferHandleEXT(VK_EXT_descriptor_buffer)VkPhysicalDeviceDescriptorBufferPropertiesEXT::bufferlessPushDescriptors must be VK_FALSE
VUID-VkDescriptorBufferBindingPushDescriptorBufferHandleEXT-sType-sTypeYNoneimplicitVkDescriptorBufferBindingPushDescriptorBufferHandleEXT(VK_EXT_descriptor_buffer)sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT
VUID-VkDescriptorBufferInfo-buffer-02998YDynamicOffsetWithNullBuffer, NullDescriptorsDisabledexplicitVkDescriptorBufferInfocoreIf the nullDescriptor feature is not enabled, buffer must not be VK_NULL_HANDLE
VUID-VkDescriptorBufferInfo-buffer-02999YNullDescriptorsEnabledexplicitVkDescriptorBufferInfo(VK_EXT_robustness2)If buffer is VK_NULL_HANDLE, offset must be zero and range must be VK_WHOLE_SIZE
VUID-VkDescriptorBufferInfo-buffer-parameterYNoneimplicitVkDescriptorBufferInfocoreIf buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle
VUID-VkDescriptorBufferInfo-offset-00340YDSBufferInfoErrorsexplicitVkDescriptorBufferInfocoreoffset must be less than the size of buffer
VUID-VkDescriptorBufferInfo-range-00341YDSBufferInfoErrorsexplicitVkDescriptorBufferInfocoreIf range is not equal to VK_WHOLE_SIZE, range must be greater than 0
VUID-VkDescriptorBufferInfo-range-00342YDSBufferInfoErrorsexplicitVkDescriptorBufferInfocoreIf 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-08030YDescriptorBufferDescriptorGetInfoexplicitVkDescriptorDataEXT(VK_EXT_descriptor_buffer)+(VK_EXT_robustness2)If 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-08031YDescriptorBufferDescriptorGetInfoexplicitVkDescriptorDataEXT(VK_EXT_descriptor_buffer)+(VK_EXT_robustness2)If 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-08032YDescriptorBufferDescriptorGetInfoexplicitVkDescriptorDataEXT(VK_EXT_descriptor_buffer)+(VK_EXT_robustness2)If 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-08033YDescriptorBufferDescriptorGetInfoexplicitVkDescriptorDataEXT(VK_EXT_descriptor_buffer)+(VK_EXT_robustness2)If 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-08034YDescriptorBufferDescriptorGetInfoexplicitVkDescriptorDataEXT(VK_EXT_descriptor_buffer)+(VK_EXT_robustness2)+(VK_EXT_robustness2)If 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-08035YDescriptorBufferDescriptorGetInfoexplicitVkDescriptorDataEXT(VK_EXT_descriptor_buffer)+(VK_EXT_robustness2)+(VK_EXT_robustness2)If 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-08036YDescriptorBufferDescriptorGetInfoexplicitVkDescriptorDataEXT(VK_EXT_descriptor_buffer)+(VK_EXT_robustness2)+(VK_EXT_robustness2)If 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-08037YDescriptorBufferDescriptorGetInfoexplicitVkDescriptorDataEXT(VK_EXT_descriptor_buffer)+(VK_EXT_robustness2)+(VK_EXT_robustness2)If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, and the nullDescriptor feature is not enabled, pUniformTexelBuffer must not be NULL
VUID-VkDescriptorDataEXT-type-08038YDescriptorBufferDescriptorGetInfoexplicitVkDescriptorDataEXT(VK_EXT_descriptor_buffer)+(VK_EXT_robustness2)+(VK_EXT_robustness2)If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, and the nullDescriptor feature is not enabled, pStorageTexelBuffer must not be NULL
VUID-VkDescriptorDataEXT-type-08039YDescriptorBufferDescriptorGetInfoexplicitVkDescriptorDataEXT(VK_EXT_descriptor_buffer)+(VK_EXT_robustness2)+(VK_EXT_robustness2)If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, and the nullDescriptor feature is not enabled, pUniformBuffer must not be NULL
VUID-VkDescriptorDataEXT-type-08040YDescriptorBufferDescriptorGetInfoexplicitVkDescriptorDataEXT(VK_EXT_descriptor_buffer)+(VK_EXT_robustness2)+(VK_EXT_robustness2)If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, and the nullDescriptor feature is not enabled, pStorageBuffer must not be NULL
VUID-VkDescriptorDataEXT-type-08041YDescriptorBufferDescriptorGetInfoexplicitVkDescriptorDataEXT(VK_EXT_descriptor_buffer)+(VK_EXT_robustness2)+(VK_EXT_robustness2)+(VK_KHR_acceleration_structure)If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, and the nullDescriptor feature is not enabled, accelerationStructure must not be 0
VUID-VkDescriptorDataEXT-type-08042YDescriptorBufferDescriptorGetInfoexplicitVkDescriptorDataEXT(VK_EXT_descriptor_buffer)+(VK_EXT_robustness2)+(VK_EXT_robustness2)+(VK_NV_ray_tracing)If VkDescriptorGetInfoEXT:type is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, and the nullDescriptor feature is not enabled, accelerationStructure must not be 0
VUID-VkDescriptorGetInfoEXT-pCombinedImageSampler-parameterNNoneimplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)If 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-parameterNNoneimplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)If 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-pNextYNoneimplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)pNext must be NULL
VUID-VkDescriptorGetInfoEXT-pSampledImage-parameterNNoneimplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)If 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-parameterNNoneimplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)If type is VK_DESCRIPTOR_TYPE_SAMPLER, the pSampler member of data must be a valid pointer to a valid VkSampler handle
VUID-VkDescriptorGetInfoEXT-pStorageBuffer-parameterNNoneimplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)If 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-parameterNNoneimplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)If 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-parameterNNoneimplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)If 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-parameterNNoneimplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)If 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-parameterNNoneimplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)If 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-sTypeYNoneimplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT
VUID-VkDescriptorGetInfoEXT-type-08018YDescriptorBufferDescriptorGetInfoexplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)type must not be VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
VUID-VkDescriptorGetInfoEXT-type-08019YDescriptorBufferVariousexplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)If type is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the pCombinedImageSampler->sampler member of data must be a VkSampler created on device
VUID-VkDescriptorGetInfoEXT-type-08020YDescriptorBufferVariousexplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)If 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-08021YDescriptorBufferVariousexplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)If type is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the pInputAttachmentImage->imageView member of data must be a VkImageView created on device
VUID-VkDescriptorGetInfoEXT-type-08022YDescriptorBufferVariousexplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)If 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-08023YDescriptorBufferVariousexplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)If 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-08024YDescriptorBufferVariousexplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)If 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-08025YDescriptorBufferVariousexplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)If 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-08026YDescriptorBufferVariousexplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)If 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-08027YDescriptorBufferVariousexplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)If 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-08028NNoneexplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)+(VK_KHR_acceleration_structure)If 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-08029YDescriptorBufferVariousexplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)+(VK_NV_ray_tracing)If 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-parameterYNoneimplicitVkDescriptorGetInfoEXT(VK_EXT_descriptor_buffer)type must be a valid VkDescriptorType value
VUID-VkDescriptorImageInfo-commonparentYNoneimplicitVkDescriptorImageInfocoreBoth 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-06713YImage2DViewOf3DFeatureexplicitVkDescriptorImageInfo(VK_VERSION_1_1,VK_KHR_maintenance1)+(VK_EXT_image_2d_view_of_3d)If the image2DViewOf3D feature is not enabled and descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE then imageView must not be a 2D view created from a 3D image
VUID-VkDescriptorImageInfo-descriptorType-06714YImage2DViewOf3DFeatureexplicitVkDescriptorImageInfo(VK_VERSION_1_1,VK_KHR_maintenance1)+(VK_EXT_image_2d_view_of_3d)If the sampler2DViewOf3D feature is not enabled and descriptorType is 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-00344YImageDescriptorLayoutMismatch, InvalidPushDescriptorImageLayoutexplicitVkDescriptorImageInfocoreimageLayout 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-imageView-01976YDSAspectBitsErrorsexplicitVkDescriptorImageInfocoreIf 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-06711YMaint1BindingSliceOf3DImageexplicitVkDescriptorImageInfo(VK_VERSION_1_1,VK_KHR_maintenance1)+!(VK_EXT_image_2d_view_of_3d)imageView must not be 2D image view created from a 3D image
VUID-VkDescriptorImageInfo-imageView-06712YImage2DViewOf3DexplicitVkDescriptorImageInfo(VK_VERSION_1_1,VK_KHR_maintenance1)imageView must not be a 2D array image view created from a 3D image
VUID-VkDescriptorImageInfo-mutableComparisonSamplers-04450YInvalidDepthStencilStateForReadOnlyLayoutexplicitVkDescriptorImageInfo(VK_KHR_portability_subset)If 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-01564YNoneexplicitVkDescriptorImageInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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 VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT or (for three-plane formats only) VK_IMAGE_ASPECT_PLANE_2_BIT
VUID-VkDescriptorPoolCreateInfo-flags-04607YInvalidCreateDescriptorPoolFlagsexplicitVkDescriptorPoolCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If 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-04609YMissingMutableDescriptorTypeFeatureexplicitVkDescriptorPoolCreateInfo(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If flags has the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT bit set, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT::mutableDescriptorType must be enabled
VUID-VkDescriptorPoolCreateInfo-flags-parameterYNoneimplicitVkDescriptorPoolCreateInfocoreflags must be a valid combination of VkDescriptorPoolCreateFlagBits values
VUID-VkDescriptorPoolCreateInfo-maxSets-00301YInvalidCreateDescriptorPoolexplicitVkDescriptorPoolCreateInfocoremaxSets must be greater than 0
VUID-VkDescriptorPoolCreateInfo-mutableDescriptorType-04608YMissingMutableDescriptorTypeFeatureexplicitVkDescriptorPoolCreateInfo(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT::mutableDescriptorType is not enabled, pPoolSizes must not contain a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_EXT
VUID-VkDescriptorPoolCreateInfo-pNext-pNextYNoneimplicitVkDescriptorPoolCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDescriptorPoolInlineUniformBlockCreateInfo or VkMutableDescriptorTypeCreateInfoEXT
VUID-VkDescriptorPoolCreateInfo-pPoolSizes-04787YMutableDescriptorPoolsWithPartialOverlapexplicitVkDescriptorPoolCreateInfo(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If 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-parameterYNoneimplicitVkDescriptorPoolCreateInfocoreIf poolSizeCount is not 0, pPoolSizes must be a valid pointer to an array of poolSizeCount valid VkDescriptorPoolSize structures
VUID-VkDescriptorPoolCreateInfo-sType-sTypeYNoneimplicitVkDescriptorPoolCreateInfocoresType must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
VUID-VkDescriptorPoolCreateInfo-sType-uniqueYNoneimplicitVkDescriptorPoolCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkDescriptorPoolInlineUniformBlockCreateInfo-sType-sTypeYNoneimplicitVkDescriptorPoolInlineUniformBlockCreateInfo(VK_VERSION_1_3,VK_EXT_inline_uniform_block)sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO
VUID-VkDescriptorPoolSize-descriptorCount-00302YInvalidCreateDescriptorPoolexplicitVkDescriptorPoolSizecoredescriptorCount must be greater than 0
VUID-VkDescriptorPoolSize-type-02218YInlineUniformBlockEXTexplicitVkDescriptorPoolSize(VK_VERSION_1_3,VK_EXT_inline_uniform_block)If type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK then descriptorCount must be a multiple of 4
VUID-VkDescriptorPoolSize-type-parameterYNoneimplicitVkDescriptorPoolSizecoretype must be a valid VkDescriptorType value
VUID-VkDescriptorSetAllocateInfo-commonparentYNoneimplicitVkDescriptorSetAllocateInfocoreBoth of descriptorPool, and the elements of pSetLayouts must have been created, allocated, or retrieved from the same VkDevice
VUID-VkDescriptorSetAllocateInfo-descriptorPool-00307YAllocDescriptorFromEmptyPoolexplicitVkDescriptorSetAllocateInfo!(VK_VERSION_1_1,VK_KHR_maintenance1)descriptorPool must have enough free descriptor capacity remaining to allocate the descriptor sets of the specified layouts
VUID-VkDescriptorSetAllocateInfo-descriptorPool-parameterYNoneimplicitVkDescriptorSetAllocateInfocoredescriptorPool must be a valid VkDescriptorPool handle
VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-00306YAllocDescriptorFromEmptyPoolexplicitVkDescriptorSetAllocateInfo!(VK_VERSION_1_1,VK_KHR_maintenance1)descriptorSetCount must not be greater than the number of sets that are currently available for allocation in descriptorPool
VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-arraylengthNNoneimplicitVkDescriptorSetAllocateInfocoredescriptorSetCount must be greater than 0
VUID-VkDescriptorSetAllocateInfo-pNext-pNextYNoneimplicitVkDescriptorSetAllocateInfocorepNext must be NULL or a pointer to a valid instance of VkDescriptorSetVariableDescriptorCountAllocateInfo
VUID-VkDescriptorSetAllocateInfo-pSetLayouts-00308YAllocatePushDescriptorSetexplicitVkDescriptorSetAllocateInfo(VK_KHR_push_descriptor)Each element of pSetLayouts must not have been created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set
VUID-VkDescriptorSetAllocateInfo-pSetLayouts-03044YDescriptorIndexingSetLayoutexplicitVkDescriptorSetAllocateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If 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-04610YInvalidCreateDescriptorPoolAllocateFlagsexplicitVkDescriptorSetAllocateInfo(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If 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-08009YDescriptorBufferSetLayoutexplicitVkDescriptorSetAllocateInfo(VK_EXT_descriptor_buffer)Each element of pSetLayouts must not have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT bit set
VUID-VkDescriptorSetAllocateInfo-pSetLayouts-parameterYNoneimplicitVkDescriptorSetAllocateInfocorepSetLayouts must be a valid pointer to an array of descriptorSetCount valid VkDescriptorSetLayout handles
VUID-VkDescriptorSetAllocateInfo-sType-sTypeYNoneimplicitVkDescriptorSetAllocateInfocoresType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
VUID-VkDescriptorSetAllocateInfo-sType-uniqueYNoneimplicitVkDescriptorSetAllocateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkDescriptorSetBindingReferenceVALVE-descriptorSetLayout-parameterYNoneimplicitVkDescriptorSetBindingReferenceVALVE(VK_VALVE_descriptor_set_host_mapping)descriptorSetLayout must be a valid VkDescriptorSetLayout handle
VUID-VkDescriptorSetBindingReferenceVALVE-pNext-pNextYNoneimplicitVkDescriptorSetBindingReferenceVALVE(VK_VALVE_descriptor_set_host_mapping)pNext must be NULL
VUID-VkDescriptorSetBindingReferenceVALVE-sType-sTypeYNoneimplicitVkDescriptorSetBindingReferenceVALVE(VK_VALVE_descriptor_set_host_mapping)sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE
VUID-VkDescriptorSetLayoutBinding-descriptorCount-00283YNoneexplicitVkDescriptorSetLayoutBindingcoreIf descriptorCount is not 0, stageFlags must be a valid combination of VkShaderStageFlagBits values
VUID-VkDescriptorSetLayoutBinding-descriptorType-00282YNoneexplicitVkDescriptorSetLayoutBindingcoreIf 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-01510YDescriptorSetLayoutMiscexplicitVkDescriptorSetLayoutBindingcoreIf 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-02209YInlineUniformBlockEXTexplicitVkDescriptorSetLayoutBinding(VK_VERSION_1_3,VK_EXT_inline_uniform_block)If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK then descriptorCount must be a multiple of 4
VUID-VkDescriptorSetLayoutBinding-descriptorType-02210NNoneexplicitVkDescriptorSetLayoutBinding(VK_VERSION_1_3,VK_EXT_inline_uniform_block)+!(VK_EXT_descriptor_buffer)If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK then descriptorCount must be less than or equal to VkPhysicalDeviceInlineUniformBlockProperties::maxInlineUniformBlockSize
VUID-VkDescriptorSetLayoutBinding-descriptorType-04604YInlineUniformBlockEXTFeatureexplicitVkDescriptorSetLayoutBinding(VK_VERSION_1_3,VK_EXT_inline_uniform_block)If the inlineUniformBlock feature is not enabled, descriptorType must not be VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
VUID-VkDescriptorSetLayoutBinding-descriptorType-04605YInvalidDescriptorSetLayoutBindingexplicitVkDescriptorSetLayoutBinding(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If descriptorType is VK_DESCRIPTOR_TYPE_MUTABLE_EXT, then pImmutableSamplers must be NULL
VUID-VkDescriptorSetLayoutBinding-descriptorType-08004YDescriptorBufferSetLayout, InlineUniformBlockEXTexplicitVkDescriptorSetLayoutBinding(VK_VERSION_1_3,VK_EXT_inline_uniform_block)+(VK_EXT_descriptor_buffer)If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT and VkDescriptorSetLayoutCreateInfo::flags does not contain VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT then descriptorCount must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxInlineUniformBlockSize
VUID-VkDescriptorSetLayoutBinding-descriptorType-parameterYNoneimplicitVkDescriptorSetLayoutBindingcoredescriptorType must be a valid VkDescriptorType value
VUID-VkDescriptorSetLayoutBinding-flags-08005YDescriptorBufferSetLayoutexplicitVkDescriptorSetLayoutBinding(VK_VERSION_1_3,VK_EXT_inline_uniform_block)+(VK_EXT_descriptor_buffer)If VkDescriptorSetLayoutCreateInfo::flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT, descriptorType must be VK_DESCRIPTOR_TYPE_SAMPLER
VUID-VkDescriptorSetLayoutBinding-flags-08006YDescriptorBufferSetLayoutexplicitVkDescriptorSetLayoutBinding(VK_VERSION_1_3,VK_EXT_inline_uniform_block)+(VK_EXT_descriptor_buffer)If VkDescriptorSetLayoutCreateInfo::flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT, descriptorCount must less than or equal to 1
VUID-VkDescriptorSetLayoutBinding-flags-08007YDescriptorBufferSetLayoutexplicitVkDescriptorSetLayoutBinding(VK_VERSION_1_3,VK_EXT_inline_uniform_block)+(VK_EXT_descriptor_buffer)If 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-pImmutableSamplers-04009YCustomBorderColorexplicitVkDescriptorSetLayoutBinding(VK_EXT_custom_border_color)The 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-03011YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)All 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-03002YDescriptorIndexingSetLayoutexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If bindingCount is not zero, bindingCount must equal VkDescriptorSetLayoutCreateInfo::bindingCount
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingAccelerationStructureUpdateAfterBind-03570YRayTracingValidateDescriptorBindingUpdateAfterBindWithAccelerationStructureexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_KHR_acceleration_structure)If 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-02211YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)If 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-03013YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingPartiallyBound is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingSampledImageUpdateAfterBind-03006YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If 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-03008YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If 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-03007YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If 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-03010YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If 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-03005YDescriptorIndexingSetLayoutexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If 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-03009YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If 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-03012YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUpdateUnusedWhilePending is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingVariableDescriptorCount-03014YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingVariableDescriptorCount is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-flags-03003YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_KHR_push_descriptor)If 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-03004YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If an element of pBindingFlags includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, then all other elements of VkDescriptorSetLayoutCreateInfo::pBindings must have a smaller value of binding
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-03015YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If 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-parameterNNoneimplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If bindingCount is not 0, pBindingFlags must be a valid pointer to an array of bindingCount valid combinations of VkDescriptorBindingFlagBits values
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-sType-sTypeYNoneimplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO
VUID-VkDescriptorSetLayoutCreateInfo-binding-00279YDuplicateDescriptorBindingexplicitVkDescriptorSetLayoutCreateInfocoreThe VkDescriptorSetLayoutBinding::binding members of the elements of the pBindings array must each have different values
VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-03001YInvalidDescriptorSetLayoutBindingsexplicitVkDescriptorSetLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If 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-04594YMutableDescriptorSetLayout, InvalidDescriptorSetLayoutBindingexplicitVkDescriptorSetLayoutCreateInfo(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If a binding has a descriptorType value of VK_DESCRIPTOR_TYPE_MUTABLE_EXT, then pImmutableSamplers must be NULL
VUID-VkDescriptorSetLayoutCreateInfo-flags-00280YInvalidPushDescriptorSetLayoutexplicitVkDescriptorSetLayoutCreateInfo(VK_KHR_push_descriptor)If 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-00281YInvalidPushDescriptorSetLayoutexplicitVkDescriptorSetLayoutCreateInfo(VK_KHR_push_descriptor)If 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-02208YNoneexplicitVkDescriptorSetLayoutCreateInfo(VK_KHR_push_descriptor)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)If 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-03000YDescriptorIndexingSetLayoutexplicitVkDescriptorSetLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If 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-04590YMutableDescriptorSetLayoutexplicitVkDescriptorSetLayoutCreateInfo(VK_KHR_push_descriptor)+(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If 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-04591YMutableDescriptorSetLayoutexplicitVkDescriptorSetLayoutCreateInfo(VK_KHR_push_descriptor)+(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If 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-04592YMutableDescriptorSetLayoutexplicitVkDescriptorSetLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If 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-04596YMutableDescriptorSetLayoutMissingFeatureexplicitVkDescriptorSetLayoutCreateInfo(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT::mutableDescriptorType must be enabled
VUID-VkDescriptorSetLayoutCreateInfo-flags-08000YDescriptorBufferSetLayoutexplicitVkDescriptorSetLayoutCreateInfo(VK_EXT_descriptor_buffer)If 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-08001YDescriptorBufferSetLayoutexplicitVkDescriptorSetLayoutCreateInfo(VK_EXT_descriptor_buffer)If 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-08002YDescriptorBufferSetLayoutexplicitVkDescriptorSetLayoutCreateInfo(VK_EXT_descriptor_buffer)+(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If 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-08003YDescriptorBufferSetLayoutexplicitVkDescriptorSetLayoutCreateInfo(VK_EXT_descriptor_buffer)+(VK_VALVE_mutable_descriptor_type)If 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-parameterYNoneimplicitVkDescriptorSetLayoutCreateInfocoreflags must be a valid combination of VkDescriptorSetLayoutCreateFlagBits values
VUID-VkDescriptorSetLayoutCreateInfo-mutableDescriptorType-04595YMutableDescriptorSetLayoutMissingFeatureexplicitVkDescriptorSetLayoutCreateInfo(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT::mutableDescriptorType is not enabled, pBindings must not contain a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_EXT
VUID-VkDescriptorSetLayoutCreateInfo-pBindings-07303YMutableDescriptorSetLayoutexplicitVkDescriptorSetLayoutCreateInfo(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If any element pBindings[i] has a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_EXT, then a VkMutableDescriptorTypeCreateInfoEXT must be present in the pNext chain, and mutableDescriptorTypeListCount must be greater than i
VUID-VkDescriptorSetLayoutCreateInfo-pBindings-parameterYNoneimplicitVkDescriptorSetLayoutCreateInfocoreIf bindingCount is not 0, pBindings must be a valid pointer to an array of bindingCount valid VkDescriptorSetLayoutBinding structures
VUID-VkDescriptorSetLayoutCreateInfo-pNext-pNextYMutableDescriptorSetLayoutMissingFeatureimplicitVkDescriptorSetLayoutCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDescriptorSetLayoutBindingFlagsCreateInfo or VkMutableDescriptorTypeCreateInfoEXT
VUID-VkDescriptorSetLayoutCreateInfo-sType-sTypeYNoneimplicitVkDescriptorSetLayoutCreateInfocoresType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
VUID-VkDescriptorSetLayoutCreateInfo-sType-uniqueYNoneimplicitVkDescriptorSetLayoutCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkDescriptorSetLayoutHostMappingInfoVALVE-pNext-pNextNNoneimplicitVkDescriptorSetLayoutHostMappingInfoVALVE(VK_VALVE_descriptor_set_host_mapping)pNext must be NULL
VUID-VkDescriptorSetLayoutHostMappingInfoVALVE-sType-sTypeYNoneimplicitVkDescriptorSetLayoutHostMappingInfoVALVE(VK_VALVE_descriptor_set_host_mapping)sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE
VUID-VkDescriptorSetLayoutSupport-pNext-pNextYNoneimplicitVkDescriptorSetLayoutSupport(VK_VERSION_1_1,VK_KHR_maintenance3)pNext must be NULL or a pointer to a valid instance of VkDescriptorSetVariableDescriptorCountLayoutSupport
VUID-VkDescriptorSetLayoutSupport-sType-sTypeYNoneimplicitVkDescriptorSetLayoutSupport(VK_VERSION_1_1,VK_KHR_maintenance3)sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT
VUID-VkDescriptorSetLayoutSupport-sType-uniqueYNoneimplicitVkDescriptorSetLayoutSupport(VK_VERSION_1_1,VK_KHR_maintenance3)The sType value of each struct in the pNext chain must be unique
VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-descriptorSetCount-03045YNoneexplicitVkDescriptorSetVariableDescriptorCountAllocateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If descriptorSetCount is not zero, descriptorSetCount must equal VkDescriptorSetAllocateInfo::descriptorSetCount
VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-pDescriptorCounts-parameterYNoneimplicitVkDescriptorSetVariableDescriptorCountAllocateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If descriptorSetCount is not 0, pDescriptorCounts must be a valid pointer to an array of descriptorSetCount uint32_t values
VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-pSetLayouts-03046YDescriptorIndexingSetLayoutexplicitVkDescriptorSetVariableDescriptorCountAllocateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If VkDescriptorSetAllocateInfo::pSetLayouts[i] has a variable-sized descriptor binding, then pDescriptorCounts[i] must be less than or equal to the descriptor count specified for that binding when the descriptor set layout was created
VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-sType-sTypeYNoneimplicitVkDescriptorSetVariableDescriptorCountAllocateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO
VUID-VkDescriptorSetVariableDescriptorCountLayoutSupport-sType-sTypeYNoneimplicitVkDescriptorSetVariableDescriptorCountLayoutSupport(VK_VERSION_1_2,VK_EXT_descriptor_indexing)sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT
VUID-VkDescriptorUpdateTemplateCreateInfo-commonparentYNoneimplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)Both 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-arraylengthYNoneimplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)descriptorUpdateEntryCount must be greater than 0
VUID-VkDescriptorUpdateTemplateCreateInfo-flags-zerobitmaskYNoneimplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)flags must be 0
VUID-VkDescriptorUpdateTemplateCreateInfo-pDescriptorUpdateEntries-parameterYNoneimplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)pDescriptorUpdateEntries must be a valid pointer to an array of descriptorUpdateEntryCount valid VkDescriptorUpdateTemplateEntry structures
VUID-VkDescriptorUpdateTemplateCreateInfo-pNext-pNextYNoneimplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)pNext must be NULL
VUID-VkDescriptorUpdateTemplateCreateInfo-sType-sTypeYNoneimplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00350YCreateDescriptorUpdateTemplateexplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, descriptorSetLayout must be a valid VkDescriptorSetLayout handle
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00351YCreateDescriptorUpdateTemplateexplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_KHR_push_descriptor)If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, pipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00352YCreateDescriptorUpdateTemplateexplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_KHR_push_descriptor)If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, pipelineLayout must be a valid VkPipelineLayout handle
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00353YCreateDescriptorUpdateTemplateexplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_KHR_push_descriptor)If 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-04615YDescriptorUpdateTemplateexplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If 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-parameterYNoneimplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)templateType must be a valid VkDescriptorUpdateTemplateType value
VUID-VkDescriptorUpdateTemplateEntry-descriptor-02226YDescriptorUpdateTemplateEntryWithInlineUniformBlockexplicitVkDescriptorUpdateTemplateEntry(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)If descriptor type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, dstArrayElement must be an integer multiple of 4
VUID-VkDescriptorUpdateTemplateEntry-descriptor-02227YDescriptorUpdateTemplateEntryWithInlineUniformBlockexplicitVkDescriptorUpdateTemplateEntry(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)If descriptor type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, descriptorCount must be an integer multiple of 4
VUID-VkDescriptorUpdateTemplateEntry-descriptorType-parameterYNoneimplicitVkDescriptorUpdateTemplateEntry(VK_VERSION_1_1,VK_KHR_descriptor_update_template)descriptorType must be a valid VkDescriptorType value
VUID-VkDescriptorUpdateTemplateEntry-dstArrayElement-00355NNoneexplicitVkDescriptorUpdateTemplateEntry(VK_VERSION_1_1,VK_KHR_descriptor_update_template)dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding implicitly specified when using a descriptor update template to update descriptors, and all applicable consecutive bindings, as described by consecutive binding updates
VUID-VkDescriptorUpdateTemplateEntry-dstBinding-00354NNoneexplicitVkDescriptorUpdateTemplateEntry(VK_VERSION_1_1,VK_KHR_descriptor_update_template)dstBinding must be a valid binding in the descriptor set layout implicitly specified when using a descriptor update template to update descriptors
VUID-VkDeviceAddressBindingCallbackDataEXT-bindingType-parameterYNoneimplicitVkDeviceAddressBindingCallbackDataEXT(VK_EXT_debug_utils)+(VK_EXT_device_address_binding_report)bindingType must be a valid VkDeviceAddressBindingTypeEXT value
VUID-VkDeviceAddressBindingCallbackDataEXT-flags-parameterYNoneimplicitVkDeviceAddressBindingCallbackDataEXT(VK_EXT_debug_utils)+(VK_EXT_device_address_binding_report)flags must be a valid combination of VkDeviceAddressBindingFlagBitsEXT values
VUID-VkDeviceAddressBindingCallbackDataEXT-sType-sTypeYNoneimplicitVkDeviceAddressBindingCallbackDataEXT(VK_EXT_debug_utils)+(VK_EXT_device_address_binding_report)sType must be VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT
VUID-VkDeviceBufferMemoryRequirements-pCreateInfo-parameterYNoneimplicitVkDeviceBufferMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)pCreateInfo must be a valid pointer to a valid VkBufferCreateInfo structure
VUID-VkDeviceBufferMemoryRequirements-pNext-pNextYNoneimplicitVkDeviceBufferMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)pNext must be NULL
VUID-VkDeviceBufferMemoryRequirements-sType-sTypeYNoneimplicitVkDeviceBufferMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)sType must be VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS
VUID-VkDeviceCreateInfo-None-04896YInvalidCombinationOfDeviceFeaturesexplicitVkDeviceCreateInfo(VK_EXT_shader_image_atomic_int64)If sparseImageInt64Atomics is enabled, shaderImageInt64Atomics must be enabled
VUID-VkDeviceCreateInfo-None-04897YInvalidCombinationOfDeviceFeaturesexplicitVkDeviceCreateInfo(VK_EXT_shader_atomic_float)If sparseImageFloat32Atomics is enabled, shaderImageFloat32Atomics must be enabled
VUID-VkDeviceCreateInfo-None-04898YInvalidCombinationOfDeviceFeaturesexplicitVkDeviceCreateInfo(VK_EXT_shader_atomic_float)If sparseImageFloat32AtomicAdd is enabled, shaderImageFloat32AtomicAdd must be enabled
VUID-VkDeviceCreateInfo-None-08095YDescriptorBufferInvalidExtensionCombinationexplicitVkDeviceCreateInfo(VK_EXT_descriptor_buffer)+(VK_AMD_shader_fragment_mask)If descriptorBuffer is enabled, ppEnabledExtensionNames must not contain VK_AMD_shader_fragment_mask
VUID-VkDeviceCreateInfo-flags-zerobitmaskYNoneimplicitVkDeviceCreateInfocoreflags must be 0
VUID-VkDeviceCreateInfo-fragmentDensityMap-04481YInvalidFragmentShadingRateDeviceFeatureCombinationsexplicitVkDeviceCreateInfo(VK_KHR_fragment_shading_rate+VK_EXT_fragment_density_map)If the fragmentDensityMap feature is enabled, the pipelineFragmentShadingRate feature must not be enabled
VUID-VkDeviceCreateInfo-fragmentDensityMap-04482YInvalidFragmentShadingRateDeviceFeatureCombinationsexplicitVkDeviceCreateInfo(VK_KHR_fragment_shading_rate+VK_EXT_fragment_density_map)If the fragmentDensityMap feature is enabled, the primitiveFragmentShadingRate feature must not be enabled
VUID-VkDeviceCreateInfo-fragmentDensityMap-04483YInvalidFragmentShadingRateDeviceFeatureCombinationsexplicitVkDeviceCreateInfo(VK_KHR_fragment_shading_rate+VK_EXT_fragment_density_map)If the fragmentDensityMap feature is enabled, the attachmentFragmentShadingRate feature must not be enabled
VUID-VkDeviceCreateInfo-pEnabledFeatures-parameterNNoneimplicitVkDeviceCreateInfocoreIf pEnabledFeatures is not NULL, pEnabledFeatures must be a valid pointer to a valid VkPhysicalDeviceFeatures structure
VUID-VkDeviceCreateInfo-pNext-00373YNoneexplicitVkDeviceCreateInfo(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)If the pNext chain includes a VkPhysicalDeviceFeatures2 structure, then pEnabledFeatures must be NULL
VUID-VkDeviceCreateInfo-pNext-02829YFeatures12Features13AndpNextexplicitVkDeviceCreateInfo(VK_VERSION_1_2)If the pNext chain includes a VkPhysicalDeviceVulkan11Features structure, then it must not include a VkPhysicalDevice16BitStorageFeatures, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceSamplerYcbcrConversionFeatures, or VkPhysicalDeviceShaderDrawParametersFeatures structure
VUID-VkDeviceCreateInfo-pNext-02830YFeatures12Features13AndpNextexplicitVkDeviceCreateInfo(VK_VERSION_1_2)If 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-04748YFeatures12AndppEnabledExtensionNamesexplicitVkDeviceCreateInfo(VK_VERSION_1_2)+(VK_EXT_buffer_device_address)if 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-06532YFeatures12Features13AndpNextexplicitVkDeviceCreateInfo(VK_VERSION_1_3)If 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-pNextYRequiredPromotedFeaturesExtensions, DeviceFeature2AndVertexAttributeDivisorExtensionUnenabledimplicitVkDeviceCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceDeviceMemoryReportCreateInfoEXT, VkDeviceDiagnosticsConfigCreateInfoNV, VkDeviceGroupDeviceCreateInfo, VkDeviceMemoryOverallocationCreateInfoAMD, VkDevicePrivateDataCreateInfo, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceAccelerationStructureFeaturesKHR, VkPhysicalDeviceAddressBindingReportFeaturesEXT, VkPhysicalDeviceAmigoProfilingFeaturesSEC, VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceColorWriteEnableFeaturesEXT, VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDepthClampZeroOneFeaturesEXT, VkPhysicalDeviceDepthClipControlFeaturesEXT, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorBufferFeaturesEXT, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, VkPhysicalDeviceFaultFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, VkPhysicalDeviceImageCompressionControlFeaturesEXT, VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, VkPhysicalDeviceImageProcessingFeaturesQCOM, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceImageViewMinLodFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8FeaturesEXT, VkPhysicalDeviceInheritedViewportScissorFeaturesNV, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, VkPhysicalDeviceLegacyDitheringFeaturesEXT, VkPhysicalDeviceLineRasterizationFeaturesEXT, VkPhysicalDeviceLinearColorAttachmentFeaturesNV, VkPhysicalDeviceMaintenance4Features, VkPhysicalDeviceMemoryDecompressionFeaturesNV, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiDrawFeaturesEXT, VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT, VkPhysicalDeviceOpticalFlowFeaturesNV, VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, VkPhysicalDevicePerformanceQueryFeaturesKHR, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, VkPhysicalDevicePipelinePropertiesFeaturesEXT, VkPhysicalDevicePipelineProtectedAccessFeaturesEXT, VkPhysicalDevicePipelineRobustnessFeaturesEXT, VkPhysicalDevicePortabilitySubsetFeaturesKHR, VkPhysicalDevicePresentBarrierFeaturesNV, VkPhysicalDevicePresentIdFeaturesKHR, VkPhysicalDevicePresentWaitFeaturesKHR, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceProvokingVertexFeaturesEXT, VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, VkPhysicalDeviceRayQueryFeaturesKHR, VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV, VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, VkPhysicalDeviceRayTracingPipelineFeaturesKHR, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesEXT, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, VkPhysicalDeviceShaderImageFootprintFeaturesNV, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT, VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, VkPhysicalDeviceTilePropertiesFeaturesQCOM, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, VkPhysicalDeviceVulkan11Features, VkPhysicalDeviceVulkan12Features, VkPhysicalDeviceVulkan13Features, VkPhysicalDeviceVulkanMemoryModelFeatures, VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, or VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
VUID-VkDeviceCreateInfo-pProperties-04451YInvalidDepthStencilStateForReadOnlyLayoutexplicitVkDeviceCreateInfo(VK_KHR_portability_subset)If the VK_KHR_portability_subset extension is included in pProperties of vkEnumerateDeviceExtensionProperties, ppEnabledExtensionNames must include "VK_KHR_portability_subset"
VUID-VkDeviceCreateInfo-pQueueCreateInfos-06654YMismatchedDeviceQueueGlobalPriorityexplicitVkDeviceCreateInfo(VK_VERSION_1_1)+(VK_KHR_global_priority,VK_EXT_global_priority)If 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-06755NNoneexplicitVkDeviceCreateInfo(VK_VERSION_1_1)If multiple elements of pQueueCreateInfos share the same queueFamilyIndex, the sum of their queueCount members must be less than or equal to the queueCount member of the VkQueueFamilyProperties structure, as returned by vkGetPhysicalDeviceQueueFamilyProperties in the pQueueFamilyProperties[queueFamilyIndex]
VUID-VkDeviceCreateInfo-pQueueCreateInfos-parameterYNoneimplicitVkDeviceCreateInfocorepQueueCreateInfos must be a valid pointer to an array of queueCreateInfoCount valid VkDeviceQueueCreateInfo structures
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-00374YMaintenance1AndNegativeViewportexplicitVkDeviceCreateInfo(VK_AMD_negative_viewport_height)+!(VK_VERSION_1_1)+(VK_KHR_maintenance1)ppEnabledExtensionNames must not contain both VK_KHR_maintenance1 and VK_AMD_negative_viewport_height
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-01840YApiVersion1_1AndNegativeViewportexplicitVkDeviceCreateInfo(VK_AMD_negative_viewport_height)+(VK_VERSION_1_1)ppEnabledExtensionNames must not contain VK_AMD_negative_viewport_height
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02831YRequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfo(VK_VERSION_1_2)+(VK_KHR_draw_indirect_count)If 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-02832YRequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfo(VK_VERSION_1_2)+(VK_KHR_sampler_mirror_clamp_to_edge)If 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-02833YRequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfo(VK_VERSION_1_2)+(VK_EXT_descriptor_indexing)If ppEnabledExtensionNames contains "VK_EXT_descriptor_indexing" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::descriptorIndexing must be VK_TRUE
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02834YRequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfo(VK_VERSION_1_2)+(VK_EXT_sampler_filter_minmax)If 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-02835YRequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfo(VK_VERSION_1_2)+(VK_EXT_shader_viewport_index_layer)If 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-03328YNoneexplicitVkDeviceCreateInfo(VK_EXT_buffer_device_address+VK_KHR_buffer_device_address)ppEnabledExtensionNames must not contain both VK_KHR_buffer_device_address and VK_EXT_buffer_device_address
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-04476YRequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfo(VK_VERSION_1_2)+(VK_KHR_shader_draw_parameters)If ppEnabledExtensionNames contains "VK_KHR_shader_draw_parameters" and the pNext chain includes a VkPhysicalDeviceVulkan11Features structure, then VkPhysicalDeviceVulkan11Features::shaderDrawParameters must be VK_TRUE
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-parameterYNoneimplicitVkDeviceCreateInfocoreIf enabledExtensionCount is not 0, ppEnabledExtensionNames must be a valid pointer to an array of enabledExtensionCount null-terminated UTF-8 strings
VUID-VkDeviceCreateInfo-ppEnabledLayerNames-parameterYNoneimplicitVkDeviceCreateInfocoreIf enabledLayerCount is not 0, ppEnabledLayerNames must be a valid pointer to an array of enabledLayerCount null-terminated UTF-8 strings
VUID-VkDeviceCreateInfo-queueCreateInfoCount-arraylengthYNoneimplicitVkDeviceCreateInfocorequeueCreateInfoCount must be greater than 0
VUID-VkDeviceCreateInfo-queueFamilyIndex-00372YUniqueQueueDeviceCreationexplicitVkDeviceCreateInfo!(VK_VERSION_1_1)The queueFamilyIndex member of each element of pQueueCreateInfos must be unique within pQueueCreateInfos
VUID-VkDeviceCreateInfo-queueFamilyIndex-02802YMismatchedDeviceQueueGlobalPriority, UniqueQueueDeviceCreationBothProtected, UniqueQueueDeviceCreationexplicitVkDeviceCreateInfo(VK_VERSION_1_1)The queueFamilyIndex member of each element of pQueueCreateInfos must be unique within pQueueCreateInfos, except that two members can share the same queueFamilyIndex if one describes protected-capable queues and one describes queues that are not protected-capable
VUID-VkDeviceCreateInfo-sType-sTypeYNoneimplicitVkDeviceCreateInfocoresType must be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
VUID-VkDeviceCreateInfo-sType-uniqueYNoneimplicitVkDeviceCreateInfocoreThe sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkDeviceDeviceMemoryReportCreateInfoEXT or VkDevicePrivateDataCreateInfo
VUID-VkDeviceCreateInfo-shadingRateImage-04478YInvalidFragmentShadingRateDeviceFeatureCombinationsexplicitVkDeviceCreateInfo(VK_KHR_fragment_shading_rate+VK_NV_shading_rate_image)If the shadingRateImage feature is enabled, the pipelineFragmentShadingRate feature must not be enabled
VUID-VkDeviceCreateInfo-shadingRateImage-04479YInvalidFragmentShadingRateDeviceFeatureCombinationsexplicitVkDeviceCreateInfo(VK_KHR_fragment_shading_rate+VK_NV_shading_rate_image)If the shadingRateImage feature is enabled, the primitiveFragmentShadingRate feature must not be enabled
VUID-VkDeviceCreateInfo-shadingRateImage-04480YInvalidFragmentShadingRateDeviceFeatureCombinationsexplicitVkDeviceCreateInfo(VK_KHR_fragment_shading_rate+VK_NV_shading_rate_image)If the shadingRateImage feature is enabled, the attachmentFragmentShadingRate feature must not be enabled
VUID-VkDeviceCreateInfo-sparseImageFloat32AtomicMinMax-04975YInvalidCombinationOfDeviceFeaturesexplicitVkDeviceCreateInfo(VK_EXT_shader_atomic_float2)If sparseImageFloat32AtomicMinMax is enabled, shaderImageFloat32AtomicMinMax must be enabled
VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkDeviceDeviceMemoryReportCreateInfoEXT(VK_EXT_device_memory_report)flags must be 0
VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-pUserData-parameterYNoneimplicitVkDeviceDeviceMemoryReportCreateInfoEXT(VK_EXT_device_memory_report)pUserData must be a pointer value
VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-pfnUserCallback-parameterYNoneimplicitVkDeviceDeviceMemoryReportCreateInfoEXT(VK_EXT_device_memory_report)pfnUserCallback must be a valid PFN_vkDeviceMemoryReportCallbackEXT value
VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-sType-sTypeYNoneimplicitVkDeviceDeviceMemoryReportCreateInfoEXT(VK_EXT_device_memory_report)sType must be VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT
VUID-VkDeviceDiagnosticsConfigCreateInfoNV-flags-parameterYNoneimplicitVkDeviceDiagnosticsConfigCreateInfoNV(VK_NV_device_diagnostics_config)flags must be a valid combination of VkDeviceDiagnosticsConfigFlagBitsNV values
VUID-VkDeviceDiagnosticsConfigCreateInfoNV-sType-sTypeYNoneimplicitVkDeviceDiagnosticsConfigCreateInfoNV(VK_NV_device_diagnostics_config)sType must be VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV
VUID-VkDeviceEventInfoEXT-deviceEvent-parameterYNoneimplicitVkDeviceEventInfoEXT(VK_EXT_display_control)deviceEvent must be a valid VkDeviceEventTypeEXT value
VUID-VkDeviceEventInfoEXT-pNext-pNextYNoneimplicitVkDeviceEventInfoEXT(VK_EXT_display_control)pNext must be NULL
VUID-VkDeviceEventInfoEXT-sType-sTypeYNoneimplicitVkDeviceEventInfoEXT(VK_EXT_display_control)sType must be VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT
VUID-VkDeviceFaultAddressInfoEXT-addressType-parameterNNoneimplicitVkDeviceFaultAddressInfoEXT(VK_EXT_device_fault)addressType must be a valid VkDeviceFaultAddressTypeEXT value
VUID-VkDeviceFaultCountsEXT-pNext-pNextNNoneimplicitVkDeviceFaultCountsEXT(VK_EXT_device_fault)pNext must be NULL
VUID-VkDeviceFaultCountsEXT-sType-sTypeYNoneimplicitVkDeviceFaultCountsEXT(VK_EXT_device_fault)sType must be VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT
VUID-VkDeviceFaultInfoEXT-pAddressInfos-parameterNNoneimplicitVkDeviceFaultInfoEXT(VK_EXT_device_fault)If pAddressInfos is not NULL, pAddressInfos must be a valid pointer to a VkDeviceFaultAddressInfoEXT structure
VUID-VkDeviceFaultInfoEXT-pNext-pNextNNoneimplicitVkDeviceFaultInfoEXT(VK_EXT_device_fault)pNext must be NULL
VUID-VkDeviceFaultInfoEXT-pVendorInfos-parameterNNoneimplicitVkDeviceFaultInfoEXT(VK_EXT_device_fault)If pVendorInfos is not NULL, pVendorInfos must be a valid pointer to a VkDeviceFaultVendorInfoEXT structure
VUID-VkDeviceFaultInfoEXT-sType-sTypeYNoneimplicitVkDeviceFaultInfoEXT(VK_EXT_device_fault)sType must be VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT
VUID-VkDeviceFaultVendorBinaryHeaderVersionOneEXT-headerSize-07340NNoneexplicitVkDeviceFaultVendorBinaryHeaderVersionOneEXT(VK_EXT_device_fault)headerSize must be 56
VUID-VkDeviceFaultVendorBinaryHeaderVersionOneEXT-headerVersion-07341NNoneexplicitVkDeviceFaultVendorBinaryHeaderVersionOneEXT(VK_EXT_device_fault)headerVersion must be VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT
VUID-VkDeviceFaultVendorBinaryHeaderVersionOneEXT-headerVersion-parameterNNoneimplicitVkDeviceFaultVendorBinaryHeaderVersionOneEXT(VK_EXT_device_fault)headerVersion must be a valid VkDeviceFaultVendorBinaryHeaderVersionEXT value
VUID-VkDeviceGroupBindSparseInfo-memoryDeviceIndex-01119NNoneexplicitVkDeviceGroupBindSparseInfo(VK_VERSION_1_1,VK_KHR_device_group)Each memory allocation bound in this batch must have allocated an instance for memoryDeviceIndex
VUID-VkDeviceGroupBindSparseInfo-resourceDeviceIndex-01118NNoneexplicitVkDeviceGroupBindSparseInfo(VK_VERSION_1_1,VK_KHR_device_group)resourceDeviceIndex and memoryDeviceIndex must both be valid device indices
VUID-VkDeviceGroupBindSparseInfo-sType-sTypeYNoneimplicitVkDeviceGroupBindSparseInfo(VK_VERSION_1_1,VK_KHR_device_group)sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO
VUID-VkDeviceGroupCommandBufferBeginInfo-deviceMask-00106YInvalidDeviceMaskexplicitVkDeviceGroupCommandBufferBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)deviceMask must be a valid device mask value
VUID-VkDeviceGroupCommandBufferBeginInfo-deviceMask-00107YInvalidDeviceMaskexplicitVkDeviceGroupCommandBufferBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)deviceMask must not be zero
VUID-VkDeviceGroupCommandBufferBeginInfo-sType-sTypeYNoneimplicitVkDeviceGroupCommandBufferBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO
VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-00375YDuplicatePhysicalDevicesexplicitVkDeviceGroupDeviceCreateInfo(VK_VERSION_1_1,VK_KHR_device_group_creation)Each element of pPhysicalDevices must be unique
VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-00376NNoneexplicitVkDeviceGroupDeviceCreateInfo(VK_VERSION_1_1,VK_KHR_device_group_creation)All elements of pPhysicalDevices must be in the same device group as enumerated by vkEnumeratePhysicalDeviceGroups
VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-parameterYNoneimplicitVkDeviceGroupDeviceCreateInfo(VK_VERSION_1_1,VK_KHR_device_group_creation)If physicalDeviceCount is not 0, pPhysicalDevices must be a valid pointer to an array of physicalDeviceCount valid VkPhysicalDevice handles
VUID-VkDeviceGroupDeviceCreateInfo-physicalDeviceCount-00377NNoneexplicitVkDeviceGroupDeviceCreateInfo(VK_VERSION_1_1,VK_KHR_device_group_creation)If physicalDeviceCount is not 0, the physicalDevice parameter of vkCreateDevice must be an element of pPhysicalDevices
VUID-VkDeviceGroupDeviceCreateInfo-sType-sTypeYNoneimplicitVkDeviceGroupDeviceCreateInfo(VK_VERSION_1_1,VK_KHR_device_group_creation)sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO
VUID-VkDeviceGroupPresentCapabilitiesKHR-pNext-pNextYNoneimplicitVkDeviceGroupPresentCapabilitiesKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)pNext must be NULL
VUID-VkDeviceGroupPresentCapabilitiesKHR-sType-sTypeYNoneimplicitVkDeviceGroupPresentCapabilitiesKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR
VUID-VkDeviceGroupPresentInfoKHR-mode-01298NNoneexplicitVkDeviceGroupPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-01299NNoneexplicitVkDeviceGroupPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-01300NNoneexplicitVkDeviceGroupPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-01301NNoneexplicitVkDeviceGroupPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-01303NNoneexplicitVkDeviceGroupPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)mode must have exactly one bit set, and that bit must have been included in VkDeviceGroupSwapchainCreateInfoKHR::modes
VUID-VkDeviceGroupPresentInfoKHR-mode-parameterYNoneimplicitVkDeviceGroupPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)mode must be a valid VkDeviceGroupPresentModeFlagBitsKHR value
VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-01302NNoneexplicitVkDeviceGroupPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)The 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-parameterYNoneimplicitVkDeviceGroupPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If swapchainCount is not 0, pDeviceMasks must be a valid pointer to an array of swapchainCount uint32_t values
VUID-VkDeviceGroupPresentInfoKHR-sType-sTypeYNoneimplicitVkDeviceGroupPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR
VUID-VkDeviceGroupPresentInfoKHR-swapchainCount-01297NNoneexplicitVkDeviceGroupPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)swapchainCount must equal 0 or VkPresentInfoKHR::swapchainCount
VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00905YInvalidDeviceMaskexplicitVkDeviceGroupRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)deviceMask must be a valid device mask value
VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00906YInvalidDeviceMaskexplicitVkDeviceGroupRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)deviceMask must not be zero
VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00907YInvalidDeviceMaskexplicitVkDeviceGroupRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)deviceMask must be a subset of the command buffer's initial device mask
VUID-VkDeviceGroupRenderPassBeginInfo-deviceRenderAreaCount-00908YInvalidDeviceMaskexplicitVkDeviceGroupRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)deviceRenderAreaCount must either be zero or equal to the number of physical devices in the logical device
VUID-VkDeviceGroupRenderPassBeginInfo-offset-06166YDynamicRenderingInvalidDeviceGroupRenderArea, InvalidDeviceGroupRenderAreaexplicitVkDeviceGroupRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)The offset.x member of any element of pDeviceRenderAreas must be greater than or equal to 0
VUID-VkDeviceGroupRenderPassBeginInfo-offset-06167YDynamicRenderingInvalidDeviceGroupRenderArea, InvalidDeviceGroupRenderAreaexplicitVkDeviceGroupRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)The offset.y member of any element of pDeviceRenderAreas must be greater than or equal to 0
VUID-VkDeviceGroupRenderPassBeginInfo-offset-06168YDynamicRenderingInvalidDeviceGroupRenderAreaexplicitVkDeviceGroupRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)The 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-06169YDynamicRenderingInvalidDeviceGroupRenderAreaexplicitVkDeviceGroupRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)The 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-parameterYNoneimplicitVkDeviceGroupRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)If deviceRenderAreaCount is not 0, pDeviceRenderAreas must be a valid pointer to an array of deviceRenderAreaCount VkRect2D structures
VUID-VkDeviceGroupRenderPassBeginInfo-sType-sTypeYNoneimplicitVkDeviceGroupRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO
VUID-VkDeviceGroupSubmitInfo-commandBufferCount-00083YDeviceGroupSubmitInfoSemaphoreCountexplicitVkDeviceGroupSubmitInfo(VK_VERSION_1_1,VK_KHR_device_group)commandBufferCount must equal VkSubmitInfo::commandBufferCount
VUID-VkDeviceGroupSubmitInfo-pCommandBufferDeviceMasks-00086YInvalidDeviceMaskexplicitVkDeviceGroupSubmitInfo(VK_VERSION_1_1,VK_KHR_device_group)All elements of pCommandBufferDeviceMasks must be valid device masks
VUID-VkDeviceGroupSubmitInfo-pCommandBufferDeviceMasks-parameterYNoneimplicitVkDeviceGroupSubmitInfo(VK_VERSION_1_1,VK_KHR_device_group)If commandBufferCount is not 0, pCommandBufferDeviceMasks must be a valid pointer to an array of commandBufferCount uint32_t values
VUID-VkDeviceGroupSubmitInfo-pSignalSemaphoreDeviceIndices-parameterYNoneimplicitVkDeviceGroupSubmitInfo(VK_VERSION_1_1,VK_KHR_device_group)If signalSemaphoreCount is not 0, pSignalSemaphoreDeviceIndices must be a valid pointer to an array of signalSemaphoreCount uint32_t values
VUID-VkDeviceGroupSubmitInfo-pWaitSemaphoreDeviceIndices-00085NNoneexplicitVkDeviceGroupSubmitInfo(VK_VERSION_1_1,VK_KHR_device_group)All elements of pWaitSemaphoreDeviceIndices and pSignalSemaphoreDeviceIndices must be valid device indices
VUID-VkDeviceGroupSubmitInfo-pWaitSemaphoreDeviceIndices-parameterYNoneimplicitVkDeviceGroupSubmitInfo(VK_VERSION_1_1,VK_KHR_device_group)If waitSemaphoreCount is not 0, pWaitSemaphoreDeviceIndices must be a valid pointer to an array of waitSemaphoreCount uint32_t values
VUID-VkDeviceGroupSubmitInfo-sType-sTypeYNoneimplicitVkDeviceGroupSubmitInfo(VK_VERSION_1_1,VK_KHR_device_group)sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO
VUID-VkDeviceGroupSubmitInfo-signalSemaphoreCount-00084YDeviceGroupSubmitInfoSemaphoreCountexplicitVkDeviceGroupSubmitInfo(VK_VERSION_1_1,VK_KHR_device_group)signalSemaphoreCount must equal VkSubmitInfo::signalSemaphoreCount
VUID-VkDeviceGroupSubmitInfo-waitSemaphoreCount-00082YDeviceGroupSubmitInfoSemaphoreCountexplicitVkDeviceGroupSubmitInfo(VK_VERSION_1_1,VK_KHR_device_group)waitSemaphoreCount must equal VkSubmitInfo::waitSemaphoreCount
VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-parameterYNoneimplicitVkDeviceGroupSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)modes must be a valid combination of VkDeviceGroupPresentModeFlagBitsKHR values
VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-requiredbitmaskYNoneimplicitVkDeviceGroupSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)modes must not be 0
VUID-VkDeviceGroupSwapchainCreateInfoKHR-sType-sTypeYNoneimplicitVkDeviceGroupSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR
VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06776YDeviceImageMemoryRequirementsDrmFormatModifierexplicitVkDeviceImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_image_drm_format_modifier)The pCreateInfo::pNext chain must not contain a VkImageDrmFormatModifierExplicitCreateInfoEXT structure
VUID-VkDeviceImageMemoryRequirements-pCreateInfo-parameterYNoneimplicitVkDeviceImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)pCreateInfo must be a valid pointer to a valid VkImageCreateInfo structure
VUID-VkDeviceImageMemoryRequirements-pNext-06996NNoneexplicitVkDeviceImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_ANDROID_external_memory_android_hardware_buffer)+(VK_VERSION_1_3,VK_KHR_maintenance4)Applications also must not call vkGetDeviceImageMemoryRequirements with a VkImageCreateInfo whose pNext chain includes a VkExternalFormatANDROID structure with non-zero externalFormat
VUID-VkDeviceImageMemoryRequirements-pNext-pNextYNoneimplicitVkDeviceImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)pNext must be NULL
VUID-VkDeviceImageMemoryRequirements-planeAspect-parameterYNoneimplicitVkDeviceImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)If planeAspect is not 0, planeAspect must be a valid VkImageAspectFlagBits value
VUID-VkDeviceImageMemoryRequirements-sType-sTypeYNoneimplicitVkDeviceImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)sType must be VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS
VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06416YDeviceImageMemoryRequirementsSwapchainexplicitVkDeviceImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)The pCreateInfo::pNext chain must not contain a VkImageSwapchainCreateInfoKHR structure
VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06417YDeviceImageMemoryRequirementsDisjointexplicitVkDeviceImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)If 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-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06419NNoneexplicitVkDeviceImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)If 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 format plane for the image (that is, for a two-plane image planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT, and for a three-plane image planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT or VK_IMAGE_ASPECT_PLANE_2_BIT)
VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06420NNoneexplicitVkDeviceImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_image_drm_format_modifier)If 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-VkDeviceMemoryOpaqueCaptureAddressInfo-memory-03336YBufferDeviceAddressKHRDisabled, BufferDeviceAddressKHRexplicitVkDeviceMemoryOpaqueCaptureAddressInfo(VK_VERSION_1_2,VK_KHR_buffer_device_address)memory must have been allocated with VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT
VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-memory-parameterNNoneimplicitVkDeviceMemoryOpaqueCaptureAddressInfo(VK_VERSION_1_2,VK_KHR_buffer_device_address)memory must be a valid VkDeviceMemory handle
VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-pNext-pNextYNoneimplicitVkDeviceMemoryOpaqueCaptureAddressInfo(VK_VERSION_1_2,VK_KHR_buffer_device_address)pNext must be NULL
VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-sType-sTypeYNoneimplicitVkDeviceMemoryOpaqueCaptureAddressInfo(VK_VERSION_1_2,VK_KHR_buffer_device_address)sType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO
VUID-VkDeviceMemoryOverallocationCreateInfoAMD-overallocationBehavior-parameterYNoneimplicitVkDeviceMemoryOverallocationCreateInfoAMD(VK_AMD_memory_overallocation_behavior)overallocationBehavior must be a valid VkMemoryOverallocationBehaviorAMD value
VUID-VkDeviceMemoryOverallocationCreateInfoAMD-sType-sTypeYNoneimplicitVkDeviceMemoryOverallocationCreateInfoAMD(VK_AMD_memory_overallocation_behavior)sType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD
VUID-VkDeviceMemoryReportCallbackDataEXT-pNext-pNextNNoneimplicitVkDeviceMemoryReportCallbackDataEXT(VK_EXT_device_memory_report)pNext must be NULL
VUID-VkDeviceMemoryReportCallbackDataEXT-sType-sTypeNNoneimplicitVkDeviceMemoryReportCallbackDataEXT(VK_EXT_device_memory_report)sType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT
VUID-VkDevicePrivateDataCreateInfo-sType-sTypeYNoneimplicitVkDevicePrivateDataCreateInfo(VK_VERSION_1_3,VK_EXT_private_data)sType must be VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO
VUID-VkDeviceQueueCreateInfo-flags-02861YInvalidGetDeviceQueueexplicitVkDeviceQueueCreateInfo(VK_VERSION_1_1)If the protectedMemory feature is not enabled, the VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT bit of flags must not be set
VUID-VkDeviceQueueCreateInfo-flags-06449YInvalidProtectedQueueexplicitVkDeviceQueueCreateInfo(VK_VERSION_1_1)If flags includes VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT, queueFamilyIndex must be the index of a queue family that includes the VK_QUEUE_PROTECTED_BIT capability
VUID-VkDeviceQueueCreateInfo-flags-parameterYNoneimplicitVkDeviceQueueCreateInfocoreflags must be a valid combination of VkDeviceQueueCreateFlagBits values
VUID-VkDeviceQueueCreateInfo-pNext-pNextYNoneimplicitVkDeviceQueueCreateInfocorepNext must be NULL or a pointer to a valid instance of VkDeviceQueueGlobalPriorityCreateInfoKHR
VUID-VkDeviceQueueCreateInfo-pQueuePriorities-00383YNoneexplicitVkDeviceQueueCreateInfocoreEach element of pQueuePriorities must be between 0.0 and 1.0 inclusive
VUID-VkDeviceQueueCreateInfo-pQueuePriorities-parameterYNoneimplicitVkDeviceQueueCreateInfocorepQueuePriorities must be a valid pointer to an array of queueCount float values
VUID-VkDeviceQueueCreateInfo-queueCount-00382YNoneexplicitVkDeviceQueueCreateInfocorequeueCount must be less than or equal to the queueCount member of the VkQueueFamilyProperties structure, as returned by vkGetPhysicalDeviceQueueFamilyProperties in the pQueueFamilyProperties[queueFamilyIndex]
VUID-VkDeviceQueueCreateInfo-queueCount-arraylengthYNoneimplicitVkDeviceQueueCreateInfocorequeueCount must be greater than 0
VUID-VkDeviceQueueCreateInfo-queueFamilyIndex-00381YInvalidDeviceQueueFamilyIndexexplicitVkDeviceQueueCreateInfocorequeueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties
VUID-VkDeviceQueueCreateInfo-sType-sTypeYNoneimplicitVkDeviceQueueCreateInfocoresType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
VUID-VkDeviceQueueCreateInfo-sType-uniqueYNoneimplicitVkDeviceQueueCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkDeviceQueueGlobalPriorityCreateInfoKHR-globalPriority-parameterYNoneimplicitVkDeviceQueueGlobalPriorityCreateInfoKHR(VK_EXT_global_priority,VK_KHR_global_priority)globalPriority must be a valid VkQueueGlobalPriorityKHR value
VUID-VkDeviceQueueGlobalPriorityCreateInfoKHR-sType-sTypeYNoneimplicitVkDeviceQueueGlobalPriorityCreateInfoKHR(VK_EXT_global_priority,VK_KHR_global_priority)sType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR
VUID-VkDeviceQueueInfo2-flags-06225YInvalidGetDeviceQueueexplicitVkDeviceQueueInfo2(VK_VERSION_1_1)flags must be equal to VkDeviceQueueCreateInfo::flags for a VkDeviceQueueCreateInfo structure for the queue family indicated by queueFamilyIndex when device was created
VUID-VkDeviceQueueInfo2-flags-parameterYNoneimplicitVkDeviceQueueInfo2(VK_VERSION_1_1)flags must be a valid combination of VkDeviceQueueCreateFlagBits values
VUID-VkDeviceQueueInfo2-pNext-pNextYNoneimplicitVkDeviceQueueInfo2(VK_VERSION_1_1)pNext must be NULL
VUID-VkDeviceQueueInfo2-queueFamilyIndex-01842YInvalidGetDeviceQueueexplicitVkDeviceQueueInfo2(VK_VERSION_1_1)queueFamilyIndex must be one of the queue family indices specified when device was created, via the VkDeviceQueueCreateInfo structure
VUID-VkDeviceQueueInfo2-queueIndex-01843YInvalidGetDeviceQueueexplicitVkDeviceQueueInfo2(VK_VERSION_1_1)queueIndex 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-sTypeYNoneimplicitVkDeviceQueueInfo2(VK_VERSION_1_1)sType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2
VUID-VkDirectDriverLoadingInfoLUNARG-flags-zerobitmaskYNoneimplicitVkDirectDriverLoadingInfoLUNARG(VK_LUNARG_direct_driver_loading)flags must be 0
VUID-VkDirectDriverLoadingInfoLUNARG-sType-sTypeYNoneimplicitVkDirectDriverLoadingInfoLUNARG(VK_LUNARG_direct_driver_loading)sType must be VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG
VUID-VkDirectDriverLoadingListLUNARG-driverCount-arraylengthYNoneimplicitVkDirectDriverLoadingListLUNARG(VK_LUNARG_direct_driver_loading)driverCount must be greater than 0
VUID-VkDirectDriverLoadingListLUNARG-mode-parameterYNoneimplicitVkDirectDriverLoadingListLUNARG(VK_LUNARG_direct_driver_loading)mode must be a valid VkDirectDriverLoadingModeLUNARG value
VUID-VkDirectDriverLoadingListLUNARG-pDrivers-parameterYNoneimplicitVkDirectDriverLoadingListLUNARG(VK_LUNARG_direct_driver_loading)pDrivers must be a valid pointer to an array of driverCount valid VkDirectDriverLoadingInfoLUNARG structures
VUID-VkDirectDriverLoadingListLUNARG-sType-sTypeYNoneimplicitVkDirectDriverLoadingListLUNARG(VK_LUNARG_direct_driver_loading)sType must be VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG
VUID-VkDirectFBSurfaceCreateInfoEXT-dfb-04117NNoneexplicitVkDirectFBSurfaceCreateInfoEXT(VK_KHR_surface)+(VK_EXT_directfb_surface)dfb must point to a valid DirectFB IDirectFB
VUID-VkDirectFBSurfaceCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkDirectFBSurfaceCreateInfoEXT(VK_KHR_surface)+(VK_EXT_directfb_surface)flags must be 0
VUID-VkDirectFBSurfaceCreateInfoEXT-pNext-pNextYNoneimplicitVkDirectFBSurfaceCreateInfoEXT(VK_KHR_surface)+(VK_EXT_directfb_surface)pNext must be NULL
VUID-VkDirectFBSurfaceCreateInfoEXT-sType-sTypeYNoneimplicitVkDirectFBSurfaceCreateInfoEXT(VK_KHR_surface)+(VK_EXT_directfb_surface)sType must be VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT
VUID-VkDirectFBSurfaceCreateInfoEXT-surface-04118NNoneexplicitVkDirectFBSurfaceCreateInfoEXT(VK_KHR_surface)+(VK_EXT_directfb_surface)surface must point to a valid DirectFB IDirectFBSurface
VUID-VkDispatchIndirectCommand-x-00417YNVRayTracingValidateCmdCopyAccelerationStructureexplicitVkDispatchIndirectCommandcorex must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]
VUID-VkDispatchIndirectCommand-y-00418YNVRayTracingValidateCmdCopyAccelerationStructureexplicitVkDispatchIndirectCommandcorey must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]
VUID-VkDispatchIndirectCommand-z-00419YNVRayTracingValidateCmdCopyAccelerationStructureexplicitVkDispatchIndirectCommandcorez must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]
VUID-VkDisplayEventInfoEXT-displayEvent-parameterYNoneimplicitVkDisplayEventInfoEXT(VK_EXT_display_control)displayEvent must be a valid VkDisplayEventTypeEXT value
VUID-VkDisplayEventInfoEXT-pNext-pNextYNoneimplicitVkDisplayEventInfoEXT(VK_EXT_display_control)pNext must be NULL
VUID-VkDisplayEventInfoEXT-sType-sTypeYNoneimplicitVkDisplayEventInfoEXT(VK_EXT_display_control)sType must be VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT
VUID-VkDisplayModeCreateInfoKHR-flags-zerobitmaskYNoneimplicitVkDisplayModeCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)flags must be 0
VUID-VkDisplayModeCreateInfoKHR-pNext-pNextYNoneimplicitVkDisplayModeCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)pNext must be NULL
VUID-VkDisplayModeCreateInfoKHR-parameters-parameterNNoneimplicitVkDisplayModeCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)parameters must be a valid VkDisplayModeParametersKHR structure
VUID-VkDisplayModeCreateInfoKHR-sType-sTypeYNoneimplicitVkDisplayModeCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)sType must be VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR
VUID-VkDisplayModeParametersKHR-height-01991YDisplayPlaneSurfaceexplicitVkDisplayModeParametersKHR(VK_KHR_surface)+(VK_KHR_display)The height member of visibleRegion must be greater than 0
VUID-VkDisplayModeParametersKHR-refreshRate-01992YDisplayPlaneSurfaceexplicitVkDisplayModeParametersKHR(VK_KHR_surface)+(VK_KHR_display)refreshRate must be greater than 0
VUID-VkDisplayModeParametersKHR-width-01990YDisplayPlaneSurfaceexplicitVkDisplayModeParametersKHR(VK_KHR_surface)+(VK_KHR_display)The width member of visibleRegion must be greater than 0
VUID-VkDisplayModeProperties2KHR-pNext-pNextYNoneimplicitVkDisplayModeProperties2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)pNext must be NULL
VUID-VkDisplayModeProperties2KHR-sType-sTypeYNoneimplicitVkDisplayModeProperties2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)sType must be VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR
VUID-VkDisplayNativeHdrSurfaceCapabilitiesAMD-sType-sTypeYNoneimplicitVkDisplayNativeHdrSurfaceCapabilitiesAMD(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_AMD_display_native_hdr)sType must be VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD
VUID-VkDisplayPlaneCapabilities2KHR-pNext-pNextYNoneimplicitVkDisplayPlaneCapabilities2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)pNext must be NULL
VUID-VkDisplayPlaneCapabilities2KHR-sType-sTypeYNoneimplicitVkDisplayPlaneCapabilities2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)sType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR
VUID-VkDisplayPlaneInfo2KHR-mode-parameterYNoneimplicitVkDisplayPlaneInfo2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)mode must be a valid VkDisplayModeKHR handle
VUID-VkDisplayPlaneInfo2KHR-pNext-pNextYNoneimplicitVkDisplayPlaneInfo2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)pNext must be NULL
VUID-VkDisplayPlaneInfo2KHR-sType-sTypeYNoneimplicitVkDisplayPlaneInfo2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)sType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR
VUID-VkDisplayPlaneProperties2KHR-pNext-pNextYNoneimplicitVkDisplayPlaneProperties2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)pNext must be NULL
VUID-VkDisplayPlaneProperties2KHR-sType-sTypeYNoneimplicitVkDisplayPlaneProperties2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)sType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR
VUID-VkDisplayPowerInfoEXT-pNext-pNextYNoneimplicitVkDisplayPowerInfoEXT(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_display_control)pNext must be NULL
VUID-VkDisplayPowerInfoEXT-powerState-parameterYNoneimplicitVkDisplayPowerInfoEXT(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_display_control)powerState must be a valid VkDisplayPowerStateEXT value
VUID-VkDisplayPowerInfoEXT-sType-sTypeYNoneimplicitVkDisplayPowerInfoEXT(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_display_control)sType must be VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT
VUID-VkDisplayPresentInfoKHR-dstRect-01258NNoneexplicitVkDisplayPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)dstRect 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-01259NNoneexplicitVkDisplayPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)If 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-sTypeYNoneimplicitVkDisplayPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)sType must be VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR
VUID-VkDisplayPresentInfoKHR-srcRect-01257YDisplayPresentInfoSrcRectexplicitVkDisplayPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)srcRect must specify a rectangular region that is a subset of the image being presented
VUID-VkDisplayProperties2KHR-pNext-pNextYNoneimplicitVkDisplayProperties2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)pNext must be NULL
VUID-VkDisplayProperties2KHR-sType-sTypeYNoneimplicitVkDisplayProperties2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)sType must be VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR
VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01254YDisplayPlaneSurfaceexplicitVkDisplaySurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)If alphaMode is VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR then globalAlpha must be between 0 and 1, inclusive
VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01255YDisplayPlaneSurfaceexplicitVkDisplaySurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)alphaMode must be one of the bits present in the supportedAlpha member of VkDisplayPlaneCapabilitiesKHR for the display plane corresponding to displayMode
VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-parameterYNoneimplicitVkDisplaySurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)alphaMode must be a valid VkDisplayPlaneAlphaFlagBitsKHR value
VUID-VkDisplaySurfaceCreateInfoKHR-displayMode-parameterYNoneimplicitVkDisplaySurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)displayMode must be a valid VkDisplayModeKHR handle
VUID-VkDisplaySurfaceCreateInfoKHR-flags-zerobitmaskYNoneimplicitVkDisplaySurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)flags must be 0
VUID-VkDisplaySurfaceCreateInfoKHR-pNext-pNextYNoneimplicitVkDisplaySurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)pNext must be NULL
VUID-VkDisplaySurfaceCreateInfoKHR-planeIndex-01252YDisplayPlaneSurfaceexplicitVkDisplaySurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)planeIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR
VUID-VkDisplaySurfaceCreateInfoKHR-planeReorderPossible-01253NNoneexplicitVkDisplaySurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)If 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-sTypeYNoneimplicitVkDisplaySurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)sType must be VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR
VUID-VkDisplaySurfaceCreateInfoKHR-transform-06740NNoneexplicitVkDisplaySurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)transform must be one of the bits present in the supportedTransforms member of VkDisplayPropertiesKHR for the display corresponding to displayMode
VUID-VkDisplaySurfaceCreateInfoKHR-transform-parameterYNoneimplicitVkDisplaySurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)transform must be a valid VkSurfaceTransformFlagBitsKHR value
VUID-VkDisplaySurfaceCreateInfoKHR-width-01256YDisplayPlaneSurfaceexplicitVkDisplaySurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)The width and height members of imageExtent must be less than or equal to VkPhysicalDeviceLimits::maxImageDimension2D
VUID-VkDrawIndexedIndirectCommand-None-00552NNoneexplicitVkDrawIndexedIndirectCommandcoreFor a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-VkDrawIndexedIndirectCommand-firstInstance-00554YNVRayTracingValidateCmdCopyAccelerationStructureexplicitVkDrawIndexedIndirectCommandcoreIf the drawIndirectFirstInstance feature is not enabled, firstInstance must be 0
VUID-VkDrawIndexedIndirectCommand-indexSize-00553NNoneexplicitVkDrawIndexedIndirectCommandcore(indexSize {times} (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer
VUID-VkDrawIndirectCommand-None-00500NNoneexplicitVkDrawIndirectCommandcoreFor a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-VkDrawIndirectCommand-firstInstance-00501YNVRayTracingValidateCmdCopyAccelerationStructureexplicitVkDrawIndirectCommandcoreIf the drawIndirectFirstInstance feature is not enabled, firstInstance must be 0
VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07322NNoneexplicitVkDrawMeshTasksIndirectCommandEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT {ExecutionModel}, groupCountX must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[0]
VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07323NNoneexplicitVkDrawMeshTasksIndirectCommandEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT {ExecutionModel}, groupCountY must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[1]
VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07324NNoneexplicitVkDrawMeshTasksIndirectCommandEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT {ExecutionModel}, groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[2]
VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07325NNoneexplicitVkDrawMeshTasksIndirectCommandEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT {ExecutionModel}, The product of groupCountX, groupCountY and groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupTotalCount
VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07326NNoneexplicitVkDrawMeshTasksIndirectCommandEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT {ExecutionModel}, groupCountX must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[0]
VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07327NNoneexplicitVkDrawMeshTasksIndirectCommandEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT {ExecutionModel}, groupCountY must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[1]
VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07328NNoneexplicitVkDrawMeshTasksIndirectCommandEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT {ExecutionModel}, groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[2]
VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07329NNoneexplicitVkDrawMeshTasksIndirectCommandEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT {ExecutionModel}, The product of groupCountX, groupCountY and groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupTotalCount
VUID-VkDrawMeshTasksIndirectCommandNV-taskCount-02175NNoneexplicitVkDrawMeshTasksIndirectCommandNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)taskCount must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxDrawMeshTasksCount
VUID-VkDrmFormatModifierPropertiesList2EXT-sType-sTypeYNoneimplicitVkDrmFormatModifierPropertiesList2EXT(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)sType must be VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT
VUID-VkDrmFormatModifierPropertiesListEXT-sType-sTypeYNoneimplicitVkDrmFormatModifierPropertiesListEXT(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)sType must be VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT
VUID-VkEventCreateInfo-flags-parameterYNoneimplicitVkEventCreateInfocoreflags must be a valid combination of VkEventCreateFlagBits values
VUID-VkEventCreateInfo-pNext-06790YExportMetalObjectsexplicitVkEventCreateInfo(VK_EXT_metal_objects)If the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT
VUID-VkEventCreateInfo-pNext-pNextYNoneimplicitVkEventCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkExportMetalObjectCreateInfoEXT or VkImportMetalSharedEventInfoEXT
VUID-VkEventCreateInfo-sType-sTypeYNoneimplicitVkEventCreateInfocoresType must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
VUID-VkEventCreateInfo-sType-uniqueYNoneimplicitVkEventCreateInfocoreThe sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT
VUID-VkExportFenceCreateInfo-handleTypes-01446NNoneexplicitVkExportFenceCreateInfo(VK_VERSION_1_1,VK_KHR_external_fence)The bits in handleTypes must be supported and compatible, as reported by VkExternalFenceProperties
VUID-VkExportFenceCreateInfo-handleTypes-parameterYNoneimplicitVkExportFenceCreateInfo(VK_VERSION_1_1,VK_KHR_external_fence)handleTypes must be a valid combination of VkExternalFenceHandleTypeFlagBits values
VUID-VkExportFenceCreateInfo-sType-sTypeYNoneimplicitVkExportFenceCreateInfo(VK_VERSION_1_1,VK_KHR_external_fence)sType must be VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO
VUID-VkExportFenceWin32HandleInfoKHR-handleTypes-01447NNoneexplicitVkExportFenceWin32HandleInfoKHR(VK_KHR_external_fence_win32)If 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-parameterNNoneimplicitVkExportFenceWin32HandleInfoKHR(VK_KHR_external_fence_win32)If pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value
VUID-VkExportFenceWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkExportFenceWin32HandleInfoKHR(VK_KHR_external_fence_win32)sType must be VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR
VUID-VkExportMemoryAllocateInfo-handleTypes-00656NNoneexplicitVkExportMemoryAllocateInfo(VK_VERSION_1_1,VK_KHR_external_memory)The bits in handleTypes must be supported and compatible, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties
VUID-VkExportMemoryAllocateInfo-handleTypes-parameterYNoneimplicitVkExportMemoryAllocateInfo(VK_VERSION_1_1,VK_KHR_external_memory)handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values
VUID-VkExportMemoryAllocateInfo-sType-sTypeYNoneimplicitVkExportMemoryAllocateInfo(VK_VERSION_1_1,VK_KHR_external_memory)sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO
VUID-VkExportMemoryAllocateInfoNV-handleTypes-parameterYNoneimplicitVkExportMemoryAllocateInfoNV(VK_NV_external_memory)handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values
VUID-VkExportMemoryAllocateInfoNV-sType-sTypeYNoneimplicitVkExportMemoryAllocateInfoNV(VK_NV_external_memory)sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV
VUID-VkExportMemoryWin32HandleInfoKHR-handleTypes-00657NNoneexplicitVkExportMemoryWin32HandleInfoKHR(VK_KHR_external_memory_win32)If 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-parameterNNoneimplicitVkExportMemoryWin32HandleInfoKHR(VK_KHR_external_memory_win32)If pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value
VUID-VkExportMemoryWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkExportMemoryWin32HandleInfoKHR(VK_KHR_external_memory_win32)sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR
VUID-VkExportMemoryWin32HandleInfoNV-pAttributes-parameterNNoneimplicitVkExportMemoryWin32HandleInfoNV(VK_NV_external_memory_win32)If pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value
VUID-VkExportMemoryWin32HandleInfoNV-sType-sTypeYNoneimplicitVkExportMemoryWin32HandleInfoNV(VK_NV_external_memory_win32)sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV
VUID-VkExportMetalBufferInfoEXT-memory-parameterYNoneimplicitVkExportMetalBufferInfoEXT(VK_EXT_metal_objects)memory must be a valid VkDeviceMemory handle
VUID-VkExportMetalBufferInfoEXT-sType-sTypeYNoneimplicitVkExportMetalBufferInfoEXT(VK_EXT_metal_objects)sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT
VUID-VkExportMetalCommandQueueInfoEXT-queue-parameterYNoneimplicitVkExportMetalCommandQueueInfoEXT(VK_EXT_metal_objects)queue must be a valid VkQueue handle
VUID-VkExportMetalCommandQueueInfoEXT-sType-sTypeYNoneimplicitVkExportMetalCommandQueueInfoEXT(VK_EXT_metal_objects)sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT
VUID-VkExportMetalDeviceInfoEXT-sType-sTypeYNoneimplicitVkExportMetalDeviceInfoEXT(VK_EXT_metal_objects)sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT
VUID-VkExportMetalIOSurfaceInfoEXT-image-parameterYNoneimplicitVkExportMetalIOSurfaceInfoEXT(VK_EXT_metal_objects)image must be a valid VkImage handle
VUID-VkExportMetalIOSurfaceInfoEXT-sType-sTypeYNoneimplicitVkExportMetalIOSurfaceInfoEXT(VK_EXT_metal_objects)sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT
VUID-VkExportMetalObjectCreateInfoEXT-exportObjectType-parameterYNoneimplicitVkExportMetalObjectCreateInfoEXT(VK_EXT_metal_objects)If exportObjectType is not 0, exportObjectType must be a valid VkExportMetalObjectTypeFlagBitsEXT value
VUID-VkExportMetalObjectCreateInfoEXT-sType-sTypeYNoneimplicitVkExportMetalObjectCreateInfoEXT(VK_EXT_metal_objects)sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT
VUID-VkExportMetalObjectsInfoEXT-pNext-06791YExportMetalObjectsexplicitVkExportMetalObjectsInfoEXT(VK_EXT_metal_objects)If 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-06792YExportMetalObjectsexplicitVkExportMetalObjectsInfoEXT(VK_EXT_metal_objects)If 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-06793YExportMetalObjectsexplicitVkExportMetalObjectsInfoEXT(VK_EXT_metal_objects)If 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-06794YExportMetalObjectsexplicitVkExportMetalObjectsInfoEXT(VK_EXT_metal_objects)If 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-06795YExportMetalObjectsexplicitVkExportMetalObjectsInfoEXT(VK_EXT_metal_objects)If 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-06796YExportMetalObjectsexplicitVkExportMetalObjectsInfoEXT(VK_EXT_metal_objects)If 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-06797YExportMetalObjectsexplicitVkExportMetalObjectsInfoEXT(VK_EXT_metal_objects)If 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-06798YExportMetalObjectsexplicitVkExportMetalObjectsInfoEXT(VK_EXT_metal_objects)If 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-06799YExportMetalObjectsexplicitVkExportMetalObjectsInfoEXT(VK_EXT_metal_objects)If 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-06800YExportMetalObjectsexplicitVkExportMetalObjectsInfoEXT(VK_EXT_metal_objects)If 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-06801YExportMetalObjectsexplicitVkExportMetalObjectsInfoEXT(VK_EXT_metal_objects)If 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-06802YExportMetalObjectsexplicitVkExportMetalObjectsInfoEXT(VK_EXT_metal_objects)If 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-06803YExportMetalObjectsexplicitVkExportMetalObjectsInfoEXT(VK_EXT_metal_objects)If 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-06804YExportMetalObjectsexplicitVkExportMetalObjectsInfoEXT(VK_EXT_metal_objects)If the pNext chain includes a VkExportMetalSharedEventInfoEXT structure, exactly one of its semaphore or event members must not be VK_NULL_HANDLE
VUID-VkExportMetalObjectsInfoEXT-pNext-06805YExportMetalObjectsexplicitVkExportMetalObjectsInfoEXT(VK_EXT_metal_objects)If 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-06806YExportMetalObjectsexplicitVkExportMetalObjectsInfoEXT(VK_EXT_metal_objects)If 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-pNextYNoneimplicitVkExportMetalObjectsInfoEXT(VK_EXT_metal_objects)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkExportMetalBufferInfoEXT, VkExportMetalCommandQueueInfoEXT, VkExportMetalDeviceInfoEXT, VkExportMetalIOSurfaceInfoEXT, VkExportMetalSharedEventInfoEXT, or VkExportMetalTextureInfoEXT
VUID-VkExportMetalObjectsInfoEXT-sType-sTypeYNoneimplicitVkExportMetalObjectsInfoEXT(VK_EXT_metal_objects)sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT
VUID-VkExportMetalObjectsInfoEXT-sType-uniqueYNoneimplicitVkExportMetalObjectsInfoEXT(VK_EXT_metal_objects)The 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-commonparentYNoneimplicitVkExportMetalSharedEventInfoEXT(VK_EXT_metal_objects)Both 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-parameterYNoneimplicitVkExportMetalSharedEventInfoEXT(VK_EXT_metal_objects)If event is not VK_NULL_HANDLE, event must be a valid VkEvent handle
VUID-VkExportMetalSharedEventInfoEXT-sType-sTypeYNoneimplicitVkExportMetalSharedEventInfoEXT(VK_EXT_metal_objects)sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT
VUID-VkExportMetalSharedEventInfoEXT-semaphore-parameterYNoneimplicitVkExportMetalSharedEventInfoEXT(VK_EXT_metal_objects)If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle
VUID-VkExportMetalTextureInfoEXT-bufferView-parameterYNoneimplicitVkExportMetalTextureInfoEXT(VK_EXT_metal_objects)If bufferView is not VK_NULL_HANDLE, bufferView must be a valid VkBufferView handle
VUID-VkExportMetalTextureInfoEXT-commonparentYNoneimplicitVkExportMetalTextureInfoEXT(VK_EXT_metal_objects)Each 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-parameterYNoneimplicitVkExportMetalTextureInfoEXT(VK_EXT_metal_objects)If image is not VK_NULL_HANDLE, image must be a valid VkImage handle
VUID-VkExportMetalTextureInfoEXT-imageView-parameterYNoneimplicitVkExportMetalTextureInfoEXT(VK_EXT_metal_objects)If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle
VUID-VkExportMetalTextureInfoEXT-plane-parameterYNoneimplicitVkExportMetalTextureInfoEXT(VK_EXT_metal_objects)plane must be a valid VkImageAspectFlagBits value
VUID-VkExportMetalTextureInfoEXT-sType-sTypeYNoneimplicitVkExportMetalTextureInfoEXT(VK_EXT_metal_objects)sType must be VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT
VUID-VkExportSemaphoreCreateInfo-handleTypes-01124NNoneexplicitVkExportSemaphoreCreateInfo(VK_VERSION_1_1,VK_KHR_external_semaphore)The bits in handleTypes must be supported and compatible, as reported by VkExternalSemaphoreProperties
VUID-VkExportSemaphoreCreateInfo-handleTypes-parameterYNoneimplicitVkExportSemaphoreCreateInfo(VK_VERSION_1_1,VK_KHR_external_semaphore)handleTypes must be a valid combination of VkExternalSemaphoreHandleTypeFlagBits values
VUID-VkExportSemaphoreCreateInfo-sType-sTypeYNoneimplicitVkExportSemaphoreCreateInfo(VK_VERSION_1_1,VK_KHR_external_semaphore)sType must be VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO
VUID-VkExportSemaphoreWin32HandleInfoKHR-handleTypes-01125NNoneexplicitVkExportSemaphoreWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)If 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-parameterNNoneimplicitVkExportSemaphoreWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)If pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value
VUID-VkExportSemaphoreWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkExportSemaphoreWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)sType must be VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
VUID-VkExternalBufferProperties-pNext-pNextYNoneimplicitVkExternalBufferProperties(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)pNext must be NULL
VUID-VkExternalBufferProperties-sType-sTypeYNoneimplicitVkExternalBufferProperties(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)sType must be VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES
VUID-VkExternalFenceProperties-pNext-pNextYNoneimplicitVkExternalFenceProperties(VK_VERSION_1_1,VK_KHR_external_fence_capabilities)pNext must be NULL
VUID-VkExternalFenceProperties-sType-sTypeYNoneimplicitVkExternalFenceProperties(VK_VERSION_1_1,VK_KHR_external_fence_capabilities)sType must be VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES
VUID-VkExternalFormatANDROID-externalFormat-01894YAndroidHardwareBufferImageCreateexplicitVkExternalFormatANDROID(VK_ANDROID_external_memory_android_hardware_buffer)externalFormat must be 0 or a value returned in the externalFormat member of VkAndroidHardwareBufferFormatPropertiesANDROID by an earlier call to vkGetAndroidHardwareBufferPropertiesANDROID
VUID-VkExternalFormatANDROID-sType-sTypeYNoneimplicitVkExternalFormatANDROID(VK_ANDROID_external_memory_android_hardware_buffer)sType must be VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID
VUID-VkExternalImageFormatProperties-sType-sTypeYNoneimplicitVkExternalImageFormatProperties(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)sType must be VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES
VUID-VkExternalMemoryBufferCreateInfo-handleTypes-parameterYNoneimplicitVkExternalMemoryBufferCreateInfo(VK_VERSION_1_1,VK_KHR_external_memory)handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values
VUID-VkExternalMemoryBufferCreateInfo-sType-sTypeYNoneimplicitVkExternalMemoryBufferCreateInfo(VK_VERSION_1_1,VK_KHR_external_memory)sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO
VUID-VkExternalMemoryImageCreateInfo-handleTypes-parameterYNoneimplicitVkExternalMemoryImageCreateInfo(VK_VERSION_1_1,VK_KHR_external_memory)handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values
VUID-VkExternalMemoryImageCreateInfo-sType-sTypeYNoneimplicitVkExternalMemoryImageCreateInfo(VK_VERSION_1_1,VK_KHR_external_memory)sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO
VUID-VkExternalMemoryImageCreateInfoNV-handleTypes-parameterYNoneimplicitVkExternalMemoryImageCreateInfoNV(VK_NV_external_memory)handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values
VUID-VkExternalMemoryImageCreateInfoNV-sType-sTypeYNoneimplicitVkExternalMemoryImageCreateInfoNV(VK_NV_external_memory)sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV
VUID-VkExternalSemaphoreProperties-pNext-pNextYNoneimplicitVkExternalSemaphoreProperties(VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities)pNext must be NULL
VUID-VkExternalSemaphoreProperties-sType-sTypeYNoneimplicitVkExternalSemaphoreProperties(VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities)sType must be VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES
VUID-VkFenceCreateInfo-flags-parameterYNoneimplicitVkFenceCreateInfocoreflags must be a valid combination of VkFenceCreateFlagBits values
VUID-VkFenceCreateInfo-pNext-pNextYNoneimplicitVkFenceCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkExportFenceCreateInfo or VkExportFenceWin32HandleInfoKHR
VUID-VkFenceCreateInfo-sType-sTypeYNoneimplicitVkFenceCreateInfocoresType must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
VUID-VkFenceCreateInfo-sType-uniqueYNoneimplicitVkFenceCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkFenceGetFdInfoKHR-fence-01455NNoneexplicitVkFenceGetFdInfoKHR(VK_KHR_external_fence_fd)fence 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-parameterYNoneimplicitVkFenceGetFdInfoKHR(VK_KHR_external_fence_fd)fence must be a valid VkFence handle
VUID-VkFenceGetFdInfoKHR-handleType-01453YInvalidExternalFenceexplicitVkFenceGetFdInfoKHR(VK_KHR_external_fence_fd)handleType must have been included in VkExportFenceCreateInfo::handleTypes when fence's current payload was created
VUID-VkFenceGetFdInfoKHR-handleType-01454YExternalSyncFdFence, InvalidExternalFenceexplicitVkFenceGetFdInfoKHR(VK_KHR_external_fence_fd)If 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-01456YInvalidExternalFenceexplicitVkFenceGetFdInfoKHR(VK_KHR_external_fence_fd)handleType must be defined as a POSIX file descriptor handle
VUID-VkFenceGetFdInfoKHR-handleType-parameterYNoneimplicitVkFenceGetFdInfoKHR(VK_KHR_external_fence_fd)handleType must be a valid VkExternalFenceHandleTypeFlagBits value
VUID-VkFenceGetFdInfoKHR-pNext-pNextYNoneimplicitVkFenceGetFdInfoKHR(VK_KHR_external_fence_fd)pNext must be NULL
VUID-VkFenceGetFdInfoKHR-sType-sTypeYNoneimplicitVkFenceGetFdInfoKHR(VK_KHR_external_fence_fd)sType must be VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR
VUID-VkFenceGetWin32HandleInfoKHR-fence-01450NNoneexplicitVkFenceGetWin32HandleInfoKHR(VK_KHR_external_fence_win32)fence 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-parameterYNoneimplicitVkFenceGetWin32HandleInfoKHR(VK_KHR_external_fence_win32)fence must be a valid VkFence handle
VUID-VkFenceGetWin32HandleInfoKHR-handleType-01448YInvalidExternalFenceexplicitVkFenceGetWin32HandleInfoKHR(VK_KHR_external_fence_win32)handleType must have been included in VkExportFenceCreateInfo::handleTypes when the fence's current payload was created
VUID-VkFenceGetWin32HandleInfoKHR-handleType-01449NNoneexplicitVkFenceGetWin32HandleInfoKHR(VK_KHR_external_fence_win32)If 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-01451NNoneexplicitVkFenceGetWin32HandleInfoKHR(VK_KHR_external_fence_win32)If 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-01452YInvalidExternalFenceexplicitVkFenceGetWin32HandleInfoKHR(VK_KHR_external_fence_win32)handleType must be defined as an NT handle or a global share handle
VUID-VkFenceGetWin32HandleInfoKHR-handleType-parameterYNoneimplicitVkFenceGetWin32HandleInfoKHR(VK_KHR_external_fence_win32)handleType must be a valid VkExternalFenceHandleTypeFlagBits value
VUID-VkFenceGetWin32HandleInfoKHR-pNext-pNextYNoneimplicitVkFenceGetWin32HandleInfoKHR(VK_KHR_external_fence_win32)pNext must be NULL
VUID-VkFenceGetWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkFenceGetWin32HandleInfoKHR(VK_KHR_external_fence_win32)sType must be VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR
VUID-VkFilterCubicImageViewImageFormatPropertiesEXT-pNext-02627NNoneexplicitVkFilterCubicImageViewImageFormatPropertiesEXT(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_filter_cubic)If 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-sTypeYNoneimplicitVkFilterCubicImageViewImageFormatPropertiesEXT(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_filter_cubic)sType must be VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT
VUID-VkFormatProperties2-pNext-pNextYNoneimplicitVkFormatProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDrmFormatModifierPropertiesList2EXT, VkDrmFormatModifierPropertiesListEXT, VkFormatProperties3, or VkSubpassResolvePerformanceQueryEXT
VUID-VkFormatProperties2-sType-sTypeYNoneimplicitVkFormatProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)sType must be VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2
VUID-VkFormatProperties2-sType-uniqueYNoneimplicitVkFormatProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)The sType value of each struct in the pNext chain must be unique
VUID-VkFormatProperties3-sType-sTypeYNoneimplicitVkFormatProperties3(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)sType must be VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3
VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04524YInvalidFragmentShadingRateAttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)If 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-04525YInvalidFragmentShadingRateAttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)If 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-04526YInvalidFragmentShadingRateAttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)If 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-04527YInvalidFragmentShadingRateAttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)If 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-04528YInvalidFragmentShadingRateAttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)If 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-04529YInvalidFragmentShadingRateAttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)If 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-04530YInvalidFragmentShadingRateAttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)If 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-04531YInvalidFragmentShadingRateAttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)If 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-04532YInvalidFragmentShadingRateAttachmentsexplicitVkFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)If 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-parameterYNoneimplicitVkFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)If pFragmentShadingRateAttachment is not NULL, pFragmentShadingRateAttachment must be a valid pointer to a valid VkAttachmentReference2 structure
VUID-VkFragmentShadingRateAttachmentInfoKHR-sType-sTypeYNoneimplicitVkFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)sType must be VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR
VUID-VkFramebufferAttachmentImageInfo-flags-parameterYNoneimplicitVkFramebufferAttachmentImageInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)flags must be a valid combination of VkImageCreateFlagBits values
VUID-VkFramebufferAttachmentImageInfo-pNext-pNextYFramebufferAttachmentImageInfoPNextimplicitVkFramebufferAttachmentImageInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)pNext must be NULL
VUID-VkFramebufferAttachmentImageInfo-pViewFormats-parameterNNoneimplicitVkFramebufferAttachmentImageInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If viewFormatCount is not 0, pViewFormats must be a valid pointer to an array of viewFormatCount valid VkFormat values
VUID-VkFramebufferAttachmentImageInfo-sType-sTypeYNoneimplicitVkFramebufferAttachmentImageInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO
VUID-VkFramebufferAttachmentImageInfo-usage-parameterYNoneimplicitVkFramebufferAttachmentImageInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)usage must be a valid combination of VkImageUsageFlagBits values
VUID-VkFramebufferAttachmentImageInfo-usage-requiredbitmaskYNoneimplicitVkFramebufferAttachmentImageInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)usage must not be 0
VUID-VkFramebufferAttachmentsCreateInfo-pAttachmentImageInfos-parameterYNoneimplicitVkFramebufferAttachmentsCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If attachmentImageInfoCount is not 0, pAttachmentImageInfos must be a valid pointer to an array of attachmentImageInfoCount valid VkFramebufferAttachmentImageInfo structures
VUID-VkFramebufferAttachmentsCreateInfo-sType-sTypeYNoneimplicitVkFramebufferAttachmentsCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO
VUID-VkFramebufferCreateInfo-attachmentCount-00876YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocoreattachmentCount must be equal to the attachment count specified in renderPass
VUID-VkFramebufferCreateInfo-commonparentYNoneimplicitVkFramebufferCreateInfocoreBoth 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-02778YNoneexplicitVkFramebufferCreateInfocoreIf 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-03189YImagelessFramebufferFeatureEnableTestexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If the imagelessFramebuffer feature is not enabled, flags must not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT
VUID-VkFramebufferCreateInfo-flags-03190YImagelessFramebufferCreationTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the pNext chain must include a VkFramebufferAttachmentsCreateInfo structure
VUID-VkFramebufferCreateInfo-flags-03191YImagelessFramebufferCreationTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If 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-03196NNoneexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_EXT_fragment_density_map)If 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-03197NNoneexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_EXT_fragment_density_map)If 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-03201YImagelessFramebufferAttachmentImageUsageMismatchTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If 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-03202YImagelessFramebufferAttachmentImageUsageMismatchTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If 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-03203YImagelessFramebufferDepthStencilResolveAttachmentTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_KHR_depth_stencil_resolve)If 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-03204YImagelessFramebufferAttachmentImageUsageMismatchTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If 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-03205YImagelessFramebufferCreationTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If 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-04113YImagelessFramebufferRenderPassBeginImageView3DexplicitVkFramebufferCreateInfocoreIf 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-04533YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocoreIf 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-04534YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocoreIf 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-04535YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocoreIf 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-04537YInvalidFragmentShadingRateFramebufferDimensionsexplicitVkFramebufferCreateInfo(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_1,VK_KHR_multiview)If 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-04538YInvalidFragmentShadingRateFramebufferDimensionsexplicitVkFramebufferCreateInfo(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_1,VK_KHR_multiview)If 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-04539YInvalidFragmentShadingRateFramebufferDimensionsexplicitVkFramebufferCreateInfo(VK_KHR_fragment_shading_rate)If 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 {lceil}width / texelWidth{rceil}, where texelWidth is the largest value of shadingRateAttachmentTexelSize.width in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment
VUID-VkFramebufferCreateInfo-flags-04540YInvalidFragmentShadingRateFramebufferDimensionsexplicitVkFramebufferCreateInfo(VK_KHR_fragment_shading_rate)If 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 {lceil}height / texelHeight{rceil}, where texelHeight is the largest value of shadingRateAttachmentTexelSize.height in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment
VUID-VkFramebufferCreateInfo-flags-04541YImagelessFramebufferCreationTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If 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-04542YImagelessFramebufferCreationTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If 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-04543YInvalidFragmentShadingRateImagelessFramebufferDimensionsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_KHR_fragment_shading_rate)If 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 {lceil}width / texelWidth{rceil}, where texelWidth is the largest value of shadingRateAttachmentTexelSize.width in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment
VUID-VkFramebufferCreateInfo-flags-04544YInvalidFragmentShadingRateImagelessFramebufferDimensionsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_KHR_fragment_shading_rate)If 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 {lceil}height / texelHeight{rceil}, where texelHeight is the largest value of shadingRateAttachmentTexelSize.height in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment
VUID-VkFramebufferCreateInfo-flags-04545YInvalidFragmentShadingRateImagelessFramebufferDimensionsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_KHR_fragment_shading_rate)If 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-04547YImagelessFramebufferCreationTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+!(VK_VERSION_1_1,VK_KHR_multiview)If 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 pRenderPass must be greater than or equal to layers
VUID-VkFramebufferCreateInfo-flags-04548YInvalidFragmentShadingRateFramebufferUsageexplicitVkFramebufferCreateInfo(VK_KHR_fragment_shading_rate)If 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-04549YInvalidFragmentShadingRateImagelessFramebufferUsageexplicitVkFramebufferCreateInfo(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If 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-04587NNoneexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_KHR_fragment_shading_rate)If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT and renderPass was specified with non-zero view masks, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have a layerCount that is either 1, or greater than the index of the most significant bit set in any of those view masks
VUID-VkFramebufferCreateInfo-flags-parameterYNoneimplicitVkFramebufferCreateInfocoreflags must be a valid combination of VkFramebufferCreateFlagBits values
VUID-VkFramebufferCreateInfo-height-00887YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocoreheight must be greater than 0
VUID-VkFramebufferCreateInfo-height-00888YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocoreheight must be less than or equal to maxFramebufferHeight
VUID-VkFramebufferCreateInfo-layers-00889YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocorelayers must be greater than 0
VUID-VkFramebufferCreateInfo-layers-00890YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocorelayers must be less than or equal to maxFramebufferLayers
VUID-VkFramebufferCreateInfo-pAttachments-00877YNoneexplicitVkFramebufferCreateInfocoreIf 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-00879YNoneexplicitVkFramebufferCreateInfocoreIf 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-00880YFramebufferDepthStencilResolveAttachmentTests, FramebufferCreateErrorsexplicitVkFramebufferCreateInfocoreIf 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-00881YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocoreIf 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-00883YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must only specify a single mip level
VUID-VkFramebufferCreateInfo-pAttachments-00884YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with the identity swizzle
VUID-VkFramebufferCreateInfo-pAttachments-00891YFramebufferCreateErrorsexplicitVkFramebufferCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance1)If 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-02552NNoneexplicitVkFramebufferCreateInfo(VK_EXT_fragment_density_map)Each 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-02555YFramebufferCreateErrorsexplicitVkFramebufferCreateInfo(VK_EXT_fragment_density_map)If 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-02556YFramebufferCreateErrorsexplicitVkFramebufferCreateInfo(VK_EXT_fragment_density_map)If 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-02633YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocoreIf 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-02634YFramebufferDepthStencilResolveAttachmentTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)If 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-02744YRenderPassCreateFragmentDensityMapReferenceToInvalidAttachmentexplicitVkFramebufferCreateInfo(VK_EXT_fragment_density_map)+!(VK_VERSION_1_1,VK_KHR_multiview)Each element of pAttachments that is referenced by fragmentDensityMapAttachment must have a layerCount equal to 1
VUID-VkFramebufferCreateInfo-pNext-pNextYNoneimplicitVkFramebufferCreateInfocorepNext must be NULL or a pointer to a valid instance of VkFramebufferAttachmentsCreateInfo
VUID-VkFramebufferCreateInfo-renderPass-02531YFramebufferCreateErrorsexplicitVkFramebufferCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If renderPass was specified with non-zero view masks, layers must be 1
VUID-VkFramebufferCreateInfo-renderPass-02553NNoneexplicitVkFramebufferCreateInfo(VK_EXT_fragment_density_map)If 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-02746YInvalidFragmentDensityMapLayerCountexplicitVkFramebufferCreateInfo(VK_EXT_fragment_density_map)+(VK_VERSION_1_1,VK_KHR_multiview)If renderPass was specified with non-zero view masks, each element of pAttachments that is referenced by fragmentDensityMapAttachment must have a layerCount equal to 1 or greater than the index of the most significant bit set in any of those view masks
VUID-VkFramebufferCreateInfo-renderPass-02747YInvalidFragmentDensityMapLayerCountexplicitVkFramebufferCreateInfo(VK_EXT_fragment_density_map)+(VK_VERSION_1_1,VK_KHR_multiview)If renderPass was not specified with non-zero view masks, each element of pAttachments that is referenced by fragmentDensityMapAttachment must have a layerCount equal to 1
VUID-VkFramebufferCreateInfo-renderPass-03198YImagelessFramebufferAttachmentMultiviewImageLayerCountMismatchTests, ImagelessFramebufferDepthStencilResolveAttachmentTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_VERSION_1_1,VK_KHR_multiview)If 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-04536YFramebufferCreateErrorsexplicitVkFramebufferCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If 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-04546YImagelessFramebufferCreationTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_VERSION_1_1,VK_KHR_multiview)If 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-06502YInvalidRenderPassEndFragmentDensityMapOffsetQCOMexplicitVkFramebufferCreateInfo(VK_EXT_fragment_density_map)+(VK_QCOM_fragment_density_map_offset)If 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-parameterYNoneimplicitVkFramebufferCreateInfocorerenderPass must be a valid VkRenderPass handle
VUID-VkFramebufferCreateInfo-sType-sTypeYNoneimplicitVkFramebufferCreateInfocoresType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
VUID-VkFramebufferCreateInfo-sType-uniqueYNoneimplicitVkFramebufferCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkFramebufferCreateInfo-samples-06881YMultisampledRenderToSingleSampledexplicitVkFramebufferCreateInfo(VK_EXT_multisampled_render_to_single_sampled)If 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-07009YMultisampledRenderToSingleSampledexplicitVkFramebufferCreateInfo(VK_EXT_multisampled_render_to_single_sampled)If 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-00885YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocorewidth must be greater than 0
VUID-VkFramebufferCreateInfo-width-00886YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocorewidth must be less than or equal to maxFramebufferWidth
VUID-VkFramebufferMixedSamplesCombinationNV-pNext-pNextYNoneimplicitVkFramebufferMixedSamplesCombinationNV(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)pNext must be NULL
VUID-VkFramebufferMixedSamplesCombinationNV-sType-sTypeYNoneimplicitVkFramebufferMixedSamplesCombinationNV(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV
VUID-VkGeneratedCommandsInfoNV-commonparentYNoneimplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)Each of indirectCommandsLayout, pipeline, preprocessBuffer, sequencesCountBuffer, and sequencesIndexBuffer that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02913NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)If 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-02914NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)If 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-02915NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)If 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-07078NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)+(VK_NV_mesh_shader)If 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 {ExecutionModel}
VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-07079NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)+(VK_EXT_mesh_shader)If 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 {ExecutionModel}
VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-parameterYNoneimplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle
VUID-VkGeneratedCommandsInfoNV-pNext-pNextYNoneimplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)pNext must be NULL
VUID-VkGeneratedCommandsInfoNV-pStreams-parameterYNoneimplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)pStreams must be a valid pointer to an array of streamCount valid VkIndirectCommandsStreamNV structures
VUID-VkGeneratedCommandsInfoNV-pipeline-02912NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)The provided pipeline must match the pipeline bound at execution time
VUID-VkGeneratedCommandsInfoNV-pipeline-parameterYNoneimplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)pipeline must be a valid VkPipeline handle
VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-parameterYNoneimplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)pipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02918NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)preprocessBuffer must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set in its usage flag
VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02971NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)If preprocessBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-parameterYNoneimplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)preprocessBuffer must be a valid VkBuffer handle
VUID-VkGeneratedCommandsInfoNV-preprocessOffset-02919NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)preprocessOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minIndirectCommandsBufferOffsetAlignment
VUID-VkGeneratedCommandsInfoNV-preprocessSize-02920NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)preprocessSize 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-sTypeYNoneimplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)sType must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV
VUID-VkGeneratedCommandsInfoNV-sequencesCount-02917NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)sequencesCount must be less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectSequenceCount and VkGeneratedCommandsMemoryRequirementsInfoNV::maxSequencesCount that was used to determine the preprocessSize
VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02921NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)sequencesCountBuffer can be set if the actual used count of sequences is sourced from the provided buffer. In that case the sequencesCount serves as upper bound
VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02922NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)If sequencesCountBuffer is not VK_NULL_HANDLE, its usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02923NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)If sequencesCountBuffer is not VK_NULL_HANDLE, sequencesCountOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minSequencesCountBufferOffsetAlignment
VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02972NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)If 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-parameterYNoneimplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)If sequencesCountBuffer is not VK_NULL_HANDLE, sequencesCountBuffer must be a valid VkBuffer handle
VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02924NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)If 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-02925NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)If sequencesIndexBuffer is not VK_NULL_HANDLE, its usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02926NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)If sequencesIndexBuffer is not VK_NULL_HANDLE, sequencesIndexOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minSequencesIndexBufferOffsetAlignment
VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02973NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)If 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-parameterYNoneimplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)If sequencesIndexBuffer is not VK_NULL_HANDLE, sequencesIndexBuffer must be a valid VkBuffer handle
VUID-VkGeneratedCommandsInfoNV-streamCount-02916NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)streamCount must match the indirectCommandsLayout's streamCount
VUID-VkGeneratedCommandsInfoNV-streamCount-arraylengthYNoneimplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)streamCount must be greater than 0
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-commonparentYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoNV(VK_NV_device_generated_commands)Both of indirectCommandsLayout, and pipeline must have been created, allocated, or retrieved from the same VkDevice
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-indirectCommandsLayout-parameterYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoNV(VK_NV_device_generated_commands)indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-maxSequencesCount-02907NNoneexplicitVkGeneratedCommandsMemoryRequirementsInfoNV(VK_NV_device_generated_commands)maxSequencesCount must be less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectSequenceCount
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pNext-pNextYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoNV(VK_NV_device_generated_commands)pNext must be NULL
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipeline-parameterYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoNV(VK_NV_device_generated_commands)pipeline must be a valid VkPipeline handle
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-parameterYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoNV(VK_NV_device_generated_commands)pipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-sType-sTypeYNoneimplicitVkGeneratedCommandsMemoryRequirementsInfoNV(VK_NV_device_generated_commands)sType must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV
VUID-VkGeometryAABBNV-aabbData-parameterYNoneimplicitVkGeometryAABBNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If aabbData is not VK_NULL_HANDLE, aabbData must be a valid VkBuffer handle
VUID-VkGeometryAABBNV-offset-02439YNVRayTracingValidateGeometryexplicitVkGeometryAABBNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)offset must be less than the size of aabbData
VUID-VkGeometryAABBNV-offset-02440YNVRayTracingValidateGeometryexplicitVkGeometryAABBNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)offset must be a multiple of 8
VUID-VkGeometryAABBNV-pNext-pNextYNoneimplicitVkGeometryAABBNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)pNext must be NULL
VUID-VkGeometryAABBNV-sType-sTypeYNoneimplicitVkGeometryAABBNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)sType must be VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV
VUID-VkGeometryAABBNV-stride-02441YNVRayTracingValidateGeometryexplicitVkGeometryAABBNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)stride must be a multiple of 8
VUID-VkGeometryDataNV-aabbs-parameterNNoneimplicitVkGeometryDataNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)aabbs must be a valid VkGeometryAABBNV structure
VUID-VkGeometryDataNV-triangles-parameterNNoneimplicitVkGeometryDataNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)triangles must be a valid VkGeometryTrianglesNV structure
VUID-VkGeometryNV-flags-parameterYNoneimplicitVkGeometryNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)flags must be a valid combination of VkGeometryFlagBitsKHR values
VUID-VkGeometryNV-geometry-parameterNNoneimplicitVkGeometryNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)geometry must be a valid VkGeometryDataNV structure
VUID-VkGeometryNV-geometryType-03503YNVRayTracingValidateGeometryexplicitVkGeometryNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)geometryType must be VK_GEOMETRY_TYPE_TRIANGLES_NV or VK_GEOMETRY_TYPE_AABBS_NV
VUID-VkGeometryNV-geometryType-parameterYNVRayTracingValidateGeometryimplicitVkGeometryNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)geometryType must be a valid VkGeometryTypeKHR value
VUID-VkGeometryNV-pNext-pNextYNoneimplicitVkGeometryNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)pNext must be NULL
VUID-VkGeometryNV-sType-sTypeYNoneimplicitVkGeometryNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)sType must be VK_STRUCTURE_TYPE_GEOMETRY_NV
VUID-VkGeometryTrianglesNV-commonparentYNoneimplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)Each 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-02436YNVRayTracingValidateGeometryexplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)indexCount must be 0 if indexType is VK_INDEX_TYPE_NONE_NV
VUID-VkGeometryTrianglesNV-indexData-02434YNVRayTracingValidateGeometryexplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)indexData must be VK_NULL_HANDLE if indexType is VK_INDEX_TYPE_NONE_NV
VUID-VkGeometryTrianglesNV-indexData-02435NNoneexplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)indexData must be a valid VkBuffer handle if indexType is not VK_INDEX_TYPE_NONE_NV
VUID-VkGeometryTrianglesNV-indexData-parameterYNoneimplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If indexData is not VK_NULL_HANDLE, indexData must be a valid VkBuffer handle
VUID-VkGeometryTrianglesNV-indexOffset-02431YNVRayTracingValidateGeometryexplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)indexOffset must be less than the size of indexData
VUID-VkGeometryTrianglesNV-indexOffset-02432YNVRayTracingValidateGeometryexplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)indexOffset must be a multiple of the element size of indexType
VUID-VkGeometryTrianglesNV-indexType-02433YNoneexplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)indexType must be VK_INDEX_TYPE_UINT16, VK_INDEX_TYPE_UINT32, or VK_INDEX_TYPE_NONE_NV
VUID-VkGeometryTrianglesNV-indexType-parameterYNoneimplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)indexType must be a valid VkIndexType value
VUID-VkGeometryTrianglesNV-pNext-pNextYNoneimplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)pNext must be NULL
VUID-VkGeometryTrianglesNV-sType-sTypeYNoneimplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)sType must be VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV
VUID-VkGeometryTrianglesNV-transformData-parameterYNoneimplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If transformData is not VK_NULL_HANDLE, transformData must be a valid VkBuffer handle
VUID-VkGeometryTrianglesNV-transformOffset-02437YNVRayTracingValidateGeometryexplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)transformOffset must be less than the size of transformData
VUID-VkGeometryTrianglesNV-transformOffset-02438YNVRayTracingValidateGeometryexplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)transformOffset must be a multiple of 16
VUID-VkGeometryTrianglesNV-vertexData-parameterYNVRayTracingValidateGeometryimplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If vertexData is not VK_NULL_HANDLE, vertexData must be a valid VkBuffer handle
VUID-VkGeometryTrianglesNV-vertexFormat-02430YNVRayTracingValidateGeometryexplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)vertexFormat 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-parameterYNoneimplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)vertexFormat must be a valid VkFormat value
VUID-VkGeometryTrianglesNV-vertexOffset-02428YNVRayTracingValidateGeometryexplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)vertexOffset must be less than the size of vertexData
VUID-VkGeometryTrianglesNV-vertexOffset-02429YNVRayTracingValidateGeometryexplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)vertexOffset must be a multiple of the component size of vertexFormat
VUID-VkGeometryTrianglesNV-vertexStride-03818NNoneexplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)vertexStride must be less than or equal to 232-1
VUID-VkGraphicsPipelineCreateInfo-Geometry-07725YPointSizeGeomShaderDontWriteexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with a Geometry {ExecutionModel}, uses the OutputPoints {ExecutionMode}, and shaderTessellationAndGeometryPointSize is enabled, a PointSize decorated variable must be written to
VUID-VkGraphicsPipelineCreateInfo-Geometry-07726YPointSizeGeomShaderWriteexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with a Geometry {ExecutionModel}, uses the OutputPoints {ExecutionMode}, and shaderTessellationAndGeometryPointSize is not enabled, a PointSize decorated variable must not be written to
VUID-VkGraphicsPipelineCreateInfo-Input-06632NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with fragment shader state with a fragment shader that either enables sample shading or decorates any variable in the Input storage class with Sample, then pMultisampleState must not be NULL
VUID-VkGraphicsPipelineCreateInfo-None-02322YMeshShaderEXTexplicitVkGraphicsPipelineCreateInfo(VK_EXT_transform_feedback)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the pipeline is being created with 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-04574NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NV_fragment_shading_rate_enums)If the pipeline is being created with 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-04575NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NV_fragment_shading_rate_enums)If the pipeline is being created with fragment shader state, and the noInvocationFragmentShadingRates feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must not be equal to VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV
VUID-VkGraphicsPipelineCreateInfo-None-04889NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with 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-06569NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NV_fragment_shading_rate_enums)If the pipeline is being created with 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-06573YNoneexplicitVkGraphicsPipelineCreateInfo!(VK_EXT_graphics_pipeline_library)The pipeline must be created with a complete set of state
VUID-VkGraphicsPipelineCreateInfo-PrimitiveId-06264NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the pipeline is being created with 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-07063NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NV_mesh_shader+VK_EXT_mesh_shader)The shader stages for VK_SHADER_STAGE_TASK_BIT_EXT or VK_SHADER_STAGE_MESH_BIT_EXT must use either the TaskNV and MeshNV {ExecutionModel} or the TaskEXT and MeshEXT {ExecutionModel}, but must not use both
VUID-VkGraphicsPipelineCreateInfo-TessellationEvaluation-07723YNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with a TessellationEvaluation {ExecutionModel}, no Geometry {ExecutionModel}, uses the PointMode {ExecutionMode}, and shaderTessellationAndGeometryPointSize is enabled, a PointSize decorated variable must be written to
VUID-VkGraphicsPipelineCreateInfo-TessellationEvaluation-07724YNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with a TessellationEvaluation {ExecutionModel}, no Geometry {ExecutionModel}, uses the PointMode {ExecutionMode}, and shaderTessellationAndGeometryPointSize is not enabled, a PointSize decorated variable must not be written to
VUID-VkGraphicsPipelineCreateInfo-Vertex-07722YPointSizeFailureexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with a Vertex {ExecutionModel} and no TessellationEvaluation or Geometry {ExecutionModel}, and the topology member of pInputAssembly is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, a PointSize decorated variable must be written to
VUID-VkGraphicsPipelineCreateInfo-commonparentYNoneimplicitVkGraphicsPipelineCreateInfocoreEach of basePipelineHandle, layout, and renderPass that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06759NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_conservative_rasterization)If 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, then VkPipelineRasterizationConservativeStateCreateInfoEXT::conservativeRasterizationMode must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06760NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_conservative_rasterization)If conservativePointAndLineRasterization is not supported, the pipeline is being created with 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-06761NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_conservative_rasterization)+(VK_NV_mesh_shader)If conservativePointAndLineRasterization is not supported, the pipeline is being created with 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-coverageReductionMode-02722YFramebufferMixedSamplesCoverageReductionexplicitVkGraphicsPipelineCreateInfo(VK_NV_coverage_reduction_mode)If the pipeline is being created with fragment output interface state, and the VK_NV_coverage_reduction_mode extension is enabled, 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-06593YDynamicRenderingCreateGraphicsPipelineWithInvalidAttachmentSampleCountexplicitVkGraphicsPipelineCreateInfo(VK_EXT_rasterization_order_attachment_access,VK_ARM_rasterization_order_attachment_access)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-dynamicRendering-06576YDynamicRenderingCreatePipelineWithoutFeatureexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the dynamicRendering feature is not enabled and the pipeline is being created with pre-rasterization shader state, fragment shader state, or fragment output interface state, renderPass must not be VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3AlphaToCoverageEnable-07375YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07376YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07386YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07378YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07379YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07380YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07382YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07395YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07397YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07396YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07398YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07393YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07394YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07371YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07384YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07390YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07383YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07388YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07389YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07377YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07372YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07387YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07373YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07381YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07399YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07385YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07374YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07400YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07370YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07392YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-07391YValidateExtendedDynamicState3DisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If 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-flags-00722YCreateGraphicsPipelineWithBadBasePointerexplicitVkGraphicsPipelineCreateInfocoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid handle to a graphics VkPipeline
VUID-VkGraphicsPipelineCreateInfo-flags-00723YCreateGraphicsPipelineWithBadBasePointerexplicitVkGraphicsPipelineCreateInfocoreIf 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-00724YNoneexplicitVkGraphicsPipelineCreateInfocoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is not -1, basePipelineHandle must be VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-flags-00725YNoneexplicitVkGraphicsPipelineCreateInfocoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is not VK_NULL_HANDLE, basePipelineIndex must be -1
VUID-VkGraphicsPipelineCreateInfo-flags-00764YGraphicsPipelineInvalidFlagsexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_1,VK_KHR_device_group)flags must not contain the VK_PIPELINE_CREATE_DISPATCH_BASE flag
VUID-VkGraphicsPipelineCreateInfo-flags-02877NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NV_device_generated_commands)If flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the deviceGeneratedCommands feature must be enabled
VUID-VkGraphicsPipelineCreateInfo-flags-02966NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NV_device_generated_commands)+(VK_EXT_transform_feedback)If the pipeline is being created with 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-03371YGraphicsPipelineInvalidFlagsexplicitVkGraphicsPipelineCreateInfo(VK_KHR_pipeline_library)+!(VK_EXT_graphics_pipeline_library)flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-03372YGraphicsPipelineInvalidFlagsexplicitVkGraphicsPipelineCreateInfo(VK_KHR_ray_tracing_pipeline)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-03373YGraphicsPipelineInvalidFlagsexplicitVkGraphicsPipelineCreateInfo(VK_KHR_ray_tracing_pipeline)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-03374YGraphicsPipelineInvalidFlagsexplicitVkGraphicsPipelineCreateInfo(VK_KHR_ray_tracing_pipeline)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-03375YGraphicsPipelineInvalidFlagsexplicitVkGraphicsPipelineCreateInfo(VK_KHR_ray_tracing_pipeline)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-03376YGraphicsPipelineInvalidFlagsexplicitVkGraphicsPipelineCreateInfo(VK_KHR_ray_tracing_pipeline)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-03377YGraphicsPipelineInvalidFlagsexplicitVkGraphicsPipelineCreateInfo(VK_KHR_ray_tracing_pipeline)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-03577YGraphicsPipelineInvalidFlagsexplicitVkGraphicsPipelineCreateInfo(VK_KHR_ray_tracing_pipeline)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-04901NNoneexplicitVkGraphicsPipelineCreateInfo(VK_QCOM_render_pass_shader_resolve)If 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-04902NNoneexplicitVkGraphicsPipelineCreateInfo(VK_QCOM_render_pass_shader_resolve)If 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-04947YGraphicsPipelineInvalidFlagsexplicitVkGraphicsPipelineCreateInfo(VK_NV_ray_tracing_motion_blur)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
VUID-VkGraphicsPipelineCreateInfo-flags-06482YDynamicRenderingGraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfo(VK_EXT_rasterization_order_attachment_access,VK_ARM_rasterization_order_attachment_access)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with 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-06483YDynamicRenderingGraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfo(VK_EXT_rasterization_order_attachment_access,VK_ARM_rasterization_order_attachment_access)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with fragment output interface state and the flags member of VkPipelineDepthStencilStateCreateInfo includes VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT or VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT, renderpass must not be VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-flags-06484YCreateGraphicsPipelineRasterizationOrderAttachmentAccessNoSubpassFlagsexplicitVkGraphicsPipelineCreateInfo(VK_EXT_rasterization_order_attachment_access,VK_ARM_rasterization_order_attachment_access)If the pipeline is being created with fragment output interface state and the flags member of VkPipelineColorBlendStateCreateInfo includes VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT subpass must have been created with VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-flags-06485YCreateGraphicsPipelineRasterizationOrderAttachmentAccessNoSubpassFlagsexplicitVkGraphicsPipelineCreateInfo(VK_EXT_rasterization_order_attachment_access,VK_ARM_rasterization_order_attachment_access)If the pipeline is being created with fragment output interface state and the flags member of VkPipelineDepthStencilStateCreateInfo includes VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT, subpass must have been created with VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-flags-06486YCreateGraphicsPipelineRasterizationOrderAttachmentAccessNoSubpassFlagsexplicitVkGraphicsPipelineCreateInfo(VK_EXT_rasterization_order_attachment_access,VK_ARM_rasterization_order_attachment_access)If the pipeline is being created with fragment output interface state and the flags member of VkPipelineDepthStencilStateCreateInfo includes VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT, subpass must have been created with VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-flags-06591YCreateGraphicsPipelineRasterizationOrderAttachmentAccessNoSubpassFlagsexplicitVkGraphicsPipelineCreateInfo(VK_EXT_rasterization_order_attachment_access,VK_ARM_rasterization_order_attachment_access)If 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-06596NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NVX_multiview_per_view_attributes)If 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-06598NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NVX_multiview_per_view_attributes)If 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-06608YDescriptorBufferInvalidExtensionCombinationexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If the pipeline is being created with all possible state subsets, flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-06609YDescriptorBufferInvalidExtensionCombinationexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06610YDescriptorBufferInvalidExtensionCombinationexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06612NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06614YDescriptorBufferInvalidExtensionCombinationexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06616NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06618NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06620NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06626YDynamicRenderingInvalidLibraryViewMaskexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06633NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06637NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, pMultisampleState->sampleShading is VK_TRUE, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the pMultisampleState used to create that library must be identically defined pMultisampleState
VUID-VkGraphicsPipelineCreateInfo-flags-06638NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_KHR_fragment_shading_rate)If 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-06640NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06641NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, pRasterizationState must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-flags-06642YDescriptorBufferInvalidExtensionCombinationexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06643NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06644NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06645NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_KHR_pipeline_executable_properties)If 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-06679NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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 be VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-flags-06680NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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 be VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-flags-06682NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06683NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06684NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06729NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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 a valid VkPipelineLayout that is 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-06730NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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 a valid VkPipelineLayout that is compatible with the union of the libraries' pipeline layouts
VUID-VkGraphicsPipelineCreateInfo-flags-06756YDescriptorBufferInvalidExtensionCombinationexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06757YDescriptorBufferInvalidExtensionCombinationexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-07369YPipelineProtectedAccessexplicitVkGraphicsPipelineCreateInfo(VK_EXT_pipeline_protected_access)flags must not include both VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT and VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-flags-07401NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_opacity_micromap)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-flags-parameterYNoneimplicitVkGraphicsPipelineCreateInfocoreflags must be a valid combination of VkPipelineCreateFlagBits values
VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04506YInvalidFragmentShadingRatePipelineCombinerOpsLimitexplicitVkGraphicsPipelineCreateInfo(VK_KHR_fragment_shading_rate)If the pipeline is being created with 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-04573NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NV_fragment_shading_rate_enums)If the pipeline is being created with 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-02321NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_transform_feedback)If the pipeline is being created with 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-06606YDescriptorBufferInvalidExtensionCombinationexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If the graphicsPipelineLibrary feature is not enabled, flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-graphicsPipelineLibrary-06607YDescriptorBufferInvalidExtensionCombinationexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If the graphicsPipelineLibrary feature is not enabled, the pipeline must be created with a complete set of state
VUID-VkGraphicsPipelineCreateInfo-layout-00756YDrawWithoutUpdatePushConstants, DescriptorBufferLibrary, SubpassInputNotBoundDescriptorSet, CreatePipelineCheckShaderPushConstantNotDeclared, CreatePipelineCheckShaderDescriptorTypeMismatch, CreatePipelinePushConstantsNotInLayout, CreatePipelineCheckShaderDescriptorNotAccessibleexplicitVkGraphicsPipelineCreateInfocorelayout must be consistent with all shaders specified in pStages
VUID-VkGraphicsPipelineCreateInfo-layout-01688YPipelineMaxPerStageResourcesexplicitVkGraphicsPipelineCreateInfocoreThe 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-06602YDescriptorBufferInvalidExtensionCombinationexplicitVkGraphicsPipelineCreateInfo!(VK_EXT_graphics_pipeline_library)layout must be a valid VkPipelineLayout handle
VUID-VkGraphicsPipelineCreateInfo-libraryCount-06648NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_NV_device_generated_commands)If 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-06649NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_NV_device_generated_commands)If the pipeline is created with a complete set of state, VkPipelineLibraryCreateInfoKHR::libraryCount is 0, and the pNext chain includes an instance of VkGraphicsPipelineShaderGroupsCreateInfoNV, VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCount must be greater than 0
VUID-VkGraphicsPipelineCreateInfo-lineRasterizationMode-02766YCreatePipelineCheckLineRasterizationexplicitVkGraphicsPipelineCreateInfo(VK_EXT_line_rasterization)If the pipeline is being created with pre-rasterization shader state and at least one of fragment output interface state or fragment shader state, and pMultisampleState is not NULL, the lineRasterizationMode member of a VkPipelineRasterizationLineStateCreateInfoEXT structure included in the pNext chain of pRasterizationState is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the alphaToCoverageEnable, alphaToOneEnable, and sampleShadingEnable members of pMultisampleState must all be VK_FALSE
VUID-VkGraphicsPipelineCreateInfo-multisampledRenderToSingleSampled-06853YNumSamplesMismatch, FramebufferMixedSamplesNV, FramebufferMixedSamples, InvalidSampleLocationsexplicitVkGraphicsPipelineCreateInfo(VK_EXT_multisampled_render_to_single_sampled)If the pipeline is being created with 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, 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-06577YDynamicRenderingPipelineRenderingParameters, DynamicRenderingGraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the multiview feature is not enabled, the pipeline is being created with 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-06592YDynamicRenderingInvalidAttachmentSampleCountexplicitVkGraphicsPipelineCreateInfo(VK_EXT_rasterization_order_attachment_access,VK_ARM_rasterization_order_attachment_access)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If the fragment output interface state, elements of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV must be valid VkSampleCountFlagBits values
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494YInvalidFragmentShadingRatePipelineexplicitVkGraphicsPipelineCreateInfo(VK_KHR_fragment_shading_rate)If the pipeline is being created with 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-04495YInvalidFragmentShadingRatePipelineexplicitVkGraphicsPipelineCreateInfo(VK_KHR_fragment_shading_rate)If the pipeline is being created with 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-04496YInvalidFragmentShadingRatePipelineexplicitVkGraphicsPipelineCreateInfo(VK_KHR_fragment_shading_rate)If the pipeline is being created with 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-04497YInvalidFragmentShadingRatePipelineexplicitVkGraphicsPipelineCreateInfo(VK_KHR_fragment_shading_rate)If the pipeline is being created with 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-04498YInvalidFragmentShadingRatePipelineexplicitVkGraphicsPipelineCreateInfo(VK_KHR_fragment_shading_rate)If the pipeline is being created with 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-04499YInvalidFragmentShadingRatePipelineexplicitVkGraphicsPipelineCreateInfo(VK_KHR_fragment_shading_rate)If the pipeline is being created with 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-04500YInvalidFragmentShadingRatePipelineFeatureUsageexplicitVkGraphicsPipelineCreateInfo(VK_KHR_fragment_shading_rate)If the pipeline is being created with 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-04501YInvalidFragmentShadingRatePipelineFeatureUsageexplicitVkGraphicsPipelineCreateInfo(VK_KHR_fragment_shading_rate)If the pipeline is being created with 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-04502YInvalidFragmentShadingRatePipelineFeatureUsageexplicitVkGraphicsPipelineCreateInfo(VK_KHR_fragment_shading_rate)If the pipeline is being created with 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-04569NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NV_fragment_shading_rate_enums)If the pipeline is being created with 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-04570NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NV_fragment_shading_rate_enums)If the pipeline is being created with 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-04571NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NV_fragment_shading_rate_enums)If the pipeline is being created with 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-04572NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NV_fragment_shading_rate_enums)If the pipeline is being created with 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-06567YInvalidFragmentShadingRateOpsexplicitVkGraphicsPipelineCreateInfo(VK_KHR_fragment_shading_rate)If the pipeline is being created with 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-06568YInvalidFragmentShadingRateOpsexplicitVkGraphicsPipelineCreateInfo(VK_KHR_fragment_shading_rate)If the pipeline is being created with 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-06570NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NV_fragment_shading_rate_enums)If the pipeline is being created with 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-06571NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NV_fragment_shading_rate_enums)If the pipeline is being created with 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-06572NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NV_fragment_shading_rate_enums)If the pipeline is being created with fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[1] must be a valid VkFragmentShadingRateCombinerOpKHR value
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-parameterYNoneimplicitVkGraphicsPipelineCreateInfocoreIf pDynamicState is not NULL, pDynamicState must be a valid pointer to a valid VkPipelineDynamicStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00747YPSOViewportStateMultiViewportTests, PSOViewportStateTestsexplicitVkGraphicsPipelineCreateInfo!(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the pipeline is being created with pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT, the pViewports member of pViewportState must be a valid pointer to an array of pViewportState->viewportCount valid VkViewport structures
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00748YPSOViewportStateMultiViewportTests, PSOViewportStateTestsexplicitVkGraphicsPipelineCreateInfo!(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the pipeline is being created with pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SCISSOR, the pScissors member of pViewportState must be a valid pointer to an array of pViewportState->scissorCount VkRect2D structures
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749YPSOLineWidthInvalidexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with 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-00754YNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with 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-00755YNoneexplicitVkGraphicsPipelineCreateInfo!(VK_EXT_depth_range_unrestricted)If the pipeline is being created with fragment shader state, 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-01521YInvalidSampleLocationsexplicitVkGraphicsPipelineCreateInfo(VK_EXT_sample_locations)+!(VK_EXT_extended_dynamic_state3)If the pipeline is being created with fragment shader state or fragment output interface state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure 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-01522YInvalidSampleLocationsexplicitVkGraphicsPipelineCreateInfo(VK_EXT_sample_locations)+!(VK_EXT_extended_dynamic_state3)If the pipeline is being created with fragment shader state or fragment output interface state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01523YInvalidSampleLocationsexplicitVkGraphicsPipelineCreateInfo(VK_EXT_sample_locations)+!(VK_EXT_extended_dynamic_state3)If the pipeline is being created with fragment shader state or fragment output interface state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715YViewportWScalingNVexplicitVkGraphicsPipelineCreateInfo(VK_NV_clip_space_w_scaling)If the pipeline is being created with 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-02510YSetDepthRangeUnrestrictedexplicitVkGraphicsPipelineCreateInfo(VK_EXT_depth_range_unrestricted)If the pipeline is being created with fragment shader state, and 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-03378YValidateExtendedDynamicStateDisabledexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)If the extendedDynamicState feature is not enabled, 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-03379YValidateExtendedDynamicStateEnabled, InvalidViewportCountWithExtendedDynamicStateexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the pipeline is being created with 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-03380YValidateExtendedDynamicStateEnabled, TestCreatingPipelineWithScissorWithCountexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the pipeline is being created with 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-03578YNonGraphicsDynamicStatesexplicitVkGraphicsPipelineCreateInfo(VK_KHR_ray_tracing_pipeline)All elements of the pDynamicStates member of pDynamicState must not be VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056YExclusiveScissorNVexplicitVkGraphicsPipelineCreateInfo(VK_NV_scissor_exclusive)If the pipeline is being created with 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-04057YShadingRateImageNVexplicitVkGraphicsPipelineCreateInfo(VK_NV_shading_rate_image)If the pipeline is being created with 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-04058NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_discard_rectangles)If the pipeline is being created with 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-04130NNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the pipeline is being created with 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, the pViewports member of pViewportState must be a valid pointer to an array of pViewportState->viewportCount valid VkViewport structures
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04131NNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the pipeline is being created with 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, the pScissors member of pViewportState must be a valid pointer to an array of pViewportState->scissorCount VkRect2D structures
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132YValidateExtendedDynamicStateEnabledexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the pipeline is being created with 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-04133YValidateExtendedDynamicStateEnabledexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the pipeline is being created with 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-04800YValidateColorWriteDynamicStateDisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_color_write_enable)If 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-04807YValidateVertexInputDynamicStateDisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_vertex_input_dynamic_state)If the pipeline is being created with 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-04868YValidateExtendedDynamicState2DisabledexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+!(VK_VERSION_1_3)If the extendedDynamicState2 feature is not enabled, 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-04869YValidateExtendedDynamicState2LogicOpDisabledexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If 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-04870YValidateExtendedDynamicState2PatchControlPointsDisabledexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If 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-07065YMeshShaderEXTexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the pipeline is being created with 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-07066YMeshShaderEXTexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the pipeline is being created with 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-07067YMeshShaderEXTexplicitVkGraphicsPipelineCreateInfo(VK_EXT_vertex_input_dynamic_state)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the pipeline is being created with 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-07610NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_sample_locations)+(VK_EXT_extended_dynamic_state3)If the pipeline is being created with fragment shader state or fragment output interface state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT or VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure 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-07611NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_sample_locations)+(VK_EXT_extended_dynamic_state3)If the pipeline is being created with fragment shader state or fragment output interface state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT or VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure 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-07612NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_sample_locations)+(VK_EXT_extended_dynamic_state3)If the pipeline is being created with fragment shader state or fragment output interface state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT or VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure 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-07613NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_sample_locations)+(VK_EXT_extended_dynamic_state3)If the pipeline is being created with fragment shader state or fragment output interface state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state is set, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE or VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT is used, 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-VkGraphicsPipelineCreateInfo-pDynamicStates-07614NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_sample_locations)+(VK_EXT_extended_dynamic_state3)If the pipeline is being created with fragment shader state or fragment output interface state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state is set, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure 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 in the last call to vkCmdSetRasterizationSamplesEXT
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07615NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_sample_locations)+(VK_EXT_extended_dynamic_state3)If the pipeline is being created with fragment shader state or fragment output interface state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state is set, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure 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 in the last call to vkCmdSetRasterizationSamplesEXT
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07730NNoneexplicitVkGraphicsPipelineCreateInfo(VK_QCOM_multiview_per_view_viewports)If the pipeline is being created with 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-07731NNoneexplicitVkGraphicsPipelineCreateInfo(VK_QCOM_multiview_per_view_viewports)If the pipeline is being created with 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-pLibraries-06597NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NVX_multiview_per_view_attributes)If 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-06599NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NVX_multiview_per_view_attributes)If 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-06611NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)Any 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-06613NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06615YDescriptorBufferInvalidExtensionCombinationexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06617NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06619NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06621NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06623NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06627YDynamicRenderingInvalidLibrariesViewMaskexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06628NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06634NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06635NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06636NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If one element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT and a value of pMultisampleState->sampleShading equal VK_TRUE, and if a different element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the pMultisampleState used to create each library must be identically defined
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06639NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_KHR_fragment_shading_rate)If 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-06646NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_KHR_pipeline_executable_properties)If 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-06647NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_KHR_pipeline_executable_properties)If 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-06681NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06758YDescriptorBufferInvalidExtensionCombinationexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and any element of the pSetLayouts array used to create each library's layout was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create the other library's layout must not have shader bindings for shaders in the other subset
VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-06629NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If the pipeline is being created with fragment shader state pMultisampleState must be NULL or a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-06630YDescriptorBufferInvalidExtensionCombinationexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+!(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with fragment shader state pMultisampleState must not be NULL
VUID-VkGraphicsPipelineCreateInfo-pNext-06605NNoneexplicitVkGraphicsPipelineCreateInfo!(VK_EXT_graphics_pipeline_library)+(VK_NV_device_generated_commands)If the pNext chain includes an instance of VkGraphicsPipelineShaderGroupsCreateInfoNV, its groupCount member must be greater than 0
VUID-VkGraphicsPipelineCreateInfo-pNext-pNextYNoneimplicitVkGraphicsPipelineCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkAttachmentSampleCountInfoAMD, VkGraphicsPipelineLibraryCreateInfoEXT, VkGraphicsPipelineShaderGroupsCreateInfoNV, VkMultiviewPerViewAttributesInfoNVX, VkPipelineCompilerControlCreateInfoAMD, VkPipelineCreationFeedbackCreateInfo, VkPipelineDiscardRectangleStateCreateInfoEXT, VkPipelineFragmentShadingRateEnumStateCreateInfoNV, VkPipelineFragmentShadingRateStateCreateInfoKHR, VkPipelineLibraryCreateInfoKHR, VkPipelineRenderingCreateInfo, VkPipelineRepresentativeFragmentTestStateCreateInfoNV, or VkPipelineRobustnessCreateInfoEXT
VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-06601YNoneexplicitVkGraphicsPipelineCreateInfo!(VK_EXT_graphics_pipeline_library)pRasterizationState must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pStages-00729YCreatePipelineTessErrorsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and pStages includes a tessellation control shader stage, it must include a tessellation evaluation shader stage
VUID-VkGraphicsPipelineCreateInfo-pStages-00730YCreatePipelineTessErrorsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and pStages includes a tessellation evaluation shader stage, it must include a tessellation control shader stage
VUID-VkGraphicsPipelineCreateInfo-pStages-00731YCreatePipelineTessErrorsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and pStages includes a tessellation control shader stage and a tessellation evaluation shader stage, pTessellationState must be a valid pointer to a valid VkPipelineTessellationStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pStages-00732NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with 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-00733NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with 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-00734NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with 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-00735NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with 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-00736YCreatePipelineTessErrorsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and pStages includes tessellation shader stages, the topology member of pInputAssembly must be VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
VUID-VkGraphicsPipelineCreateInfo-pStages-00738NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with 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-00739NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and pStages includes a geometry shader stage, and also includes tessellation shader stages, its shader code must contain an OpExecutionMode instruction specifying an input primitive type that is compatible with the primitive topology that is output by the tessellation stages
VUID-VkGraphicsPipelineCreateInfo-pStages-00740NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and fragment shader state, it includes both a fragment shader and a geometry shader, and the fragment shader code reads from an input variable that is decorated with PrimitiveId, then the geometry shader code must write to a matching output variable, decorated with PrimitiveId, in all execution paths
VUID-VkGraphicsPipelineCreateInfo-pStages-00742NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with 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-01565NNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2,VK_KHR_create_renderpass2)If the pipeline is being created with 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-02095YMeshShaderEXT, MeshShaderNVexplicitVkGraphicsPipelineCreateInfo(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the pipeline is being created with 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-02097YMeshShaderEXT, MeshShaderNVexplicitVkGraphicsPipelineCreateInfo!(VK_EXT_vertex_input_dynamic_state)If the pipeline is being created with vertex input state, pVertexInputState must be a valid pointer to a valid VkPipelineVertexInputStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pStages-02098YMeshShaderEXT, MeshShaderNVexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with vertex input state, pInputAssemblyState must be a valid pointer to a valid VkPipelineInputAssemblyStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pStages-02317NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_transform_feedback)If the pipeline is being created with pre-rasterization shader state, the Xfb execution mode can be specified by no more than one shader stage in pStages
VUID-VkGraphicsPipelineCreateInfo-pStages-02318NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_transform_feedback)If the pipeline is being created with 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-06600YDescriptorBufferInvalidExtensionCombinationexplicitVkGraphicsPipelineCreateInfo!(VK_EXT_graphics_pipeline_library)pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures
VUID-VkGraphicsPipelineCreateInfo-pStages-06894YDescriptorBufferInvalidExtensionCombinationexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with 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-06895YDescriptorBufferInvalidExtensionCombinationexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with 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-06896YDescriptorBufferInvalidExtensionCombination, MeshShaderEXT, MeshShaderNV, InvalidPipelineCreateStateexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with 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-pVertexInputState-04910NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_vertex_input_dynamic_state)If the pipeline is being created with vertex input state, and VK_DYNAMIC_STATE_VERTEX_INPUT_EXT is not set, pVertexInputState must be a valid pointer to a valid VkPipelineVertexInputStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pViewportState-04892NNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the pipeline is being created with pre-rasterization shader state, and the graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, pViewportState must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878YPipelineCreationCacheControlexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)If 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-07368YPipelineProtectedAccessexplicitVkGraphicsPipelineCreateInfo(VK_EXT_pipeline_protected_access)If 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-06594YGraphicsPipelineStageCreationFeedbackCountexplicitVkGraphicsPipelineCreateInfo(VK_EXT_pipeline_creation_feedback,VK_VERSION_1_3)If VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be equal to stageCount
VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503YInvalidPrimitiveFragmentShadingRateWriteMultiViewportLimitexplicitVkGraphicsPipelineCreateInfo(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the pipeline is being created with 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-04504YInvalidPrimitiveFragmentShadingRateWriteMultiViewportLimitexplicitVkGraphicsPipelineCreateInfo(VK_KHR_fragment_shading_rate)If the pipeline is being created with 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-04505YInvalidPrimitiveFragmentShadingRateWriteMultiViewportLimitexplicitVkGraphicsPipelineCreateInfo(VK_KHR_fragment_shading_rate)+(VK_NV_viewport_array2)If the pipeline is being created with 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-04899YInvalidPipelineRenderPassShaderResolveQCOMexplicitVkGraphicsPipelineCreateInfo(VK_QCOM_render_pass_shader_resolve)If 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-VkGraphicsPipelineCreateInfo-rasterizationStream-02319NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_transform_feedback)If the pipeline is being created with 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-02320NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_transform_feedback)If the pipeline is being created with 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-00750YPSOViewportStateTestsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state, and the rasterizerDiscardEnable member of pRasterizationState is VK_FALSE, pViewportState must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00751YNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with fragment output interface state, pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-renderPass-06038NNoneexplicitVkGraphicsPipelineCreateInfocoreIf 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-06041YBlendingOnFormatWithoutBlendingSupportexplicitVkGraphicsPipelineCreateInfocoreIf 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-06042YNumBlendAttachMismatch, TestMismatchedRenderPassAndPipelineAttachmentsexplicitVkGraphicsPipelineCreateInfo!(VK_EXT_extended_dynamic_state3)If renderPass is not VK_NULL_HANDLE, and the pipeline is being created with fragment output interface state, and the subpass uses color attachments, the attachmentCount member of pColorBlendState must be equal to the colorAttachmentCount used to create subpass
VUID-VkGraphicsPipelineCreateInfo-renderPass-06043YNoneexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE, the pipeline is being created with fragment shader state, and subpass uses a depth/stencil attachment, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-renderPass-06044YPipelineRenderpassCompatibilityexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE, the pipeline is being created with fragment output interface state, and subpass uses color attachments, pColorBlendState must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-renderPass-06046YNoneexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE, subpass must be a valid subpass within renderPass
VUID-VkGraphicsPipelineCreateInfo-renderPass-06047YTestUsingDisabledMultiviewFeaturesexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If 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-06048YTestUsingDisabledMultiviewFeaturesexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If 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-06049NNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If renderPass is not VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and subpass viewMask is not 0, all of the shaders in the pipeline must not write to the Layer built-in output
VUID-VkGraphicsPipelineCreateInfo-renderPass-06050NNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If 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-06053YDynamicRenderingGraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-renderPass-06054YDynamicRenderingGraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If renderPass is VK_NULL_HANDLE, the pipeline is being created with fragment output interface state, and VkPipelineRenderingCreateInfo::colorAttachmentCount is not equal to 0, pColorBlendState must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-renderPass-06055YDynamicRenderingGraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If renderPass is VK_NULL_HANDLE and the pipeline is being created with fragment output interface state, pColorBlendState->attachmentCount must be equal to VkPipelineRenderingCreateInfo::colorAttachmentCount
VUID-VkGraphicsPipelineCreateInfo-renderPass-06056NNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If renderPass is VK_NULL_HANDLE and the pipeline is being created with fragment shader state the fragment shader must not read from any input attachment
VUID-VkGraphicsPipelineCreateInfo-renderPass-06057YDynamicRenderingGraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_multiview,VK_VERSION_1_1)If 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-06058YDynamicRenderingGraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_multiview,VK_VERSION_1_1)If 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-06059YDynamicRenderingWithInvalidShaderLayerBuiltInexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_multiview,VK_VERSION_1_1)If 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-06061YDynamicRenderingWithInputAttachmentCapability, DynamicRenderingCreateGraphicsPipelineNoInfo, DynamicRenderingCreateGraphicsPipelineexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_multiview,VK_VERSION_1_1)If the pipeline is being created with fragment shader state and renderPass is VK_NULL_HANDLE, fragment shaders in pStages must not include the InputAttachment capability
VUID-VkGraphicsPipelineCreateInfo-renderPass-06062YDynamicRenderingGraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_multiview,VK_VERSION_1_1)If the pipeline is being created with 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-06063YDynamicRenderingWithMismatchingMixedAttachmentSamplesexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If the pipeline is being created with 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-06574YDescriptorBufferInvalidExtensionCombination, CreatePipelineWithoutRenderPass, CreateGraphicsPipelineNullRenderPassexplicitVkGraphicsPipelineCreateInfo!(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with pre-rasterization shader state, fragment shader state, or fragment output interface state, renderPass must be a valid render pass object
VUID-VkGraphicsPipelineCreateInfo-renderPass-06575YNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with pre-rasterization shader state, fragment shader state, or fragment output interface state, renderPass must be VK_NULL_HANDLE or a valid render pass object
VUID-VkGraphicsPipelineCreateInfo-renderPass-06578YDynamicRenderingPipelineRenderingViewMaskParameterexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with 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-06579YDynamicRenderingInvalidRenderingInfoColorAttachmentFormat, DynamicRenderingPipelineRenderingParametersexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with 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-06580YDynamicRenderingInvalidRenderingInfoColorAttachmentFormatexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with fragment output interface state, and renderPass is VK_NULL_HANDLE, each element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats must be a valid VkFormat value
VUID-VkGraphicsPipelineCreateInfo-renderPass-06581YDynamicRenderingPipelineRenderingParameters, DynamicRenderingGraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+!(VK_NV_linear_color_attachment)If the pipeline is being created with 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
VUID-VkGraphicsPipelineCreateInfo-renderPass-06582YDynamicRenderingColorAttachmentFormatexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_NV_linear_color_attachment)If the pipeline is being created with 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-06583YNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with fragment output interface state, and renderPass is VK_NULL_HANDLE, VkPipelineRenderingCreateInfo::depthAttachmentFormat must be a valid VkFormat value
VUID-VkGraphicsPipelineCreateInfo-renderPass-06584YNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with fragment output interface state, and renderPass is VK_NULL_HANDLE, VkPipelineRenderingCreateInfo::stencilAttachmentFormat must be a valid VkFormat value
VUID-VkGraphicsPipelineCreateInfo-renderPass-06585YNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with 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-06586YNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with 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-06587YDynamicRenderingPipelineRenderingParametersexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with 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 aspect
VUID-VkGraphicsPipelineCreateInfo-renderPass-06588YDynamicRenderingPipelineRenderingParametersexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with 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 aspect
VUID-VkGraphicsPipelineCreateInfo-renderPass-06589YDynamicRenderingPipelineRenderingParametersexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with 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-06590YDescriptorBufferInvalidExtensionCombinationexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_graphics_pipeline_library)If renderPass is VK_NULL_HANDLE and the pipeline is being created with fragment shader state but not fragment output interface state, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-renderPass-06595NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NVX_multiview_per_view_attributes)If 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-06603YDescriptorBufferInvalidExtensionCombination, CreatePipelineWithoutRenderPass, CreateGraphicsPipelineNullRenderPassexplicitVkGraphicsPipelineCreateInfo!(VK_EXT_graphics_pipeline_library)If renderPass is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass handle
VUID-VkGraphicsPipelineCreateInfo-renderPass-06854YMultisampledRenderToSingleSampledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_multisampled_render_to_single_sampled)If renderPass is not VK_NULL_HANDLE, the VK_EXT_multisampled_render_to_single_sampled extension is enabled, 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-07064YMeshShaderEXTexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)+(VK_EXT_mesh_shader)If 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-07609NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state3)If renderPass is not VK_NULL_HANDLE, and the pipeline is being created with fragment output interface state, and the pColorBlendState pointer is not NULL, and the subpass uses color attachments, the attachmentCount member of pColorBlendState must be equal to the colorAttachmentCount used to create subpass
VUID-VkGraphicsPipelineCreateInfo-renderPass-07717NNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If renderPass is not VK_NULL_HANDLE and the pipeline is being created with pre-rasterization shader state, and subpass viewMask is not 0, then all of the shaders in the pipeline must not include variables decorated with the ViewMask built-in decoration in their interfaces
VUID-VkGraphicsPipelineCreateInfo-renderPass-07718NNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_multiview,VK_VERSION_1_1)If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and VkPipelineRenderingCreateInfo::viewMask is not 0, all of the shaders in the pipeline must not write to the Layer built-in output
VUID-VkGraphicsPipelineCreateInfo-renderPass-07719NNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_multiview,VK_VERSION_1_1)If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and VkPipelineRenderingCreateInfo::viewMask is not 0, all of the shaders in the pipeline must not include variables decorated with the ViewIndex built-in decoration in their interfaces
VUID-VkGraphicsPipelineCreateInfo-renderPass-07720NNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_multiview,VK_VERSION_1_1)+(VK_EXT_mesh_shader)If 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-06624NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If 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-06625YDynamicRenderingInvalidLibraryRenderPassexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06631YDynamicRenderingPipelineMissingMultisampleStateexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with fragment shader state and renderpass is not VK_NULL_HANDLE, then pMultisampleState must not be NULL
VUID-VkGraphicsPipelineCreateInfo-sType-sTypeYNoneimplicitVkGraphicsPipelineCreateInfocoresType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
VUID-VkGraphicsPipelineCreateInfo-sType-uniqueYNoneimplicitVkGraphicsPipelineCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_sample_locations)If the pipeline is being created with 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-04900YInvalidPipelineRenderPassShaderResolveQCOMexplicitVkGraphicsPipelineCreateInfo(VK_QCOM_render_pass_shader_resolve)If 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-VkGraphicsPipelineCreateInfo-stage-00727YDescriptorBufferInvalidExtensionCombination, InvalidPipelineCreateStateexplicitVkGraphicsPipelineCreateInfo!(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the pipeline is being created with pre-rasterization shader state the stage member of one element of pStages must be VK_SHADER_STAGE_VERTEX_BIT
VUID-VkGraphicsPipelineCreateInfo-stage-02096YMeshShaderEXT, MeshShaderNVexplicitVkGraphicsPipelineCreateInfo(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the pipeline is being created with pre-rasterization shader state the stage member of one element of pStages must be either VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-stage-06897YCreatePipelineDuplicateStageexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with 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-06604YDescriptorBufferInvalidExtensionCombinationexplicitVkGraphicsPipelineCreateInfo!(VK_EXT_graphics_pipeline_library)stageCount must be greater than 0
VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767YCreatePipelineCheckLineRasterizationexplicitVkGraphicsPipelineCreateInfo(VK_EXT_line_rasterization)If the pipeline is being created with pre-rasterization shader state, the stippledLineEnable member of VkPipelineRasterizationLineStateCreateInfoEXT is VK_TRUE, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_LINE_STIPPLE_EXT, then the lineStippleFactor member of VkPipelineRasterizationLineStateCreateInfoEXT must be in the range [1,256]
VUID-VkGraphicsPipelineCreateInfo-subpass-00758NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with fragment output interface state, 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-01411YFramebufferMixedSamplesNVexplicitVkGraphicsPipelineCreateInfo(VK_NV_framebuffer_mixed_samples)If the pipeline is being created with fragment output interface state, and the VK_NV_framebuffer_mixed_samples extension is enabled, 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-01412YFramebufferMixedSamplesNVexplicitVkGraphicsPipelineCreateInfo(VK_NV_framebuffer_mixed_samples)If the pipeline is being created with fragment output interface state, and the VK_NV_framebuffer_mixed_samples extension is enabled, 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-01505YAMDMixedAttachmentSamplesValidateGraphicsPipelineexplicitVkGraphicsPipelineCreateInfo(VK_AMD_mixed_attachment_samples)If the pipeline is being created with fragment output interface state, and the VK_AMD_mixed_attachment_samples extension is enabled, 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-00737YInvalidTopology, PrimitiveTopologyListRestart, CreatePipelineTessErrorsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and the topology member of pInputAssembly is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, pStages must include tessellation shader stages
VUID-VkGraphicsPipelineLibraryCreateInfoEXT-flags-parameterYNoneimplicitVkGraphicsPipelineLibraryCreateInfoEXT(VK_EXT_graphics_pipeline_library)flags must be a valid combination of VkGraphicsPipelineLibraryFlagBitsEXT values
VUID-VkGraphicsPipelineLibraryCreateInfoEXT-flags-requiredbitmaskYNoneimplicitVkGraphicsPipelineLibraryCreateInfoEXT(VK_EXT_graphics_pipeline_library)flags must not be 0
VUID-VkGraphicsPipelineLibraryCreateInfoEXT-sType-sTypeYNoneimplicitVkGraphicsPipelineLibraryCreateInfoEXT(VK_EXT_graphics_pipeline_library)sType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-deviceGeneratedCommands-02887NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNV(VK_NV_device_generated_commands)The deviceGeneratedCommands feature must be enabled
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02879NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNV(VK_NV_device_generated_commands)groupCount must be at least 1 and as maximum VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxGraphicsShaderGroupCount
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02880NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNV(VK_NV_device_generated_commands)The sum of groupCount including those groups added from referenced pPipelines must also be as maximum VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxGraphicsShaderGroupCount
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02881NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNV(VK_NV_device_generated_commands)The state of the first element of pGroups must match its equivalent within the parent's VkGraphicsPipelineCreateInfo
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02882NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNV(VK_NV_device_generated_commands)Each element of pGroups must in combination with the rest of the pipeline state yield a valid state configuration
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02883NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNV(VK_NV_device_generated_commands)+!(VK_NV_mesh_shader,VK_EXT_mesh_shader)All elements of pGroups must use the same shader stage combinations
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02884NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNV(VK_NV_device_generated_commands)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)All elements of pGroups must use the same shader stage combinations unless any mesh shader stage is used, then either combination of task and mesh or just mesh shader is valid
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02885NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNV(VK_NV_device_generated_commands)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)Mesh and regular primitive shading stages cannot be mixed across pGroups
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-parameterYNoneimplicitVkGraphicsPipelineShaderGroupsCreateInfoNV(VK_NV_device_generated_commands)If groupCount is not 0, pGroups must be a valid pointer to an array of groupCount valid VkGraphicsShaderGroupCreateInfoNV structures
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-02886NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNV(VK_NV_device_generated_commands)Each 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-parameterYNoneimplicitVkGraphicsPipelineShaderGroupsCreateInfoNV(VK_NV_device_generated_commands)If pipelineCount is not 0, pPipelines must be a valid pointer to an array of pipelineCount valid VkPipeline handles
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-sType-sTypeYNoneimplicitVkGraphicsPipelineShaderGroupsCreateInfoNV(VK_NV_device_generated_commands)sType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV
VUID-VkGraphicsShaderGroupCreateInfoNV-pNext-pNextNNoneimplicitVkGraphicsShaderGroupCreateInfoNV(VK_NV_device_generated_commands)pNext must be NULL
VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-02889NNoneexplicitVkGraphicsShaderGroupCreateInfoNV(VK_NV_device_generated_commands)For pStages, the same restrictions as in VkGraphicsPipelineCreateInfo::pStages apply
VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-parameterYNoneimplicitVkGraphicsShaderGroupCreateInfoNV(VK_NV_device_generated_commands)pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures
VUID-VkGraphicsShaderGroupCreateInfoNV-pTessellationState-02891NNoneexplicitVkGraphicsShaderGroupCreateInfoNV(VK_NV_device_generated_commands)For pTessellationState, the same restrictions as in VkGraphicsPipelineCreateInfo::pTessellationState apply
VUID-VkGraphicsShaderGroupCreateInfoNV-pVertexInputState-02890NNoneexplicitVkGraphicsShaderGroupCreateInfoNV(VK_NV_device_generated_commands)For pVertexInputState, the same restrictions as in VkGraphicsPipelineCreateInfo::pVertexInputState apply
VUID-VkGraphicsShaderGroupCreateInfoNV-sType-sTypeYNoneimplicitVkGraphicsShaderGroupCreateInfoNV(VK_NV_device_generated_commands)sType must be VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV
VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-02888NNoneexplicitVkGraphicsShaderGroupCreateInfoNV(VK_NV_device_generated_commands)For stageCount, the same restrictions as in VkGraphicsPipelineCreateInfo::stageCount apply
VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-arraylengthYNoneimplicitVkGraphicsShaderGroupCreateInfoNV(VK_NV_device_generated_commands)stageCount must be greater than 0
VUID-VkHdrMetadataEXT-pNext-pNextYNoneimplicitVkHdrMetadataEXT(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_hdr_metadata)pNext must be NULL
VUID-VkHdrMetadataEXT-sType-sTypeYNoneimplicitVkHdrMetadataEXT(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_hdr_metadata)sType must be VK_STRUCTURE_TYPE_HDR_METADATA_EXT
VUID-VkHeadlessSurfaceCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkHeadlessSurfaceCreateInfoEXT(VK_KHR_surface)+(VK_EXT_headless_surface)flags must be 0
VUID-VkHeadlessSurfaceCreateInfoEXT-pNext-pNextYNoneimplicitVkHeadlessSurfaceCreateInfoEXT(VK_KHR_surface)+(VK_EXT_headless_surface)pNext must be NULL
VUID-VkHeadlessSurfaceCreateInfoEXT-sType-sTypeYNoneimplicitVkHeadlessSurfaceCreateInfoEXT(VK_KHR_surface)+(VK_EXT_headless_surface)sType must be VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT
VUID-VkIOSSurfaceCreateInfoMVK-flags-zerobitmaskYNoneimplicitVkIOSSurfaceCreateInfoMVK(VK_KHR_surface)+(VK_MVK_ios_surface)flags must be 0
VUID-VkIOSSurfaceCreateInfoMVK-pNext-pNextYNoneimplicitVkIOSSurfaceCreateInfoMVK(VK_KHR_surface)+(VK_MVK_ios_surface)pNext must be NULL
VUID-VkIOSSurfaceCreateInfoMVK-pView-01316NNoneexplicitVkIOSSurfaceCreateInfoMVK(VK_KHR_surface)+(VK_MVK_ios_surface)If 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-04143NNoneexplicitVkIOSSurfaceCreateInfoMVK(VK_KHR_surface)+(VK_MVK_ios_surface)If pView is a CAMetalLayer object, it must be a valid CAMetalLayer
VUID-VkIOSSurfaceCreateInfoMVK-sType-sTypeYNoneimplicitVkIOSSurfaceCreateInfoMVK(VK_KHR_surface)+(VK_MVK_ios_surface)sType must be VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK
VUID-VkImageBlit-aspectMask-00238YNoneexplicitVkImageBlitcoreThe aspectMask member of srcSubresource and dstSubresource must match
VUID-VkImageBlit-dstSubresource-parameterNNoneimplicitVkImageBlitcoredstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageBlit-layerCount-00239YMiscBlitImageTestsexplicitVkImageBlitcoreThe layerCount member of srcSubresource and dstSubresource must match
VUID-VkImageBlit-srcSubresource-parameterNNoneimplicitVkImageBlitcoresrcSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageBlit2-aspectMask-00238YNoneexplicitVkImageBlit2(VK_VERSION_1_3,VK_KHR_copy_commands2)The aspectMask member of srcSubresource and dstSubresource must match
VUID-VkImageBlit2-dstSubresource-parameterNNoneimplicitVkImageBlit2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageBlit2-layerCount-00239YNoneexplicitVkImageBlit2(VK_VERSION_1_3,VK_KHR_copy_commands2)The layerCount member of srcSubresource and dstSubresource must match
VUID-VkImageBlit2-pNext-pNextYNoneimplicitVkImageBlit2(VK_VERSION_1_3,VK_KHR_copy_commands2)pNext must be NULL or a pointer to a valid instance of VkCopyCommandTransformInfoQCOM
VUID-VkImageBlit2-sType-sTypeYNoneimplicitVkImageBlit2(VK_VERSION_1_3,VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_IMAGE_BLIT_2
VUID-VkImageBlit2-sType-uniqueYNoneimplicitVkImageBlit2(VK_VERSION_1_3,VK_KHR_copy_commands2)The sType value of each struct in the pNext chain must be unique
VUID-VkImageBlit2-srcSubresource-parameterNNoneimplicitVkImageBlit2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageCaptureDescriptorDataInfoEXT-image-08079YDescriptorBufferNotEnabledexplicitVkImageCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)image must have been created with VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkImageCreateInfo::flags
VUID-VkImageCaptureDescriptorDataInfoEXT-image-parameterYNoneimplicitVkImageCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)image must be a valid VkImage handle
VUID-VkImageCaptureDescriptorDataInfoEXT-pNext-pNextYNoneimplicitVkImageCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)pNext must be NULL
VUID-VkImageCaptureDescriptorDataInfoEXT-sType-sTypeYNoneimplicitVkImageCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)sType must be VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
VUID-VkImageCompressionControlEXT-flags-06747YInvalidImageCompressionControlexplicitVkImageCompressionControlEXT(VK_EXT_image_compression_control)flags 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-06748YInvalidImageCompressionControlexplicitVkImageCompressionControlEXT(VK_EXT_image_compression_control)If flags includes VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, pFixedRateFlags must not be NULL
VUID-VkImageCompressionControlEXT-sType-sTypeYNoneimplicitVkImageCompressionControlEXT(VK_EXT_image_compression_control)sType must be VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT
VUID-VkImageCompressionPropertiesEXT-sType-sTypeYNoneimplicitVkImageCompressionPropertiesEXT(VK_EXT_image_compression_control)sType must be VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT
VUID-VkImageConstraintsInfoFUCHSIA-attachmentFragmentShadingRate-06401NNoneexplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)+(VK_KHR_fragment_shading_rate)If 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-parameterNNoneimplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)bufferCollectionConstraints must be a valid VkBufferCollectionConstraintsInfoFUCHSIA structure
VUID-VkImageConstraintsInfoFUCHSIA-flags-parameterYNoneimplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)flags must be a valid combination of VkImageConstraintsInfoFlagBitsFUCHSIA values
VUID-VkImageConstraintsInfoFUCHSIA-formatConstraintsCount-arraylengthYNoneimplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)formatConstraintsCount must be greater than 0
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06395NNoneexplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)All elements of pFormatConstraints must have at least one bit set in its VkImageFormatConstraintsInfoFUCHSIA::requiredFormatFeatures
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06396NNoneexplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)If pFormatConstraints::imageCreateInfo::usage contains VK_IMAGE_USAGE_SAMPLED_BIT, then pFormatConstraints::requiredFormatFeatures must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06397NNoneexplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)If pFormatConstraints::imageCreateInfo::usage contains VK_IMAGE_USAGE_STORAGE_BIT, then pFormatConstraints::requiredFormatFeatures must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06398NNoneexplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)If pFormatConstraints::imageCreateInfo::usage contains VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, then pFormatConstraints::requiredFormatFeatures must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06399NNoneexplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)If 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-06400NNoneexplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)If 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-parameterYNoneimplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)pFormatConstraints must be a valid pointer to an array of formatConstraintsCount valid VkImageFormatConstraintsInfoFUCHSIA structures
VUID-VkImageConstraintsInfoFUCHSIA-pNext-pNextYNoneimplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)pNext must be NULL
VUID-VkImageConstraintsInfoFUCHSIA-sType-sTypeYNoneimplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)sType must be VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA
VUID-VkImageCopy-aspectMask-00137YCopyImageAspectMismatchexplicitVkImageCopy!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)The aspectMask member of srcSubresource and dstSubresource must match
VUID-VkImageCopy-dstSubresource-parameterNNoneimplicitVkImageCopycoredstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageCopy-extent-06668YCopyImageZeroSizeexplicitVkImageCopycoreextent.width must not be 0
VUID-VkImageCopy-extent-06669YCopyImageZeroSizeexplicitVkImageCopycoreextent.height must not be 0
VUID-VkImageCopy-extent-06670YCopyImageZeroSizeexplicitVkImageCopycoreextent.depth must not be 0
VUID-VkImageCopy-layerCount-00138YCopyImageLayerCountMismatchexplicitVkImageCopy!(VK_VERSION_1_1,VK_KHR_maintenance1)The layerCount member of srcSubresource and dstSubresource must match
VUID-VkImageCopy-srcSubresource-parameterNNoneimplicitVkImageCopycoresrcSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageCopy2-aspectMask-00137YNoneexplicitVkImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)The aspectMask member of srcSubresource and dstSubresource must match
VUID-VkImageCopy2-dstSubresource-parameterNNoneimplicitVkImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageCopy2-extent-06668YNoneexplicitVkImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)extent.width must not be 0
VUID-VkImageCopy2-extent-06669YNoneexplicitVkImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)extent.height must not be 0
VUID-VkImageCopy2-extent-06670YNoneexplicitVkImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)extent.depth must not be 0
VUID-VkImageCopy2-layerCount-00138YNoneexplicitVkImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_maintenance1)The layerCount member of srcSubresource and dstSubresource must match
VUID-VkImageCopy2-pNext-pNextYNoneimplicitVkImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)pNext must be NULL
VUID-VkImageCopy2-sType-sTypeYNoneimplicitVkImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_IMAGE_COPY_2
VUID-VkImageCopy2-srcSubresource-parameterNNoneimplicitVkImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageCreateInfo-Format-02536YImageStencilCreateexplicitVkImageCreateInfo(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If 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-01891YInvalidProtectedMemoryexplicitVkImageCreateInfo(VK_VERSION_1_1)If 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-01925YInvalidSparseImageUsageBitsexplicitVkImageCreateInfocoreIf 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-00948YCreateImageMinLimitsViolationexplicitVkImageCreateInfocorearrayLayers must be greater than 0
VUID-VkImageCreateInfo-arrayLayers-02256YCreateImageMaxLimitsViolationexplicitVkImageCreateInfocorearrayLayers must be less than or equal to imageCreateMaxArrayLayers (as defined in Image Creation Limits)
VUID-VkImageCreateInfo-extent-00944YCreateImageMinLimitsViolationexplicitVkImageCreateInfocoreextent.width must be greater than 0
VUID-VkImageCreateInfo-extent-00945YCreateImageMinLimitsViolationexplicitVkImageCreateInfocoreextent.height must be greater than 0
VUID-VkImageCreateInfo-extent-00946YCreateImageMinLimitsViolationexplicitVkImageCreateInfocoreextent.depth must be greater than 0
VUID-VkImageCreateInfo-extent-02252YCreateImageMaxLimitsViolationexplicitVkImageCreateInfocoreextent.width must be less than or equal to imageCreateMaxExtent.width (as defined in Image Creation Limits)
VUID-VkImageCreateInfo-extent-02253YCreateImageMaxLimitsViolation, CreateImageYcbcrFormatsexplicitVkImageCreateInfocoreextent.height must be less than or equal to imageCreateMaxExtent.height (as defined in Image Creation Limits)
VUID-VkImageCreateInfo-extent-02254YCreateImageMaxLimitsViolationexplicitVkImageCreateInfocoreextent.depth must be less than or equal to imageCreateMaxExtent.depth (as defined in Image Creation Limits)
VUID-VkImageCreateInfo-flags-00949YCreateImageMiscErrorsexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, imageType must be VK_IMAGE_TYPE_2D
VUID-VkImageCreateInfo-flags-00950YBad2DArrayImageTypeexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance1)If flags contains VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, imageType must be VK_IMAGE_TYPE_3D
VUID-VkImageCreateInfo-flags-00969YCreateImageMiscErrorsexplicitVkImageCreateInfocoreIf the sparseBinding feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT
VUID-VkImageCreateInfo-flags-00987YSparseBindingImageBufferCreate, CreateImageViewInvalidSubresourceRangeexplicitVkImageCreateInfocoreIf 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-01533YInvalidSampleLocationsexplicitVkImageCreateInfo(VK_EXT_sample_locations)If flags contains VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT format must be a depth or depth/stencil format
VUID-VkImageCreateInfo-flags-01572YNoneexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)If flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, then format must be a compressed image format
VUID-VkImageCreateInfo-flags-01573YNoneexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)If flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, then flags must also contain VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
VUID-VkImageCreateInfo-flags-01890YInvalidProtectedSubmitexplicitVkImageCreateInfo(VK_VERSION_1_1)If the protectedMemory feature is not enabled, flags must not contain VK_IMAGE_CREATE_PROTECTED_BIT
VUID-VkImageCreateInfo-flags-01924YNoneexplicitVkImageCreateInfocoreIf the sparseResidencyAliased feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_ALIASED_BIT
VUID-VkImageCreateInfo-flags-02050YCornerSampledImageNVexplicitVkImageCreateInfo(VK_NV_corner_sampled_image)If flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, imageType must be VK_IMAGE_TYPE_2D or VK_IMAGE_TYPE_3D
VUID-VkImageCreateInfo-flags-02051YCornerSampledImageNVexplicitVkImageCreateInfo(VK_NV_corner_sampled_image)If 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-02052YCornerSampledImageNVexplicitVkImageCreateInfo(VK_NV_corner_sampled_image)If 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-02053YCornerSampledImageNVexplicitVkImageCreateInfo(VK_NV_corner_sampled_image)If 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-02259YCreateImageMiscErrorsexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_device_group)If 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-02557YFragmentDensityMapEnabledexplicitVkImageCreateInfo(VK_EXT_fragment_density_map)If flags contains VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, imageType must be VK_IMAGE_TYPE_2D
VUID-VkImageCreateInfo-flags-02565YFragmentDensityMapEnabledexplicitVkImageCreateInfo(VK_EXT_fragment_density_map)If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, tiling must be VK_IMAGE_TILING_OPTIMAL
VUID-VkImageCreateInfo-flags-02566YFragmentDensityMapEnabledexplicitVkImageCreateInfo(VK_EXT_fragment_density_map)If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, imageType must be VK_IMAGE_TYPE_2D
VUID-VkImageCreateInfo-flags-02567YFragmentDensityMapEnabledexplicitVkImageCreateInfo(VK_EXT_fragment_density_map)If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, flags must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
VUID-VkImageCreateInfo-flags-02568YFragmentDensityMapEnabledexplicitVkImageCreateInfo(VK_EXT_fragment_density_map)If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, mipLevels must be 1
VUID-VkImageCreateInfo-flags-04738YInvalidImageFormatListexplicitVkImageCreateInfo(VK_VERSION_1_2,VK_KHR_image_format_list)If 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-06883YMultisampledRenderToSingleSampledexplicitVkImageCreateInfo(VK_EXT_multisampled_render_to_single_sampled)If flags contains VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT, samples must be VK_SAMPLE_COUNT_1_BIT
VUID-VkImageCreateInfo-flags-08104YDescriptorBufferNotEnabledexplicitVkImageCreateInfo(VK_EXT_descriptor_buffer)If flags includes VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled
VUID-VkImageCreateInfo-flags-parameterYNoneimplicitVkImageCreateInfocoreflags must be a valid combination of VkImageCreateFlagBits values
VUID-VkImageCreateInfo-format-00943YImageLayerUnsupportedFormat, CreateImageMiscErrorsexplicitVkImageCreateInfo!(VK_ANDROID_external_memory_android_hardware_buffer)format must not be VK_FORMAT_UNDEFINED
VUID-VkImageCreateInfo-format-01577YNoneexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-02537YImageStencilCreateexplicitVkImageCreateInfo(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If 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-02538YImageStencilCreateexplicitVkImageCreateInfo(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If 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-02795YImageStencilCreateexplicitVkImageCreateInfo(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If 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-02796YImageStencilCreateexplicitVkImageCreateInfo(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If 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-02797YImageStencilCreateexplicitVkImageCreateInfo(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If 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-02798YImageStencilCreateexplicitVkImageCreateInfo(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If 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-04712YCreateImageYcbcrFormatsexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If format has a _422 or _420 suffix, width must be a multiple of 2
VUID-VkImageCreateInfo-format-04713YCreateImageYcbcrFormatsexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If format has a _420 suffix, height must be a multiple of 2
VUID-VkImageCreateInfo-format-06410YCreateImageYcbcrFormatsexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the image format is one of the formats that require a sampler {YCbCr} conversion, mipLevels must be 1
VUID-VkImageCreateInfo-format-06411YCreateImageYcbcrFormatsexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the image format is one of the formats that require a sampler {YCbCr} conversion, samples must be VK_SAMPLE_COUNT_1_BIT
VUID-VkImageCreateInfo-format-06412YCreateImageYcbcrFormatsexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the image format is one of the formats that require a sampler {YCbCr} conversion, imageType must be VK_IMAGE_TYPE_2D
VUID-VkImageCreateInfo-format-parameterYNoneimplicitVkImageCreateInfocoreformat must be a valid VkFormat value
VUID-VkImageCreateInfo-fragmentDensityMapOffset-06514YCreateImageMaxLimitsViolationexplicitVkImageCreateInfo(VK_EXT_fragment_density_map)+(VK_QCOM_fragment_density_map_offset)If 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-06515YCreateImageMaxLimitsViolationexplicitVkImageCreateInfo(VK_EXT_fragment_density_map)+(VK_QCOM_fragment_density_map_offset)If 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-02260YCreateImageYcbcrFormatsexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-imageCreateMaxMipLevels-02251YAndroidHardwareBufferImageCreateexplicitVkImageCreateInfocoreEach of the following values (as described in Image Creation Limits) must not be undefined : imageCreateMaxMipLevels, imageCreateMaxArrayLayers, imageCreateMaxExtent, and imageCreateSampleCounts
VUID-VkImageCreateInfo-imageType-00954YCreateImageMinLimitsViolationexplicitVkImageCreateInfocoreIf imageType is VK_IMAGE_TYPE_2D and flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height must be equal and arrayLayers must be greater than or equal to 6
VUID-VkImageCreateInfo-imageType-00956YCreateImageMinLimitsViolation, CreateImageYcbcrFormatsexplicitVkImageCreateInfocoreIf imageType is VK_IMAGE_TYPE_1D, both extent.height and extent.depth must be 1
VUID-VkImageCreateInfo-imageType-00957YCreateImageMinLimitsViolationexplicitVkImageCreateInfocoreIf imageType is VK_IMAGE_TYPE_2D, extent.depth must be 1
VUID-VkImageCreateInfo-imageType-00961YCreateImageMinLimitsViolationexplicitVkImageCreateInfocoreIf imageType is VK_IMAGE_TYPE_3D, arrayLayers must be 1
VUID-VkImageCreateInfo-imageType-00970YSparseResidencyImageCreateUnsupportedTypesexplicitVkImageCreateInfocoreIf imageType is VK_IMAGE_TYPE_1D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkImageCreateInfo-imageType-00971YSparseResidencyImageCreateUnsupportedTypesexplicitVkImageCreateInfocoreIf 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-00972YSparseResidencyImageCreateUnsupportedTypesexplicitVkImageCreateInfocoreIf 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-00973YSparseResidencyImageCreateUnsupportedSamplesexplicitVkImageCreateInfocoreIf 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-00974YSparseResidencyImageCreateUnsupportedSamplesexplicitVkImageCreateInfocoreIf 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-00975YSparseResidencyImageCreateUnsupportedSamplesexplicitVkImageCreateInfocoreIf 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-00976YSparseResidencyImageCreateUnsupportedSamplesexplicitVkImageCreateInfocoreIf 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-02082YShadingRateImageNVexplicitVkImageCreateInfo(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image)If usage includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, imageType must be VK_IMAGE_TYPE_2D
VUID-VkImageCreateInfo-imageType-parameterYNoneimplicitVkImageCreateInfocoreimageType must be a valid VkImageType value
VUID-VkImageCreateInfo-imageView2DOn3DImage-04459YInvalidDepthStencilStateForReadOnlyLayoutexplicitVkImageCreateInfo(VK_KHR_portability_subset)If 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-00993YCreateImageMiscErrorsexplicitVkImageCreateInfocoreinitialLayout must be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED
VUID-VkImageCreateInfo-initialLayout-parameterYNoneimplicitVkImageCreateInfocoreinitialLayout must be a valid VkImageLayout value
VUID-VkImageCreateInfo-mipLevels-00947YCreateImageMinLimitsViolationexplicitVkImageCreateInfocoremipLevels must be greater than 0
VUID-VkImageCreateInfo-mipLevels-00958YCreateImageMaxLimitsViolation, CornerSampledImageNVexplicitVkImageCreateInfocoremipLevels 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-02255YCreateImageMaxLimitsViolationexplicitVkImageCreateInfocoremipLevels must be less than or equal to imageCreateMaxMipLevels (as defined in Image Creation Limits)
VUID-VkImageCreateInfo-multisampleArrayImage-04460YInvalidDepthStencilStateForReadOnlyLayoutexplicitVkImageCreateInfo(VK_KHR_portability_subset)If 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-06882YMultisampledRenderToSingleSampledexplicitVkImageCreateInfo(VK_EXT_multisampled_render_to_single_sampled)If the multisampledRenderToSingleSampled feature is not enabled, flags must not contain VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT
VUID-VkImageCreateInfo-pNext-00988YExternalMemoryAndExternalMemoryNVexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_NV_external_memory)If the pNext chain includes a VkExternalMemoryImageCreateInfoNV structure, it must not contain a VkExternalMemoryImageCreateInfo structure
VUID-VkImageCreateInfo-pNext-00990NNoneexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_external_memory)If 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-00991NNoneexplicitVkImageCreateInfo(VK_NV_external_memory+VK_NV_external_memory_capabilities)If 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-01443YValidateExternalMemoryImageLayoutexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_external_memory,VK_NV_external_memory)If 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-01974YAndroidHardwareBufferImageCreateexplicitVkImageCreateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If the pNext chain includes a VkExternalFormatANDROID structure, and its externalFormat member is non-zero the format must be VK_FORMAT_UNDEFINED
VUID-VkImageCreateInfo-pNext-01975YAndroidHardwareBufferImageCreateexplicitVkImageCreateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If 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-02262YImageDrmFormatModiferexplicitVkImageCreateInfo(VK_EXT_image_drm_format_modifier)If the pNext chain includes a VkImageDrmFormatModifierListCreateInfoEXT or VkImageDrmFormatModifierExplicitCreateInfoEXT structure, then tiling must be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
VUID-VkImageCreateInfo-pNext-02393YAndroidHardwareBufferImageCreateexplicitVkImageCreateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If 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-02394YAndroidHardwareBufferImageCreateexplicitVkImageCreateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If 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-02396YAndroidHardwareBufferImageCreateexplicitVkImageCreateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If 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-02397YAndroidHardwareBufferImageCreateexplicitVkImageCreateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, usage must not include any usages except VK_IMAGE_USAGE_SAMPLED_BIT
VUID-VkImageCreateInfo-pNext-02398YAndroidHardwareBufferImageCreateexplicitVkImageCreateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, tiling must be VK_IMAGE_TILING_OPTIMAL
VUID-VkImageCreateInfo-pNext-06390NNoneexplicitVkImageCreateInfo(VK_FUCHSIA_buffer_collection)If the VkImage is to be used to import memory from a VkBufferCollectionFUCHSIA, a VkBufferCollectionImageCreateInfoFUCHSIA structure must be chained to pNext
VUID-VkImageCreateInfo-pNext-06722YInvalidImageFormatList, InvalidImageFormatListSizeCompatibleexplicitVkImageCreateInfo(VK_VERSION_1_2,VK_KHR_image_format_list)If a VkImageFormatListCreateInfo structure was included in the pNext chain and VkImageFormatListCreateInfo::viewFormatCount is not zero, then each format in VkImageFormatListCreateInfo::pViewFormats must either be compatible with the format as described in the compatibility table or, if flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, be an uncompressed format that is size-compatible with format
VUID-VkImageCreateInfo-pNext-06743NNoneexplicitVkImageCreateInfo(VK_EXT_image_compression_control)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-06744NNoneexplicitVkImageCreateInfo(VK_EXT_image_compression_control)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-06745NNoneexplicitVkImageCreateInfo(VK_EXT_image_compression_control)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the pNext chain includes a VkImageCompressionControlEXT structure, and VkImageCompressionControlEXT::flags includes VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, then VkImageCompressionControlEXT::compressionControlPlaneCount must be 1
VUID-VkImageCreateInfo-pNext-06746NNoneexplicitVkImageCreateInfo(VK_EXT_image_compression_control)+(VK_EXT_image_drm_format_modifier)If the pNext chain includes a VkImageCompressionControlEXT structure, it must not contain a VkImageDrmFormatModifierExplicitCreateInfoEXT structure
VUID-VkImageCreateInfo-pNext-06783YExportMetalObjectsexplicitVkImageCreateInfo(VK_EXT_metal_objects)If 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-06784YExportMetalObjectsexplicitVkImageCreateInfo(VK_EXT_metal_objects)If 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-06785YExportMetalObjectsexplicitVkImageCreateInfo(VK_EXT_metal_objects)If 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-06786YExportMetalObjectsexplicitVkImageCreateInfo(VK_EXT_metal_objects)If 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-06811NNoneexplicitVkImageCreateInfo(VK_KHR_video_queue)If the pNext chain includes a VkVideoProfileListInfoKHR structure then supportedVideoFormat must be VK_TRUE
VUID-VkImageCreateInfo-pNext-08105YDescriptorBufferNotEnabledexplicitVkImageCreateInfo(VK_EXT_descriptor_buffer)If the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
VUID-VkImageCreateInfo-pNext-pNextYNoneimplicitVkImageCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkBufferCollectionImageCreateInfoFUCHSIA, VkDedicatedAllocationImageCreateInfoNV, VkExportMetalObjectCreateInfoEXT, VkExternalFormatANDROID, VkExternalMemoryImageCreateInfo, VkExternalMemoryImageCreateInfoNV, VkImageCompressionControlEXT, VkImageDrmFormatModifierExplicitCreateInfoEXT, VkImageDrmFormatModifierListCreateInfoEXT, VkImageFormatListCreateInfo, VkImageStencilUsageCreateInfo, VkImageSwapchainCreateInfoKHR, VkImportMetalIOSurfaceInfoEXT, VkImportMetalTextureInfoEXT, VkOpaqueCaptureDescriptorDataCreateInfoEXT, VkOpticalFlowImageFormatInfoNV, or VkVideoProfileListInfoKHR
VUID-VkImageCreateInfo-physicalDeviceCount-01421YInvalidImageCreateFlagWithPhysicalDeviceCountexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_device_group)If the logical device was created with VkDeviceGroupDeviceCreateInfo::physicalDeviceCount equal to 1, flags must not contain VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT
VUID-VkImageCreateInfo-sType-sTypeYNoneimplicitVkImageCreateInfocoresType must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
VUID-VkImageCreateInfo-sType-uniqueYNoneimplicitVkImageCreateInfocoreThe sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT or VkImportMetalTextureInfoEXT
VUID-VkImageCreateInfo-samples-02083YShadingRateImageNVexplicitVkImageCreateInfo(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image)If usage includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, samples must be VK_SAMPLE_COUNT_1_BIT
VUID-VkImageCreateInfo-samples-02257YCreateImageMiscErrorsexplicitVkImageCreateInfocoreIf 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-02258YCreateImageMaxLimitsViolation, CreateImageYcbcrFormatsexplicitVkImageCreateInfocoresamples must be a bit value that is set in imageCreateSampleCounts (as defined in Image Creation Limits)
VUID-VkImageCreateInfo-samples-02558YFragmentDensityMapEnabledexplicitVkImageCreateInfo(VK_EXT_fragment_density_map)If samples is not VK_SAMPLE_COUNT_1_BIT, usage must not contain VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
VUID-VkImageCreateInfo-samples-parameterYNoneimplicitVkImageCreateInfocoresamples must be a valid VkSampleCountFlagBits value
VUID-VkImageCreateInfo-shadingRateImage-07727YShadingRateImageNVexplicitVkImageCreateInfo(VK_NV_shading_rate_image)If 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-00941YCreateImageMiscErrorsexplicitVkImageCreateInfocoreIf sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values
VUID-VkImageCreateInfo-sharingMode-00942YCreateImageMiscErrorsexplicitVkImageCreateInfocoreIf sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1
VUID-VkImageCreateInfo-sharingMode-01392YInvalidCreateImageQueueFamiliesexplicitVkImageCreateInfo!(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the physicalDevice that was used to create device
VUID-VkImageCreateInfo-sharingMode-01420YInvalidCreateImageQueueFamiliesexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by either vkGetPhysicalDeviceQueueFamilyProperties or vkGetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create device
VUID-VkImageCreateInfo-sharingMode-parameterYNoneimplicitVkImageCreateInfocoresharingMode must be a valid VkSharingMode value
VUID-VkImageCreateInfo-tiling-02261YImageDrmFormatModiferexplicitVkImageCreateInfo(VK_EXT_image_drm_format_modifier)If 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-02353NNoneexplicitVkImageCreateInfo(VK_EXT_image_drm_format_modifier)If 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-04121YNoneexplicitVkImageCreateInfocoreIf tiling is VK_IMAGE_TILING_LINEAR, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkImageCreateInfo-tiling-parameterYNoneimplicitVkImageCreateInfocoretiling must be a valid VkImageTiling value
VUID-VkImageCreateInfo-usage-00963YCreateImageMiscErrorsexplicitVkImageCreateInfocoreIf 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-00964YCreateImageMaxLimitsViolationexplicitVkImageCreateInfocoreIf 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-00965YCreateImageMaxLimitsViolationexplicitVkImageCreateInfocoreIf 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-00966YCreateImageMiscErrorsexplicitVkImageCreateInfocoreIf 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-00968YCreateImageMiscErrorsexplicitVkImageCreateInfocoreIf 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-02559NNoneexplicitVkImageCreateInfo(VK_EXT_fragment_density_map)+!(VK_QCOM_fragment_density_map_offset)If 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-usage-02560NNoneexplicitVkImageCreateInfo(VK_EXT_fragment_density_map)+!(VK_QCOM_fragment_density_map_offset)If 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-usage-04815NNoneexplicitVkImageCreateInfo(VK_KHR_video_decode_queue)If usage includes VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR, then the pNext chain must include a valid VkVideoProfileListInfoKHR structure with profileCount greater than 0 and pProfiles including at least one VkVideoProfileInfoKHR::videoCodecOperation specifying a decode operation
VUID-VkImageCreateInfo-usage-04816NNoneexplicitVkImageCreateInfo(VK_KHR_video_encode_queue)If usage includes VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR, VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR, VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR, then the pNext chain must include a valid VkVideoProfileListInfoKHR structure with profileCount greater than 0 and pProfiles including at least one VkVideoProfileInfoKHR::videoCodecOperation specifying an encode operation
VUID-VkImageCreateInfo-usage-04992NNoneexplicitVkImageCreateInfo(VK_HUAWEI_invocation_mask)If usage includes VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI, tiling must be VK_IMAGE_TILING_LINEAR
VUID-VkImageCreateInfo-usage-parameterYNoneimplicitVkImageCreateInfocoreusage must be a valid combination of VkImageUsageFlagBits values
VUID-VkImageCreateInfo-usage-requiredbitmaskYNoneimplicitVkImageCreateInfocoreusage must not be 0
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-arrayPitch-02268YImageDrmFormatModiferexplicitVkImageDrmFormatModifierExplicitCreateInfoEXT(VK_EXT_image_drm_format_modifier)For each element of pPlaneLayouts, arrayPitch must be 0 if VkImageCreateInfo::arrayLayers is 1
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-depthPitch-02269YImageDrmFormatModiferexplicitVkImageDrmFormatModifierExplicitCreateInfoEXT(VK_EXT_image_drm_format_modifier)For each element of pPlaneLayouts, depthPitch must be 0 if VkImageCreateInfo::extent.depth is 1
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifier-02264NNoneexplicitVkImageDrmFormatModifierExplicitCreateInfoEXT(VK_EXT_image_drm_format_modifier)drmFormatModifier must be compatible with the parameters in VkImageCreateInfo and its pNext chain, as determined by querying VkPhysicalDeviceImageFormatInfo2 extended with VkPhysicalDeviceImageDrmFormatModifierInfoEXT
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifierPlaneCount-02265NNoneexplicitVkImageDrmFormatModifierExplicitCreateInfoEXT(VK_EXT_image_drm_format_modifier)drmFormatModifierPlaneCount must be equal to the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with VkImageCreateInfo::format and drmFormatModifier, as found by querying VkDrmFormatModifierPropertiesListEXT
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-pPlaneLayouts-parameterYNoneimplicitVkImageDrmFormatModifierExplicitCreateInfoEXT(VK_EXT_image_drm_format_modifier)If drmFormatModifierPlaneCount is not 0, pPlaneLayouts must be a valid pointer to an array of drmFormatModifierPlaneCount VkSubresourceLayout structures
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-sType-sTypeYNoneimplicitVkImageDrmFormatModifierExplicitCreateInfoEXT(VK_EXT_image_drm_format_modifier)sType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-size-02267YImageDrmFormatModiferexplicitVkImageDrmFormatModifierExplicitCreateInfoEXT(VK_EXT_image_drm_format_modifier)For each element of pPlaneLayouts, size must be 0
VUID-VkImageDrmFormatModifierListCreateInfoEXT-drmFormatModifierCount-arraylengthYNoneimplicitVkImageDrmFormatModifierListCreateInfoEXT(VK_EXT_image_drm_format_modifier)drmFormatModifierCount must be greater than 0
VUID-VkImageDrmFormatModifierListCreateInfoEXT-pDrmFormatModifiers-02263NNoneexplicitVkImageDrmFormatModifierListCreateInfoEXT(VK_EXT_image_drm_format_modifier)Each 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-parameterYNoneimplicitVkImageDrmFormatModifierListCreateInfoEXT(VK_EXT_image_drm_format_modifier)pDrmFormatModifiers must be a valid pointer to an array of drmFormatModifierCount uint64_t values
VUID-VkImageDrmFormatModifierListCreateInfoEXT-sType-sTypeYNoneimplicitVkImageDrmFormatModifierListCreateInfoEXT(VK_EXT_image_drm_format_modifier)sType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT
VUID-VkImageDrmFormatModifierPropertiesEXT-pNext-pNextYNoneimplicitVkImageDrmFormatModifierPropertiesEXT(VK_EXT_image_drm_format_modifier)pNext must be NULL
VUID-VkImageDrmFormatModifierPropertiesEXT-sType-sTypeYNoneimplicitVkImageDrmFormatModifierPropertiesEXT(VK_EXT_image_drm_format_modifier)sType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT
VUID-VkImageFormatConstraintsInfoFUCHSIA-colorSpaceCount-arraylengthYNoneimplicitVkImageFormatConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)colorSpaceCount must be greater than 0
VUID-VkImageFormatConstraintsInfoFUCHSIA-flags-zerobitmaskYNoneimplicitVkImageFormatConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)flags must be 0
VUID-VkImageFormatConstraintsInfoFUCHSIA-imageCreateInfo-parameterNNoneimplicitVkImageFormatConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)imageCreateInfo must be a valid VkImageCreateInfo structure
VUID-VkImageFormatConstraintsInfoFUCHSIA-pColorSpaces-parameterYNoneimplicitVkImageFormatConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)pColorSpaces must be a valid pointer to an array of colorSpaceCount valid VkSysmemColorSpaceFUCHSIA structures
VUID-VkImageFormatConstraintsInfoFUCHSIA-pNext-pNextYNoneimplicitVkImageFormatConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)pNext must be NULL
VUID-VkImageFormatConstraintsInfoFUCHSIA-requiredFormatFeatures-parameterYNoneimplicitVkImageFormatConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)requiredFormatFeatures must be a valid combination of VkFormatFeatureFlagBits values
VUID-VkImageFormatConstraintsInfoFUCHSIA-requiredFormatFeatures-requiredbitmaskYNoneimplicitVkImageFormatConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)requiredFormatFeatures must not be 0
VUID-VkImageFormatConstraintsInfoFUCHSIA-sType-sTypeYNoneimplicitVkImageFormatConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA
VUID-VkImageFormatListCreateInfo-pViewFormats-parameterNNoneimplicitVkImageFormatListCreateInfo(VK_VERSION_1_2,VK_KHR_image_format_list)If viewFormatCount is not 0, pViewFormats must be a valid pointer to an array of viewFormatCount valid VkFormat values
VUID-VkImageFormatListCreateInfo-sType-sTypeYNoneimplicitVkImageFormatListCreateInfo(VK_VERSION_1_2,VK_KHR_image_format_list)sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO
VUID-VkImageFormatProperties2-pNext-pNextYNoneimplicitVkImageFormatProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkAndroidHardwareBufferUsageANDROID, VkExternalImageFormatProperties, VkFilterCubicImageViewImageFormatPropertiesEXT, VkImageCompressionPropertiesEXT, VkSamplerYcbcrConversionImageFormatProperties, or VkTextureLODGatherFormatPropertiesAMD
VUID-VkImageFormatProperties2-sType-sTypeYNoneimplicitVkImageFormatProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2
VUID-VkImageFormatProperties2-sType-uniqueYNoneimplicitVkImageFormatProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)The sType value of each struct in the pNext chain must be unique
VUID-VkImageMemoryBarrier-attachmentFeedbackLoopLayout-07313YAttachmentFeedbackLoopLayoutFeatureexplicitVkImageMemoryBarrier(VK_EXT_attachment_feedback_loop_layout)If the attachmentFeedbackLoopLayout feature is not enabled, newLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkImageMemoryBarrier-image-01207YInvalidBarriersexplicitVkImageMemoryBarrier!(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If image has a depth/stencil format with both depth and stencil components, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT
VUID-VkImageMemoryBarrier-image-01671YInvalidBarriersexplicitVkImageMemoryBarrier(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If image has a single-plane color format or is not disjoint, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkImageMemoryBarrier-image-01672YInvalidBarriersexplicitVkImageMemoryBarrier(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If image has a multi-planar format and the image is disjoint, then the aspectMask member of subresourceRange must include either at least one of VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, and VK_IMAGE_ASPECT_PLANE_2_BIT; or must include VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkImageMemoryBarrier-image-01673YInvalidBarriersexplicitVkImageMemoryBarrier(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If image has a multi-planar format with only two planes, then the aspectMask member of subresourceRange must not include VK_IMAGE_ASPECT_PLANE_2_BIT
VUID-VkImageMemoryBarrier-image-01932YTransitionNonSparseImageLayoutWithoutBoundMemoryexplicitVkImageMemoryBarriercoreIf image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkImageMemoryBarrier-image-02902YInvalidBarriersexplicitVkImageMemoryBarrier!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If image has a color format, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkImageMemoryBarrier-image-03319YInvalidBarriersexplicitVkImageMemoryBarrier(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-03320YInvalidBarriersexplicitVkImageMemoryBarrier(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-04069YInvalidBarrierQueueFamilyexplicitVkImageMemoryBarrier!(VK_VERSION_1_1,VK_KHR_external_memory)If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must be valid queue families
VUID-VkImageMemoryBarrier-image-04071YInvalidBarrierQueueFamilyWithMemExtexplicitVkImageMemoryBarrier(VK_VERSION_1_1,VK_KHR_external_memory)If image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, and one of srcQueueFamilyIndex and dstQueueFamilyIndex is one of the special queue family values reserved for external memory transfers, the other must be VK_QUEUE_FAMILY_IGNORED
VUID-VkImageMemoryBarrier-image-04072YInvalidBarrierQueueFamilyWithMemExtexplicitVkImageMemoryBarrier(VK_VERSION_1_1,VK_KHR_external_memory)If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in Queue Family Ownership Transfer
VUID-VkImageMemoryBarrier-image-parameterYNoneimplicitVkImageMemoryBarriercoreimage must be a valid VkImage handle
VUID-VkImageMemoryBarrier-newLayout-01198YInvalidBarriersexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, newLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED
VUID-VkImageMemoryBarrier-newLayout-parameterYNoneimplicitVkImageMemoryBarriercorenewLayout must be a valid VkImageLayout value
VUID-VkImageMemoryBarrier-oldLayout-01197YInvalidImageLayout, PipelineMissingDynamicStateDiscardRectangle, InvalidBarriersexplicitVkImageMemoryBarriercoreIf 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-01208YInvalidBarriersexplicitVkImageMemoryBarriercoreIf 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-01209YInvalidBarriersexplicitVkImageMemoryBarriercoreIf 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-01210YInvalidImageLayout, InvalidBarriersexplicitVkImageMemoryBarriercoreIf 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-01211YInvalidBarriersexplicitVkImageMemoryBarriercoreIf 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-01212YInvalidBarriersexplicitVkImageMemoryBarriercoreIf 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-01213YInvalidBarriersexplicitVkImageMemoryBarriercoreIf 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-01658YInvalidBarriersexplicitVkImageMemoryBarrier(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-01659YInvalidBarriersexplicitVkImageMemoryBarrier(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-02088YShadingRateImageNVexplicitVkImageMemoryBarrier(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image)If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR then image must have been created with VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR set
VUID-VkImageMemoryBarrier-oldLayout-parameterYNoneimplicitVkImageMemoryBarriercoreoldLayout must be a valid VkImageLayout value
VUID-VkImageMemoryBarrier-pNext-pNextYNoneimplicitVkImageMemoryBarriercorepNext must be NULL or a pointer to a valid instance of VkSampleLocationsInfoEXT
VUID-VkImageMemoryBarrier-sType-sTypeYNoneimplicitVkImageMemoryBarriercoresType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
VUID-VkImageMemoryBarrier-sType-uniqueYNoneimplicitVkImageMemoryBarriercoreThe sType value of each struct in the pNext chain must be unique
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-03938NNoneexplicitVkImageMemoryBarrier(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-03939NNoneexplicitVkImageMemoryBarrier(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-04065NNoneexplicitVkImageMemoryBarrier(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts)If 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-04066NNoneexplicitVkImageMemoryBarrier(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts)If 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-04067NNoneexplicitVkImageMemoryBarrier(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts)If 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-04068NNoneexplicitVkImageMemoryBarrier(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts)If 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-04070NNoneexplicitVkImageMemoryBarrier(VK_VERSION_1_1,VK_KHR_external_memory)If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one must not be a special queue family reserved for external memory ownership transfers, as described in Queue Family Ownership Transfer
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07006YInvalidBarriersexplicitVkImageMemoryBarrier(VK_EXT_attachment_feedback_loop_layout)If 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-subresourceRange-01486YImageBarrierWithBadRangeexplicitVkImageMemoryBarriercoresubresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created
VUID-VkImageMemoryBarrier-subresourceRange-01488YImageBarrierWithBadRangeexplicitVkImageMemoryBarriercoresubresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created
VUID-VkImageMemoryBarrier-subresourceRange-01724YImageBarrierWithBadRangeexplicitVkImageMemoryBarriercoreIf 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-01725YImageBarrierWithBadRangeexplicitVkImageMemoryBarriercoreIf subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created
VUID-VkImageMemoryBarrier-subresourceRange-parameterNNoneimplicitVkImageMemoryBarriercoresubresourceRange must be a valid VkImageSubresourceRange structure
VUID-VkImageMemoryBarrier-synchronization2-03856YInvalidBarrierQueueFamilyexplicitVkImageMemoryBarrier!(VK_VERSION_1_1,VK_KHR_external_memory)If the synchronization2 feature is not enabled, and image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex must both be VK_QUEUE_FAMILY_IGNORED
VUID-VkImageMemoryBarrier-synchronization2-03857YInvalidBarrierQueueFamilyWithMemExtexplicitVkImageMemoryBarrier(VK_VERSION_1_1,VK_KHR_external_memory)If 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-synchronization2-06911NNoneexplicitVkImageMemoryBarrier(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-VkImageMemoryBarrier2-attachmentFeedbackLoopLayout-07313YAttachmentFeedbackLoopLayoutFeatureexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_attachment_feedback_loop_layout)If the attachmentFeedbackLoopLayout feature is not enabled, newLayout must not be VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
VUID-VkImageMemoryBarrier2-dstAccessMask-03900YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, pname: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-03901YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, pname: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-03902YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, pname: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-03903YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03904YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, pname: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-03905YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, pname: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-03906YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, pname: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-03907YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, pname: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-03908YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+!(VK_EXT_opacity_micromap)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, pname: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, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-dstAccessMask-03909YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, pname: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-03910YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, pname: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-03911YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, pname: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-03912YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, pname: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-03913YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, pname: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-03914YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, pname: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, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03915YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, pname: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_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03916YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_HOST_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03917YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03918YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)If pname:dstAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, pname: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-03919YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)If pname:dstAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, pname: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-03920YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, pname: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-03922YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, pname: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-03923YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)If pname:dstAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, pname: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-03924YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_device_generated_commands)If pname:dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03925YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_device_generated_commands)If pname:dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-03926YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_blend_operation_advanced)If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, pname: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-03927YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)If pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-dstAccessMask-03928YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)If pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-dstAccessMask-04747YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, pname: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-04858YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_decode_queue)If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkImageMemoryBarrier2-dstAccessMask-04859YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_decode_queue)If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkImageMemoryBarrier2-dstAccessMask-04860YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_encode_queue)If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkImageMemoryBarrier2-dstAccessMask-04861YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_encode_queue)If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkImageMemoryBarrier2-dstAccessMask-04994YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)If pname:dstAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, pname:dstStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkImageMemoryBarrier2-dstAccessMask-06254NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname: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-06255NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:dstStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-dstAccessMask-06256NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If the rayQuery feature is not enabled and pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname: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-06257NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If the rayQuery feature is not enabled and pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:dstStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-dstAccessMask-07272NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_tracing_maintenance1)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkImageMemoryBarrier2-dstAccessMask-07454NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, pname: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-07455NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_optical_flow)If pname:dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkImageMemoryBarrier2-dstAccessMask-07456NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_optical_flow)If pname:dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkImageMemoryBarrier2-dstAccessMask-07457NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)If pname:dstAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
VUID-VkImageMemoryBarrier2-dstAccessMask-07458NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)If pname:dstAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
VUID-VkImageMemoryBarrier2-dstAccessMask-08118YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_descriptor_buffer)If pname:dstAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, pname: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-parameterYNoneimplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)dstAccessMask must be a valid combination of VkAccessFlagBits2 values
VUID-VkImageMemoryBarrier2-dstStageMask-03929YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If the geometryShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-VkImageMemoryBarrier2-dstStageMask-03930YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If the tessellationShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkImageMemoryBarrier2-dstStageMask-03931YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkImageMemoryBarrier2-dstStageMask-03932YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkImageMemoryBarrier2-dstStageMask-03933YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkImageMemoryBarrier2-dstStageMask-03934YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-VkImageMemoryBarrier2-dstStageMask-03935YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-VkImageMemoryBarrier2-dstStageMask-04956YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV
VUID-VkImageMemoryBarrier2-dstStageMask-04957NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)If the subpassShading feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
VUID-VkImageMemoryBarrier2-dstStageMask-04995NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)If the invocationMask feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkImageMemoryBarrier2-dstStageMask-07316NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkImageMemoryBarrier2-dstStageMask-07317NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkImageMemoryBarrier2-dstStageMask-parameterYNoneimplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)dstStageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-VkImageMemoryBarrier2-image-01207YSync2InvalidBarriersexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+!(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If image has a depth/stencil format with both depth and stencil components, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT
VUID-VkImageMemoryBarrier2-image-01671YSync2InvalidBarriersexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If image has a single-plane color format or is not disjoint, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkImageMemoryBarrier2-image-01672YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If image has a multi-planar format and the image is disjoint, then the aspectMask member of subresourceRange must include either at least one of VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, and VK_IMAGE_ASPECT_PLANE_2_BIT; or must include VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkImageMemoryBarrier2-image-01673YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If image has a multi-planar format with only two planes, then the aspectMask member of subresourceRange must not include VK_IMAGE_ASPECT_PLANE_2_BIT
VUID-VkImageMemoryBarrier2-image-01932YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkImageMemoryBarrier2-image-02902YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If image has a color format, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkImageMemoryBarrier2-image-03319YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-03320YSync2InvalidBarriersexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-04069YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+!(VK_VERSION_1_1,VK_KHR_external_memory)If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must be valid queue families
VUID-VkImageMemoryBarrier2-image-04071YSync2InvalidBarrierQueueFamilyexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory)If image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, and one of srcQueueFamilyIndex and dstQueueFamilyIndex is one of the special queue family values reserved for external memory transfers, the other must be VK_QUEUE_FAMILY_IGNORED
VUID-VkImageMemoryBarrier2-image-04072YSync2InvalidBarrierQueueFamilyexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory)If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in Queue Family Ownership Transfer
VUID-VkImageMemoryBarrier2-image-parameterYNoneimplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)image must be a valid VkImage handle
VUID-VkImageMemoryBarrier2-newLayout-01198YSync2InvalidBarriersexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-parameterYNoneimplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)newLayout must be a valid VkImageLayout value
VUID-VkImageMemoryBarrier2-oldLayout-01197YSync2InvalidBarriersexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-01208YSync2InvalidBarriersexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-01209YSync2InvalidBarriersexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-01210YSync2InvalidBarriersexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-01211YSync2InvalidBarriersexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-01212YSync2InvalidBarriersexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-01213YSync2InvalidBarriersexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-01658YSync2InvalidBarriersexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-01659YSync2InvalidBarriersexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-02088YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image)If 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-parameterYNoneimplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)oldLayout must be a valid VkImageLayout value
VUID-VkImageMemoryBarrier2-pNext-pNextYNoneimplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)pNext must be NULL or a pointer to a valid instance of VkSampleLocationsInfoEXT
VUID-VkImageMemoryBarrier2-sType-sTypeYNoneimplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)sType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2
VUID-VkImageMemoryBarrier2-sType-uniqueYNoneimplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)The sType value of each struct in the pNext chain must be unique
VUID-VkImageMemoryBarrier2-srcAccessMask-03900YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, pname: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-03901YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, pname: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-03902YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, pname: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-03903YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03904YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, pname: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-03905YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, pname: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-03906YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, pname: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-03907YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, pname: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-03908YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+!(VK_EXT_opacity_micromap)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, pname: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, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-srcAccessMask-03909YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, pname: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-03910YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, pname: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-03911YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, pname: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-03912YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, pname: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-03913YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, pname: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-03914YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, pname: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, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03915YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, pname: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_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03916YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_HOST_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03917YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03918YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)If pname:srcAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, pname: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-03919YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)If pname:srcAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, pname: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-03920YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, pname: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-03922YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, pname: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-03923YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)If pname:srcAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, pname: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-03924YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_device_generated_commands)If pname:srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03925YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_device_generated_commands)If pname:srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-03926YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_blend_operation_advanced)If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, pname: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-03927YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)If pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-srcAccessMask-03928YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)If pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkImageMemoryBarrier2-srcAccessMask-04747YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, pname: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-04858YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_decode_queue)If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkImageMemoryBarrier2-srcAccessMask-04859YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_decode_queue)If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkImageMemoryBarrier2-srcAccessMask-04860YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_encode_queue)If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkImageMemoryBarrier2-srcAccessMask-04861YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_encode_queue)If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkImageMemoryBarrier2-srcAccessMask-04994YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)If pname:srcAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, pname:srcStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkImageMemoryBarrier2-srcAccessMask-06254NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname: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-06255NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:srcStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-srcAccessMask-06256NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If the rayQuery feature is not enabled and pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname: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-06257NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If the rayQuery feature is not enabled and pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:srcStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2-srcAccessMask-07272NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_tracing_maintenance1)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkImageMemoryBarrier2-srcAccessMask-07454NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, pname: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-07455NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_optical_flow)If pname:srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkImageMemoryBarrier2-srcAccessMask-07456NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_optical_flow)If pname:srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkImageMemoryBarrier2-srcAccessMask-07457NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)If pname:srcAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
VUID-VkImageMemoryBarrier2-srcAccessMask-07458NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)If pname:srcAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
VUID-VkImageMemoryBarrier2-srcAccessMask-08118YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_descriptor_buffer)If pname:srcAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, pname: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-parameterYNoneimplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)srcAccessMask must be a valid combination of VkAccessFlagBits2 values
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-03938NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-03939NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-04065NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts)If 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-04066NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts)If 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-04067NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts)If 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-04068NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts)If 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-04070NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory)If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one must not be a special queue family reserved for external memory ownership transfers, as described in Queue Family Ownership Transfer
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07006YSync2InvalidBarriersexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_attachment_feedback_loop_layout)If 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-srcStageMask-03854NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If either srcStageMask or dstStageMask includes VK_PIPELINE_STAGE_2_HOST_BIT, srcQueueFamilyIndex and dstQueueFamilyIndex must be equal
VUID-VkImageMemoryBarrier2-srcStageMask-03855NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-03929YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If the geometryShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-VkImageMemoryBarrier2-srcStageMask-03930YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If the tessellationShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkImageMemoryBarrier2-srcStageMask-03931YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkImageMemoryBarrier2-srcStageMask-03932YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkImageMemoryBarrier2-srcStageMask-03933YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkImageMemoryBarrier2-srcStageMask-03934YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-VkImageMemoryBarrier2-srcStageMask-03935YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-VkImageMemoryBarrier2-srcStageMask-04956YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV
VUID-VkImageMemoryBarrier2-srcStageMask-04957NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)If the subpassShading feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
VUID-VkImageMemoryBarrier2-srcStageMask-04995NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)If the invocationMask feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkImageMemoryBarrier2-srcStageMask-07316NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkImageMemoryBarrier2-srcStageMask-07317NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkImageMemoryBarrier2-srcStageMask-parameterYNoneimplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)srcStageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-VkImageMemoryBarrier2-subresourceRange-01486YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created
VUID-VkImageMemoryBarrier2-subresourceRange-01488YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created
VUID-VkImageMemoryBarrier2-subresourceRange-01724YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-01725YNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-parameterNNoneimplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)subresourceRange must be a valid VkImageSubresourceRange structure
VUID-VkImageMemoryBarrier2-synchronization2-06911NNoneexplicitVkImageMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-VkImageMemoryRequirementsInfo2-image-01589YInvalidMemoryRequirementsexplicitVkImageMemoryRequirementsInfo2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-01590YInvalidMemoryRequirementsexplicitVkImageMemoryRequirementsInfo2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-01591YInvalidMemoryRequirementsexplicitVkImageMemoryRequirementsInfo2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_image_drm_format_modifier)If image was created with a single-plane format, there must not be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure
VUID-VkImageMemoryRequirementsInfo2-image-01897YAndroidHardwareBufferFetchUnboundImageInfoexplicitVkImageMemoryRequirementsInfo2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_ANDROID_external_memory_android_hardware_buffer)If 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-02279YNoneexplicitVkImageMemoryRequirementsInfo2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier)If 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-02280YInvalidMemoryRequirementsexplicitVkImageMemoryRequirementsInfo2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier)If 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-parameterYNoneimplicitVkImageMemoryRequirementsInfo2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)image must be a valid VkImage handle
VUID-VkImageMemoryRequirementsInfo2-pNext-pNextYNoneimplicitVkImageMemoryRequirementsInfo2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)pNext must be NULL or a pointer to a valid instance of VkImagePlaneMemoryRequirementsInfo
VUID-VkImageMemoryRequirementsInfo2-sType-sTypeYNoneimplicitVkImageMemoryRequirementsInfo2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)sType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2
VUID-VkImageMemoryRequirementsInfo2-sType-uniqueYNoneimplicitVkImageMemoryRequirementsInfo2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)The sType value of each struct in the pNext chain must be unique
VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-flags-zerobitmaskYNoneimplicitVkImagePipeSurfaceCreateInfoFUCHSIA(VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface)flags must be 0
VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-imagePipeHandle-04863NNoneexplicitVkImagePipeSurfaceCreateInfoFUCHSIA(VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface)imagePipeHandle must be a valid zx_handle_t
VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-pNext-pNextYNoneimplicitVkImagePipeSurfaceCreateInfoFUCHSIA(VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface)pNext must be NULL
VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-sType-sTypeYNoneimplicitVkImagePipeSurfaceCreateInfoFUCHSIA(VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface)sType must be VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA
VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02281YInvalidMemoryRequirementsexplicitVkImagePlaneMemoryRequirementsInfo(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the image's tiling is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, then planeAspect must be a single valid format plane for the image (that is, for a two-plane image planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT, and for a three-plane image planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT or VK_IMAGE_ASPECT_PLANE_2_BIT)
VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02282NNoneexplicitVkImagePlaneMemoryRequirementsInfo(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier)If 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-parameterYNoneimplicitVkImagePlaneMemoryRequirementsInfo(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)planeAspect must be a valid VkImageAspectFlagBits value
VUID-VkImagePlaneMemoryRequirementsInfo-sType-sTypeYNoneimplicitVkImagePlaneMemoryRequirementsInfo(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)sType must be VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO
VUID-VkImageResolve-aspectMask-00266YNoneexplicitVkImageResolvecoreThe aspectMask member of srcSubresource and dstSubresource must only contain VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkImageResolve-dstSubresource-parameterNNoneimplicitVkImageResolvecoredstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageResolve-layerCount-00267YNoneexplicitVkImageResolvecoreThe layerCount member of srcSubresource and dstSubresource must match
VUID-VkImageResolve-srcSubresource-parameterNNoneimplicitVkImageResolvecoresrcSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageResolve2-aspectMask-00266YNoneexplicitVkImageResolve2(VK_VERSION_1_3,VK_KHR_copy_commands2)The aspectMask member of srcSubresource and dstSubresource must only contain VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkImageResolve2-dstSubresource-parameterNNoneimplicitVkImageResolve2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageResolve2-layerCount-00267YNoneexplicitVkImageResolve2(VK_VERSION_1_3,VK_KHR_copy_commands2)The layerCount member of srcSubresource and dstSubresource must match
VUID-VkImageResolve2-pNext-pNextYNoneimplicitVkImageResolve2(VK_VERSION_1_3,VK_KHR_copy_commands2)pNext must be NULL
VUID-VkImageResolve2-sType-sTypeYNoneimplicitVkImageResolve2(VK_VERSION_1_3,VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2
VUID-VkImageResolve2-srcSubresource-parameterNNoneimplicitVkImageResolve2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageSparseMemoryRequirementsInfo2-image-parameterYNoneimplicitVkImageSparseMemoryRequirementsInfo2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)image must be a valid VkImage handle
VUID-VkImageSparseMemoryRequirementsInfo2-pNext-pNextYNoneimplicitVkImageSparseMemoryRequirementsInfo2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)pNext must be NULL
VUID-VkImageSparseMemoryRequirementsInfo2-sType-sTypeYNoneimplicitVkImageSparseMemoryRequirementsInfo2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)sType must be VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2
VUID-VkImageStencilUsageCreateInfo-sType-sTypeYNoneimplicitVkImageStencilUsageCreateInfo(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)sType must be VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO
VUID-VkImageStencilUsageCreateInfo-stencilUsage-02539YImageStencilCreateexplicitVkImageStencilUsageCreateInfo(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If 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-parameterYNoneimplicitVkImageStencilUsageCreateInfo(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)stencilUsage must be a valid combination of VkImageUsageFlagBits values
VUID-VkImageStencilUsageCreateInfo-stencilUsage-requiredbitmaskYNoneimplicitVkImageStencilUsageCreateInfo(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)stencilUsage must not be 0
VUID-VkImageSubresource-aspectMask-parameterYNoneimplicitVkImageSubresourcecoreaspectMask must be a valid combination of VkImageAspectFlagBits values
VUID-VkImageSubresource-aspectMask-requiredbitmaskYNoneimplicitVkImageSubresourcecoreaspectMask must not be 0
VUID-VkImageSubresource2EXT-imageSubresource-parameterNNoneimplicitVkImageSubresource2EXT(VK_EXT_image_compression_control)imageSubresource must be a valid VkImageSubresource structure
VUID-VkImageSubresource2EXT-pNext-pNextYNoneimplicitVkImageSubresource2EXT(VK_EXT_image_compression_control)pNext must be NULL
VUID-VkImageSubresource2EXT-sType-sTypeYNoneimplicitVkImageSubresource2EXT(VK_EXT_image_compression_control)sType must be VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT
VUID-VkImageSubresourceLayers-aspectMask-00167YCopyImageAspectMismatchexplicitVkImageSubresourceLayerscoreIf 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-00168YCopyImageAspectMismatchexplicitVkImageSubresourceLayerscoreaspectMask must not contain VK_IMAGE_ASPECT_METADATA_BIT
VUID-VkImageSubresourceLayers-aspectMask-02247YCopyImageAspectMismatchexplicitVkImageSubresourceLayers(VK_EXT_image_drm_format_modifier)aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE{ibit}BIT_EXT for any index i
VUID-VkImageSubresourceLayers-aspectMask-parameterYNoneimplicitVkImageSubresourceLayerscoreaspectMask must be a valid combination of VkImageAspectFlagBits values
VUID-VkImageSubresourceLayers-aspectMask-requiredbitmaskYNoneimplicitVkImageSubresourceLayerscoreaspectMask must not be 0
VUID-VkImageSubresourceLayers-layerCount-01700YMiscBlitImageTestsexplicitVkImageSubresourceLayerscorelayerCount must be greater than 0
VUID-VkImageSubresourceRange-aspectMask-01670YInvalidImageSubresourceRangeAspectMaskexplicitVkImageSubresourceRange(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-02278NNoneexplicitVkImageSubresourceRange(VK_EXT_image_drm_format_modifier)aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE{ibit}BIT_EXT for any index i
VUID-VkImageSubresourceRange-aspectMask-parameterYNoneimplicitVkImageSubresourceRangecoreaspectMask must be a valid combination of VkImageAspectFlagBits values
VUID-VkImageSubresourceRange-aspectMask-requiredbitmaskYNoneimplicitVkImageSubresourceRangecoreaspectMask must not be 0
VUID-VkImageSubresourceRange-layerCount-01721YCreateImageViewInvalidSubresourceRange, ClearDepthStencilWithBadRange, ImageBarrierWithBadRange, ClearColorImageWithBadRangeexplicitVkImageSubresourceRangecoreIf layerCount is not VK_REMAINING_ARRAY_LAYERS, it must be greater than 0
VUID-VkImageSubresourceRange-levelCount-01720YCreateImageViewInvalidSubresourceRange, ClearDepthStencilWithBadRange, ImageBarrierWithBadRange, ClearColorImageWithBadRangeexplicitVkImageSubresourceRangecoreIf levelCount is not VK_REMAINING_MIP_LEVELS, it must be greater than 0
VUID-VkImageSwapchainCreateInfoKHR-sType-sTypeYNoneimplicitVkImageSwapchainCreateInfoKHR(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)sType must be VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR
VUID-VkImageSwapchainCreateInfoKHR-swapchain-00995YValidSwapchainImageexplicitVkImageSwapchainCreateInfoKHR(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)If swapchain is not VK_NULL_HANDLE, the fields of VkImageCreateInfo must match the implied image creation parameters of the swapchain
VUID-VkImageSwapchainCreateInfoKHR-swapchain-parameterNNoneimplicitVkImageSwapchainCreateInfoKHR(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)If swapchain is not VK_NULL_HANDLE, swapchain must be a valid VkSwapchainKHR handle
VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02230YAstcDecodeModeexplicitVkImageViewASTCDecodeModeEXT(VK_EXT_astc_decode_mode)decodeMode must be one of VK_FORMAT_R16G16B16A16_SFLOAT, VK_FORMAT_R8G8B8A8_UNORM, or VK_FORMAT_E5B9G9R9_UFLOAT_PACK32
VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02231YAstcDecodeModeexplicitVkImageViewASTCDecodeModeEXT(VK_EXT_astc_decode_mode)If the decodeModeSharedExponent feature is not enabled, decodeMode must not be VK_FORMAT_E5B9G9R9_UFLOAT_PACK32
VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02232NNoneexplicitVkImageViewASTCDecodeModeEXT(VK_EXT_astc_decode_mode)If decodeMode is VK_FORMAT_R8G8B8A8_UNORM the image view must not include blocks using any of the ASTC HDR modes
VUID-VkImageViewASTCDecodeModeEXT-decodeMode-parameterYNoneimplicitVkImageViewASTCDecodeModeEXT(VK_EXT_astc_decode_mode)decodeMode must be a valid VkFormat value
VUID-VkImageViewASTCDecodeModeEXT-format-04084YAstcDecodeModeexplicitVkImageViewASTCDecodeModeEXT(VK_EXT_astc_decode_mode)format of the image view must be one of the ASTC Compressed Image Formats
VUID-VkImageViewASTCDecodeModeEXT-sType-sTypeYNoneimplicitVkImageViewASTCDecodeModeEXT(VK_EXT_astc_decode_mode)sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT
VUID-VkImageViewAddressPropertiesNVX-pNext-pNextYNoneimplicitVkImageViewAddressPropertiesNVX(VK_NVX_image_view_handle)pNext must be NULL
VUID-VkImageViewAddressPropertiesNVX-sType-sTypeYNoneimplicitVkImageViewAddressPropertiesNVX(VK_NVX_image_view_handle)sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX
VUID-VkImageViewCaptureDescriptorDataInfoEXT-imageView-08083YDescriptorBufferNotEnabledexplicitVkImageViewCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)imageView must have been created with VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkImageViewCreateInfo::flags
VUID-VkImageViewCaptureDescriptorDataInfoEXT-imageView-parameterYNoneimplicitVkImageViewCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)imageView must be a valid VkImageView handle
VUID-VkImageViewCaptureDescriptorDataInfoEXT-pNext-pNextYNoneimplicitVkImageViewCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)pNext must be NULL
VUID-VkImageViewCaptureDescriptorDataInfoEXT-sType-sTypeYNoneimplicitVkImageViewCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
VUID-VkImageViewCreateInfo-None-02273YAndroidHardwareBufferCreateImageViewexplicitVkImageViewCreateInfocoreThe format features of the resultant image view must contain at least one bit
VUID-VkImageViewCreateInfo-components-parameterNNoneimplicitVkImageViewCreateInfocorecomponents must be a valid VkComponentMapping structure
VUID-VkImageViewCreateInfo-flags-02572YFragmentDensityMapDisabledexplicitVkImageViewCreateInfo(VK_EXT_fragment_density_map)If the fragmentDensityMapDynamic feature is not enabled, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT
VUID-VkImageViewCreateInfo-flags-03567YFragmentDensityMapEnabledexplicitVkImageViewCreateInfo(VK_EXT_fragment_density_map)+(VK_EXT_fragment_density_map2)If the fragmentDensityMapDeferred feature is not enabled, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT
VUID-VkImageViewCreateInfo-flags-03568YFragmentDensityMapEnabledexplicitVkImageViewCreateInfo(VK_EXT_fragment_density_map)+(VK_EXT_fragment_density_map2)If 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-04116YFragmentDensityMapEnabledexplicitVkImageViewCreateInfo(VK_EXT_fragment_density_map)If 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-08106YDescriptorBufferNotEnabledexplicitVkImageViewCreateInfo(VK_EXT_descriptor_buffer)If flags includes VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled
VUID-VkImageViewCreateInfo-flags-parameterYNoneimplicitVkImageViewCreateInfocoreflags must be a valid combination of VkImageViewCreateFlagBits values
VUID-VkImageViewCreateInfo-format-04714NNoneexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-04715NNoneexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If format has a _420 suffix then image must have been created with a height that is a multiple of 2
VUID-VkImageViewCreateInfo-format-06415YCreateImageViewMissingYcbcrConversionexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the image view requires a sampler {YCbCr} conversion and usage contains VK_IMAGE_USAGE_SAMPLED_BIT, then the pNext chain must include a VkSamplerYcbcrConversionInfo structure with a conversion value other than VK_NULL_HANDLE
VUID-VkImageViewCreateInfo-format-parameterYNoneimplicitVkImageViewCreateInfocoreformat must be a valid VkFormat value
VUID-VkImageViewCreateInfo-image-01003YShadingRateImageNV, CreateImageViewBreaksParameterCompatibilityRequirementsexplicitVkImageViewCreateInfocoreIf 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-01018YInvalidImageFormatList, CreateImageViewFormatFeatureMismatch, CreateImageViewIncompatibleFormat, CreateImageViewIncompatibleDepthFormat, CreateImageViewDifferentClassexplicitVkImageViewCreateInfo!(VK_VERSION_1_1,VK_KHR_maintenance2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, format must be compatible with the format used to create image, as defined in Format Compatibility Classes
VUID-VkImageViewCreateInfo-image-01019YCreateImageViewNoMutableFormatBitexplicitVkImageViewCreateInfo!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If image was not created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, format must be identical to the format used to create image
VUID-VkImageViewCreateInfo-image-01020YCreateImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfocoreIf image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkImageViewCreateInfo-image-01482YCreateImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance1)+!(VK_EXT_image_2d_view_of_3d)If image is not a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT 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-01583YBlockTexelViewInvalidFormatexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-01586YMultiplaneIncompatibleViewFormatexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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 VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT, 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-01759YCreateImageViewIncompatibleDepthFormat, CreateImageViewIncompatibleFormat, CreateImageViewDifferentClassexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, but without the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, format must be compatible with the format used to create image, as defined in Format Compatibility Classes
VUID-VkImageViewCreateInfo-image-01760YCreateImageViewIncompatibleDepthFormat, CreateImageViewIncompatibleFormat, CreateImageViewDifferentClassexplicitVkImageViewCreateInfo!(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_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-01761YCreateImageViewIncompatibleDepthFormat, CreateImageViewIncompatibleFormat, CreateImageViewDifferentClassexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-01762YAndroidHardwareBufferCreateImageViewexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-02086YShadingRateImageNVexplicitVkImageViewCreateInfo(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image)If 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-02087YShadingRateImageNVexplicitVkImageViewCreateInfo(VK_NV_shading_rate_image)If 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-02399YAndroidHardwareBufferCreateImageViewexplicitVkImageViewCreateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If image has an external format, format must be VK_FORMAT_UNDEFINED
VUID-VkImageViewCreateInfo-image-02400YAndroidHardwareBufferCreateImageViewexplicitVkImageViewCreateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If image has an 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-02401YAndroidHardwareBufferCreateImageViewexplicitVkImageViewCreateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If image has an external format, all members of components must be the identity swizzle
VUID-VkImageViewCreateInfo-image-02571YNoneexplicitVkImageViewCreateInfo(VK_EXT_fragment_density_map)If image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, subresourceRange.levelCount must be 1
VUID-VkImageViewCreateInfo-image-02724YCreateImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance1)If 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 Miplevel Sizing
VUID-VkImageViewCreateInfo-image-03569YFragmentDensityMapEnabledexplicitVkImageViewCreateInfo(VK_EXT_fragment_density_map)+(VK_EXT_fragment_density_map2)If 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-04441YInvalidUsageBitsexplicitVkImageViewCreateInfocoreimage 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-04817YInvalidImageViewWithVideoImageUsageexplicitVkImageViewCreateInfo(VK_KHR_video_decode_queue)If image was created with usage containing VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR, 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 and all members of components must have the identity swizzle
VUID-VkImageViewCreateInfo-image-04818YInvalidImageViewWithVideoImageUsageexplicitVkImageViewCreateInfo(VK_KHR_video_encode_queue)If image was created with usage containing VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR, VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR, 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 and all members of components must have the identity swizzle
VUID-VkImageViewCreateInfo-image-04970YCreateImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance1)If 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-04971YCreateImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance1)If 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-04972YInvalidMultiSampleImageViewexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance1)If 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-06723YImage2DViewOf3DexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance1)If 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-06724YImage2DViewOf3DexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance1)+(VK_EXT_image_2d_view_of_3d)If 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-06727YCreateImageViewBreaksParameterCompatibilityRequirementsexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance1)+!(VK_EXT_image_2d_view_of_3d)If 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
VUID-VkImageViewCreateInfo-image-06728YImage2DViewOf3DexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance1)+(VK_EXT_image_2d_view_of_3d)If 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-07072YBlockTexelViewInvalidLevelOrLayerCountexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)If image was created with the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag and format is a non-compressed format, the levelCount and layerCount members of subresourceRange must both be 1
VUID-VkImageViewCreateInfo-image-parameterYNoneimplicitVkImageViewCreateInfocoreimage must be a valid VkImage handle
VUID-VkImageViewCreateInfo-imageViewFormatReinterpretation-04466YInvalidDepthStencilStateForReadOnlyLayoutexplicitVkImageViewCreateInfo(VK_KHR_portability_subset)If 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-04465YInvalidDepthStencilStateForReadOnlyLayoutexplicitVkImageViewCreateInfo(VK_KHR_portability_subset)If 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-04973YInvalidImageViewLayerCount, CreateImageViewInvalidSubresourceRange, FragmentDensityMapEnabledexplicitVkImageViewCreateInfocoreIf 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-04974YInvalidImageViewLayerCountexplicitVkImageViewCreateInfocoreIf 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-04993NNoneexplicitVkImageViewCreateInfo(VK_EXT_fragment_density_map)+(VK_HUAWEI_invocation_mask)If 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-01585YInvalidImageFormatListexplicitVkImageViewCreateInfo(VK_VERSION_1_2,VK_KHR_image_format_list)If 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-01970YInvalidSwizzleYCbCrexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-02661YCreateImageViewNoSeparateStencilUsageexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)+!(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If the pNext chain includes a VkImageViewUsageCreateInfo structure, 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-02662YCreateImageViewStencilUsageCreateInfoexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If 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-02663YCreateImageViewStencilUsageCreateInfoexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If 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-02664YCreateImageViewStencilUsageCreateInfoexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If 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-06658NNoneexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-06787YExportMetalObjectsexplicitVkImageViewCreateInfo(VK_EXT_metal_objects)If the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT
VUID-VkImageViewCreateInfo-pNext-06944NNoneexplicitVkImageViewCreateInfo(VK_QCOM_image_processing)If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then textureSampleWeighted feature must be enabled
VUID-VkImageViewCreateInfo-pNext-06945NNoneexplicitVkImageViewCreateInfo(VK_QCOM_image_processing)If 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-06946NNoneexplicitVkImageViewCreateInfo(VK_QCOM_image_processing)If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then components must be VK_COMPONENT_SWIZZLE_IDENTITY for all components
VUID-VkImageViewCreateInfo-pNext-06947NNoneexplicitVkImageViewCreateInfo(VK_QCOM_image_processing)If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then subresourceRange.aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkImageViewCreateInfo-pNext-06948NNoneexplicitVkImageViewCreateInfo(VK_QCOM_image_processing)If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure, then subresourceRange.levelCount must be 1
VUID-VkImageViewCreateInfo-pNext-06949NNoneexplicitVkImageViewCreateInfo(VK_QCOM_image_processing)If 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-06950NNoneexplicitVkImageViewCreateInfo(VK_QCOM_image_processing)If 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-06951NNoneexplicitVkImageViewCreateInfo(VK_QCOM_image_processing)If 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-06952NNoneexplicitVkImageViewCreateInfo(VK_QCOM_image_processing)If 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-06953NNoneexplicitVkImageViewCreateInfo(VK_QCOM_image_processing)If 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-06954NNoneexplicitVkImageViewCreateInfo(VK_QCOM_image_processing)If 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-06955NNoneexplicitVkImageViewCreateInfo(VK_QCOM_image_processing)If 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-06956NNoneexplicitVkImageViewCreateInfo(VK_QCOM_image_processing)If 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-06957NNoneexplicitVkImageViewCreateInfo(VK_QCOM_image_processing)If the pNext chain includes VkImageViewSampleWeightCreateInfoQCOM structure then VkImageViewSampleWeightCreateInfoQCOM::filterSize.height must be less than or equal to VkPhysicalDeviceImageProcessingPropertiesQCOM::maxWeightFilterDimension.height
VUID-VkImageViewCreateInfo-pNext-08107YDescriptorBufferNotEnabledexplicitVkImageViewCreateInfo(VK_EXT_descriptor_buffer)If the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
VUID-VkImageViewCreateInfo-pNext-pNextYNoneimplicitVkImageViewCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkExportMetalObjectCreateInfoEXT, VkImageViewASTCDecodeModeEXT, VkImageViewMinLodCreateInfoEXT, VkImageViewSampleWeightCreateInfoQCOM, VkImageViewUsageCreateInfo, VkOpaqueCaptureDescriptorDataCreateInfoEXT, or VkSamplerYcbcrConversionInfo
VUID-VkImageViewCreateInfo-sType-sTypeYNoneimplicitVkImageViewCreateInfocoresType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
VUID-VkImageViewCreateInfo-sType-uniqueYNoneimplicitVkImageViewCreateInfocoreThe sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT
VUID-VkImageViewCreateInfo-subResourceRange-01021YInvalidMultiSampleImageView, CreateImageViewBreaksParameterCompatibilityRequirementsexplicitVkImageViewCreateInfocoreviewType must be compatible with the type of image as shown in the view type compatibility table
VUID-VkImageViewCreateInfo-subresourceRange-01478YCreateImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfocoresubresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created
VUID-VkImageViewCreateInfo-subresourceRange-01480YCreateImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfo!(VK_VERSION_1_1,VK_KHR_maintenance1)subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created
VUID-VkImageViewCreateInfo-subresourceRange-01483YCreateImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance1)+!(VK_EXT_image_2d_view_of_3d)If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, image is not a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT 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-01718YCreateImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfocoreIf 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-01719YInvalidImageViewLayerCount, CreateImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfo!(VK_VERSION_1_1,VK_KHR_maintenance1)If 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-VkImageViewCreateInfo-subresourceRange-02725YCreateImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance1)If 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 Miplevel Sizing
VUID-VkImageViewCreateInfo-subresourceRange-06725YImage2DViewOf3DexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance1)+(VK_EXT_image_2d_view_of_3d)If 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-parameterNNoneimplicitVkImageViewCreateInfocoresubresourceRange must be a valid VkImageSubresourceRange structure
VUID-VkImageViewCreateInfo-usage-02274YCreateImageViewFormatFeatureMismatchexplicitVkImageViewCreateInfocoreIf 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-02275YInvalidImageViewUsageCreateInfo, CreateImageViewFormatFeatureMismatchexplicitVkImageViewCreateInfocoreIf 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-02276YCreateImageViewFormatFeatureMismatchexplicitVkImageViewCreateInfocoreIf usage contains VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, then the image view's format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VUID-VkImageViewCreateInfo-usage-02277YCreateImageViewFormatFeatureMismatchexplicitVkImageViewCreateInfocoreIf 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-02652YCreateImageViewFormatFeatureMismatchexplicitVkImageViewCreateInfocoreIf usage contains VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, 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
VUID-VkImageViewCreateInfo-usage-04550YInvalidShadingRateUsageexplicitVkImageViewCreateInfo(VK_KHR_fragment_shading_rate)If 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-04551YInvalidShadingRateUsageexplicitVkImageViewCreateInfo(VK_KHR_fragment_shading_rate)If 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-06516NNoneexplicitVkImageViewCreateInfo(VK_NV_linear_color_attachment)If usage contains VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, then the image view's format features must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV, if the image is created with VK_IMAGE_TILING_LINEAR and the linearColorAttachment feature is enabled
VUID-VkImageViewCreateInfo-usage-06517NNoneexplicitVkImageViewCreateInfo(VK_NV_linear_color_attachment)If usage contains VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, then the image view's format features must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV, if the image is created with VK_IMAGE_TILING_LINEAR and the linearColorAttachment feature is enabled
VUID-VkImageViewCreateInfo-viewType-01004YCreateImageViewDifferentClassexplicitVkImageViewCreateInfocoreIf the imageCubeArray feature is not enabled, viewType must not be VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
VUID-VkImageViewCreateInfo-viewType-02960YCreateImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfocoreIf viewType is VK_IMAGE_VIEW_TYPE_CUBE and subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.layerCount must be 6
VUID-VkImageViewCreateInfo-viewType-02961YCreateImageViewInvalidSubresourceRange, CreateImageViewDifferentClassexplicitVkImageViewCreateInfocoreIf 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-02962YCreateImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfocoreIf 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-02963YCreateImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfocoreIf viewType is VK_IMAGE_VIEW_TYPE_CUBE_ARRAY and subresourceRange.layerCount is VK_REMAINING_ARRAY_LAYERS, the remaining number of layers must be a multiple of 6
VUID-VkImageViewCreateInfo-viewType-parameterYNoneimplicitVkImageViewCreateInfocoreviewType must be a valid VkImageViewType value
VUID-VkImageViewHandleInfoNVX-commonparentNNoneimplicitVkImageViewHandleInfoNVX(VK_NVX_image_view_handle)Both 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-02654NNoneexplicitVkImageViewHandleInfoNVX(VK_NVX_image_view_handle)descriptorType must be VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
VUID-VkImageViewHandleInfoNVX-descriptorType-parameterYNoneimplicitVkImageViewHandleInfoNVX(VK_NVX_image_view_handle)descriptorType must be a valid VkDescriptorType value
VUID-VkImageViewHandleInfoNVX-imageView-02656NNoneexplicitVkImageViewHandleInfoNVX(VK_NVX_image_view_handle)If 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-02657NNoneexplicitVkImageViewHandleInfoNVX(VK_NVX_image_view_handle)If 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-parameterNNoneimplicitVkImageViewHandleInfoNVX(VK_NVX_image_view_handle)imageView must be a valid VkImageView handle
VUID-VkImageViewHandleInfoNVX-pNext-pNextYNoneimplicitVkImageViewHandleInfoNVX(VK_NVX_image_view_handle)pNext must be NULL
VUID-VkImageViewHandleInfoNVX-sType-sTypeYNoneimplicitVkImageViewHandleInfoNVX(VK_NVX_image_view_handle)sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX
VUID-VkImageViewHandleInfoNVX-sampler-02655NNoneexplicitVkImageViewHandleInfoNVX(VK_NVX_image_view_handle)sampler must be a valid VkSampler if descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
VUID-VkImageViewHandleInfoNVX-sampler-parameterNNoneimplicitVkImageViewHandleInfoNVX(VK_NVX_image_view_handle)If sampler is not VK_NULL_HANDLE, sampler must be a valid VkSampler handle
VUID-VkImageViewMinLodCreateInfoEXT-minLod-06455YImageViewMinLodFeatureexplicitVkImageViewMinLodCreateInfoEXT(VK_EXT_image_view_min_lod)If the minLod feature is not enabled, minLod must be 0.0
VUID-VkImageViewMinLodCreateInfoEXT-minLod-06456YImageViewMinLodexplicitVkImageViewMinLodCreateInfoEXT(VK_EXT_image_view_min_lod)minLod must be less or equal to the index of the last mipmap level accessible to the view
VUID-VkImageViewMinLodCreateInfoEXT-sType-sTypeYNoneimplicitVkImageViewMinLodCreateInfoEXT(VK_EXT_image_view_min_lod)sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT
VUID-VkImageViewSampleWeightCreateInfoQCOM-filterCenter-06960NNoneexplicitVkImageViewSampleWeightCreateInfoQCOM(VK_QCOM_image_processing)filterCenter.x must be less than or equal to (filterSize.width - 1)
VUID-VkImageViewSampleWeightCreateInfoQCOM-filterCenter-06961NNoneexplicitVkImageViewSampleWeightCreateInfoQCOM(VK_QCOM_image_processing)filterCenter.y must be less than or equal to (filterSize.height - 1)
VUID-VkImageViewSampleWeightCreateInfoQCOM-filterSize-06958NNoneexplicitVkImageViewSampleWeightCreateInfoQCOM(VK_QCOM_image_processing)filterSize.width must be less than or equal to VkPhysicalDeviceImageProcessingPropertiesQCOM::maxWeightFilterDimension.width
VUID-VkImageViewSampleWeightCreateInfoQCOM-filterSize-06959NNoneexplicitVkImageViewSampleWeightCreateInfoQCOM(VK_QCOM_image_processing)filterSize.height must be less than or equal to VkPhysicalDeviceImageProcessingPropertiesQCOM::maxWeightFilterDimension.height
VUID-VkImageViewSampleWeightCreateInfoQCOM-numPhases-06962NNoneexplicitVkImageViewSampleWeightCreateInfoQCOM(VK_QCOM_image_processing)numPhases must be a power of two squared value (i.e., 1, 4, 16, 64, 256, etc.)
VUID-VkImageViewSampleWeightCreateInfoQCOM-numPhases-06963NNoneexplicitVkImageViewSampleWeightCreateInfoQCOM(VK_QCOM_image_processing)numPhases must be less than or equal to VkPhysicalDeviceImageProcessingPropertiesQCOM::maxWeightFilterPhases
VUID-VkImageViewSampleWeightCreateInfoQCOM-sType-sTypeYNoneimplicitVkImageViewSampleWeightCreateInfoQCOM(VK_QCOM_image_processing)sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM
VUID-VkImageViewUsageCreateInfo-sType-sTypeYNoneimplicitVkImageViewUsageCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO
VUID-VkImageViewUsageCreateInfo-usage-parameterYInvalidImageViewUsageCreateInfoimplicitVkImageViewUsageCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)usage must be a valid combination of VkImageUsageFlagBits values
VUID-VkImageViewUsageCreateInfo-usage-requiredbitmaskYInvalidImageViewUsageCreateInfoimplicitVkImageViewUsageCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)usage must not be 0
VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-01880YNoneexplicitVkImportAndroidHardwareBufferInfoANDROID(VK_ANDROID_external_memory_android_hardware_buffer)If buffer is not NULL, Android hardware buffers must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties
VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-01881YAndroidHardwareBufferImportBufferexplicitVkImportAndroidHardwareBufferInfoANDROID(VK_ANDROID_external_memory_android_hardware_buffer)If 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-parameterYNoneimplicitVkImportAndroidHardwareBufferInfoANDROID(VK_ANDROID_external_memory_android_hardware_buffer)buffer must be a valid pointer to an AHardwareBuffer value
VUID-VkImportAndroidHardwareBufferInfoANDROID-sType-sTypeYNoneimplicitVkImportAndroidHardwareBufferInfoANDROID(VK_ANDROID_external_memory_android_hardware_buffer)sType must be VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
VUID-VkImportFenceFdInfoKHR-fd-01541NNoneexplicitVkImportFenceFdInfoKHR(VK_KHR_external_fence_fd)fd must obey any requirements listed for handleType in external fence handle types compatibility
VUID-VkImportFenceFdInfoKHR-fence-parameterYNoneimplicitVkImportFenceFdInfoKHR(VK_KHR_external_fence_fd)fence must be a valid VkFence handle
VUID-VkImportFenceFdInfoKHR-flags-parameterYNoneimplicitVkImportFenceFdInfoKHR(VK_KHR_external_fence_fd)flags must be a valid combination of VkFenceImportFlagBits values
VUID-VkImportFenceFdInfoKHR-handleType-01464YInvalidExternalFenceexplicitVkImportFenceFdInfoKHR(VK_KHR_external_fence_fd)handleType must be a value included in the Handle Types Supported by VkImportFenceFdInfoKHR table
VUID-VkImportFenceFdInfoKHR-handleType-07306YExternalSyncFdFenceexplicitVkImportFenceFdInfoKHR(VK_KHR_external_fence_fd)If handleType refers to a handle type with copy payload transference semantics, flags must contain VK_FENCE_IMPORT_TEMPORARY_BIT
VUID-VkImportFenceFdInfoKHR-handleType-parameterYNoneimplicitVkImportFenceFdInfoKHR(VK_KHR_external_fence_fd)handleType must be a valid VkExternalFenceHandleTypeFlagBits value
VUID-VkImportFenceFdInfoKHR-pNext-pNextYNoneimplicitVkImportFenceFdInfoKHR(VK_KHR_external_fence_fd)pNext must be NULL
VUID-VkImportFenceFdInfoKHR-sType-sTypeYNoneimplicitVkImportFenceFdInfoKHR(VK_KHR_external_fence_fd)sType must be VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR
VUID-VkImportFenceWin32HandleInfoKHR-fence-parameterYNoneimplicitVkImportFenceWin32HandleInfoKHR(VK_KHR_external_fence_win32)fence must be a valid VkFence handle
VUID-VkImportFenceWin32HandleInfoKHR-flags-parameterYNoneimplicitVkImportFenceWin32HandleInfoKHR(VK_KHR_external_fence_win32)flags must be a valid combination of VkFenceImportFlagBits values
VUID-VkImportFenceWin32HandleInfoKHR-handle-01462YInvalidExternalFenceexplicitVkImportFenceWin32HandleInfoKHR(VK_KHR_external_fence_win32)If handle is not NULL, name must be NULL
VUID-VkImportFenceWin32HandleInfoKHR-handle-01539NNoneexplicitVkImportFenceWin32HandleInfoKHR(VK_KHR_external_fence_win32)If handle is not NULL, it must obey any requirements listed for handleType in external fence handle types compatibility
VUID-VkImportFenceWin32HandleInfoKHR-handleType-01457YInvalidExternalFenceexplicitVkImportFenceWin32HandleInfoKHR(VK_KHR_external_fence_win32)handleType must be a value included in the Handle Types Supported by VkImportFenceWin32HandleInfoKHR table
VUID-VkImportFenceWin32HandleInfoKHR-handleType-01459YInvalidExternalFenceexplicitVkImportFenceWin32HandleInfoKHR(VK_KHR_external_fence_win32)If handleType is not VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, name must be NULL
VUID-VkImportFenceWin32HandleInfoKHR-handleType-01460NNoneexplicitVkImportFenceWin32HandleInfoKHR(VK_KHR_external_fence_win32)If handle is NULL, name must name a valid synchronization primitive of the type specified by handleType
VUID-VkImportFenceWin32HandleInfoKHR-handleType-01461NNoneexplicitVkImportFenceWin32HandleInfoKHR(VK_KHR_external_fence_win32)If name is NULL, handle must be a valid handle of the type specified by handleType
VUID-VkImportFenceWin32HandleInfoKHR-name-01540NNoneexplicitVkImportFenceWin32HandleInfoKHR(VK_KHR_external_fence_win32)If name is not NULL, it must obey any requirements listed for handleType in external fence handle types compatibility
VUID-VkImportFenceWin32HandleInfoKHR-pNext-pNextYNoneimplicitVkImportFenceWin32HandleInfoKHR(VK_KHR_external_fence_win32)pNext must be NULL
VUID-VkImportFenceWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkImportFenceWin32HandleInfoKHR(VK_KHR_external_fence_win32)sType must be VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR
VUID-VkImportMemoryBufferCollectionFUCHSIA-collection-parameterNNoneimplicitVkImportMemoryBufferCollectionFUCHSIA(VK_FUCHSIA_buffer_collection)collection must be a valid VkBufferCollectionFUCHSIA handle
VUID-VkImportMemoryBufferCollectionFUCHSIA-index-06406NNoneexplicitVkImportMemoryBufferCollectionFUCHSIA(VK_FUCHSIA_buffer_collection)index must be less than the value retrieved as VkBufferCollectionPropertiesFUCHSIA:bufferCount
VUID-VkImportMemoryBufferCollectionFUCHSIA-sType-sTypeYNoneimplicitVkImportMemoryBufferCollectionFUCHSIA(VK_FUCHSIA_buffer_collection)sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA
VUID-VkImportMemoryFdInfoKHR-fd-00668NNoneexplicitVkImportMemoryFdInfoKHR(VK_KHR_external_memory_fd)The memory from which fd was exported must have been created on the same underlying physical device as device
VUID-VkImportMemoryFdInfoKHR-fd-01520NNoneexplicitVkImportMemoryFdInfoKHR(VK_KHR_external_memory_fd)fd must obey any requirements listed for handleType in external memory handle types compatibility
VUID-VkImportMemoryFdInfoKHR-fd-01746NNoneexplicitVkImportMemoryFdInfoKHR(VK_KHR_external_memory_fd)The 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-00667NNoneexplicitVkImportMemoryFdInfoKHR(VK_KHR_external_memory_fd)If handleType is not 0, it must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties
VUID-VkImportMemoryFdInfoKHR-handleType-00669NNoneexplicitVkImportMemoryFdInfoKHR(VK_KHR_external_memory_fd)If 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-00670NNoneexplicitVkImportMemoryFdInfoKHR(VK_KHR_external_memory_fd)If handleType is not 0, fd must be a valid handle of the type specified by handleType
VUID-VkImportMemoryFdInfoKHR-handleType-parameterYNoneimplicitVkImportMemoryFdInfoKHR(VK_KHR_external_memory_fd)If handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkImportMemoryFdInfoKHR-sType-sTypeYNoneimplicitVkImportMemoryFdInfoKHR(VK_KHR_external_memory_fd)sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR
VUID-VkImportMemoryHostPointerInfoEXT-handleType-01747NNoneexplicitVkImportMemoryHostPointerInfoEXT(VK_EXT_external_memory_host)If handleType is not 0, it must be supported for import, as reported in VkExternalMemoryProperties
VUID-VkImportMemoryHostPointerInfoEXT-handleType-01748NNoneexplicitVkImportMemoryHostPointerInfoEXT(VK_EXT_external_memory_host)If 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-01750NNoneexplicitVkImportMemoryHostPointerInfoEXT(VK_EXT_external_memory_host)If 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-01751NNoneexplicitVkImportMemoryHostPointerInfoEXT(VK_EXT_external_memory_host)If 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-parameterYNoneimplicitVkImportMemoryHostPointerInfoEXT(VK_EXT_external_memory_host)handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkImportMemoryHostPointerInfoEXT-pHostPointer-01749NNoneexplicitVkImportMemoryHostPointerInfoEXT(VK_EXT_external_memory_host)pHostPointer must be a pointer aligned to an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment
VUID-VkImportMemoryHostPointerInfoEXT-sType-sTypeYNoneimplicitVkImportMemoryHostPointerInfoEXT(VK_EXT_external_memory_host)sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT
VUID-VkImportMemoryWin32HandleInfoKHR-handle-00659NNoneexplicitVkImportMemoryWin32HandleInfoKHR(VK_KHR_external_memory_win32)The 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-01441NNoneexplicitVkImportMemoryWin32HandleInfoKHR(VK_KHR_external_memory_win32)if handle is not NULL, name must be NULL
VUID-VkImportMemoryWin32HandleInfoKHR-handle-01518NNoneexplicitVkImportMemoryWin32HandleInfoKHR(VK_KHR_external_memory_win32)If handle is not NULL, it must obey any requirements listed for handleType in external memory handle types compatibility
VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00658NNoneexplicitVkImportMemoryWin32HandleInfoKHR(VK_KHR_external_memory_win32)If handleType is not 0, it must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties
VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00660NNoneexplicitVkImportMemoryWin32HandleInfoKHR(VK_KHR_external_memory_win32)If handleType is not 0, it must be defined as an NT handle or a global share handle
VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00661NNoneexplicitVkImportMemoryWin32HandleInfoKHR(VK_KHR_external_memory_win32)If handleType is not 0 and name is NULL, handle must be a valid handle of the type specified by handleType
VUID-VkImportMemoryWin32HandleInfoKHR-handleType-01439NNoneexplicitVkImportMemoryWin32HandleInfoKHR(VK_KHR_external_memory_win32)If 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-01440NNoneexplicitVkImportMemoryWin32HandleInfoKHR(VK_KHR_external_memory_win32)If handleType is not 0 and handle is NULL, name must name a valid memory resource of the type specified by handleType
VUID-VkImportMemoryWin32HandleInfoKHR-handleType-parameterYNoneimplicitVkImportMemoryWin32HandleInfoKHR(VK_KHR_external_memory_win32)If handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkImportMemoryWin32HandleInfoKHR-name-01519NNoneexplicitVkImportMemoryWin32HandleInfoKHR(VK_KHR_external_memory_win32)If name is not NULL, it must obey any requirements listed for handleType in external memory handle types compatibility
VUID-VkImportMemoryWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkImportMemoryWin32HandleInfoKHR(VK_KHR_external_memory_win32)sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR
VUID-VkImportMemoryWin32HandleInfoNV-handle-01328NNoneexplicitVkImportMemoryWin32HandleInfoNV(VK_NV_external_memory_win32)handle must be a valid handle to memory, obtained as specified by handleType
VUID-VkImportMemoryWin32HandleInfoNV-handleType-01327NNoneexplicitVkImportMemoryWin32HandleInfoNV(VK_NV_external_memory_win32)handleType must not have more than one bit set
VUID-VkImportMemoryWin32HandleInfoNV-handleType-parameterYNoneimplicitVkImportMemoryWin32HandleInfoNV(VK_NV_external_memory_win32)handleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values
VUID-VkImportMemoryWin32HandleInfoNV-sType-sTypeYNoneimplicitVkImportMemoryWin32HandleInfoNV(VK_NV_external_memory_win32)sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV
VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handle-04772NNoneexplicitVkImportMemoryZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_memory)handle must be a valid VMO handle
VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handleType-04771NNoneexplicitVkImportMemoryZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_memory)handleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA
VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handleType-parameterYNoneimplicitVkImportMemoryZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_memory)If handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkImportMemoryZirconHandleInfoFUCHSIA-sType-sTypeYNoneimplicitVkImportMemoryZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_memory)sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA
VUID-VkImportMetalBufferInfoEXT-sType-sTypeYNoneimplicitVkImportMetalBufferInfoEXT(VK_EXT_metal_objects)sType must be VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT
VUID-VkImportMetalIOSurfaceInfoEXT-sType-sTypeYNoneimplicitVkImportMetalIOSurfaceInfoEXT(VK_EXT_metal_objects)sType must be VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT
VUID-VkImportMetalSharedEventInfoEXT-sType-sTypeYNoneimplicitVkImportMetalSharedEventInfoEXT(VK_EXT_metal_objects)sType must be VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT
VUID-VkImportMetalTextureInfoEXT-plane-parameterYNoneimplicitVkImportMetalTextureInfoEXT(VK_EXT_metal_objects)plane must be a valid VkImageAspectFlagBits value
VUID-VkImportMetalTextureInfoEXT-sType-sTypeYNoneimplicitVkImportMetalTextureInfoEXT(VK_EXT_metal_objects)sType must be VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT
VUID-VkImportSemaphoreFdInfoKHR-fd-01544NNoneexplicitVkImportSemaphoreFdInfoKHR(VK_KHR_external_semaphore_fd)fd must obey any requirements listed for handleType in external semaphore handle types compatibility
VUID-VkImportSemaphoreFdInfoKHR-flags-03323YExternalTimelineSemaphoreexplicitVkImportSemaphoreFdInfoKHR(VK_KHR_external_semaphore_fd)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)If 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-parameterYNoneimplicitVkImportSemaphoreFdInfoKHR(VK_KHR_external_semaphore_fd)flags must be a valid combination of VkSemaphoreImportFlagBits values
VUID-VkImportSemaphoreFdInfoKHR-handleType-01143YInvalidExternalSemaphoreexplicitVkImportSemaphoreFdInfoKHR(VK_KHR_external_semaphore_fd)handleType must be a value included in the Handle Types Supported by VkImportSemaphoreFdInfoKHR table
VUID-VkImportSemaphoreFdInfoKHR-handleType-03263NNoneexplicitVkImportSemaphoreFdInfoKHR(VK_KHR_external_semaphore_fd)If 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-03264NNoneexplicitVkImportSemaphoreFdInfoKHR(VK_KHR_external_semaphore_fd)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)If 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-07307YExternalSyncFdSemaphoreexplicitVkImportSemaphoreFdInfoKHR(VK_KHR_external_semaphore_fd)If handleType refers to a handle type with copy payload transference semantics, flags must contain VK_SEMAPHORE_IMPORT_TEMPORARY_BIT
VUID-VkImportSemaphoreFdInfoKHR-handleType-parameterYNoneimplicitVkImportSemaphoreFdInfoKHR(VK_KHR_external_semaphore_fd)handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value
VUID-VkImportSemaphoreFdInfoKHR-pNext-pNextYNoneimplicitVkImportSemaphoreFdInfoKHR(VK_KHR_external_semaphore_fd)pNext must be NULL
VUID-VkImportSemaphoreFdInfoKHR-sType-sTypeYNoneimplicitVkImportSemaphoreFdInfoKHR(VK_KHR_external_semaphore_fd)sType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR
VUID-VkImportSemaphoreFdInfoKHR-semaphore-parameterYNoneimplicitVkImportSemaphoreFdInfoKHR(VK_KHR_external_semaphore_fd)semaphore must be a valid VkSemaphore handle
VUID-VkImportSemaphoreWin32HandleInfoKHR-flags-03322YExternalTimelineSemaphoreexplicitVkImportSemaphoreWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)If 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-parameterYNoneimplicitVkImportSemaphoreWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)flags must be a valid combination of VkSemaphoreImportFlagBits values
VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01469YNoneexplicitVkImportSemaphoreWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)If handle is not NULL, name must be NULL
VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01542NNoneexplicitVkImportSemaphoreWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)If handle is not NULL, it must obey any requirements listed for handleType in external semaphore handle types compatibility
VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01140YInvalidExternalSemaphoreexplicitVkImportSemaphoreWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)handleType must be a value included in the Handle Types Supported by VkImportSemaphoreWin32HandleInfoKHR table
VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01466YNoneexplicitVkImportSemaphoreWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)If 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-01467NNoneexplicitVkImportSemaphoreWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)If handle is NULL, name must name a valid synchronization primitive of the type specified by handleType
VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01468NNoneexplicitVkImportSemaphoreWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)If name is NULL, handle must be a valid handle of the type specified by handleType
VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-03261NNoneexplicitVkImportSemaphoreWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)If 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-03262NNoneexplicitVkImportSemaphoreWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)If 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-01543NNoneexplicitVkImportSemaphoreWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)If name is not NULL, it must obey any requirements listed for handleType in external semaphore handle types compatibility
VUID-VkImportSemaphoreWin32HandleInfoKHR-pNext-pNextYNoneimplicitVkImportSemaphoreWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)pNext must be NULL
VUID-VkImportSemaphoreWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkImportSemaphoreWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)sType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR
VUID-VkImportSemaphoreWin32HandleInfoKHR-semaphore-parameterYNoneimplicitVkImportSemaphoreWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)semaphore must be a valid VkSemaphore handle
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-flags-parameterYNoneimplicitVkImportSemaphoreZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_semaphore)flags must be a valid combination of VkSemaphoreImportFlagBits values
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-04765NNoneexplicitVkImportSemaphoreZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_semaphore)handleType must be a value included in the Handle Types Supported by VkImportSemaphoreZirconHandleInfoFUCHSIA table
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-parameterYNoneimplicitVkImportSemaphoreZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_semaphore)handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-pNext-pNextYNoneimplicitVkImportSemaphoreZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_semaphore)pNext must be NULL
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-sType-sTypeYNoneimplicitVkImportSemaphoreZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_semaphore)sType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-semaphore-parameterYNoneimplicitVkImportSemaphoreZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_semaphore)semaphore must be a valid VkSemaphore handle
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-semaphoreType-04768YNoneexplicitVkImportSemaphoreZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_semaphore)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)The VkSemaphoreTypeCreateInfo::semaphoreType field must not be VK_SEMAPHORE_TYPE_TIMELINE
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04766NNoneexplicitVkImportSemaphoreZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_semaphore)zirconHandle must obey any requirements listed for handleType in external semaphore handle types compatibility
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04767NNoneexplicitVkImportSemaphoreZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_semaphore)zirconHandle must have ZX_RIGHTS_BASIC and ZX_RIGHTS_SIGNAL rights
VUID-VkIndirectCommandsLayoutCreateInfoNV-flags-parameterYNoneimplicitVkIndirectCommandsLayoutCreateInfoNV(VK_NV_device_generated_commands)flags must be a valid combination of VkIndirectCommandsLayoutUsageFlagBitsNV values
VUID-VkIndirectCommandsLayoutCreateInfoNV-pNext-pNextYNoneimplicitVkIndirectCommandsLayoutCreateInfoNV(VK_NV_device_generated_commands)pNext must be NULL
VUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-02937NNoneexplicitVkIndirectCommandsLayoutCreateInfoNV(VK_NV_device_generated_commands)each 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-parameterYNoneimplicitVkIndirectCommandsLayoutCreateInfoNV(VK_NV_device_generated_commands)pStreamStrides must be a valid pointer to an array of streamCount uint32_t values
VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02932NNoneexplicitVkIndirectCommandsLayoutCreateInfoNV(VK_NV_device_generated_commands)If 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-02933NNoneexplicitVkIndirectCommandsLayoutCreateInfoNV(VK_NV_device_generated_commands)If 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-02934NNoneexplicitVkIndirectCommandsLayoutCreateInfoNV(VK_NV_device_generated_commands)All state tokens in pTokens must occur before any work provoking tokens (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV)
VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02935NNoneexplicitVkIndirectCommandsLayoutCreateInfoNV(VK_NV_device_generated_commands)The content of pTokens must include one single work provoking token that is compatible with the pipelineBindPoint
VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-parameterYNoneimplicitVkIndirectCommandsLayoutCreateInfoNV(VK_NV_device_generated_commands)pTokens must be a valid pointer to an array of tokenCount valid VkIndirectCommandsLayoutTokenNV structures
VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-02930NNoneexplicitVkIndirectCommandsLayoutCreateInfoNV(VK_NV_device_generated_commands)The pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-parameterYNoneimplicitVkIndirectCommandsLayoutCreateInfoNV(VK_NV_device_generated_commands)pipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-VkIndirectCommandsLayoutCreateInfoNV-sType-sTypeYNoneimplicitVkIndirectCommandsLayoutCreateInfoNV(VK_NV_device_generated_commands)sType must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV
VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-02936NNoneexplicitVkIndirectCommandsLayoutCreateInfoNV(VK_NV_device_generated_commands)streamCount must be greater than 0 and less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsStreamCount
VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-arraylengthYNoneimplicitVkIndirectCommandsLayoutCreateInfoNV(VK_NV_device_generated_commands)streamCount must be greater than 0
VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-02931NNoneexplicitVkIndirectCommandsLayoutCreateInfoNV(VK_NV_device_generated_commands)tokenCount must be greater than 0 and less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsTokenCount
VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-arraylengthYNoneimplicitVkIndirectCommandsLayoutCreateInfoNV(VK_NV_device_generated_commands)tokenCount must be greater than 0
VUID-VkIndirectCommandsLayoutTokenNV-indirectStateFlags-parameterYNoneimplicitVkIndirectCommandsLayoutTokenNV(VK_NV_device_generated_commands)indirectStateFlags must be a valid combination of VkIndirectStateFlagBitsNV values
VUID-VkIndirectCommandsLayoutTokenNV-offset-02952NNoneexplicitVkIndirectCommandsLayoutTokenNV(VK_NV_device_generated_commands)offset must be less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsTokenOffset
VUID-VkIndirectCommandsLayoutTokenNV-offset-06888NNoneexplicitVkIndirectCommandsLayoutTokenNV(VK_NV_device_generated_commands)offset must be aligned to the scalar alignment of tokenType or minIndirectCommandsBufferOffsetAlignment, whichever is lower
VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypeValues-parameterYNoneimplicitVkIndirectCommandsLayoutTokenNV(VK_NV_device_generated_commands)If indexTypeCount is not 0, pIndexTypeValues must be a valid pointer to an array of indexTypeCount uint32_t values
VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypes-parameterNNoneimplicitVkIndirectCommandsLayoutTokenNV(VK_NV_device_generated_commands)If indexTypeCount is not 0, pIndexTypes must be a valid pointer to an array of indexTypeCount valid VkIndexType values
VUID-VkIndirectCommandsLayoutTokenNV-pNext-pNextYNoneimplicitVkIndirectCommandsLayoutTokenNV(VK_NV_device_generated_commands)pNext must be NULL
VUID-VkIndirectCommandsLayoutTokenNV-pushconstantPipelineLayout-parameterYNoneimplicitVkIndirectCommandsLayoutTokenNV(VK_NV_device_generated_commands)If pushconstantPipelineLayout is not VK_NULL_HANDLE, pushconstantPipelineLayout must be a valid VkPipelineLayout handle
VUID-VkIndirectCommandsLayoutTokenNV-pushconstantShaderStageFlags-parameterYNoneimplicitVkIndirectCommandsLayoutTokenNV(VK_NV_device_generated_commands)pushconstantShaderStageFlags must be a valid combination of VkShaderStageFlagBits values
VUID-VkIndirectCommandsLayoutTokenNV-sType-sTypeYNoneimplicitVkIndirectCommandsLayoutTokenNV(VK_NV_device_generated_commands)sType must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV
VUID-VkIndirectCommandsLayoutTokenNV-stream-02951NNoneexplicitVkIndirectCommandsLayoutTokenNV(VK_NV_device_generated_commands)stream must be smaller than VkIndirectCommandsLayoutCreateInfoNV::streamCount
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02976NNoneexplicitVkIndirectCommandsLayoutTokenNV(VK_NV_device_generated_commands)If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV, vertexBindingUnit must stay within device supported limits for the appropriate commands
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02977NNoneexplicitVkIndirectCommandsLayoutTokenNV(VK_NV_device_generated_commands)If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantPipelineLayout must be valid
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02978NNoneexplicitVkIndirectCommandsLayoutTokenNV(VK_NV_device_generated_commands)If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantOffset must be a multiple of 4
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02979NNoneexplicitVkIndirectCommandsLayoutTokenNV(VK_NV_device_generated_commands)If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantSize must be a multiple of 4
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02980NNoneexplicitVkIndirectCommandsLayoutTokenNV(VK_NV_device_generated_commands)If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantOffset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02981NNoneexplicitVkIndirectCommandsLayoutTokenNV(VK_NV_device_generated_commands)If 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-02982NNoneexplicitVkIndirectCommandsLayoutTokenNV(VK_NV_device_generated_commands)If 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-02983NNoneexplicitVkIndirectCommandsLayoutTokenNV(VK_NV_device_generated_commands)If 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-02984NNoneexplicitVkIndirectCommandsLayoutTokenNV(VK_NV_device_generated_commands)If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV, indirectStateFlags must not be 0
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-parameterYNoneimplicitVkIndirectCommandsLayoutTokenNV(VK_NV_device_generated_commands)tokenType must be a valid VkIndirectCommandsTokenTypeNV value
VUID-VkIndirectCommandsStreamNV-buffer-02942NNoneexplicitVkIndirectCommandsStreamNV(VK_NV_device_generated_commands)The buffer's usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-VkIndirectCommandsStreamNV-buffer-02975NNoneexplicitVkIndirectCommandsStreamNV(VK_NV_device_generated_commands)If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkIndirectCommandsStreamNV-buffer-parameterYNoneimplicitVkIndirectCommandsStreamNV(VK_NV_device_generated_commands)buffer must be a valid VkBuffer handle
VUID-VkIndirectCommandsStreamNV-offset-02943NNoneexplicitVkIndirectCommandsStreamNV(VK_NV_device_generated_commands)The offset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minIndirectCommandsBufferOffsetAlignment
VUID-VkInitializePerformanceApiInfoINTEL-pNext-pNextYNoneimplicitVkInitializePerformanceApiInfoINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)pNext must be NULL
VUID-VkInitializePerformanceApiInfoINTEL-sType-sTypeYNoneimplicitVkInitializePerformanceApiInfoINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)sType must be VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL
VUID-VkInputAttachmentAspectReference-aspectMask-01964YRenderPassCreateInvalidInputAttachmentReferences, MessageIdFilterString, MessageIdFilterInt, MessageIdFilterHexIntexplicitVkInputAttachmentAspectReference(VK_VERSION_1_1,VK_KHR_maintenance2)aspectMask must not include VK_IMAGE_ASPECT_METADATA_BIT
VUID-VkInputAttachmentAspectReference-aspectMask-02250YRenderPassCreateInvalidInputAttachmentReferencesexplicitVkInputAttachmentAspectReference(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_EXT_image_drm_format_modifier)aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE{ibit}BIT_EXT for any index i
VUID-VkInputAttachmentAspectReference-aspectMask-parameterYNoneimplicitVkInputAttachmentAspectReference(VK_VERSION_1_1,VK_KHR_maintenance2)aspectMask must be a valid combination of VkImageAspectFlagBits values
VUID-VkInputAttachmentAspectReference-aspectMask-requiredbitmaskYNoneimplicitVkInputAttachmentAspectReference(VK_VERSION_1_1,VK_KHR_maintenance2)aspectMask must not be 0
VUID-VkInstanceCreateInfo-flags-06559YInstanceCreateEnumeratePortabilityexplicitVkInstanceCreateInfo(VK_EXT_debug_report,VK_EXT_debug_utils,VK_KHR_portability_enumeration,VK_LUNARG_direct_driver_loading)+(VK_KHR_portability_enumeration)If flags has the VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR bit set, the list of enabled extensions in ppEnabledExtensionNames must contain VK_KHR_portability_enumeration
VUID-VkInstanceCreateInfo-flags-parameterYNoneimplicitVkInstanceCreateInfocoreflags must be a valid combination of VkInstanceCreateFlagBits values
VUID-VkInstanceCreateInfo-pApplicationInfo-parameterYNoneimplicitVkInstanceCreateInfocoreIf pApplicationInfo is not NULL, pApplicationInfo must be a valid pointer to a valid VkApplicationInfo structure
VUID-VkInstanceCreateInfo-pNextNNoneimplicitVkInstanceCreateInfo(VK_EXT_debug_report,VK_EXT_debug_utils,VK_KHR_portability_enumeration,VK_LUNARG_direct_driver_loading)+(VK_LUNARG_direct_driver_loading)If 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-04925NNoneexplicitVkInstanceCreateInfo(VK_EXT_debug_report,VK_EXT_debug_utils,VK_KHR_portability_enumeration,VK_LUNARG_direct_driver_loading)+(VK_EXT_debug_report)If 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-04926NNoneexplicitVkInstanceCreateInfo(VK_EXT_debug_report,VK_EXT_debug_utils,VK_KHR_portability_enumeration,VK_LUNARG_direct_driver_loading)+(VK_EXT_debug_utils)If 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-06779YExportMetalObjectsexplicitVkInstanceCreateInfo(VK_EXT_debug_report,VK_EXT_debug_utils,VK_KHR_portability_enumeration,VK_LUNARG_direct_driver_loading)+(VK_EXT_metal_objects)If 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-pNextYNoneimplicitVkInstanceCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDebugReportCallbackCreateInfoEXT, VkDebugUtilsMessengerCreateInfoEXT, VkDirectDriverLoadingListLUNARG, VkExportMetalObjectCreateInfoEXT, VkValidationFeaturesEXT, or VkValidationFlagsEXT
VUID-VkInstanceCreateInfo-ppEnabledExtensionNames-parameterYNoneimplicitVkInstanceCreateInfocoreIf enabledExtensionCount is not 0, ppEnabledExtensionNames must be a valid pointer to an array of enabledExtensionCount null-terminated UTF-8 strings
VUID-VkInstanceCreateInfo-ppEnabledLayerNames-parameterYNoneimplicitVkInstanceCreateInfocoreIf enabledLayerCount is not 0, ppEnabledLayerNames must be a valid pointer to an array of enabledLayerCount null-terminated UTF-8 strings
VUID-VkInstanceCreateInfo-sType-sTypeYInstanceBadStypeimplicitVkInstanceCreateInfocoresType must be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
VUID-VkInstanceCreateInfo-sType-uniqueYInstanceDuplicatePnextStypeimplicitVkInstanceCreateInfocoreThe sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkDebugUtilsMessengerCreateInfoEXT or VkExportMetalObjectCreateInfoEXT
VUID-VkMacOSSurfaceCreateInfoMVK-flags-zerobitmaskYNoneimplicitVkMacOSSurfaceCreateInfoMVK(VK_KHR_surface)+(VK_MVK_macos_surface)flags must be 0
VUID-VkMacOSSurfaceCreateInfoMVK-pNext-pNextYNoneimplicitVkMacOSSurfaceCreateInfoMVK(VK_KHR_surface)+(VK_MVK_macos_surface)pNext must be NULL
VUID-VkMacOSSurfaceCreateInfoMVK-pView-01317NNoneexplicitVkMacOSSurfaceCreateInfoMVK(VK_KHR_surface)+(VK_MVK_macos_surface)If 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-04144NNoneexplicitVkMacOSSurfaceCreateInfoMVK(VK_KHR_surface)+(VK_MVK_macos_surface)If pView is a CAMetalLayer object, it must be a valid CAMetalLayer
VUID-VkMacOSSurfaceCreateInfoMVK-sType-sTypeYNoneimplicitVkMacOSSurfaceCreateInfoMVK(VK_KHR_surface)+(VK_MVK_macos_surface)sType must be VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK
VUID-VkMappedMemoryRange-memory-00684YMapMemWithoutHostVisibleBit, InvalidMemoryMappingexplicitVkMappedMemoryRangecorememory must be currently host mapped
VUID-VkMappedMemoryRange-memory-parameterYNoneimplicitVkMappedMemoryRangecorememory must be a valid VkDeviceMemory handle
VUID-VkMappedMemoryRange-offset-00687YInvalidMemoryMappingexplicitVkMappedMemoryRangecoreoffset must be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize
VUID-VkMappedMemoryRange-pNext-pNextYNoneimplicitVkMappedMemoryRangecorepNext must be NULL
VUID-VkMappedMemoryRange-sType-sTypeYNoneimplicitVkMappedMemoryRangecoresType must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
VUID-VkMappedMemoryRange-size-00685YInvalidMemoryMappingexplicitVkMappedMemoryRangecoreIf 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-00686YInvalidMemoryMappingexplicitVkMappedMemoryRangecoreIf size is equal to VK_WHOLE_SIZE, offset must be within the currently mapped range of memory
VUID-VkMappedMemoryRange-size-01389YInvalidMemoryMappingexplicitVkMappedMemoryRangecoreIf 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-01390YInvalidMemoryMappingexplicitVkMappedMemoryRangecoreIf 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-00675YInvalidDeviceMaskexplicitVkMemoryAllocateFlagsInfo(VK_VERSION_1_1,VK_KHR_device_group)If VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT is set, deviceMask must be a valid device mask
VUID-VkMemoryAllocateFlagsInfo-deviceMask-00676YInvalidDeviceMaskexplicitVkMemoryAllocateFlagsInfo(VK_VERSION_1_1,VK_KHR_device_group)If VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT is set, deviceMask must not be zero
VUID-VkMemoryAllocateFlagsInfo-flags-parameterYNoneimplicitVkMemoryAllocateFlagsInfo(VK_VERSION_1_1,VK_KHR_device_group)flags must be a valid combination of VkMemoryAllocateFlagBits values
VUID-VkMemoryAllocateFlagsInfo-sType-sTypeYNoneimplicitVkMemoryAllocateFlagsInfo(VK_VERSION_1_1,VK_KHR_device_group)sType must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO
VUID-VkMemoryAllocateInfo-None-00643NNoneexplicitVkMemoryAllocateInfo(VK_KHR_external_memory+VK_KHR_device_group)If 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-00644NNoneexplicitVkMemoryAllocateInfo(VK_KHR_external_memory+VK_KHR_device_group)If 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-04749NNoneexplicitVkMemoryAllocateInfo(VK_FUCHSIA_external_memory)If 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-06657YNoneexplicitVkMemoryAllocateInfocoreThe parameters must not define more than one import operation
VUID-VkMemoryAllocateInfo-allocationSize-00638YNoneexplicitVkMemoryAllocateInfo!(VK_ANDROID_external_memory_android_hardware_buffer)allocationSize must be greater than 0
VUID-VkMemoryAllocateInfo-allocationSize-00647NNoneexplicitVkMemoryAllocateInfo(VK_KHR_external_memory_win32)If 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-01742NNoneexplicitVkMemoryAllocateInfo(VK_KHR_external_memory_fd)If 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-01743NNoneexplicitVkMemoryAllocateInfo(VK_KHR_external_memory_win32)If 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-01745NNoneexplicitVkMemoryAllocateInfo(VK_EXT_external_memory_host)If 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-02383YAndroidHardwareBufferAllocationSize, AndroidHardwareBufferGpuUsageexplicitVkMemoryAllocateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If 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-04750NNoneexplicitVkMemoryAllocateInfo(VK_FUCHSIA_external_memory)If 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 and 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-06382NNoneexplicitVkMemoryAllocateInfo(VK_FUCHSIA_buffer_collection)If 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-buffer-06380NNoneexplicitVkMemoryAllocateInfo(VK_FUCHSIA_buffer_collection)If 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-06385NNoneexplicitVkMemoryAllocateInfo(VK_FUCHSIA_buffer_collection)If 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-03330YBufferDeviceAddressKHRDisabledexplicitVkMemoryAllocateInfo(VK_VERSION_1_2,VK_KHR_buffer_device_address)If VkMemoryAllocateFlagsInfo::flags includes VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, the bufferDeviceAddressCaptureReplay feature must be enabled
VUID-VkMemoryAllocateInfo-flags-03331YBufferDeviceAddressKHRDisabledexplicitVkMemoryAllocateInfo(VK_VERSION_1_2,VK_KHR_buffer_device_address)If VkMemoryAllocateFlagsInfo::flags includes VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT, the bufferDeviceAddress feature must be enabled
VUID-VkMemoryAllocateInfo-image-06381NNoneexplicitVkMemoryAllocateInfo(VK_FUCHSIA_buffer_collection)If 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-06384NNoneexplicitVkMemoryAllocateInfo(VK_FUCHSIA_buffer_collection)If 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-00645NNoneexplicitVkMemoryAllocateInfo(VK_KHR_external_memory_win32)If 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-00648NNoneexplicitVkMemoryAllocateInfo(VK_KHR_external_memory_fd)If 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-01744NNoneexplicitVkMemoryAllocateInfo(VK_EXT_external_memory_host)If 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-01872YInvalidProtectedSubmitexplicitVkMemoryAllocateInfo(VK_VERSION_1_1)If 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-02385YAndroidHardwareBufferAllocationSize, AndroidHardwareBufferGpuUsageexplicitVkMemoryAllocateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If 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-06386NNoneexplicitVkMemoryAllocateInfo(VK_FUCHSIA_buffer_collection)If the parameters define an import operation from an VkBufferCollectionFUCHSIA, memoryTypeIndex must be from VkBufferCollectionPropertiesFUCHSIA as retrieved by vkGetBufferCollectionPropertiesFUCHSIA
VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03329YNoneexplicitVkMemoryAllocateInfo(VK_VERSION_1_2,VK_KHR_buffer_device_address)If VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress is not zero, VkMemoryAllocateFlagsInfo::flags must include VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03333YNoneexplicitVkMemoryAllocateInfo(VK_VERSION_1_2,VK_KHR_buffer_device_address)If the parameters define an import operation, VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress must be zero
VUID-VkMemoryAllocateInfo-pNext-00639NNoneexplicitVkMemoryAllocateInfo(VK_KHR_external_memory)+(VK_KHR_dedicated_allocation,VK_NV_dedicated_allocation)If 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 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-00640YInvalidMemoryAllocatepNextChainexplicitVkMemoryAllocateInfo(VK_KHR_external_memory)+(VK_NV_external_memory)If the pNext chain includes a VkExportMemoryAllocateInfo structure, it must not include a VkExportMemoryAllocateInfoNV or VkExportMemoryWin32HandleInfoNV structure
VUID-VkMemoryAllocateInfo-pNext-00641NNoneexplicitVkMemoryAllocateInfo(VK_KHR_external_memory_win32+VK_NV_external_memory_win32)If the pNext chain includes a VkImportMemoryWin32HandleInfoKHR structure, it must not include a VkImportMemoryWin32HandleInfoNV structure
VUID-VkMemoryAllocateInfo-pNext-01874YAndroidHardwareBufferExportMemoryAllocateexplicitVkMemoryAllocateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If 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, otherwise allocationSize must be greater than 0
VUID-VkMemoryAllocateInfo-pNext-02384YAndroidHardwareBufferGpuDataBuffer, AndroidHardwareBufferImportBufferexplicitVkMemoryAllocateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If 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-02386YAndroidHardwareBufferGpuUsageexplicitVkMemoryAllocateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If 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-02387YAndroidHardwareBufferUnknownFormatexplicitVkMemoryAllocateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If 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-02388YAndroidHardwareBufferImageDimensionsexplicitVkMemoryAllocateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If 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-02389YAndroidHardwareBufferMipmapChainexplicitVkMemoryAllocateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If 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-02390YAndroidHardwareBufferDedicatedUsageColor, AndroidHardwareBufferDedicatedUsageDS, AndroidHardwareBufferGpuUsageexplicitVkMemoryAllocateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If 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-02586NNoneexplicitVkMemoryAllocateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If 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-02805NNoneexplicitVkMemoryAllocateInfo(VK_EXT_external_memory_host)+(VK_NV_dedicated_allocation)If 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-02806NNoneexplicitVkMemoryAllocateInfo(VK_EXT_external_memory_host)+(VK_KHR_dedicated_allocation)If 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-03332YNoneexplicitVkMemoryAllocateInfo(VK_VERSION_1_2,VK_KHR_buffer_device_address)+(VK_EXT_external_memory_host)If the pNext chain includes a VkImportMemoryHostPointerInfoEXT structure, VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress must be zero
VUID-VkMemoryAllocateInfo-pNext-06383NNoneexplicitVkMemoryAllocateInfo(VK_FUCHSIA_buffer_collection)If 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-06780YExportMetalObjectsexplicitVkMemoryAllocateInfo(VK_EXT_metal_objects)If the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT
VUID-VkMemoryAllocateInfo-pNext-pNextYNoneimplicitVkMemoryAllocateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDedicatedAllocationMemoryAllocateInfoNV, VkExportMemoryAllocateInfo, VkExportMemoryAllocateInfoNV, VkExportMemoryWin32HandleInfoKHR, VkExportMemoryWin32HandleInfoNV, VkExportMetalObjectCreateInfoEXT, VkImportAndroidHardwareBufferInfoANDROID, VkImportMemoryBufferCollectionFUCHSIA, VkImportMemoryFdInfoKHR, VkImportMemoryHostPointerInfoEXT, VkImportMemoryWin32HandleInfoKHR, VkImportMemoryWin32HandleInfoNV, VkImportMemoryZirconHandleInfoFUCHSIA, VkImportMetalBufferInfoEXT, VkMemoryAllocateFlagsInfo, VkMemoryDedicatedAllocateInfo, VkMemoryOpaqueCaptureAddressAllocateInfo, or VkMemoryPriorityAllocateInfoEXT
VUID-VkMemoryAllocateInfo-sType-sTypeYNoneimplicitVkMemoryAllocateInfocoresType must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
VUID-VkMemoryAllocateInfo-sType-uniqueYNoneimplicitVkMemoryAllocateInfocoreThe sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT
VUID-VkMemoryBarrier-dstAccessMask-parameterYNoneimplicitVkMemoryBarriercoredstAccessMask must be a valid combination of VkAccessFlagBits values
VUID-VkMemoryBarrier-pNext-pNextYNoneimplicitVkMemoryBarriercorepNext must be NULL
VUID-VkMemoryBarrier-sType-sTypeYNoneimplicitVkMemoryBarriercoresType must be VK_STRUCTURE_TYPE_MEMORY_BARRIER
VUID-VkMemoryBarrier-srcAccessMask-parameterYNoneimplicitVkMemoryBarriercoresrcAccessMask must be a valid combination of VkAccessFlagBits values
VUID-VkMemoryBarrier2-dstAccessMask-03900YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, pname: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-03901YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, pname: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-03902YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, pname: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-03903YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03904YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, pname: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-03905YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, pname: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-03906YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, pname: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-03907YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, pname: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-03908YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+!(VK_EXT_opacity_micromap)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, pname: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, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-dstAccessMask-03909YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, pname: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-03910YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, pname: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-03911YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, pname: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-03912YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, pname: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-03913YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, pname: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-03914YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, pname: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, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03915YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, pname: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_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03916YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_HOST_READ_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03917YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03918YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)If pname:dstAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, pname: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-03919YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)If pname:dstAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, pname: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-03920YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, pname: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-03922YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, pname: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-03923YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)If pname:dstAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, pname: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-03924YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_device_generated_commands)If pname:dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03925YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_device_generated_commands)If pname:dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-03926YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_blend_operation_advanced)If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, pname: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-03927YRayTracingTestBarrierAccessAccelerationStructureexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)If pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-dstAccessMask-03928YRayTracingTestBarrierAccessAccelerationStructureexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)If pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-dstAccessMask-04747YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, pname: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-04858YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_decode_queue)If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkMemoryBarrier2-dstAccessMask-04859YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_decode_queue)If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkMemoryBarrier2-dstAccessMask-04860YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_encode_queue)If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkMemoryBarrier2-dstAccessMask-04861YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_encode_queue)If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkMemoryBarrier2-dstAccessMask-04994YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)If pname:dstAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, pname:dstStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkMemoryBarrier2-dstAccessMask-06254NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname: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-06255NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:dstStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-dstAccessMask-06256NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If the rayQuery feature is not enabled and pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname: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-06257NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If the rayQuery feature is not enabled and pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:dstStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-dstAccessMask-07272NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_tracing_maintenance1)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkMemoryBarrier2-dstAccessMask-07454NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, pname: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-07455NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_optical_flow)If pname:dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkMemoryBarrier2-dstAccessMask-07456NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_optical_flow)If pname:dstAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkMemoryBarrier2-dstAccessMask-07457NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)If pname:dstAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
VUID-VkMemoryBarrier2-dstAccessMask-07458NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)If pname:dstAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
VUID-VkMemoryBarrier2-dstAccessMask-08118YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_descriptor_buffer)If pname:dstAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, pname: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-parameterYNoneimplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)dstAccessMask must be a valid combination of VkAccessFlagBits2 values
VUID-VkMemoryBarrier2-dstStageMask-03929YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If the geometryShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-VkMemoryBarrier2-dstStageMask-03930YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If the tessellationShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkMemoryBarrier2-dstStageMask-03931YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkMemoryBarrier2-dstStageMask-03932YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkMemoryBarrier2-dstStageMask-03933YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkMemoryBarrier2-dstStageMask-03934YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-VkMemoryBarrier2-dstStageMask-03935YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-VkMemoryBarrier2-dstStageMask-04956YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV
VUID-VkMemoryBarrier2-dstStageMask-04957NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)If the subpassShading feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
VUID-VkMemoryBarrier2-dstStageMask-04995NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)If the invocationMask feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkMemoryBarrier2-dstStageMask-07316NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkMemoryBarrier2-dstStageMask-07317NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkMemoryBarrier2-dstStageMask-parameterYNoneimplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)dstStageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-VkMemoryBarrier2-sType-sTypeYNoneimplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)sType must be VK_STRUCTURE_TYPE_MEMORY_BARRIER_2
VUID-VkMemoryBarrier2-srcAccessMask-03900YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, pname: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-03901YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_INDEX_READ_BIT, pname: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-03902YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT, pname: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-03903YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03904YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT, pname: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-03905YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT, pname: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-03906YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT, pname: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-03907YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, pname: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-03908YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+!(VK_EXT_opacity_micromap)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, pname: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, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-srcAccessMask-03909YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT, pname: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-03910YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT, pname: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-03911YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, pname: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-03912YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT, pname: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-03913YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, pname: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-03914YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT, pname: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, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03915YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT, pname: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_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03916YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_HOST_READ_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03917YTestBarrierAccessSync2explicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03918YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)If pname:srcAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, pname: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-03919YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)If pname:srcAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, pname: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-03920YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, pname: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-03922YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, pname: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-03923YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)If pname:srcAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, pname: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-03924YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_device_generated_commands)If pname:srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03925YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_device_generated_commands)If pname:srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-03926YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_blend_operation_advanced)If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, pname: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-03927YRayTracingTestBarrierAccessAccelerationStructureexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)If pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-srcAccessMask-03928YRayTracingTestBarrierAccessAccelerationStructureexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)If pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
VUID-VkMemoryBarrier2-srcAccessMask-04747YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, pname: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-04858YTestBarrierAccessVideoDecodeexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_decode_queue)If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkMemoryBarrier2-srcAccessMask-04859YTestBarrierAccessVideoDecodeexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_decode_queue)If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
VUID-VkMemoryBarrier2-srcAccessMask-04860YTestBarrierAccessVideoDecodeexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_encode_queue)If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkMemoryBarrier2-srcAccessMask-04861YTestBarrierAccessVideoDecodeexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_video_encode_queue)If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
VUID-VkMemoryBarrier2-srcAccessMask-04994YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)If pname:srcAccessMask includes VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, pname:srcStageMask must include VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkMemoryBarrier2-srcAccessMask-06254NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname: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-06255NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+!(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:srcStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-srcAccessMask-06256NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If the rayQuery feature is not enabled and pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname: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-06257NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_query)+!(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)If the rayQuery feature is not enabled and pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:srcStageMask must not include any of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2-srcAccessMask-07272NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_ray_tracing_maintenance1)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT or VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
VUID-VkMemoryBarrier2-srcAccessMask-07454NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_READ_BIT, pname: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-07455NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_optical_flow)If pname:srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkMemoryBarrier2-srcAccessMask-07456NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_optical_flow)If pname:srcAccessMask includes VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
VUID-VkMemoryBarrier2-srcAccessMask-07457NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)If pname:srcAccessMask includes VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
VUID-VkMemoryBarrier2-srcAccessMask-07458NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_opacity_micromap)If pname:srcAccessMask includes VK_ACCESS_2_MICROMAP_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT or VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
VUID-VkMemoryBarrier2-srcAccessMask-08118YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_descriptor_buffer)If pname:srcAccessMask includes VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT, pname: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-parameterYNoneimplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)srcAccessMask must be a valid combination of VkAccessFlagBits2 values
VUID-VkMemoryBarrier2-srcStageMask-03929YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If the geometryShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-VkMemoryBarrier2-srcStageMask-03930YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If the tessellationShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkMemoryBarrier2-srcStageMask-03931YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkMemoryBarrier2-srcStageMask-03932YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkMemoryBarrier2-srcStageMask-03933YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkMemoryBarrier2-srcStageMask-03934YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-VkMemoryBarrier2-srcStageMask-03935YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-VkMemoryBarrier2-srcStageMask-04956YNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV
VUID-VkMemoryBarrier2-srcStageMask-04957NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)If the subpassShading feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
VUID-VkMemoryBarrier2-srcStageMask-04995NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)If the invocationMask feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkMemoryBarrier2-srcStageMask-07316NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkMemoryBarrier2-srcStageMask-07317NNoneexplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkMemoryBarrier2-srcStageMask-parameterYNoneimplicitVkMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)srcStageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-VkMemoryDedicatedAllocateInfo-buffer-01435YDedicatedAllocationexplicitVkMemoryDedicatedAllocateInfo(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+!(VK_ANDROID_external_memory_android_hardware_buffer)If buffer is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the buffer
VUID-VkMemoryDedicatedAllocateInfo-buffer-01436YDedicatedAllocationexplicitVkMemoryDedicatedAllocateInfo(VK_VERSION_1_1,VK_KHR_dedicated_allocation)If 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-01877NNoneexplicitVkMemoryDedicatedAllocateInfo(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_KHR_external_memory_win32)If 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-01879NNoneexplicitVkMemoryDedicatedAllocateInfo(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_KHR_external_memory_fd)If 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-02965YDedicatedAllocationexplicitVkMemoryDedicatedAllocateInfo(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_ANDROID_external_memory_android_hardware_buffer)If buffer is not VK_NULL_HANDLE and the memory is not an imported Android Hardware Buffer, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the buffer
VUID-VkMemoryDedicatedAllocateInfo-buffer-04752NNoneexplicitVkMemoryDedicatedAllocateInfo(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_FUCHSIA_external_memory)If 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-parameterNNoneimplicitVkMemoryDedicatedAllocateInfo(VK_VERSION_1_1,VK_KHR_dedicated_allocation)If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle
VUID-VkMemoryDedicatedAllocateInfo-commonparentNNoneimplicitVkMemoryDedicatedAllocateInfo(VK_VERSION_1_1,VK_KHR_dedicated_allocation)Both 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-01432YDedicatedAllocationexplicitVkMemoryDedicatedAllocateInfo(VK_VERSION_1_1,VK_KHR_dedicated_allocation)At least one of image and buffer must be VK_NULL_HANDLE
VUID-VkMemoryDedicatedAllocateInfo-image-01433YDedicatedAllocationexplicitVkMemoryDedicatedAllocateInfo(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+!(VK_ANDROID_external_memory_android_hardware_buffer)If image is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the image
VUID-VkMemoryDedicatedAllocateInfo-image-01434YDedicatedAllocationexplicitVkMemoryDedicatedAllocateInfo(VK_VERSION_1_1,VK_KHR_dedicated_allocation)If 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-01797YDedicatedAllocationexplicitVkMemoryDedicatedAllocateInfo(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_KHR_sampler_ycbcr_conversion)If 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-01876NNoneexplicitVkMemoryDedicatedAllocateInfo(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_KHR_external_memory_win32)If 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-01878NNoneexplicitVkMemoryDedicatedAllocateInfo(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_KHR_external_memory_fd)If 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-02964YDedicatedAllocationexplicitVkMemoryDedicatedAllocateInfo(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_ANDROID_external_memory_android_hardware_buffer)If image is not VK_NULL_HANDLE and the memory is not an imported Android Hardware Buffer, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the image
VUID-VkMemoryDedicatedAllocateInfo-image-04751NNoneexplicitVkMemoryDedicatedAllocateInfo(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_FUCHSIA_external_memory)If 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-parameterNNoneimplicitVkMemoryDedicatedAllocateInfo(VK_VERSION_1_1,VK_KHR_dedicated_allocation)If image is not VK_NULL_HANDLE, image must be a valid VkImage handle
VUID-VkMemoryDedicatedAllocateInfo-sType-sTypeYNoneimplicitVkMemoryDedicatedAllocateInfo(VK_VERSION_1_1,VK_KHR_dedicated_allocation)sType must be VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO
VUID-VkMemoryDedicatedRequirements-sType-sTypeYNoneimplicitVkMemoryDedicatedRequirements(VK_VERSION_1_1,VK_KHR_dedicated_allocation)sType must be VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS
VUID-VkMemoryFdPropertiesKHR-pNext-pNextYNoneimplicitVkMemoryFdPropertiesKHR(VK_KHR_external_memory_fd)pNext must be NULL
VUID-VkMemoryFdPropertiesKHR-sType-sTypeYNoneimplicitVkMemoryFdPropertiesKHR(VK_KHR_external_memory_fd)sType must be VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR
VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-handleTypes-01882YAndroidHardwareBufferExportBufferHandleTypeexplicitVkMemoryGetAndroidHardwareBufferInfoANDROID(VK_ANDROID_external_memory_android_hardware_buffer)VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created
VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-memory-parameterYNoneimplicitVkMemoryGetAndroidHardwareBufferInfoANDROID(VK_ANDROID_external_memory_android_hardware_buffer)memory must be a valid VkDeviceMemory handle
VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-pNext-01883YAndroidHardwareBufferExportImageNonBoundexplicitVkMemoryGetAndroidHardwareBufferInfoANDROID(VK_ANDROID_external_memory_android_hardware_buffer)If 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-pNextYNoneimplicitVkMemoryGetAndroidHardwareBufferInfoANDROID(VK_ANDROID_external_memory_android_hardware_buffer)pNext must be NULL
VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-sType-sTypeYNoneimplicitVkMemoryGetAndroidHardwareBufferInfoANDROID(VK_ANDROID_external_memory_android_hardware_buffer)sType must be VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID
VUID-VkMemoryGetFdInfoKHR-handleType-00671NNoneexplicitVkMemoryGetFdInfoKHR(VK_KHR_external_memory_fd)handleType must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created
VUID-VkMemoryGetFdInfoKHR-handleType-00672NNoneexplicitVkMemoryGetFdInfoKHR(VK_KHR_external_memory_fd)handleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT
VUID-VkMemoryGetFdInfoKHR-handleType-parameterYNoneimplicitVkMemoryGetFdInfoKHR(VK_KHR_external_memory_fd)handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkMemoryGetFdInfoKHR-memory-parameterYNoneimplicitVkMemoryGetFdInfoKHR(VK_KHR_external_memory_fd)memory must be a valid VkDeviceMemory handle
VUID-VkMemoryGetFdInfoKHR-pNext-pNextYNoneimplicitVkMemoryGetFdInfoKHR(VK_KHR_external_memory_fd)pNext must be NULL
VUID-VkMemoryGetFdInfoKHR-sType-sTypeYNoneimplicitVkMemoryGetFdInfoKHR(VK_KHR_external_memory_fd)sType must be VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR
VUID-VkMemoryGetRemoteAddressInfoNV-handleType-04966NNoneexplicitVkMemoryGetRemoteAddressInfoNV(VK_NV_external_memory_rdma)handleType must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created
VUID-VkMemoryGetRemoteAddressInfoNV-handleType-parameterYNoneimplicitVkMemoryGetRemoteAddressInfoNV(VK_NV_external_memory_rdma)handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkMemoryGetRemoteAddressInfoNV-memory-parameterYNoneimplicitVkMemoryGetRemoteAddressInfoNV(VK_NV_external_memory_rdma)memory must be a valid VkDeviceMemory handle
VUID-VkMemoryGetRemoteAddressInfoNV-pNext-pNextYNoneimplicitVkMemoryGetRemoteAddressInfoNV(VK_NV_external_memory_rdma)pNext must be NULL
VUID-VkMemoryGetRemoteAddressInfoNV-sType-sTypeYNoneimplicitVkMemoryGetRemoteAddressInfoNV(VK_NV_external_memory_rdma)sType must be VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV
VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00662NNoneexplicitVkMemoryGetWin32HandleInfoKHR(VK_KHR_external_memory_win32)handleType must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created
VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00663NNoneexplicitVkMemoryGetWin32HandleInfoKHR(VK_KHR_external_memory_win32)If 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-00664NNoneexplicitVkMemoryGetWin32HandleInfoKHR(VK_KHR_external_memory_win32)handleType must be defined as an NT handle or a global share handle
VUID-VkMemoryGetWin32HandleInfoKHR-handleType-parameterYNoneimplicitVkMemoryGetWin32HandleInfoKHR(VK_KHR_external_memory_win32)handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkMemoryGetWin32HandleInfoKHR-memory-parameterYNoneimplicitVkMemoryGetWin32HandleInfoKHR(VK_KHR_external_memory_win32)memory must be a valid VkDeviceMemory handle
VUID-VkMemoryGetWin32HandleInfoKHR-pNext-pNextYNoneimplicitVkMemoryGetWin32HandleInfoKHR(VK_KHR_external_memory_win32)pNext must be NULL
VUID-VkMemoryGetWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkMemoryGetWin32HandleInfoKHR(VK_KHR_external_memory_win32)sType must be VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR
VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-04775NNoneexplicitVkMemoryGetZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_memory)handleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA
VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-04776NNoneexplicitVkMemoryGetZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_memory)handleType must have been included in the handleTypes field of the VkExportMemoryAllocateInfo structure when the external memory was allocated
VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-parameterYNoneimplicitVkMemoryGetZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_memory)handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkMemoryGetZirconHandleInfoFUCHSIA-memory-parameterYNoneimplicitVkMemoryGetZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_memory)memory must be a valid VkDeviceMemory handle
VUID-VkMemoryGetZirconHandleInfoFUCHSIA-pNext-pNextYNoneimplicitVkMemoryGetZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_memory)pNext must be NULL
VUID-VkMemoryGetZirconHandleInfoFUCHSIA-sType-sTypeYNoneimplicitVkMemoryGetZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_memory)sType must be VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA
VUID-VkMemoryHostPointerPropertiesEXT-pNext-pNextYNoneimplicitVkMemoryHostPointerPropertiesEXT(VK_EXT_external_memory_host)pNext must be NULL
VUID-VkMemoryHostPointerPropertiesEXT-sType-sTypeYNoneimplicitVkMemoryHostPointerPropertiesEXT(VK_EXT_external_memory_host)sType must be VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT
VUID-VkMemoryOpaqueCaptureAddressAllocateInfo-sType-sTypeYNoneimplicitVkMemoryOpaqueCaptureAddressAllocateInfo(VK_VERSION_1_2,VK_KHR_buffer_device_address)sType must be VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO
VUID-VkMemoryPriorityAllocateInfoEXT-priority-02602YNoneexplicitVkMemoryPriorityAllocateInfoEXT(VK_EXT_memory_priority)priority must be between 0 and 1, inclusive
VUID-VkMemoryPriorityAllocateInfoEXT-sType-sTypeYNoneimplicitVkMemoryPriorityAllocateInfoEXT(VK_EXT_memory_priority)sType must be VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT
VUID-VkMemoryRequirements2-pNext-pNextYNoneimplicitVkMemoryRequirements2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)pNext must be NULL or a pointer to a valid instance of VkMemoryDedicatedRequirements
VUID-VkMemoryRequirements2-sType-sTypeYNoneimplicitVkMemoryRequirements2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)sType must be VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2
VUID-VkMemoryRequirements2-sType-uniqueYNoneimplicitVkMemoryRequirements2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)The sType value of each struct in the pNext chain must be unique
VUID-VkMemoryWin32HandlePropertiesKHR-pNext-pNextYNoneimplicitVkMemoryWin32HandlePropertiesKHR(VK_KHR_external_memory_win32)pNext must be NULL
VUID-VkMemoryWin32HandlePropertiesKHR-sType-sTypeYNoneimplicitVkMemoryWin32HandlePropertiesKHR(VK_KHR_external_memory_win32)sType must be VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR
VUID-VkMemoryZirconHandlePropertiesFUCHSIA-pNext-pNextYNoneimplicitVkMemoryZirconHandlePropertiesFUCHSIA(VK_FUCHSIA_external_memory)pNext must be NULL
VUID-VkMemoryZirconHandlePropertiesFUCHSIA-sType-sTypeYNoneimplicitVkMemoryZirconHandlePropertiesFUCHSIA(VK_FUCHSIA_external_memory)sType must be VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA
VUID-VkMetalSurfaceCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkMetalSurfaceCreateInfoEXT(VK_KHR_surface)+(VK_EXT_metal_surface)flags must be 0
VUID-VkMetalSurfaceCreateInfoEXT-pNext-pNextYNoneimplicitVkMetalSurfaceCreateInfoEXT(VK_KHR_surface)+(VK_EXT_metal_surface)pNext must be NULL
VUID-VkMetalSurfaceCreateInfoEXT-sType-sTypeYNoneimplicitVkMetalSurfaceCreateInfoEXT(VK_KHR_surface)+(VK_EXT_metal_surface)sType must be VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT
VUID-VkMicromapBuildInfoEXT-flags-parameterYNoneimplicitVkMicromapBuildInfoEXT(VK_EXT_opacity_micromap)flags must be a valid combination of VkBuildMicromapFlagBitsEXT values
VUID-VkMicromapBuildInfoEXT-pNext-pNextYNoneimplicitVkMicromapBuildInfoEXT(VK_EXT_opacity_micromap)pNext must be NULL
VUID-VkMicromapBuildInfoEXT-pUsageCounts-07516NNoneexplicitVkMicromapBuildInfoEXT(VK_EXT_opacity_micromap)Only one of pUsageCounts or ppUsageCounts can be a valid pointer, the other must be NULL
VUID-VkMicromapBuildInfoEXT-pUsageCounts-parameterNNoneimplicitVkMicromapBuildInfoEXT(VK_EXT_opacity_micromap)If 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-parameterNNoneimplicitVkMicromapBuildInfoEXT(VK_EXT_opacity_micromap)If 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-sTypeYNoneimplicitVkMicromapBuildInfoEXT(VK_EXT_opacity_micromap)sType must be VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT
VUID-VkMicromapBuildInfoEXT-type-07517NNoneexplicitVkMicromapBuildInfoEXT(VK_EXT_opacity_micromap)If type is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT the format member of VkMicromapUsageEXT must be a valid value from VkOpacityMicromapFormatEXT
VUID-VkMicromapBuildInfoEXT-type-07518NNoneexplicitVkMicromapBuildInfoEXT(VK_EXT_opacity_micromap)If type is VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT the format member of VkMicromapTriangleEXT must be a valid value from VkOpacityMicromapFormatEXT
VUID-VkMicromapBuildInfoEXT-type-parameterYNoneimplicitVkMicromapBuildInfoEXT(VK_EXT_opacity_micromap)type must be a valid VkMicromapTypeEXT value
VUID-VkMicromapBuildSizesInfoEXT-pNext-pNextNNoneimplicitVkMicromapBuildSizesInfoEXT(VK_EXT_opacity_micromap)pNext must be NULL
VUID-VkMicromapBuildSizesInfoEXT-sType-sTypeYNoneimplicitVkMicromapBuildSizesInfoEXT(VK_EXT_opacity_micromap)sType must be VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT
VUID-VkMicromapCreateInfoEXT-buffer-07435NNoneexplicitVkMicromapCreateInfoEXT(VK_EXT_opacity_micromap)buffer must have been created with a usage value containing VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT
VUID-VkMicromapCreateInfoEXT-buffer-07436NNoneexplicitVkMicromapCreateInfoEXT(VK_EXT_opacity_micromap)buffer must not have been created with VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkMicromapCreateInfoEXT-buffer-parameterYNoneimplicitVkMicromapCreateInfoEXT(VK_EXT_opacity_micromap)buffer must be a valid VkBuffer handle
VUID-VkMicromapCreateInfoEXT-createFlags-07434NNoneexplicitVkMicromapCreateInfoEXT(VK_EXT_opacity_micromap)If createFlags includes VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapCaptureReplay must be VK_TRUE
VUID-VkMicromapCreateInfoEXT-createFlags-parameterYNoneimplicitVkMicromapCreateInfoEXT(VK_EXT_opacity_micromap)createFlags must be a valid combination of VkMicromapCreateFlagBitsEXT values
VUID-VkMicromapCreateInfoEXT-deviceAddress-07433NNoneexplicitVkMicromapCreateInfoEXT(VK_EXT_opacity_micromap)If deviceAddress is not zero, createFlags must include VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT
VUID-VkMicromapCreateInfoEXT-offset-07437NNoneexplicitVkMicromapCreateInfoEXT(VK_EXT_opacity_micromap)The sum of offset and size must be less than the size of buffer
VUID-VkMicromapCreateInfoEXT-offset-07438NNoneexplicitVkMicromapCreateInfoEXT(VK_EXT_opacity_micromap)offset must be a multiple of 256 bytes
VUID-VkMicromapCreateInfoEXT-pNext-pNextYNoneimplicitVkMicromapCreateInfoEXT(VK_EXT_opacity_micromap)pNext must be NULL
VUID-VkMicromapCreateInfoEXT-sType-sTypeYNoneimplicitVkMicromapCreateInfoEXT(VK_EXT_opacity_micromap)sType must be VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT
VUID-VkMicromapCreateInfoEXT-type-parameterYNoneimplicitVkMicromapCreateInfoEXT(VK_EXT_opacity_micromap)type must be a valid VkMicromapTypeEXT value
VUID-VkMicromapTriangleEXT-format-07522NNoneexplicitVkMicromapTriangleEXT(VK_EXT_opacity_micromap)If 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-07523NNoneexplicitVkMicromapTriangleEXT(VK_EXT_opacity_micromap)If 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 maxOpacity2StateSubdivisionLevel of VkPhysicalDeviceOpacityMicromapPropertiesEXT
VUID-VkMicromapTriangleEXT-format-07524NNoneexplicitVkMicromapTriangleEXT(VK_EXT_opacity_micromap)If 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 maxOpacity4StateSubdivisionLevel of VkPhysicalDeviceOpacityMicromapPropertiesEXT
VUID-VkMicromapUsageEXT-format-07519NNoneexplicitVkMicromapUsageEXT(VK_EXT_opacity_micromap)If 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-07520NNoneexplicitVkMicromapUsageEXT(VK_EXT_opacity_micromap)If 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 maxOpacity2StateSubdivisionLevel of VkPhysicalDeviceOpacityMicromapPropertiesEXT
VUID-VkMicromapUsageEXT-format-07521NNoneexplicitVkMicromapUsageEXT(VK_EXT_opacity_micromap)If 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 maxOpacity4StateSubdivisionLevel of VkPhysicalDeviceOpacityMicromapPropertiesEXT
VUID-VkMicromapVersionInfoEXT-pNext-pNextYNoneimplicitVkMicromapVersionInfoEXT(VK_EXT_opacity_micromap)pNext must be NULL
VUID-VkMicromapVersionInfoEXT-pVersionData-parameterYNoneimplicitVkMicromapVersionInfoEXT(VK_EXT_opacity_micromap)pVersionData must be a valid pointer to an array of \(2 \times \mathtt{VK\_UUID\_SIZE}\) uint8_t values
VUID-VkMicromapVersionInfoEXT-sType-sTypeYNoneimplicitVkMicromapVersionInfoEXT(VK_EXT_opacity_micromap)sType must be VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT
VUID-VkMultisamplePropertiesEXT-pNext-pNextYNoneimplicitVkMultisamplePropertiesEXT(VK_EXT_sample_locations)pNext must be NULL
VUID-VkMultisamplePropertiesEXT-sType-sTypeYNoneimplicitVkMultisamplePropertiesEXT(VK_EXT_sample_locations)sType must be VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT
VUID-VkMultisampledRenderToSingleSampledInfoEXT-pNext-06880YMultisampledRenderToSingleSampledexplicitVkMultisampledRenderToSingleSampledInfoEXT(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_multisampled_render_to_single_sampled)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06878YMultisampledRenderToSingleSampledexplicitVkMultisampledRenderToSingleSampledInfoEXT(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_multisampled_render_to_single_sampled)The value of rasterizationSamples must not be VK_SAMPLE_COUNT_1_BIT
VUID-VkMultisampledRenderToSingleSampledInfoEXT-rasterizationSamples-parameterYNoneimplicitVkMultisampledRenderToSingleSampledInfoEXT(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_multisampled_render_to_single_sampled)rasterizationSamples must be a valid VkSampleCountFlagBits value
VUID-VkMultisampledRenderToSingleSampledInfoEXT-sType-sTypeYNoneimplicitVkMultisampledRenderToSingleSampledInfoEXT(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_multisampled_render_to_single_sampled)sType must be VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT
VUID-VkMultiviewPerViewAttributesInfoNVX-sType-sTypeYNoneimplicitVkMultiviewPerViewAttributesInfoNVX(VK_NVX_multiview_per_view_attributes)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)sType must be VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX
VUID-VkMutableDescriptorTypeCreateInfoEXT-pMutableDescriptorTypeLists-parameterYNoneimplicitVkMutableDescriptorTypeCreateInfoEXT(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If mutableDescriptorTypeListCount is not 0, pMutableDescriptorTypeLists must be a valid pointer to an array of mutableDescriptorTypeListCount valid VkMutableDescriptorTypeListEXT structures
VUID-VkMutableDescriptorTypeCreateInfoEXT-sType-sTypeYNoneimplicitVkMutableDescriptorTypeCreateInfoEXT(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)sType must be VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT
VUID-VkMutableDescriptorTypeListEXT-descriptorTypeCount-04597YMutableDescriptorsexplicitVkMutableDescriptorTypeListEXT(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)descriptorTypeCount must not be 0 if the corresponding binding is of VK_DESCRIPTOR_TYPE_MUTABLE_EXT
VUID-VkMutableDescriptorTypeListEXT-descriptorTypeCount-04599YMutableDescriptorsexplicitVkMutableDescriptorTypeListEXT(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)descriptorTypeCount must be 0 if the corresponding binding is not of VK_DESCRIPTOR_TYPE_MUTABLE_EXT
VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04598YMutableDescriptorsexplicitVkMutableDescriptorTypeListEXT(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)pDescriptorTypes 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-04600YMutableDescriptorsexplicitVkMutableDescriptorTypeListEXT(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)pDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_MUTABLE_EXT
VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04601YMutableDescriptorsexplicitVkMutableDescriptorTypeListEXT(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)pDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04602YMutableDescriptorsexplicitVkMutableDescriptorTypeListEXT(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)pDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-04603YMutableDescriptorsexplicitVkMutableDescriptorTypeListEXT(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)pDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-parameterNNoneimplicitVkMutableDescriptorTypeListEXT(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If descriptorTypeCount is not 0, pDescriptorTypes must be a valid pointer to an array of descriptorTypeCount valid VkDescriptorType values
VUID-VkOpaqueCaptureDescriptorDataCreateInfoEXT-opaqueCaptureDescriptorData-parameterYNoneimplicitVkOpaqueCaptureDescriptorDataCreateInfoEXT(VK_EXT_descriptor_buffer)opaqueCaptureDescriptorData must be a pointer value
VUID-VkOpaqueCaptureDescriptorDataCreateInfoEXT-sType-sTypeYNoneimplicitVkOpaqueCaptureDescriptorDataCreateInfoEXT(VK_EXT_descriptor_buffer)sType must be VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT
VUID-VkOpticalFlowExecuteInfoNV-flags-parameterYNoneimplicitVkOpticalFlowExecuteInfoNV(VK_NV_optical_flow)flags must be a valid combination of VkOpticalFlowExecuteFlagBitsNV values
VUID-VkOpticalFlowExecuteInfoNV-pNext-pNextYNoneimplicitVkOpticalFlowExecuteInfoNV(VK_NV_optical_flow)pNext must be NULL
VUID-VkOpticalFlowExecuteInfoNV-pRegions-parameterYNoneimplicitVkOpticalFlowExecuteInfoNV(VK_NV_optical_flow)If regionCount is not 0, pRegions must be a valid pointer to an array of regionCount VkRect2D structures
VUID-VkOpticalFlowExecuteInfoNV-regionCount-07593NNoneexplicitVkOpticalFlowExecuteInfoNV(VK_NV_optical_flow)regionCount 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-sTypeYNoneimplicitVkOpticalFlowExecuteInfoNV(VK_NV_optical_flow)sType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV
VUID-VkOpticalFlowImageFormatInfoNV-sType-sTypeYNoneimplicitVkOpticalFlowImageFormatInfoNV(VK_NV_optical_flow)sType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV
VUID-VkOpticalFlowImageFormatInfoNV-usage-parameterYNoneimplicitVkOpticalFlowImageFormatInfoNV(VK_NV_optical_flow)usage must be a valid combination of VkOpticalFlowUsageFlagBitsNV values
VUID-VkOpticalFlowImageFormatInfoNV-usage-requiredbitmaskYNoneimplicitVkOpticalFlowImageFormatInfoNV(VK_NV_optical_flow)usage must not be 0
VUID-VkOpticalFlowImageFormatPropertiesNV-pNext-pNextYNoneimplicitVkOpticalFlowImageFormatPropertiesNV(VK_NV_optical_flow)pNext must be NULL
VUID-VkOpticalFlowImageFormatPropertiesNV-sType-sTypeYNoneimplicitVkOpticalFlowImageFormatPropertiesNV(VK_NV_optical_flow)sType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV
VUID-VkOpticalFlowSessionCreateInfoNV-costFormat-07585NNoneexplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)costFormat 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-parameterYNoneimplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)If costFormat is not 0, costFormat must be a valid VkFormat value
VUID-VkOpticalFlowSessionCreateInfoNV-flags-07588NNoneexplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::hintSupported is VK_FALSE
VUID-VkOpticalFlowSessionCreateInfoNV-flags-07589NNoneexplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::costSupported is VK_FALSE
VUID-VkOpticalFlowSessionCreateInfoNV-flags-07590NNoneexplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::globalFlowSupported is VK_FALSE
VUID-VkOpticalFlowSessionCreateInfoNV-flags-07591NNoneexplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::maxNumRegionsOfInterest is 0
VUID-VkOpticalFlowSessionCreateInfoNV-flags-07592NNoneexplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV must not be set in flags if VkPhysicalDeviceOpticalFlowPropertiesNV::bidirectionalFlowSupported is VK_FALSE
VUID-VkOpticalFlowSessionCreateInfoNV-flags-parameterYNoneimplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)flags must be a valid combination of VkOpticalFlowSessionCreateFlagBitsNV values
VUID-VkOpticalFlowSessionCreateInfoNV-flowVectorFormat-07584NNoneexplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)flowVectorFormat must be one of the formats returned by vkGetPhysicalDeviceOpticalFlowImageFormatsNV for VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV
VUID-VkOpticalFlowSessionCreateInfoNV-flowVectorFormat-parameterYNoneimplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)flowVectorFormat must be a valid VkFormat value
VUID-VkOpticalFlowSessionCreateInfoNV-height-07582NNoneexplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)height must be greater than or equal to VkPhysicalDeviceOpticalFlowPropertiesNV::minHeight and less than or equal to VkPhysicalDeviceOpticalFlowPropertiesNV::maxHeight
VUID-VkOpticalFlowSessionCreateInfoNV-hintGridSize-07587NNoneexplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)hintGridSize 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-parameterYNoneimplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)hintGridSize must be a valid combination of VkOpticalFlowGridSizeFlagBitsNV values
VUID-VkOpticalFlowSessionCreateInfoNV-imageFormat-07583NNoneexplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)imageFormat must be one of the formats returned by vkGetPhysicalDeviceOpticalFlowImageFormatsNV for VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV
VUID-VkOpticalFlowSessionCreateInfoNV-imageFormat-parameterYNoneimplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)imageFormat must be a valid VkFormat value
VUID-VkOpticalFlowSessionCreateInfoNV-outputGridSize-07586NNoneexplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)outputGridSize must be exactly one of the bits reported in VkPhysicalDeviceOpticalFlowPropertiesNV::supportedOutputGridSizes
VUID-VkOpticalFlowSessionCreateInfoNV-outputGridSize-parameterYNoneimplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)outputGridSize must be a valid combination of VkOpticalFlowGridSizeFlagBitsNV values
VUID-VkOpticalFlowSessionCreateInfoNV-outputGridSize-requiredbitmaskYNoneimplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)outputGridSize must not be 0
VUID-VkOpticalFlowSessionCreateInfoNV-pNext-pNextYNoneimplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)pNext must be NULL or a pointer to a valid instance of VkOpticalFlowSessionCreatePrivateDataInfoNV
VUID-VkOpticalFlowSessionCreateInfoNV-performanceLevel-parameterYNoneimplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)If performanceLevel is not 0, performanceLevel must be a valid VkOpticalFlowPerformanceLevelNV value
VUID-VkOpticalFlowSessionCreateInfoNV-sType-sTypeYNoneimplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)sType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV
VUID-VkOpticalFlowSessionCreateInfoNV-sType-uniqueYNoneimplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)The sType value of each struct in the pNext chain must be unique
VUID-VkOpticalFlowSessionCreateInfoNV-width-07581NNoneexplicitVkOpticalFlowSessionCreateInfoNV(VK_NV_optical_flow)width must be greater than or equal to VkPhysicalDeviceOpticalFlowPropertiesNV::minWidth and less than or equal to VkPhysicalDeviceOpticalFlowPropertiesNV::maxWidth
VUID-VkOpticalFlowSessionCreatePrivateDataInfoNV-pPrivateData-parameterYNoneimplicitVkOpticalFlowSessionCreatePrivateDataInfoNV(VK_NV_optical_flow)pPrivateData must be a pointer value
VUID-VkOpticalFlowSessionCreatePrivateDataInfoNV-sType-sTypeYNoneimplicitVkOpticalFlowSessionCreatePrivateDataInfoNV(VK_NV_optical_flow)sType must be VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV
VUID-VkPerformanceConfigurationAcquireInfoINTEL-pNext-pNextYNoneimplicitVkPerformanceConfigurationAcquireInfoINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)pNext must be NULL
VUID-VkPerformanceConfigurationAcquireInfoINTEL-sType-sTypeYNoneimplicitVkPerformanceConfigurationAcquireInfoINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)sType must be VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
VUID-VkPerformanceConfigurationAcquireInfoINTEL-type-parameterYNoneimplicitVkPerformanceConfigurationAcquireInfoINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)type must be a valid VkPerformanceConfigurationTypeINTEL value
VUID-VkPerformanceCounterDescriptionKHR-pNext-pNextYNoneimplicitVkPerformanceCounterDescriptionKHR(VK_KHR_performance_query)pNext must be NULL
VUID-VkPerformanceCounterDescriptionKHR-sType-sTypeYNoneimplicitVkPerformanceCounterDescriptionKHR(VK_KHR_performance_query)sType must be VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR
VUID-VkPerformanceCounterKHR-pNext-pNextYNoneimplicitVkPerformanceCounterKHR(VK_KHR_performance_query)pNext must be NULL
VUID-VkPerformanceCounterKHR-sType-sTypeYNoneimplicitVkPerformanceCounterKHR(VK_KHR_performance_query)sType must be VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR
VUID-VkPerformanceMarkerInfoINTEL-pNext-pNextYNoneimplicitVkPerformanceMarkerInfoINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)pNext must be NULL
VUID-VkPerformanceMarkerInfoINTEL-sType-sTypeYNoneimplicitVkPerformanceMarkerInfoINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)sType must be VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL
VUID-VkPerformanceOverrideInfoINTEL-pNext-pNextYNoneimplicitVkPerformanceOverrideInfoINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)pNext must be NULL
VUID-VkPerformanceOverrideInfoINTEL-sType-sTypeYNoneimplicitVkPerformanceOverrideInfoINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)sType must be VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL
VUID-VkPerformanceOverrideInfoINTEL-type-parameterYNoneimplicitVkPerformanceOverrideInfoINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)type must be a valid VkPerformanceOverrideTypeINTEL value
VUID-VkPerformanceQuerySubmitInfoKHR-counterPassIndex-03221YQueryPerformanceIncompletePassesexplicitVkPerformanceQuerySubmitInfoKHR(VK_KHR_performance_query)counterPassIndex 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-sTypeYNoneimplicitVkPerformanceQuerySubmitInfoKHR(VK_KHR_performance_query)sType must be VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR
VUID-VkPerformanceStreamMarkerInfoINTEL-marker-02735NNoneexplicitVkPerformanceStreamMarkerInfoINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)The 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-pNextYNoneimplicitVkPerformanceStreamMarkerInfoINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)pNext must be NULL
VUID-VkPerformanceStreamMarkerInfoINTEL-sType-sTypeYNoneimplicitVkPerformanceStreamMarkerInfoINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)sType must be VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL
VUID-VkPerformanceValueINTEL-type-parameterNNoneimplicitVkPerformanceValueINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)type must be a valid VkPerformanceValueTypeINTEL value
VUID-VkPerformanceValueINTEL-valueString-parameterNNoneimplicitVkPerformanceValueINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)If type is VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL, the valueString member of data must be a null-terminated UTF-8 string
VUID-VkPhysicalDevice16BitStorageFeatures-sType-sTypeYNoneimplicitVkPhysicalDevice16BitStorageFeatures(VK_VERSION_1_1,VK_KHR_16bit_storage)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES
VUID-VkPhysicalDevice4444FormatsFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevice4444FormatsFeaturesEXT(VK_EXT_4444_formats)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT
VUID-VkPhysicalDevice8BitStorageFeatures-sType-sTypeYNoneimplicitVkPhysicalDevice8BitStorageFeatures(VK_VERSION_1_2,VK_KHR_8bit_storage)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES
VUID-VkPhysicalDeviceASTCDecodeFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceASTCDecodeFeaturesEXT(VK_EXT_astc_decode_mode)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT
VUID-VkPhysicalDeviceAccelerationStructureFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceAccelerationStructureFeaturesKHR(VK_KHR_acceleration_structure)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR
VUID-VkPhysicalDeviceAccelerationStructurePropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceAccelerationStructurePropertiesKHR(VK_KHR_acceleration_structure)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR
VUID-VkPhysicalDeviceAddressBindingReportFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceAddressBindingReportFeaturesEXT(VK_EXT_device_address_binding_report)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT
VUID-VkPhysicalDeviceAmigoProfilingFeaturesSEC-sType-sTypeYNoneimplicitVkPhysicalDeviceAmigoProfilingFeaturesSEC(VK_SEC_amigo_profiling)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC
VUID-VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT(VK_EXT_attachment_feedback_loop_layout)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT
VUID-VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(VK_EXT_blend_operation_advanced)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT
VUID-VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(VK_EXT_blend_operation_advanced)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT
VUID-VkPhysicalDeviceBorderColorSwizzleFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceBorderColorSwizzleFeaturesEXT(VK_EXT_border_color_swizzle)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT
VUID-VkPhysicalDeviceBufferDeviceAddressFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceBufferDeviceAddressFeatures(VK_VERSION_1_2,VK_KHR_buffer_device_address)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES
VUID-VkPhysicalDeviceBufferDeviceAddressFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceBufferDeviceAddressFeaturesEXT(VK_EXT_buffer_device_address)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT
VUID-VkPhysicalDeviceCoherentMemoryFeaturesAMD-sType-sTypeYNoneimplicitVkPhysicalDeviceCoherentMemoryFeaturesAMD(VK_AMD_device_coherent_memory)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD
VUID-VkPhysicalDeviceColorWriteEnableFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceColorWriteEnableFeaturesEXT(VK_EXT_color_write_enable)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT
VUID-VkPhysicalDeviceComputeShaderDerivativesFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceComputeShaderDerivativesFeaturesNV(VK_NV_compute_shader_derivatives)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV
VUID-VkPhysicalDeviceConditionalRenderingFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceConditionalRenderingFeaturesEXT(VK_EXT_conditional_rendering)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT
VUID-VkPhysicalDeviceConservativeRasterizationPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceConservativeRasterizationPropertiesEXT(VK_EXT_conservative_rasterization)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT
VUID-VkPhysicalDeviceCooperativeMatrixFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCooperativeMatrixFeaturesNV(VK_NV_cooperative_matrix)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV
VUID-VkPhysicalDeviceCooperativeMatrixPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCooperativeMatrixPropertiesNV(VK_NV_cooperative_matrix)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV
VUID-VkPhysicalDeviceCopyMemoryIndirectFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCopyMemoryIndirectFeaturesNV(VK_NV_copy_memory_indirect)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV
VUID-VkPhysicalDeviceCopyMemoryIndirectPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCopyMemoryIndirectPropertiesNV(VK_NV_copy_memory_indirect)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV
VUID-VkPhysicalDeviceCornerSampledImageFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCornerSampledImageFeaturesNV(VK_NV_corner_sampled_image)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV
VUID-VkPhysicalDeviceCoverageReductionModeFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceCoverageReductionModeFeaturesNV(VK_NV_coverage_reduction_mode)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV
VUID-VkPhysicalDeviceCustomBorderColorFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceCustomBorderColorFeaturesEXT(VK_EXT_custom_border_color)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT
VUID-VkPhysicalDeviceCustomBorderColorPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceCustomBorderColorPropertiesEXT(VK_EXT_custom_border_color)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT
VUID-VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(VK_NV_dedicated_allocation_image_aliasing)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV
VUID-VkPhysicalDeviceDepthClampZeroOneFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDepthClampZeroOneFeaturesEXT(VK_EXT_depth_clamp_zero_one)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT
VUID-VkPhysicalDeviceDepthClipControlFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDepthClipControlFeaturesEXT(VK_EXT_depth_clip_control)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT
VUID-VkPhysicalDeviceDepthClipEnableFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDepthClipEnableFeaturesEXT(VK_EXT_depth_clip_enable)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT
VUID-VkPhysicalDeviceDepthStencilResolveProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceDepthStencilResolveProperties(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES
VUID-VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT(VK_EXT_descriptor_buffer)+(VK_EXT_fragment_density_map)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT
VUID-VkPhysicalDeviceDescriptorBufferFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDescriptorBufferFeaturesEXT(VK_EXT_descriptor_buffer)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT
VUID-VkPhysicalDeviceDescriptorBufferPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDescriptorBufferPropertiesEXT(VK_EXT_descriptor_buffer)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT
VUID-VkPhysicalDeviceDescriptorIndexingFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceDescriptorIndexingFeatures(VK_VERSION_1_2,VK_EXT_descriptor_indexing)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES
VUID-VkPhysicalDeviceDescriptorIndexingProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceDescriptorIndexingProperties(VK_VERSION_1_2,VK_EXT_descriptor_indexing)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES
VUID-VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE-sType-sTypeYNoneimplicitVkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE(VK_VALVE_descriptor_set_host_mapping)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE
VUID-VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(VK_NV_device_generated_commands)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV
VUID-VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(VK_NV_device_generated_commands)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV
VUID-VkPhysicalDeviceDeviceMemoryReportFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDeviceMemoryReportFeaturesEXT(VK_EXT_device_memory_report)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT
VUID-VkPhysicalDeviceDiagnosticsConfigFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceDiagnosticsConfigFeaturesNV(VK_NV_device_diagnostics_config)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV
VUID-VkPhysicalDeviceDiscardRectanglePropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDiscardRectanglePropertiesEXT(VK_EXT_discard_rectangles)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT
VUID-VkPhysicalDeviceDriverProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceDriverProperties(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_2,VK_KHR_driver_properties)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES
VUID-VkPhysicalDeviceDrmPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceDrmPropertiesEXT(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_physical_device_drm)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT
VUID-VkPhysicalDeviceDynamicRenderingFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceDynamicRenderingFeatures(VK_VERSION_1_3,VK_KHR_dynamic_rendering)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES
VUID-VkPhysicalDeviceExclusiveScissorFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceExclusiveScissorFeaturesNV(VK_NV_scissor_exclusive)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV
VUID-VkPhysicalDeviceExtendedDynamicState2FeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceExtendedDynamicState2FeaturesEXT(VK_EXT_extended_dynamic_state2)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT
VUID-VkPhysicalDeviceExtendedDynamicState3FeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceExtendedDynamicState3FeaturesEXT(VK_EXT_extended_dynamic_state3)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT
VUID-VkPhysicalDeviceExtendedDynamicState3PropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceExtendedDynamicState3PropertiesEXT(VK_EXT_extended_dynamic_state3)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT
VUID-VkPhysicalDeviceExtendedDynamicStateFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceExtendedDynamicStateFeaturesEXT(VK_EXT_extended_dynamic_state)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT
VUID-VkPhysicalDeviceExternalBufferInfo-flags-parameterYNoneimplicitVkPhysicalDeviceExternalBufferInfo(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)flags must be a valid combination of VkBufferCreateFlagBits values
VUID-VkPhysicalDeviceExternalBufferInfo-handleType-parameterYNoneimplicitVkPhysicalDeviceExternalBufferInfo(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkPhysicalDeviceExternalBufferInfo-pNext-pNextYNoneimplicitVkPhysicalDeviceExternalBufferInfo(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)pNext must be NULL
VUID-VkPhysicalDeviceExternalBufferInfo-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalBufferInfo(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO
VUID-VkPhysicalDeviceExternalBufferInfo-usage-parameterYNoneimplicitVkPhysicalDeviceExternalBufferInfo(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)usage must be a valid combination of VkBufferUsageFlagBits values
VUID-VkPhysicalDeviceExternalBufferInfo-usage-requiredbitmaskYNoneimplicitVkPhysicalDeviceExternalBufferInfo(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)usage must not be 0
VUID-VkPhysicalDeviceExternalFenceInfo-handleType-parameterYNoneimplicitVkPhysicalDeviceExternalFenceInfo(VK_VERSION_1_1,VK_KHR_external_fence_capabilities)handleType must be a valid VkExternalFenceHandleTypeFlagBits value
VUID-VkPhysicalDeviceExternalFenceInfo-pNext-pNextYNoneimplicitVkPhysicalDeviceExternalFenceInfo(VK_VERSION_1_1,VK_KHR_external_fence_capabilities)pNext must be NULL
VUID-VkPhysicalDeviceExternalFenceInfo-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalFenceInfo(VK_VERSION_1_1,VK_KHR_external_fence_capabilities)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO
VUID-VkPhysicalDeviceExternalImageFormatInfo-handleType-parameterYNoneimplicitVkPhysicalDeviceExternalImageFormatInfo(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)If handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-VkPhysicalDeviceExternalImageFormatInfo-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalImageFormatInfo(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO
VUID-VkPhysicalDeviceExternalMemoryHostPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalMemoryHostPropertiesEXT(VK_EXT_external_memory_host)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT
VUID-VkPhysicalDeviceExternalMemoryRDMAFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalMemoryRDMAFeaturesNV(VK_NV_external_memory_rdma)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV
VUID-VkPhysicalDeviceExternalSemaphoreInfo-handleType-parameterYNoneimplicitVkPhysicalDeviceExternalSemaphoreInfo(VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities)handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value
VUID-VkPhysicalDeviceExternalSemaphoreInfo-pNext-pNextYNoneimplicitVkPhysicalDeviceExternalSemaphoreInfo(VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities)pNext must be NULL or a pointer to a valid instance of VkSemaphoreTypeCreateInfo
VUID-VkPhysicalDeviceExternalSemaphoreInfo-sType-sTypeYNoneimplicitVkPhysicalDeviceExternalSemaphoreInfo(VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO
VUID-VkPhysicalDeviceExternalSemaphoreInfo-sType-uniqueYNoneimplicitVkPhysicalDeviceExternalSemaphoreInfo(VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities)The sType value of each struct in the pNext chain must be unique
VUID-VkPhysicalDeviceFaultFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceFaultFeaturesEXT(VK_EXT_device_fault)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT
VUID-VkPhysicalDeviceFeatures2-sType-sTypeYNoneimplicitVkPhysicalDeviceFeatures2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2
VUID-VkPhysicalDeviceFloatControlsProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceFloatControlsProperties(VK_VERSION_1_2,VK_KHR_shader_float_controls)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES
VUID-VkPhysicalDeviceFragmentDensityMap2FeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentDensityMap2FeaturesEXT(VK_EXT_fragment_density_map)+(VK_EXT_fragment_density_map2)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT
VUID-VkPhysicalDeviceFragmentDensityMap2PropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentDensityMap2PropertiesEXT(VK_EXT_fragment_density_map)+(VK_EXT_fragment_density_map2)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT
VUID-VkPhysicalDeviceFragmentDensityMapFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentDensityMapFeaturesEXT(VK_EXT_fragment_density_map)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT
VUID-VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM(VK_EXT_fragment_density_map)+(VK_QCOM_fragment_density_map_offset)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM
VUID-VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM(VK_EXT_fragment_density_map)+(VK_QCOM_fragment_density_map_offset)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM
VUID-VkPhysicalDeviceFragmentDensityMapPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentDensityMapPropertiesEXT(VK_EXT_fragment_density_map)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT
VUID-VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR(VK_KHR_fragment_shader_barycentric)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR
VUID-VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR(VK_KHR_fragment_shader_barycentric)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR
VUID-VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(VK_EXT_fragment_shader_interlock)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT
VUID-VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(VK_NV_fragment_shading_rate_enums)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV
VUID-VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV-maxFragmentShadingRateInvocationCount-parameterYNoneimplicitVkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(VK_NV_fragment_shading_rate_enums)maxFragmentShadingRateInvocationCount must be a valid VkSampleCountFlagBits value
VUID-VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(VK_NV_fragment_shading_rate_enums)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV
VUID-VkPhysicalDeviceFragmentShadingRateFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShadingRateFeaturesKHR(VK_KHR_fragment_shading_rate)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR
VUID-VkPhysicalDeviceFragmentShadingRateKHR-pNext-pNextYNoneimplicitVkPhysicalDeviceFragmentShadingRateKHR(VK_KHR_fragment_shading_rate)pNext must be NULL
VUID-VkPhysicalDeviceFragmentShadingRateKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShadingRateKHR(VK_KHR_fragment_shading_rate)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR
VUID-VkPhysicalDeviceFragmentShadingRatePropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceFragmentShadingRatePropertiesKHR(VK_KHR_fragment_shading_rate)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR
VUID-VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceGlobalPriorityQueryFeaturesKHR(VK_EXT_global_priority_query,VK_KHR_global_priority)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR
VUID-VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(VK_EXT_graphics_pipeline_library)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT
VUID-VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(VK_EXT_graphics_pipeline_library)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT
VUID-VkPhysicalDeviceGroupProperties-pNext-pNextYNoneimplicitVkPhysicalDeviceGroupProperties(VK_VERSION_1_1,VK_KHR_device_group_creation)pNext must be NULL
VUID-VkPhysicalDeviceGroupProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceGroupProperties(VK_VERSION_1_1,VK_KHR_device_group_creation)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES
VUID-VkPhysicalDeviceHostQueryResetFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceHostQueryResetFeatures(VK_VERSION_1_2,VK_EXT_host_query_reset)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES
VUID-VkPhysicalDeviceIDProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceIDProperties(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_1,VK_KHR_external_memory_capabilities,VK_KHR_external_semaphore_capabilities,VK_KHR_external_fence_capabilities)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES
VUID-VkPhysicalDeviceImage2DViewOf3DFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceImage2DViewOf3DFeaturesEXT(VK_EXT_image_2d_view_of_3d)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT
VUID-VkPhysicalDeviceImageCompressionControlFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceImageCompressionControlFeaturesEXT(VK_EXT_image_compression_control)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT
VUID-VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(VK_EXT_image_compression_control)+(VK_EXT_image_compression_control_swapchain)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT
VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceImageDrmFormatModifierInfoEXT(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT
VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02314NNoneexplicitVkPhysicalDeviceImageDrmFormatModifierInfoEXT(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)If sharingMode is VK_SHARING_MODE_CONCURRENT, then pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values
VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02315YImageFormatInfoDrmFormatModifierexplicitVkPhysicalDeviceImageDrmFormatModifierInfoEXT(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)If sharingMode is VK_SHARING_MODE_CONCURRENT, then queueFamilyIndexCount must be greater than 1
VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02316NNoneexplicitVkPhysicalDeviceImageDrmFormatModifierInfoEXT(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)If 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-parameterYNoneimplicitVkPhysicalDeviceImageDrmFormatModifierInfoEXT(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)sharingMode must be a valid VkSharingMode value
VUID-VkPhysicalDeviceImageFormatInfo2-flags-parameterYNoneimplicitVkPhysicalDeviceImageFormatInfo2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)flags must be a valid combination of VkImageCreateFlagBits values
VUID-VkPhysicalDeviceImageFormatInfo2-format-parameterYNoneimplicitVkPhysicalDeviceImageFormatInfo2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)format must be a valid VkFormat value
VUID-VkPhysicalDeviceImageFormatInfo2-pNext-pNextYNoneimplicitVkPhysicalDeviceImageFormatInfo2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkImageCompressionControlEXT, VkImageFormatListCreateInfo, VkImageStencilUsageCreateInfo, VkOpticalFlowImageFormatInfoNV, VkPhysicalDeviceExternalImageFormatInfo, VkPhysicalDeviceImageDrmFormatModifierInfoEXT, VkPhysicalDeviceImageViewImageFormatInfoEXT, or VkVideoProfileListInfoKHR
VUID-VkPhysicalDeviceImageFormatInfo2-sType-sTypeYNoneimplicitVkPhysicalDeviceImageFormatInfo2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2
VUID-VkPhysicalDeviceImageFormatInfo2-sType-uniqueYNoneimplicitVkPhysicalDeviceImageFormatInfo2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)The sType value of each struct in the pNext chain must be unique
VUID-VkPhysicalDeviceImageFormatInfo2-tiling-02249YImageFormatInfoDrmFormatModifierexplicitVkPhysicalDeviceImageFormatInfo2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)tiling must be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT if and only if the pNext chain includes VkPhysicalDeviceImageDrmFormatModifierInfoEXT
VUID-VkPhysicalDeviceImageFormatInfo2-tiling-02313YImageFormatInfoDrmFormatModifierexplicitVkPhysicalDeviceImageFormatInfo2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)If 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-parameterYNoneimplicitVkPhysicalDeviceImageFormatInfo2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)tiling must be a valid VkImageTiling value
VUID-VkPhysicalDeviceImageFormatInfo2-type-parameterYNoneimplicitVkPhysicalDeviceImageFormatInfo2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)type must be a valid VkImageType value
VUID-VkPhysicalDeviceImageFormatInfo2-usage-parameterYNoneimplicitVkPhysicalDeviceImageFormatInfo2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)usage must be a valid combination of VkImageUsageFlagBits values
VUID-VkPhysicalDeviceImageFormatInfo2-usage-requiredbitmaskYNoneimplicitVkPhysicalDeviceImageFormatInfo2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)usage must not be 0
VUID-VkPhysicalDeviceImageProcessingFeaturesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceImageProcessingFeaturesQCOM(VK_QCOM_image_processing)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM
VUID-VkPhysicalDeviceImageProcessingPropertiesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceImageProcessingPropertiesQCOM(VK_QCOM_image_processing)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM
VUID-VkPhysicalDeviceImageRobustnessFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceImageRobustnessFeatures(VK_VERSION_1_3,VK_EXT_image_robustness)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES
VUID-VkPhysicalDeviceImageViewImageFormatInfoEXT-imageViewType-parameterYNoneimplicitVkPhysicalDeviceImageViewImageFormatInfoEXT(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_filter_cubic)imageViewType must be a valid VkImageViewType value
VUID-VkPhysicalDeviceImageViewImageFormatInfoEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceImageViewImageFormatInfoEXT(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_filter_cubic)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT
VUID-VkPhysicalDeviceImageViewMinLodFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceImageViewMinLodFeaturesEXT(VK_EXT_image_view_min_lod)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT
VUID-VkPhysicalDeviceImagelessFramebufferFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceImagelessFramebufferFeatures(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES
VUID-VkPhysicalDeviceIndexTypeUint8FeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceIndexTypeUint8FeaturesEXT(VK_EXT_index_type_uint8)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT
VUID-VkPhysicalDeviceInheritedViewportScissorFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceInheritedViewportScissorFeaturesNV(VK_NV_inherited_viewport_scissor)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV
VUID-VkPhysicalDeviceInlineUniformBlockFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceInlineUniformBlockFeatures(VK_VERSION_1_3,VK_EXT_inline_uniform_block)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES
VUID-VkPhysicalDeviceInlineUniformBlockProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceInlineUniformBlockProperties(VK_VERSION_1_3,VK_EXT_inline_uniform_block)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES
VUID-VkPhysicalDeviceInvocationMaskFeaturesHUAWEI-sType-sTypeYNoneimplicitVkPhysicalDeviceInvocationMaskFeaturesHUAWEI(VK_HUAWEI_invocation_mask)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI
VUID-VkPhysicalDeviceLegacyDitheringFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceLegacyDitheringFeaturesEXT(VK_EXT_legacy_dithering)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT
VUID-VkPhysicalDeviceLineRasterizationFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceLineRasterizationFeaturesEXT(VK_EXT_line_rasterization)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT
VUID-VkPhysicalDeviceLineRasterizationPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceLineRasterizationPropertiesEXT(VK_EXT_line_rasterization)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT
VUID-VkPhysicalDeviceLinearColorAttachmentFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceLinearColorAttachmentFeaturesNV(VK_NV_linear_color_attachment)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV
VUID-VkPhysicalDeviceMaintenance3Properties-sType-sTypeYNoneimplicitVkPhysicalDeviceMaintenance3Properties(VK_VERSION_1_1,VK_KHR_maintenance3)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES
VUID-VkPhysicalDeviceMaintenance4Features-sType-sTypeYNoneimplicitVkPhysicalDeviceMaintenance4Features(VK_VERSION_1_3,VK_KHR_maintenance4)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES
VUID-VkPhysicalDeviceMaintenance4Properties-sType-sTypeYNoneimplicitVkPhysicalDeviceMaintenance4Properties(VK_VERSION_1_3,VK_KHR_maintenance4)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES
VUID-VkPhysicalDeviceMemoryBudgetPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMemoryBudgetPropertiesEXT(VK_EXT_memory_budget)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT
VUID-VkPhysicalDeviceMemoryDecompressionFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceMemoryDecompressionFeaturesNV(VK_NV_memory_decompression)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV
VUID-VkPhysicalDeviceMemoryDecompressionPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceMemoryDecompressionPropertiesNV(VK_NV_memory_decompression)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV
VUID-VkPhysicalDeviceMemoryPriorityFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMemoryPriorityFeaturesEXT(VK_EXT_memory_priority)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT
VUID-VkPhysicalDeviceMemoryProperties2-pNext-pNextYNoneimplicitVkPhysicalDeviceMemoryProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)pNext must be NULL or a pointer to a valid instance of VkPhysicalDeviceMemoryBudgetPropertiesEXT
VUID-VkPhysicalDeviceMemoryProperties2-sType-sTypeYNoneimplicitVkPhysicalDeviceMemoryProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2
VUID-VkPhysicalDeviceMemoryProperties2-sType-uniqueYNoneimplicitVkPhysicalDeviceMemoryProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)The sType value of each struct in the pNext chain must be unique
VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-multiviewMeshShader-07032NNoneexplicitVkPhysicalDeviceMeshShaderFeaturesEXT(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_multiview)If multiviewMeshShader is enabled then VkPhysicalDeviceMultiviewFeaturesKHR::multiview must also be enabled
VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-primitiveFragmentShadingRateMeshShader-07033NNoneexplicitVkPhysicalDeviceMeshShaderFeaturesEXT(VK_EXT_mesh_shader)+(VK_KHR_fragment_shading_rate)If primitiveFragmentShadingRateMeshShader is enabled then VkPhysicalDeviceFragmentShadingRateFeaturesKHR::primitiveFragmentShadingRate must also be enabled
VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMeshShaderFeaturesEXT(VK_EXT_mesh_shader)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT
VUID-VkPhysicalDeviceMeshShaderFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceMeshShaderFeaturesNV(VK_NV_mesh_shader)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV
VUID-VkPhysicalDeviceMeshShaderPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMeshShaderPropertiesEXT(VK_EXT_mesh_shader)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT
VUID-VkPhysicalDeviceMeshShaderPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceMeshShaderPropertiesNV(VK_NV_mesh_shader)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV
VUID-VkPhysicalDeviceMultiDrawFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMultiDrawFeaturesEXT(VK_EXT_multi_draw)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT
VUID-VkPhysicalDeviceMultiDrawPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMultiDrawPropertiesEXT(VK_EXT_multi_draw)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT
VUID-VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT(VK_EXT_multisampled_render_to_single_sampled)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT
VUID-VkPhysicalDeviceMultiviewFeatures-multiviewGeometryShader-00580YFeaturesMultiviewexplicitVkPhysicalDeviceMultiviewFeatures(VK_VERSION_1_1,VK_KHR_multiview)If multiviewGeometryShader is enabled then multiview must also be enabled
VUID-VkPhysicalDeviceMultiviewFeatures-multiviewTessellationShader-00581YFeaturesMultiviewexplicitVkPhysicalDeviceMultiviewFeatures(VK_VERSION_1_1,VK_KHR_multiview)If multiviewTessellationShader is enabled then multiview must also be enabled
VUID-VkPhysicalDeviceMultiviewFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceMultiviewFeatures(VK_VERSION_1_1,VK_KHR_multiview)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES
VUID-VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX-sType-sTypeYNoneimplicitVkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(VK_NVX_multiview_per_view_attributes)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX
VUID-VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM(VK_QCOM_multiview_per_view_viewports)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM
VUID-VkPhysicalDeviceMultiviewProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceMultiviewProperties(VK_VERSION_1_1,VK_KHR_multiview)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES
VUID-VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceMutableDescriptorTypeFeaturesEXT(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT
VUID-VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT(VK_EXT_non_seamless_cube_map)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT
VUID-VkPhysicalDeviceOpacityMicromapFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceOpacityMicromapFeaturesEXT(VK_EXT_opacity_micromap)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT
VUID-VkPhysicalDeviceOpacityMicromapPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceOpacityMicromapPropertiesEXT(VK_EXT_opacity_micromap)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT
VUID-VkPhysicalDeviceOpticalFlowFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceOpticalFlowFeaturesNV(VK_NV_optical_flow)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV
VUID-VkPhysicalDeviceOpticalFlowPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceOpticalFlowPropertiesNV(VK_NV_optical_flow)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV
VUID-VkPhysicalDevicePCIBusInfoPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePCIBusInfoPropertiesEXT(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_pci_bus_info)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT
VUID-VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(VK_EXT_pageable_device_local_memory)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT
VUID-VkPhysicalDevicePerformanceQueryFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePerformanceQueryFeaturesKHR(VK_KHR_performance_query)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR
VUID-VkPhysicalDevicePerformanceQueryPropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePerformanceQueryPropertiesKHR(VK_KHR_performance_query)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR
VUID-VkPhysicalDevicePipelineCreationCacheControlFeatures-sType-sTypeYNoneimplicitVkPhysicalDevicePipelineCreationCacheControlFeatures(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES
VUID-VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(VK_KHR_pipeline_executable_properties)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR
VUID-VkPhysicalDevicePipelinePropertiesFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePipelinePropertiesFeaturesEXT(VK_EXT_pipeline_properties)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT
VUID-VkPhysicalDevicePipelineProtectedAccessFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePipelineProtectedAccessFeaturesEXT(VK_EXT_pipeline_protected_access)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT
VUID-VkPhysicalDevicePipelineRobustnessFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePipelineRobustnessFeaturesEXT(VK_EXT_pipeline_robustness)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT
VUID-VkPhysicalDevicePipelineRobustnessPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePipelineRobustnessPropertiesEXT(VK_EXT_pipeline_robustness)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT
VUID-VkPhysicalDevicePointClippingProperties-sType-sTypeYNoneimplicitVkPhysicalDevicePointClippingProperties(VK_VERSION_1_1,VK_KHR_maintenance2)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES
VUID-VkPhysicalDevicePortabilitySubsetFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePortabilitySubsetFeaturesKHR(VK_KHR_portability_subset)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR
VUID-VkPhysicalDevicePortabilitySubsetPropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePortabilitySubsetPropertiesKHR(VK_KHR_portability_subset)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR
VUID-VkPhysicalDevicePresentBarrierFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDevicePresentBarrierFeaturesNV(VK_NV_present_barrier)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV
VUID-VkPhysicalDevicePresentIdFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePresentIdFeaturesKHR(VK_KHR_present_id)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR
VUID-VkPhysicalDevicePresentWaitFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePresentWaitFeaturesKHR(VK_KHR_present_wait)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR
VUID-VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(VK_EXT_primitive_topology_list_restart)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT
VUID-VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(VK_EXT_primitives_generated_query)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT
VUID-VkPhysicalDevicePrivateDataFeatures-sType-sTypeYNoneimplicitVkPhysicalDevicePrivateDataFeatures(VK_VERSION_1_3,VK_EXT_private_data)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES
VUID-VkPhysicalDeviceProperties2-pNext-pNextYUnsupportedPnextApiVersion, DuplicateMessageLimitimplicitVkPhysicalDeviceProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPhysicalDeviceAccelerationStructurePropertiesKHR, VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, VkPhysicalDeviceConservativeRasterizationPropertiesEXT, VkPhysicalDeviceCooperativeMatrixPropertiesNV, VkPhysicalDeviceCopyMemoryIndirectPropertiesNV, VkPhysicalDeviceCustomBorderColorPropertiesEXT, VkPhysicalDeviceDepthStencilResolveProperties, VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, VkPhysicalDeviceDescriptorBufferPropertiesEXT, VkPhysicalDeviceDescriptorIndexingProperties, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, VkPhysicalDeviceDiscardRectanglePropertiesEXT, VkPhysicalDeviceDriverProperties, VkPhysicalDeviceDrmPropertiesEXT, VkPhysicalDeviceExtendedDynamicState3PropertiesEXT, VkPhysicalDeviceExternalMemoryHostPropertiesEXT, VkPhysicalDeviceFloatControlsProperties, VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, VkPhysicalDeviceFragmentDensityMapPropertiesEXT, VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, VkPhysicalDeviceFragmentShadingRatePropertiesKHR, VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, VkPhysicalDeviceIDProperties, VkPhysicalDeviceImageProcessingPropertiesQCOM, VkPhysicalDeviceInlineUniformBlockProperties, VkPhysicalDeviceLineRasterizationPropertiesEXT, VkPhysicalDeviceMaintenance3Properties, VkPhysicalDeviceMaintenance4Properties, VkPhysicalDeviceMemoryDecompressionPropertiesNV, VkPhysicalDeviceMeshShaderPropertiesEXT, VkPhysicalDeviceMeshShaderPropertiesNV, VkPhysicalDeviceMultiDrawPropertiesEXT, VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, VkPhysicalDeviceMultiviewProperties, VkPhysicalDeviceOpacityMicromapPropertiesEXT, VkPhysicalDeviceOpticalFlowPropertiesNV, VkPhysicalDevicePCIBusInfoPropertiesEXT, VkPhysicalDevicePerformanceQueryPropertiesKHR, VkPhysicalDevicePipelineRobustnessPropertiesEXT, VkPhysicalDevicePointClippingProperties, VkPhysicalDevicePortabilitySubsetPropertiesKHR, VkPhysicalDeviceProtectedMemoryProperties, VkPhysicalDeviceProvokingVertexPropertiesEXT, VkPhysicalDevicePushDescriptorPropertiesKHR, VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV, VkPhysicalDeviceRayTracingPipelinePropertiesKHR, VkPhysicalDeviceRayTracingPropertiesNV, VkPhysicalDeviceRobustness2PropertiesEXT, VkPhysicalDeviceSampleLocationsPropertiesEXT, VkPhysicalDeviceSamplerFilterMinmaxProperties, VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM, VkPhysicalDeviceShaderCoreProperties2AMD, VkPhysicalDeviceShaderCorePropertiesAMD, VkPhysicalDeviceShaderIntegerDotProductProperties, VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT, VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, VkPhysicalDeviceShadingRateImagePropertiesNV, VkPhysicalDeviceSubgroupProperties, VkPhysicalDeviceSubgroupSizeControlProperties, VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, VkPhysicalDeviceTexelBufferAlignmentProperties, VkPhysicalDeviceTimelineSemaphoreProperties, VkPhysicalDeviceTransformFeedbackPropertiesEXT, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, VkPhysicalDeviceVulkan11Properties, VkPhysicalDeviceVulkan12Properties, or VkPhysicalDeviceVulkan13Properties
VUID-VkPhysicalDeviceProperties2-sType-sTypeYNoneimplicitVkPhysicalDeviceProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2
VUID-VkPhysicalDeviceProperties2-sType-uniqueYDuplicateValidPNextStructuresimplicitVkPhysicalDeviceProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)The sType value of each struct in the pNext chain must be unique
VUID-VkPhysicalDeviceProtectedMemoryFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceProtectedMemoryFeatures(VK_VERSION_1_1)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES
VUID-VkPhysicalDeviceProtectedMemoryProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceProtectedMemoryProperties(VK_VERSION_1_1)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES
VUID-VkPhysicalDeviceProvokingVertexFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceProvokingVertexFeaturesEXT(VK_EXT_provoking_vertex)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT
VUID-VkPhysicalDeviceProvokingVertexPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceProvokingVertexPropertiesEXT(VK_EXT_provoking_vertex)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT
VUID-VkPhysicalDevicePushDescriptorPropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDevicePushDescriptorPropertiesKHR(VK_KHR_push_descriptor)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR
VUID-VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(VK_EXT_rgba10x6_formats)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT
VUID-VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT(VK_EXT_rasterization_order_attachment_access)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT
VUID-VkPhysicalDeviceRayQueryFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceRayQueryFeaturesKHR(VK_KHR_ray_query)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR
VUID-VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingInvocationReorderFeaturesNV(VK_NV_ray_tracing_invocation_reorder)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV
VUID-VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingInvocationReorderPropertiesNV(VK_NV_ray_tracing_invocation_reorder)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV
VUID-VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingMaintenance1FeaturesKHR(VK_KHR_ray_tracing_maintenance1)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR
VUID-VkPhysicalDeviceRayTracingMotionBlurFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingMotionBlurFeaturesNV(VK_NV_ray_tracing_motion_blur)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV
VUID-VkPhysicalDeviceRayTracingPipelineFeaturesKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03575YNoneexplicitVkPhysicalDeviceRayTracingPipelineFeaturesKHR(VK_KHR_ray_tracing_pipeline)If rayTracingPipelineShaderGroupHandleCaptureReplayMixed is VK_TRUE, rayTracingPipelineShaderGroupHandleCaptureReplay must also be VK_TRUE
VUID-VkPhysicalDeviceRayTracingPipelineFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingPipelineFeaturesKHR(VK_KHR_ray_tracing_pipeline)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR
VUID-VkPhysicalDeviceRayTracingPipelinePropertiesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingPipelinePropertiesKHR(VK_KHR_ray_tracing_pipeline)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR
VUID-VkPhysicalDeviceRayTracingPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceRayTracingPropertiesNV(VK_NV_ray_tracing)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV
VUID-VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(VK_NV_representative_fragment_test)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV
VUID-VkPhysicalDeviceRobustness2FeaturesEXT-robustBufferAccess2-04000YNoneexplicitVkPhysicalDeviceRobustness2FeaturesEXT(VK_EXT_robustness2)If robustBufferAccess2 is enabled then robustBufferAccess must also be enabled
VUID-VkPhysicalDeviceRobustness2FeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceRobustness2FeaturesEXT(VK_EXT_robustness2)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT
VUID-VkPhysicalDeviceRobustness2PropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceRobustness2PropertiesEXT(VK_EXT_robustness2)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT
VUID-VkPhysicalDeviceSampleLocationsPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceSampleLocationsPropertiesEXT(VK_EXT_sample_locations)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT
VUID-VkPhysicalDeviceSamplerFilterMinmaxProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceSamplerFilterMinmaxProperties(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES
VUID-VkPhysicalDeviceSamplerYcbcrConversionFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceSamplerYcbcrConversionFeatures(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES
VUID-VkPhysicalDeviceScalarBlockLayoutFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceScalarBlockLayoutFeatures(VK_VERSION_1_2,VK_EXT_scalar_block_layout)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES
VUID-VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES
VUID-VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(VK_EXT_shader_atomic_float2)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT
VUID-VkPhysicalDeviceShaderAtomicFloatFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderAtomicFloatFeaturesEXT(VK_EXT_shader_atomic_float)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT
VUID-VkPhysicalDeviceShaderAtomicInt64Features-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderAtomicInt64Features(VK_VERSION_1_2,VK_KHR_shader_atomic_int64)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES
VUID-VkPhysicalDeviceShaderClockFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderClockFeaturesKHR(VK_KHR_shader_clock)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR
VUID-VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderCoreBuiltinsFeaturesARM(VK_ARM_shader_core_builtins)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM
VUID-VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderCoreBuiltinsPropertiesARM(VK_ARM_shader_core_builtins)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM
VUID-VkPhysicalDeviceShaderCoreProperties2AMD-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderCoreProperties2AMD(VK_AMD_shader_core_properties2)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD
VUID-VkPhysicalDeviceShaderCorePropertiesAMD-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderCorePropertiesAMD(VK_AMD_shader_core_properties)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD
VUID-VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(VK_VERSION_1_3,VK_EXT_shader_demote_to_helper_invocation)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES
VUID-VkPhysicalDeviceShaderDrawParametersFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderDrawParametersFeatures(VK_VERSION_1_1)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES
VUID-VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD(VK_AMD_shader_early_and_late_fragment_tests)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD
VUID-VkPhysicalDeviceShaderFloat16Int8Features-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderFloat16Int8Features(VK_VERSION_1_2,VK_KHR_shader_float16_int8)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES
VUID-VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(VK_EXT_shader_image_atomic_int64)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT
VUID-VkPhysicalDeviceShaderImageFootprintFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderImageFootprintFeaturesNV(VK_NV_shader_image_footprint)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV
VUID-VkPhysicalDeviceShaderIntegerDotProductFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderIntegerDotProductFeatures(VK_VERSION_1_3,VK_KHR_shader_integer_dot_product)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES
VUID-VkPhysicalDeviceShaderIntegerDotProductProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderIntegerDotProductProperties(VK_VERSION_1_3,VK_KHR_shader_integer_dot_product)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES
VUID-VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(VK_INTEL_shader_integer_functions2)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL
VUID-VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderModuleIdentifierFeaturesEXT(VK_EXT_shader_module_identifier)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT
VUID-VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderModuleIdentifierPropertiesEXT(VK_EXT_shader_module_identifier)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT
VUID-VkPhysicalDeviceShaderSMBuiltinsFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderSMBuiltinsFeaturesNV(VK_NV_shader_sm_builtins)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV
VUID-VkPhysicalDeviceShaderSMBuiltinsPropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderSMBuiltinsPropertiesNV(VK_NV_shader_sm_builtins)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV
VUID-VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(VK_VERSION_1_1)+(VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES
VUID-VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(VK_KHR_shader_subgroup_uniform_control_flow)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR
VUID-VkPhysicalDeviceShaderTerminateInvocationFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceShaderTerminateInvocationFeatures(VK_VERSION_1_3,VK_KHR_shader_terminate_invocation)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES
VUID-VkPhysicalDeviceShadingRateImageFeaturesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceShadingRateImageFeaturesNV(VK_NV_shading_rate_image)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV
VUID-VkPhysicalDeviceShadingRateImagePropertiesNV-sType-sTypeYNoneimplicitVkPhysicalDeviceShadingRateImagePropertiesNV(VK_NV_shading_rate_image)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV
VUID-VkPhysicalDeviceSparseImageFormatInfo2-format-parameterYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)format must be a valid VkFormat value
VUID-VkPhysicalDeviceSparseImageFormatInfo2-pNext-pNextYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)pNext must be NULL
VUID-VkPhysicalDeviceSparseImageFormatInfo2-sType-sTypeYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2
VUID-VkPhysicalDeviceSparseImageFormatInfo2-samples-01095NNoneexplicitVkPhysicalDeviceSparseImageFormatInfo2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)samples must be a bit value that is set in VkImageFormatProperties::sampleCounts returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, and usage equal to those in this command and flags equal to the value that is set in VkImageCreateInfo::flags when the image is created
VUID-VkPhysicalDeviceSparseImageFormatInfo2-samples-parameterYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)samples must be a valid VkSampleCountFlagBits value
VUID-VkPhysicalDeviceSparseImageFormatInfo2-tiling-parameterYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)tiling must be a valid VkImageTiling value
VUID-VkPhysicalDeviceSparseImageFormatInfo2-type-parameterYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)type must be a valid VkImageType value
VUID-VkPhysicalDeviceSparseImageFormatInfo2-usage-parameterYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)usage must be a valid combination of VkImageUsageFlagBits values
VUID-VkPhysicalDeviceSparseImageFormatInfo2-usage-requiredbitmaskYNoneimplicitVkPhysicalDeviceSparseImageFormatInfo2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)usage must not be 0
VUID-VkPhysicalDeviceSubgroupProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceSubgroupProperties(VK_VERSION_1_1)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES
VUID-VkPhysicalDeviceSubgroupSizeControlFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceSubgroupSizeControlFeatures(VK_VERSION_1_3,VK_EXT_subgroup_size_control)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES
VUID-VkPhysicalDeviceSubgroupSizeControlProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceSubgroupSizeControlProperties(VK_VERSION_1_1)+(VK_VERSION_1_3,VK_EXT_subgroup_size_control)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES
VUID-VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT(VK_EXT_subpass_merge_feedback)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT
VUID-VkPhysicalDeviceSubpassShadingFeaturesHUAWEI-sType-sTypeYNoneimplicitVkPhysicalDeviceSubpassShadingFeaturesHUAWEI(VK_HUAWEI_subpass_shading)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI
VUID-VkPhysicalDeviceSubpassShadingPropertiesHUAWEI-sType-sTypeYNoneimplicitVkPhysicalDeviceSubpassShadingPropertiesHUAWEI(VK_HUAWEI_subpass_shading)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI
VUID-VkPhysicalDeviceSurfaceInfo2KHR-pNext-02672NNoneexplicitVkPhysicalDeviceSurfaceInfo2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_KHR_win32_surface+VK_EXT_full_screen_exclusive)If 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-pNextYTestSurfaceQueryImageCompressionControlWithoutExtensionimplicitVkPhysicalDeviceSurfaceInfo2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkSurfaceFullScreenExclusiveInfoEXT or VkSurfaceFullScreenExclusiveWin32InfoEXT
VUID-VkPhysicalDeviceSurfaceInfo2KHR-pSurfaceInfo-06526NNoneexplicitVkPhysicalDeviceSurfaceInfo2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_KHR_win32_surface+VK_EXT_full_screen_exclusive)+(VK_GOOGLE_surfaceless_query)When passed as the pSurfaceInfo parameter of vkGetPhysicalDeviceSurfaceCapabilities2KHR, if the VK_GOOGLE_surfaceless_query extension is enabled and the pNext chain of the pSurfaceCapabilities parameter includes VkSurfaceProtectedCapabilitiesKHR, then surface can be VK_NULL_HANDLE. Otherwise, surface must be a valid VkSurfaceKHR handle
VUID-VkPhysicalDeviceSurfaceInfo2KHR-pSurfaceInfo-06527NNoneexplicitVkPhysicalDeviceSurfaceInfo2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_KHR_win32_surface+VK_EXT_full_screen_exclusive)+(VK_GOOGLE_surfaceless_query)When passed as the pSurfaceInfo parameter of vkGetPhysicalDeviceSurfaceFormats2KHR, if the VK_GOOGLE_surfaceless_query extension is enabled, then surface can be VK_NULL_HANDLE. Otherwise, surface must be a valid VkSurfaceKHR handle
VUID-VkPhysicalDeviceSurfaceInfo2KHR-pSurfaceInfo-06528NNoneexplicitVkPhysicalDeviceSurfaceInfo2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_KHR_win32_surface+VK_EXT_full_screen_exclusive)+(VK_GOOGLE_surfaceless_query)When passed as the pSurfaceInfo parameter of vkGetPhysicalDeviceSurfacePresentModes2EXT, if the VK_GOOGLE_surfaceless_query extension is enabled, then surface can be VK_NULL_HANDLE. Otherwise, surface must be a valid VkSurfaceKHR handle
VUID-VkPhysicalDeviceSurfaceInfo2KHR-sType-sTypeYNoneimplicitVkPhysicalDeviceSurfaceInfo2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR
VUID-VkPhysicalDeviceSurfaceInfo2KHR-sType-uniqueYNoneimplicitVkPhysicalDeviceSurfaceInfo2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)The sType value of each struct in the pNext chain must be unique
VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-06529NNoneexplicitVkPhysicalDeviceSurfaceInfo2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_KHR_win32_surface+VK_EXT_full_screen_exclusive)+!(VK_GOOGLE_surfaceless_query)surface must be a valid VkSurfaceKHR handle
VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-parameterYNoneimplicitVkPhysicalDeviceSurfaceInfo2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)If surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle
VUID-VkPhysicalDeviceSynchronization2Features-sType-sTypeYNoneimplicitVkPhysicalDeviceSynchronization2Features(VK_VERSION_1_3,VK_KHR_synchronization2)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES
VUID-VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(VK_EXT_texel_buffer_alignment)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT
VUID-VkPhysicalDeviceTexelBufferAlignmentProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceTexelBufferAlignmentProperties(VK_VERSION_1_3,VK_EXT_texel_buffer_alignment)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES
VUID-VkPhysicalDeviceTextureCompressionASTCHDRFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceTextureCompressionASTCHDRFeatures(VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES
VUID-VkPhysicalDeviceTilePropertiesFeaturesQCOM-sType-sTypeYNoneimplicitVkPhysicalDeviceTilePropertiesFeaturesQCOM(VK_QCOM_tile_properties)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM
VUID-VkPhysicalDeviceTimelineSemaphoreFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceTimelineSemaphoreFeatures(VK_VERSION_1_2,VK_KHR_timeline_semaphore)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES
VUID-VkPhysicalDeviceTimelineSemaphoreProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceTimelineSemaphoreProperties(VK_VERSION_1_2,VK_KHR_timeline_semaphore)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES
VUID-VkPhysicalDeviceToolProperties-pNext-pNextYNoneimplicitVkPhysicalDeviceToolProperties(VK_VERSION_1_3,VK_EXT_tooling_info)pNext must be NULL
VUID-VkPhysicalDeviceToolProperties-sType-sTypeYNoneimplicitVkPhysicalDeviceToolProperties(VK_VERSION_1_3,VK_EXT_tooling_info)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES
VUID-VkPhysicalDeviceTransformFeedbackFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceTransformFeedbackFeaturesEXT(VK_EXT_transform_feedback)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT
VUID-VkPhysicalDeviceTransformFeedbackPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceTransformFeedbackPropertiesEXT(VK_EXT_transform_feedback)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT
VUID-VkPhysicalDeviceUniformBufferStandardLayoutFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceUniformBufferStandardLayoutFeatures(VK_VERSION_1_2,VK_KHR_uniform_buffer_standard_layout)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES
VUID-VkPhysicalDeviceVariablePointersFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceVariablePointersFeatures(VK_VERSION_1_1,VK_KHR_variable_pointers)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES
VUID-VkPhysicalDeviceVariablePointersFeatures-variablePointers-01431YFeaturesVariablePointerexplicitVkPhysicalDeviceVariablePointersFeatures(VK_VERSION_1_1,VK_KHR_variable_pointers)If variablePointers is enabled then variablePointersStorageBuffer must also be enabled
VUID-VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(VK_EXT_vertex_attribute_divisor)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT
VUID-VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(VK_EXT_vertex_attribute_divisor)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT
VUID-VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(VK_EXT_vertex_input_dynamic_state)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT
VUID-VkPhysicalDeviceVideoFormatInfoKHR-imageUsage-parameterYNoneimplicitVkPhysicalDeviceVideoFormatInfoKHR(VK_KHR_video_queue)imageUsage must be a valid combination of VkImageUsageFlagBits values
VUID-VkPhysicalDeviceVideoFormatInfoKHR-imageUsage-requiredbitmaskYNoneimplicitVkPhysicalDeviceVideoFormatInfoKHR(VK_KHR_video_queue)imageUsage must not be 0
VUID-VkPhysicalDeviceVideoFormatInfoKHR-pNext-pNextYNoneimplicitVkPhysicalDeviceVideoFormatInfoKHR(VK_KHR_video_queue)pNext must be NULL or a pointer to a valid instance of VkVideoProfileListInfoKHR
VUID-VkPhysicalDeviceVideoFormatInfoKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceVideoFormatInfoKHR(VK_KHR_video_queue)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR
VUID-VkPhysicalDeviceVideoFormatInfoKHR-sType-uniqueYNoneimplicitVkPhysicalDeviceVideoFormatInfoKHR(VK_KHR_video_queue)The sType value of each struct in the pNext chain must be unique
VUID-VkPhysicalDeviceVulkan11Features-sType-sTypeYNoneimplicitVkPhysicalDeviceVulkan11Features(VK_VERSION_1_2)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES
VUID-VkPhysicalDeviceVulkan11Properties-sType-sTypeYNoneimplicitVkPhysicalDeviceVulkan11Properties(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_2)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES
VUID-VkPhysicalDeviceVulkan12Features-sType-sTypeYNoneimplicitVkPhysicalDeviceVulkan12Features(VK_VERSION_1_2)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES
VUID-VkPhysicalDeviceVulkan12Properties-sType-sTypeYNoneimplicitVkPhysicalDeviceVulkan12Properties(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_2)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES
VUID-VkPhysicalDeviceVulkan13Features-sType-sTypeYNoneimplicitVkPhysicalDeviceVulkan13Features(VK_VERSION_1_3)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES
VUID-VkPhysicalDeviceVulkan13Properties-sType-sTypeYNoneimplicitVkPhysicalDeviceVulkan13Properties(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_3)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES
VUID-VkPhysicalDeviceVulkanMemoryModelFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceVulkanMemoryModelFeatures(VK_VERSION_1_2,VK_KHR_vulkan_memory_model)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES
VUID-VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR-sType-sTypeYNoneimplicitVkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(VK_KHR_workgroup_memory_explicit_layout)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR
VUID-VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(VK_EXT_ycbcr_2plane_444_formats)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT
VUID-VkPhysicalDeviceYcbcrImageArraysFeaturesEXT-sType-sTypeYNoneimplicitVkPhysicalDeviceYcbcrImageArraysFeaturesEXT(VK_EXT_ycbcr_image_arrays)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT
VUID-VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures-sType-sTypeYNoneimplicitVkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(VK_VERSION_1_3,VK_KHR_zero_initialize_workgroup_memory)sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES
VUID-VkPipelineCacheCreateInfo-flags-parameterYNoneimplicitVkPipelineCacheCreateInfocoreflags must be a valid combination of VkPipelineCacheCreateFlagBits values
VUID-VkPipelineCacheCreateInfo-initialDataSize-00768NNoneexplicitVkPipelineCacheCreateInfocoreIf initialDataSize is not 0, it must be equal to the size of pInitialData, as returned by vkGetPipelineCacheData when pInitialData was originally retrieved
VUID-VkPipelineCacheCreateInfo-initialDataSize-00769NNoneexplicitVkPipelineCacheCreateInfocoreIf initialDataSize is not 0, pInitialData must have been retrieved from a previous call to vkGetPipelineCacheData
VUID-VkPipelineCacheCreateInfo-pInitialData-parameterYNoneimplicitVkPipelineCacheCreateInfocoreIf initialDataSize is not 0, pInitialData must be a valid pointer to an array of initialDataSize bytes
VUID-VkPipelineCacheCreateInfo-pNext-pNextYNoneimplicitVkPipelineCacheCreateInfocorepNext must be NULL
VUID-VkPipelineCacheCreateInfo-pipelineCreationCacheControl-02892YPipelineCreationCacheControlexplicitVkPipelineCacheCreateInfo(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT
VUID-VkPipelineCacheCreateInfo-sType-sTypeYNoneimplicitVkPipelineCacheCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
VUID-VkPipelineCacheHeaderVersionOne-headerSize-04967NNoneexplicitVkPipelineCacheHeaderVersionOnecoreheaderSize must be 32
VUID-VkPipelineCacheHeaderVersionOne-headerVersion-04968NNoneexplicitVkPipelineCacheHeaderVersionOnecoreheaderVersion must be VK_PIPELINE_CACHE_HEADER_VERSION_ONE
VUID-VkPipelineCacheHeaderVersionOne-headerVersion-parameterNNoneimplicitVkPipelineCacheHeaderVersionOnecoreheaderVersion must be a valid VkPipelineCacheHeaderVersion value
VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-01426YColorBlendAdvancedexplicitVkPipelineColorBlendAdvancedStateCreateInfoEXT(VK_EXT_blend_operation_advanced)If the correlated overlap property is not supported, blendOverlap must be VK_BLEND_OVERLAP_UNCORRELATED_EXT
VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-parameterYNoneimplicitVkPipelineColorBlendAdvancedStateCreateInfoEXT(VK_EXT_blend_operation_advanced)blendOverlap must be a valid VkBlendOverlapEXT value
VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-dstPremultiplied-01425YColorBlendAdvancedexplicitVkPipelineColorBlendAdvancedStateCreateInfoEXT(VK_EXT_blend_operation_advanced)If the non-premultiplied destination color property is not supported, dstPremultiplied must be VK_TRUE
VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineColorBlendAdvancedStateCreateInfoEXT(VK_EXT_blend_operation_advanced)sType must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT
VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-srcPremultiplied-01424YColorBlendAdvancedexplicitVkPipelineColorBlendAdvancedStateCreateInfoEXT(VK_EXT_blend_operation_advanced)If the non-premultiplied source color property is not supported, srcPremultiplied must be VK_TRUE
VUID-VkPipelineColorBlendAttachmentState-advancedBlendAllOperations-01409YPipelineInvalidAdvancedBlendexplicitVkPipelineColorBlendAttachmentState(VK_EXT_blend_operation_advanced)If 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-01407YPipelineAdvancedBlendInvalidBlendOpsexplicitVkPipelineColorBlendAttachmentState(VK_EXT_blend_operation_advanced)If VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendIndependentBlend is VK_FALSE and colorBlendOp is an advanced blend operation, then colorBlendOp must be the same for all attachments
VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01408YPipelineAdvancedBlendInvalidBlendOpsexplicitVkPipelineColorBlendAttachmentState(VK_EXT_blend_operation_advanced)If VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendIndependentBlend is VK_FALSE and alphaBlendOp is an advanced blend operation, then alphaBlendOp must be the same for all attachments
VUID-VkPipelineColorBlendAttachmentState-alphaBlendOp-parameterYNoneimplicitVkPipelineColorBlendAttachmentStatecorealphaBlendOp must be a valid VkBlendOp value
VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01406YPipelineAdvancedBlendInvalidBlendOpsexplicitVkPipelineColorBlendAttachmentState(VK_EXT_blend_operation_advanced)If either of colorBlendOp or alphaBlendOp is an advanced blend operation, then colorBlendOp must equal alphaBlendOp
VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01410YPipelineAdvancedBlendMaxBlendAttachment, PipelineInvalidAdvancedBlendexplicitVkPipelineColorBlendAttachmentState(VK_EXT_blend_operation_advanced)If colorBlendOp or alphaBlendOp is an advanced blend operation, then colorAttachmentCount of the subpass this pipeline is compiled against must be less than or equal to VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendMaxColorAttachments
VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-parameterYNoneimplicitVkPipelineColorBlendAttachmentStatecorecolorBlendOp must be a valid VkBlendOp value
VUID-VkPipelineColorBlendAttachmentState-colorWriteMask-parameterYNoneimplicitVkPipelineColorBlendAttachmentStatecorecolorWriteMask must be a valid combination of VkColorComponentFlagBits values
VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04454YInvalidDepthStencilStateForReadOnlyLayoutexplicitVkPipelineColorBlendAttachmentState(VK_KHR_portability_subset)If 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-04455YInvalidDepthStencilStateForReadOnlyLayoutexplicitVkPipelineColorBlendAttachmentState(VK_KHR_portability_subset)If 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-00611YColorBlendUnsupportedDualSourceBlendexplicitVkPipelineColorBlendAttachmentStatecoreIf the dualSrcBlend feature is not enabled, dstAlphaBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-parameterYNoneimplicitVkPipelineColorBlendAttachmentStatecoredstAlphaBlendFactor must be a valid VkBlendFactor value
VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-00609YColorBlendUnsupportedDualSourceBlendexplicitVkPipelineColorBlendAttachmentStatecoreIf the dualSrcBlend feature is not enabled, dstColorBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-parameterYNoneimplicitVkPipelineColorBlendAttachmentStatecoredstColorBlendFactor must be a valid VkBlendFactor value
VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-00610YColorBlendUnsupportedDualSourceBlendexplicitVkPipelineColorBlendAttachmentStatecoreIf the dualSrcBlend feature is not enabled, srcAlphaBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-parameterYNoneimplicitVkPipelineColorBlendAttachmentStatecoresrcAlphaBlendFactor must be a valid VkBlendFactor value
VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-00608YColorBlendUnsupportedDualSourceBlendexplicitVkPipelineColorBlendAttachmentStatecoreIf the dualSrcBlend feature is not enabled, srcColorBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-parameterYNoneimplicitVkPipelineColorBlendAttachmentStatecoresrcColorBlendFactor must be a valid VkBlendFactor value
VUID-VkPipelineColorBlendStateCreateInfo-flags-parameterYNoneimplicitVkPipelineColorBlendStateCreateInfocoreflags must be a valid combination of VkPipelineColorBlendStateCreateFlagBits values
VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00606YColorBlendUnsupportedLogicOpexplicitVkPipelineColorBlendStateCreateInfocoreIf the logicOp feature is not enabled, logicOpEnable must be VK_FALSE
VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00607YColorBlendInvalidLogicOpexplicitVkPipelineColorBlendStateCreateInfocoreIf logicOpEnable is VK_TRUE, logicOp must be a valid VkLogicOp value
VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605YDisabledIndependentBlendexplicitVkPipelineColorBlendStateCreateInfocoreIf the independentBlend feature is not enabled, all elements of pAttachments must be identical
VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-07353NNoneexplicitVkPipelineColorBlendStateCreateInfo(VK_EXT_extended_dynamic_state3)If attachmentCount is not 0, and any of 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-07354NNoneexplicitVkPipelineColorBlendStateCreateInfo!(VK_EXT_extended_dynamic_state3)If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkPipelineColorBlendAttachmentState structures
VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-parameterNNoneimplicitVkPipelineColorBlendStateCreateInfocoreIf attachmentCount is not 0, and pAttachments is not NULL, pAttachments must be a valid pointer to an array of attachmentCount valid VkPipelineColorBlendAttachmentState structures
VUID-VkPipelineColorBlendStateCreateInfo-pNext-pNextYNoneimplicitVkPipelineColorBlendStateCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineColorBlendAdvancedStateCreateInfoEXT or VkPipelineColorWriteCreateInfoEXT
VUID-VkPipelineColorBlendStateCreateInfo-rasterizationOrderColorAttachmentAccess-06465YCreateGraphicsPipelineRasterizationOrderAttachmentAccessWithoutFeatureexplicitVkPipelineColorBlendStateCreateInfo(VK_EXT_rasterization_order_attachment_access,VK_ARM_rasterization_order_attachment_access)If the rasterizationOrderColorAttachmentAccess feature is not enabled, flags must not include VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT
VUID-VkPipelineColorBlendStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineColorBlendStateCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
VUID-VkPipelineColorBlendStateCreateInfo-sType-uniqueYNoneimplicitVkPipelineColorBlendStateCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkPipelineColorWriteCreateInfoEXT-attachmentCount-04802YTestPipelineColorWriteCreateInfoEXTexplicitVkPipelineColorWriteCreateInfoEXT(VK_EXT_color_write_enable)+!(VK_EXT_extended_dynamic_state3)attachmentCount must be equal to the attachmentCount member of the VkPipelineColorBlendStateCreateInfo structure specified during pipeline creation
VUID-VkPipelineColorWriteCreateInfoEXT-attachmentCount-06655YTestPipelineColorWriteCreateInfoEXTexplicitVkPipelineColorWriteCreateInfoEXT(VK_EXT_color_write_enable)attachmentCount must be less than or equal to the maxColorAttachments member of VkPhysicalDeviceLimits
VUID-VkPipelineColorWriteCreateInfoEXT-attachmentCount-07608NNoneexplicitVkPipelineColorWriteCreateInfoEXT(VK_EXT_color_write_enable)+(VK_EXT_extended_dynamic_state3)If the pipeline is being created with 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-04801YTestPipelineColorWriteCreateInfoEXTexplicitVkPipelineColorWriteCreateInfoEXT(VK_EXT_color_write_enable)If the colorWriteEnable feature is not enabled, all elements of pColorWriteEnables must be VK_TRUE
VUID-VkPipelineColorWriteCreateInfoEXT-pColorWriteEnables-parameterNNoneimplicitVkPipelineColorWriteCreateInfoEXT(VK_EXT_color_write_enable)If attachmentCount is not 0, pColorWriteEnables must be a valid pointer to an array of attachmentCount VkBool32 values
VUID-VkPipelineColorWriteCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineColorWriteCreateInfoEXT(VK_EXT_color_write_enable)sType must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT
VUID-VkPipelineCompilerControlCreateInfoAMD-compilerControlFlags-zerobitmaskYNoneimplicitVkPipelineCompilerControlCreateInfoAMD(VK_AMD_pipeline_compiler_control)compilerControlFlags must be 0
VUID-VkPipelineCompilerControlCreateInfoAMD-sType-sTypeYNoneimplicitVkPipelineCompilerControlCreateInfoAMD(VK_AMD_pipeline_compiler_control)sType must be VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD
VUID-VkPipelineCoverageModulationStateCreateInfoNV-coverageModulationMode-parameterYNoneimplicitVkPipelineCoverageModulationStateCreateInfoNV(VK_NV_framebuffer_mixed_samples)coverageModulationMode must be a valid VkCoverageModulationModeNV value
VUID-VkPipelineCoverageModulationStateCreateInfoNV-coverageModulationTableEnable-01405YFramebufferMixedSamplesNVexplicitVkPipelineCoverageModulationStateCreateInfoNV(VK_NV_framebuffer_mixed_samples)If 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-zerobitmaskYNoneimplicitVkPipelineCoverageModulationStateCreateInfoNV(VK_NV_framebuffer_mixed_samples)flags must be 0
VUID-VkPipelineCoverageModulationStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineCoverageModulationStateCreateInfoNV(VK_NV_framebuffer_mixed_samples)sType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV
VUID-VkPipelineCoverageReductionStateCreateInfoNV-coverageReductionMode-parameterYNoneimplicitVkPipelineCoverageReductionStateCreateInfoNV(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)coverageReductionMode must be a valid VkCoverageReductionModeNV value
VUID-VkPipelineCoverageReductionStateCreateInfoNV-flags-zerobitmaskYNoneimplicitVkPipelineCoverageReductionStateCreateInfoNV(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)flags must be 0
VUID-VkPipelineCoverageReductionStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineCoverageReductionStateCreateInfoNV(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)sType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV
VUID-VkPipelineCoverageToColorStateCreateInfoNV-coverageToColorEnable-01404YFragmentCoverageToColorNVexplicitVkPipelineCoverageToColorStateCreateInfoNV(VK_NV_fragment_coverage_to_color)If 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-zerobitmaskYNoneimplicitVkPipelineCoverageToColorStateCreateInfoNV(VK_NV_fragment_coverage_to_color)flags must be 0
VUID-VkPipelineCoverageToColorStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineCoverageToColorStateCreateInfoNV(VK_NV_fragment_coverage_to_color)sType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV
VUID-VkPipelineCreationFeedbackCreateInfo-pPipelineCreationFeedback-parameterYNoneimplicitVkPipelineCreationFeedbackCreateInfo(VK_VERSION_1_3,VK_EXT_pipeline_creation_feedback)pPipelineCreationFeedback must be a valid pointer to a VkPipelineCreationFeedback structure
VUID-VkPipelineCreationFeedbackCreateInfo-pPipelineStageCreationFeedbacks-parameterYNoneimplicitVkPipelineCreationFeedbackCreateInfo(VK_VERSION_1_3,VK_EXT_pipeline_creation_feedback)If pipelineStageCreationFeedbackCount is not 0, pPipelineStageCreationFeedbacks must be a valid pointer to an array of pipelineStageCreationFeedbackCount VkPipelineCreationFeedback structures
VUID-VkPipelineCreationFeedbackCreateInfo-sType-sTypeYNoneimplicitVkPipelineCreationFeedbackCreateInfo(VK_VERSION_1_3,VK_EXT_pipeline_creation_feedback)sType must be VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO
VUID-VkPipelineDepthStencilStateCreateInfo-back-parameterNNoneimplicitVkPipelineDepthStencilStateCreateInfocoreback must be a valid VkStencilOpState structure
VUID-VkPipelineDepthStencilStateCreateInfo-depthBoundsTestEnable-00598YNoneexplicitVkPipelineDepthStencilStateCreateInfocoreIf the depthBounds feature is not enabled, depthBoundsTestEnable must be VK_FALSE
VUID-VkPipelineDepthStencilStateCreateInfo-depthCompareOp-parameterYNoneimplicitVkPipelineDepthStencilStateCreateInfocoredepthCompareOp must be a valid VkCompareOp value
VUID-VkPipelineDepthStencilStateCreateInfo-flags-parameterYNoneimplicitVkPipelineDepthStencilStateCreateInfocoreflags must be a valid combination of VkPipelineDepthStencilStateCreateFlagBits values
VUID-VkPipelineDepthStencilStateCreateInfo-front-parameterNNoneimplicitVkPipelineDepthStencilStateCreateInfocorefront must be a valid VkStencilOpState structure
VUID-VkPipelineDepthStencilStateCreateInfo-pNext-pNextYNoneimplicitVkPipelineDepthStencilStateCreateInfocorepNext must be NULL
VUID-VkPipelineDepthStencilStateCreateInfo-rasterizationOrderDepthAttachmentAccess-06463YCreateGraphicsPipelineRasterizationOrderAttachmentAccessWithoutFeatureexplicitVkPipelineDepthStencilStateCreateInfo(VK_EXT_rasterization_order_attachment_access,VK_ARM_rasterization_order_attachment_access)If 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-06464YCreateGraphicsPipelineRasterizationOrderAttachmentAccessWithoutFeatureexplicitVkPipelineDepthStencilStateCreateInfo(VK_EXT_rasterization_order_attachment_access,VK_ARM_rasterization_order_attachment_access)If the rasterizationOrderStencilAttachmentAccess feature is not enabled, flags must not include VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
VUID-VkPipelineDepthStencilStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineDepthStencilStateCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
VUID-VkPipelineDepthStencilStateCreateInfo-separateStencilMaskRef-04453YInvalidDepthStencilStateForReadOnlyLayoutexplicitVkPipelineDepthStencilStateCreateInfo(VK_KHR_portability_subset)If 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-00582YInvlidPipelineDiscardRectangleexplicitVkPipelineDiscardRectangleStateCreateInfoEXT(VK_EXT_discard_rectangles)discardRectangleCount must be less than or equal to VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles
VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-discardRectangleMode-parameterYNoneimplicitVkPipelineDiscardRectangleStateCreateInfoEXT(VK_EXT_discard_rectangles)discardRectangleMode must be a valid VkDiscardRectangleModeEXT value
VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkPipelineDiscardRectangleStateCreateInfoEXT(VK_EXT_discard_rectangles)flags must be 0
VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineDiscardRectangleStateCreateInfoEXT(VK_EXT_discard_rectangles)sType must be VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT
VUID-VkPipelineDynamicStateCreateInfo-flags-zerobitmaskYNoneimplicitVkPipelineDynamicStateCreateInfocoreflags must be 0
VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-01442YValidateExtendedDynamicState2Enabled, DuplicateDynamicStates, ValidateExtendedDynamicStateEnabled, ValidateExtendedDynamicState2PatchControlPointsEnabled, ValidateExtendedDynamicState2LogicOpEnabled, ValidateVertexInputDynamicStateEnabled, ValidateExtendedDynamicState3EnabledexplicitVkPipelineDynamicStateCreateInfocoreEach element of pDynamicStates must be unique
VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-parameterNNoneimplicitVkPipelineDynamicStateCreateInfocoreIf dynamicStateCount is not 0, pDynamicStates must be a valid pointer to an array of dynamicStateCount valid VkDynamicState values
VUID-VkPipelineDynamicStateCreateInfo-pNext-pNextYNoneimplicitVkPipelineDynamicStateCreateInfocorepNext must be NULL
VUID-VkPipelineDynamicStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineDynamicStateCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
VUID-VkPipelineExecutableInfoKHR-executableIndex-03275YNoneexplicitVkPipelineExecutableInfoKHR(VK_KHR_pipeline_executable_properties)executableIndex must be less than the number of pipeline executables associated with pipeline as returned in the pExecutableCount parameter of vkGetPipelineExecutablePropertiesKHR
VUID-VkPipelineExecutableInfoKHR-pNext-pNextYNoneimplicitVkPipelineExecutableInfoKHR(VK_KHR_pipeline_executable_properties)pNext must be NULL
VUID-VkPipelineExecutableInfoKHR-pipeline-parameterYNoneimplicitVkPipelineExecutableInfoKHR(VK_KHR_pipeline_executable_properties)pipeline must be a valid VkPipeline handle
VUID-VkPipelineExecutableInfoKHR-sType-sTypeYNoneimplicitVkPipelineExecutableInfoKHR(VK_KHR_pipeline_executable_properties)sType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR
VUID-VkPipelineExecutableInternalRepresentationKHR-pNext-pNextYNoneimplicitVkPipelineExecutableInternalRepresentationKHR(VK_KHR_pipeline_executable_properties)pNext must be NULL
VUID-VkPipelineExecutableInternalRepresentationKHR-sType-sTypeYNoneimplicitVkPipelineExecutableInternalRepresentationKHR(VK_KHR_pipeline_executable_properties)sType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR
VUID-VkPipelineExecutablePropertiesKHR-pNext-pNextYNoneimplicitVkPipelineExecutablePropertiesKHR(VK_KHR_pipeline_executable_properties)pNext must be NULL
VUID-VkPipelineExecutablePropertiesKHR-sType-sTypeYNoneimplicitVkPipelineExecutablePropertiesKHR(VK_KHR_pipeline_executable_properties)sType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR
VUID-VkPipelineExecutableStatisticKHR-pNext-pNextYNoneimplicitVkPipelineExecutableStatisticKHR(VK_KHR_pipeline_executable_properties)pNext must be NULL
VUID-VkPipelineExecutableStatisticKHR-sType-sTypeYNoneimplicitVkPipelineExecutableStatisticKHR(VK_KHR_pipeline_executable_properties)sType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR
VUID-VkPipelineFragmentShadingRateEnumStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineFragmentShadingRateEnumStateCreateInfoNV(VK_NV_fragment_shading_rate_enums)sType must be VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV
VUID-VkPipelineFragmentShadingRateStateCreateInfoKHR-sType-sTypeYNoneimplicitVkPipelineFragmentShadingRateStateCreateInfoKHR(VK_KHR_fragment_shading_rate)sType must be VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR
VUID-VkPipelineInfoKHR-pNext-pNextYNoneimplicitVkPipelineInfoKHR(VK_KHR_pipeline_executable_properties,VK_EXT_pipeline_properties)pNext must be NULL
VUID-VkPipelineInfoKHR-pipeline-parameterYNoneimplicitVkPipelineInfoKHR(VK_KHR_pipeline_executable_properties,VK_EXT_pipeline_properties)pipeline must be a valid VkPipeline handle
VUID-VkPipelineInfoKHR-sType-sTypeYNoneimplicitVkPipelineInfoKHR(VK_KHR_pipeline_executable_properties,VK_EXT_pipeline_properties)sType must be VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR
VUID-VkPipelineInputAssemblyStateCreateInfo-flags-zerobitmaskYNoneimplicitVkPipelineInputAssemblyStateCreateInfocoreflags must be 0
VUID-VkPipelineInputAssemblyStateCreateInfo-pNext-pNextYNoneimplicitVkPipelineInputAssemblyStateCreateInfocorepNext must be NULL
VUID-VkPipelineInputAssemblyStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineInputAssemblyStateCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00428YInvalidTopologyexplicitVkPipelineInputAssemblyStateCreateInfo!(VK_EXT_primitive_topology_list_restart)If topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY or VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, primitiveRestartEnable must be VK_FALSE
VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00429YInvalidTopologyexplicitVkPipelineInputAssemblyStateCreateInfocoreIf 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-00430YInvalidTopology, ValidateTessellationShaderEnabledexplicitVkPipelineInputAssemblyStateCreateInfocoreIf the tessellationShader feature is not enabled, topology must not be VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06252YPrimitiveTopologyListRestartexplicitVkPipelineInputAssemblyStateCreateInfo(VK_EXT_primitive_topology_list_restart)If 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, and primitiveRestartEnable is VK_TRUE, the primitiveTopologyListRestart feature must be enabled
VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06253YPrimitiveTopologyListRestartexplicitVkPipelineInputAssemblyStateCreateInfo(VK_EXT_primitive_topology_list_restart)If topology is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, and primitiveRestartEnable is VK_TRUE, the primitiveTopologyPatchListRestart feature must be enabled
VUID-VkPipelineInputAssemblyStateCreateInfo-topology-parameterYNoneimplicitVkPipelineInputAssemblyStateCreateInfocoretopology must be a valid VkPrimitiveTopology value
VUID-VkPipelineInputAssemblyStateCreateInfo-triangleFans-04452YInvalidDepthStencilStateForReadOnlyLayoutexplicitVkPipelineInputAssemblyStateCreateInfo(VK_KHR_portability_subset)If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::triangleFans is VK_FALSE, topology must not be VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN
VUID-VkPipelineLayoutCreateInfo-descriptorType-02212YInlineUniformBlockEXTexplicitVkPipelineLayoutCreateInfo!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)The 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::maxPerStageDescriptorInlineUniformBlocks
VUID-VkPipelineLayoutCreateInfo-descriptorType-02213YInlineUniformBlockEXTexplicitVkPipelineLayoutCreateInfo!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)The 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::maxDescriptorSetInlineUniformBlocks
VUID-VkPipelineLayoutCreateInfo-descriptorType-02214YInlineUniformBlockEXTexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)The 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 to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockProperties::maxPerStageDescriptorInlineUniformBlocks
VUID-VkPipelineLayoutCreateInfo-descriptorType-02215YInlineUniformBlockEXTexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)The 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-02216YInlineUniformBlockEXTexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)The 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-02217YInlineUniformBlockEXTexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)The 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-02381YNVRayTracingAccelerationStructureBindingsexplicitVkPipelineLayoutCreateInfo(VK_NV_ray_tracing)The 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-03016YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)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_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-03017YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)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 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-03018YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)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 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-03019YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+!(VK_QCOM_image_processing)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_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 VkPhysicalDeviceLimits::maxPerStageDescriptorSampledImages
VUID-VkPipelineLayoutCreateInfo-descriptorType-03020YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)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_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-03021YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)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_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-03022YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The 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-03023YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The 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-03024YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The 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-03025YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The 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-03026YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The 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-03027YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The 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-03028YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)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_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-03029YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)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 accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetUniformBuffers
VUID-VkPipelineLayoutCreateInfo-descriptorType-03030YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)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-03031YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)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 accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageBuffers
VUID-VkPipelineLayoutCreateInfo-descriptorType-03032YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)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-03033YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)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_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-03034YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)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_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-03035YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)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_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-03571NNoneexplicitVkPipelineLayoutCreateInfo(VK_KHR_acceleration_structure)The 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-03572YRayTracingAccelerationStructureBindingsexplicitVkPipelineLayoutCreateInfo(VK_KHR_acceleration_structure)The 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-03573NNoneexplicitVkPipelineLayoutCreateInfo(VK_KHR_acceleration_structure)The 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-03574NNoneexplicitVkPipelineLayoutCreateInfo(VK_KHR_acceleration_structure)The 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-06531NNoneexplicitVkPipelineLayoutCreateInfo!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VERSION_1_3)The 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-06939NNoneexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_QCOM_image_processing)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_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, and VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSampledImages
VUID-VkPipelineLayoutCreateInfo-flags-parameterYNoneimplicitVkPipelineLayoutCreateInfocoreflags must be a valid combination of VkPipelineLayoutCreateFlagBits values
VUID-VkPipelineLayoutCreateInfo-graphicsPipelineLibrary-06753YDescriptorBufferInvalidExtensionCombinationexplicitVkPipelineLayoutCreateInfo(VK_EXT_graphics_pipeline_library)If graphicsPipelineLibrary is not enabled, elements of pSetLayouts must be valid VkDescriptorSetLayout objects
VUID-VkPipelineLayoutCreateInfo-pImmutableSamplers-03566YCreatePipelineExcessSubsampledPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_EXT_fragment_density_map2)The 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-pNext-pNextYNoneimplicitVkPipelineLayoutCreateInfocorepNext must be NULL
VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-00292YInvalidPushConstantRangeexplicitVkPipelineLayoutCreateInfocoreAny two elements of pPushConstantRanges must not include the same stage in stageFlags
VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-parameterYNoneimplicitVkPipelineLayoutCreateInfocoreIf pushConstantRangeCount is not 0, pPushConstantRanges must be a valid pointer to an array of pushConstantRangeCount valid VkPushConstantRange structures
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00287YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The total number of descriptors of the type VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible to any shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSamplers
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00288YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER and VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible to any shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorUniformBuffers
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00289YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER and VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible to any shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorStorageBuffers
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00290YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+!(VK_QCOM_image_processing)The 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 to any shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSampledImages
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00291YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible to any shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorStorageImages
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00293YMultiplePushDescriptorSetsexplicitVkPipelineLayoutCreateInfo(VK_KHR_push_descriptor)pSetLayouts 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-01676YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The total number of descriptors of the type 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-pSetLayouts-01677YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The 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 VkPhysicalDeviceLimits::maxDescriptorSetSamplers
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01678YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The 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 VkPhysicalDeviceLimits::maxDescriptorSetUniformBuffers
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01679YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)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::maxDescriptorSetUniformBuffersDynamic
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01680YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The 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 VkPhysicalDeviceLimits::maxDescriptorSetStorageBuffers
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01681YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)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::maxDescriptorSetStorageBuffersDynamic
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01682YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The 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 VkPhysicalDeviceLimits::maxDescriptorSetSampledImages
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01683YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The 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 VkPhysicalDeviceLimits::maxDescriptorSetStorageImages
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01684YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The 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 VkPhysicalDeviceLimits::maxDescriptorSetInputAttachments
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03036YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The 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-03037YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The 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-03038YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)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 VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03039YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The 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-03040YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)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 VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindStorageBuffersDynamic
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03041YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The 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-03042YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The 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-03043YCreatePipelineLayoutExcessDescriptorsOverall, CreatePipelineLayoutExcessPerStageDescriptorsexplicitVkPipelineLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The 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-04606YCreatePipelineLayoutWithInvalidSetLayoutFlagsexplicitVkPipelineLayoutCreateInfo(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)Any 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-06561YDescriptorBufferInvalidExtensionCombinationexplicitVkPipelineLayoutCreateInfo!(VK_EXT_graphics_pipeline_library)Elements of pSetLayouts must be valid VkDescriptorSetLayout objects
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-06938NNoneexplicitVkPipelineLayoutCreateInfo!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_QCOM_image_processing)The total number of descriptors of the type VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, and VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, accessible to any shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSampledImages
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-08008YDescriptorBufferSetLayoutexplicitVkPipelineLayoutCreateInfo(VK_EXT_descriptor_buffer)If 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-parameterYInvalidDescriptorSetLayoutimplicitVkPipelineLayoutCreateInfocoreIf setLayoutCount is not 0, pSetLayouts must be a valid pointer to an array of setLayoutCount valid or VK_NULL_HANDLE VkDescriptorSetLayout handles
VUID-VkPipelineLayoutCreateInfo-sType-sTypeYNoneimplicitVkPipelineLayoutCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
VUID-VkPipelineLayoutCreateInfo-setLayoutCount-00286YCreatePipelineLayoutExceedsSetLimitexplicitVkPipelineLayoutCreateInfocoresetLayoutCount must be less than or equal to VkPhysicalDeviceLimits::maxBoundDescriptorSets
VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-03381YRayTracingLibraryFlagsexplicitVkPipelineLibraryCreateInfoKHR(VK_KHR_pipeline_library)Each element of pLibraries must have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-06855YShaderModuleIdentifierexplicitVkPipelineLibraryCreateInfoKHR(VK_KHR_pipeline_library)+(VK_EXT_shader_module_identifier)If 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-08096YDescriptorBufferLibraryexplicitVkPipelineLibraryCreateInfoKHR(VK_KHR_pipeline_library)+(VK_EXT_descriptor_buffer)If 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-parameterYRayTracingPipelineCreateInfoKHRimplicitVkPipelineLibraryCreateInfoKHR(VK_KHR_pipeline_library)If libraryCount is not 0, pLibraries must be a valid pointer to an array of libraryCount valid VkPipeline handles
VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07404YPipelineProtectedAccessexplicitVkPipelineLibraryCreateInfoKHR(VK_KHR_pipeline_library)+(VK_EXT_pipeline_protected_access)If 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-07405YPipelineProtectedAccessexplicitVkPipelineLibraryCreateInfoKHR(VK_KHR_pipeline_library)+(VK_EXT_pipeline_protected_access)If 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-07406YPipelineProtectedAccessexplicitVkPipelineLibraryCreateInfoKHR(VK_KHR_pipeline_library)+(VK_EXT_pipeline_protected_access)If 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-07407YPipelineProtectedAccessexplicitVkPipelineLibraryCreateInfoKHR(VK_KHR_pipeline_library)+(VK_EXT_pipeline_protected_access)If 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-sTypeYNoneimplicitVkPipelineLibraryCreateInfoKHR(VK_KHR_pipeline_library)sType must be VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR
VUID-VkPipelineMultisampleStateCreateInfo-alphaToOneEnable-00785YNoneexplicitVkPipelineMultisampleStateCreateInfocoreIf the alphaToOne feature is not enabled, alphaToOneEnable must be VK_FALSE
VUID-VkPipelineMultisampleStateCreateInfo-flags-zerobitmaskYNoneimplicitVkPipelineMultisampleStateCreateInfocoreflags must be 0
VUID-VkPipelineMultisampleStateCreateInfo-minSampleShading-00786YInvalidPipelineSampleRateFeatureEnableexplicitVkPipelineMultisampleStateCreateInfocoreminSampleShading must be in the range [0,1]
VUID-VkPipelineMultisampleStateCreateInfo-pNext-pNextYInvalidPipelineSamplePNextimplicitVkPipelineMultisampleStateCreateInfocoreEach 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-parameterNNoneimplicitVkPipelineMultisampleStateCreateInfocoreIf pSampleMask is not NULL, pSampleMask must be a valid pointer to an array of (rasterizationSamples/32) VkSampleMask values
VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-01415YFramebufferMixedSamplesNVexplicitVkPipelineMultisampleStateCreateInfo(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the subpass has any color attachments and rasterizationSamples is greater than the number of color samples, then sampleShadingEnable must be VK_FALSE
VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-parameterYNoneimplicitVkPipelineMultisampleStateCreateInfocorerasterizationSamples must be a valid VkSampleCountFlagBits value
VUID-VkPipelineMultisampleStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineMultisampleStateCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
VUID-VkPipelineMultisampleStateCreateInfo-sType-uniqueYNoneimplicitVkPipelineMultisampleStateCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkPipelineMultisampleStateCreateInfo-sampleShadingEnable-00784YInvalidPipelineSampleRateFeatureDisableexplicitVkPipelineMultisampleStateCreateInfocoreIf the sampleRateShading feature is not enabled, sampleShadingEnable must be VK_FALSE
VUID-VkPipelinePropertiesIdentifierEXT-pNext-pNextNNoneimplicitVkPipelinePropertiesIdentifierEXT(VK_EXT_pipeline_properties)pNext must be NULL
VUID-VkPipelinePropertiesIdentifierEXT-sType-sTypeNNoneimplicitVkPipelinePropertiesIdentifierEXT(VK_EXT_pipeline_properties)sType must be VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT
VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-conservativeRasterizationMode-parameterYNoneimplicitVkPipelineRasterizationConservativeStateCreateInfoEXT(VK_EXT_conservative_rasterization)conservativeRasterizationMode must be a valid VkConservativeRasterizationModeEXT value
VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-extraPrimitiveOverestimationSize-01769YTestPipelineRasterizationConservativeStateCreateInfoexplicitVkPipelineRasterizationConservativeStateCreateInfoEXT(VK_EXT_conservative_rasterization)extraPrimitiveOverestimationSize must be in the range of 0.0 to VkPhysicalDeviceConservativeRasterizationPropertiesEXT::maxExtraPrimitiveOverestimationSize inclusive
VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkPipelineRasterizationConservativeStateCreateInfoEXT(VK_EXT_conservative_rasterization)flags must be 0
VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineRasterizationConservativeStateCreateInfoEXT(VK_EXT_conservative_rasterization)sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT
VUID-VkPipelineRasterizationDepthClipStateCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkPipelineRasterizationDepthClipStateCreateInfoEXT(VK_EXT_depth_clip_enable)flags must be 0
VUID-VkPipelineRasterizationDepthClipStateCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineRasterizationDepthClipStateCreateInfoEXT(VK_EXT_depth_clip_enable)sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT
VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02768YCreatePipelineCheckLineRasterizationexplicitVkPipelineRasterizationLineStateCreateInfoEXT(VK_EXT_line_rasterization)If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the rectangularLines feature must be enabled
VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02769YCreatePipelineCheckLineRasterizationexplicitVkPipelineRasterizationLineStateCreateInfoEXT(VK_EXT_line_rasterization)If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the bresenhamLines feature must be enabled
VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02770YCreatePipelineCheckLineRasterizationexplicitVkPipelineRasterizationLineStateCreateInfoEXT(VK_EXT_line_rasterization)If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the smoothLines feature must be enabled
VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-parameterYNoneimplicitVkPipelineRasterizationLineStateCreateInfoEXT(VK_EXT_line_rasterization)lineRasterizationMode must be a valid VkLineRasterizationModeEXT value
VUID-VkPipelineRasterizationLineStateCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineRasterizationLineStateCreateInfoEXT(VK_EXT_line_rasterization)sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT
VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02771YCreatePipelineCheckLineRasterizationexplicitVkPipelineRasterizationLineStateCreateInfoEXT(VK_EXT_line_rasterization)If stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02772YCreatePipelineCheckLineRasterizationexplicitVkPipelineRasterizationLineStateCreateInfoEXT(VK_EXT_line_rasterization)If stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02773YCreatePipelineCheckLineRasterizationexplicitVkPipelineRasterizationLineStateCreateInfoEXT(VK_EXT_line_rasterization)If stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02774YCreatePipelineCheckLineRasterizationexplicitVkPipelineRasterizationLineStateCreateInfoEXT(VK_EXT_line_rasterization)If stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-provokingVertexMode-04883YUsingProvokingVertexModeLastVertexExtWithoutEnabledexplicitVkPipelineRasterizationProvokingVertexStateCreateInfoEXT(VK_EXT_provoking_vertex)If provokingVertexMode is VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT, then the provokingVertexLast feature must be enabled
VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-provokingVertexMode-parameterYNoneimplicitVkPipelineRasterizationProvokingVertexStateCreateInfoEXT(VK_EXT_provoking_vertex)provokingVertexMode must be a valid VkProvokingVertexModeEXT value
VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineRasterizationProvokingVertexStateCreateInfoEXT(VK_EXT_provoking_vertex)sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT
VUID-VkPipelineRasterizationStateCreateInfo-cullMode-parameterNNoneimplicitVkPipelineRasterizationStateCreateInfocorecullMode must be a valid combination of VkCullModeFlagBits values
VUID-VkPipelineRasterizationStateCreateInfo-depthClampEnable-00782YNoneexplicitVkPipelineRasterizationStateCreateInfocoreIf the depthClamp feature is not enabled, depthClampEnable must be VK_FALSE
VUID-VkPipelineRasterizationStateCreateInfo-flags-zerobitmaskNNoneimplicitVkPipelineRasterizationStateCreateInfocoreflags must be 0
VUID-VkPipelineRasterizationStateCreateInfo-frontFace-parameterNNoneimplicitVkPipelineRasterizationStateCreateInfocorefrontFace must be a valid VkFrontFace value
VUID-VkPipelineRasterizationStateCreateInfo-pNext-pNextNNoneimplicitVkPipelineRasterizationStateCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineRasterizationConservativeStateCreateInfoEXT, VkPipelineRasterizationDepthClipStateCreateInfoEXT, VkPipelineRasterizationLineStateCreateInfoEXT, VkPipelineRasterizationProvokingVertexStateCreateInfoEXT, VkPipelineRasterizationStateRasterizationOrderAMD, or VkPipelineRasterizationStateStreamCreateInfoEXT
VUID-VkPipelineRasterizationStateCreateInfo-pointPolygons-04458YInvalidDepthStencilStateForReadOnlyLayoutexplicitVkPipelineRasterizationStateCreateInfo(VK_KHR_portability_subset)If 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-01413YPSOPolygonModeInvalidexplicitVkPipelineRasterizationStateCreateInfo!(VK_NV_fill_rectangle)If the fillModeNonSolid feature is not enabled, polygonMode must be VK_POLYGON_MODE_FILL
VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01414YPSOPolygonModeInvalidexplicitVkPipelineRasterizationStateCreateInfo(VK_NV_fill_rectangle)If the VK_NV_fill_rectangle extension is not enabled, polygonMode must not be VK_POLYGON_MODE_FILL_RECTANGLE_NV
VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01507YFillRectangleNVexplicitVkPipelineRasterizationStateCreateInfo(VK_NV_fill_rectangle)If the fillModeNonSolid feature is not enabled, polygonMode must be VK_POLYGON_MODE_FILL or VK_POLYGON_MODE_FILL_RECTANGLE_NV
VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-parameterNNoneimplicitVkPipelineRasterizationStateCreateInfocorepolygonMode must be a valid VkPolygonMode value
VUID-VkPipelineRasterizationStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineRasterizationStateCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
VUID-VkPipelineRasterizationStateCreateInfo-sType-uniqueNNoneimplicitVkPipelineRasterizationStateCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkPipelineRasterizationStateRasterizationOrderAMD-rasterizationOrder-parameterYNoneimplicitVkPipelineRasterizationStateRasterizationOrderAMD(VK_AMD_rasterization_order)rasterizationOrder must be a valid VkRasterizationOrderAMD value
VUID-VkPipelineRasterizationStateRasterizationOrderAMD-sType-sTypeYNoneimplicitVkPipelineRasterizationStateRasterizationOrderAMD(VK_AMD_rasterization_order)sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD
VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkPipelineRasterizationStateStreamCreateInfoEXT(VK_EXT_transform_feedback)flags must be 0
VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-geometryStreams-02324YUsingRasterizationStateStreamExtWithoutEnabledexplicitVkPipelineRasterizationStateStreamCreateInfoEXT(VK_EXT_transform_feedback)VkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreams must be enabled
VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02325YTestPipelineRasterizationStateStreamCreateInfoEXTexplicitVkPipelineRasterizationStateStreamCreateInfoEXT(VK_EXT_transform_feedback)rasterizationStream must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams
VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02326YTestPipelineRasterizationStateStreamCreateInfoEXTexplicitVkPipelineRasterizationStateStreamCreateInfoEXT(VK_EXT_transform_feedback)rasterizationStream must be zero if VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackRasterizationStreamSelect is VK_FALSE
VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineRasterizationStateStreamCreateInfoEXT(VK_EXT_transform_feedback)sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT
VUID-VkPipelineRenderingCreateInfo-sType-sTypeYNoneimplicitVkPipelineRenderingCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)sType must be VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO
VUID-VkPipelineRepresentativeFragmentTestStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineRepresentativeFragmentTestStateCreateInfoNV(VK_NV_representative_fragment_test)sType must be VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV
VUID-VkPipelineRobustnessCreateInfoEXT-images-parameterYNoneimplicitVkPipelineRobustnessCreateInfoEXT(VK_EXT_pipeline_robustness)images must be a valid VkPipelineRobustnessImageBehaviorEXT value
VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06926NNoneexplicitVkPipelineRobustnessCreateInfoEXT(VK_EXT_pipeline_robustness)If the pipelineRobustness feature is not enabled, storageBuffers must be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06927NNoneexplicitVkPipelineRobustnessCreateInfoEXT(VK_EXT_pipeline_robustness)If the pipelineRobustness feature is not enabled, uniformBuffers must be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06928NNoneexplicitVkPipelineRobustnessCreateInfoEXT(VK_EXT_pipeline_robustness)If the pipelineRobustness feature is not enabled, vertexInputs must be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-pipelineRobustness-06929NNoneexplicitVkPipelineRobustnessCreateInfoEXT(VK_EXT_pipeline_robustness)If the pipelineRobustness feature is not enabled, images must be VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06931NNoneexplicitVkPipelineRobustnessCreateInfoEXT(VK_EXT_pipeline_robustness)If the robustBufferAccess2 feature is not supported, storageBuffers must not be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06932NNoneexplicitVkPipelineRobustnessCreateInfoEXT(VK_EXT_pipeline_robustness)If the robustBufferAccess2 feature is not supported, uniformBuffers must not be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-robustBufferAccess2-06933NNoneexplicitVkPipelineRobustnessCreateInfoEXT(VK_EXT_pipeline_robustness)If the robustBufferAccess2 feature is not supported, vertexInputs must not be VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-robustImageAccess-06930NNoneexplicitVkPipelineRobustnessCreateInfoEXT(VK_EXT_pipeline_robustness)If the robustImageAccess feature is not supported, images must not be VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-robustImageAccess2-06934NNoneexplicitVkPipelineRobustnessCreateInfoEXT(VK_EXT_pipeline_robustness)If the robustImageAccess2 feature is not supported, images must not be VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineRobustnessCreateInfoEXT(VK_EXT_pipeline_robustness)sType must be VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT
VUID-VkPipelineRobustnessCreateInfoEXT-storageBuffers-parameterYNoneimplicitVkPipelineRobustnessCreateInfoEXT(VK_EXT_pipeline_robustness)storageBuffers must be a valid VkPipelineRobustnessBufferBehaviorEXT value
VUID-VkPipelineRobustnessCreateInfoEXT-uniformBuffers-parameterYNoneimplicitVkPipelineRobustnessCreateInfoEXT(VK_EXT_pipeline_robustness)uniformBuffers must be a valid VkPipelineRobustnessBufferBehaviorEXT value
VUID-VkPipelineRobustnessCreateInfoEXT-vertexInputs-parameterYNoneimplicitVkPipelineRobustnessCreateInfoEXT(VK_EXT_pipeline_robustness)vertexInputs must be a valid VkPipelineRobustnessBufferBehaviorEXT value
VUID-VkPipelineSampleLocationsStateCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineSampleLocationsStateCreateInfoEXT(VK_EXT_sample_locations)sType must be VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT
VUID-VkPipelineSampleLocationsStateCreateInfoEXT-sampleLocationsInfo-parameterNNoneimplicitVkPipelineSampleLocationsStateCreateInfoEXT(VK_EXT_sample_locations)sampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure
VUID-VkPipelineShaderStageCreateInfo-flags-02758YPipelineSubgroupSizeControlexplicitVkPipelineShaderStageCreateInfo(VK_VERSION_1_3,VK_EXT_subgroup_size_control)If 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-02759YPipelineSubgroupSizeControlexplicitVkPipelineShaderStageCreateInfo(VK_VERSION_1_3,VK_EXT_subgroup_size_control)If 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-02784YSubgroupSizeControlFeaturesNotEnabledexplicitVkPipelineShaderStageCreateInfo(VK_VERSION_1_3,VK_EXT_subgroup_size_control)If flags has the VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT flag set, the subgroupSizeControl feature must be enabled
VUID-VkPipelineShaderStageCreateInfo-flags-02785YSubgroupSizeControlFeaturesNotEnabledexplicitVkPipelineShaderStageCreateInfo(VK_VERSION_1_3,VK_EXT_subgroup_size_control)If flags has the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT flag set, the computeFullSubgroups feature must be enabled
VUID-VkPipelineShaderStageCreateInfo-flags-parameterYNoneimplicitVkPipelineShaderStageCreateInfocoreflags must be a valid combination of VkPipelineShaderStageCreateFlagBits values
VUID-VkPipelineShaderStageCreateInfo-graphicsPipelineLibrary-06717NNoneexplicitVkPipelineShaderStageCreateInfo!(VK_EXT_shader_module_identifier)+(VK_EXT_graphics_pipeline_library)If the graphicsPipelineLibrary feature is not enabled, module must be a valid VkShaderModule
VUID-VkPipelineShaderStageCreateInfo-maxClipDistances-00708NNoneexplicitVkPipelineShaderStageCreateInfocoreIf the identified entry point includes any variable in its interface that is declared with the ClipDistance BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxClipDistances
VUID-VkPipelineShaderStageCreateInfo-maxCombinedClipAndCullDistances-00710NNoneexplicitVkPipelineShaderStageCreateInfocoreIf the identified entry point includes any variables in its interface that are declared with the ClipDistance or CullDistance BuiltIn decoration, those variables must not have array sizes which sum to more than VkPhysicalDeviceLimits::maxCombinedClipAndCullDistances
VUID-VkPipelineShaderStageCreateInfo-maxCullDistances-00709NNoneexplicitVkPipelineShaderStageCreateInfocoreIf the identified entry point includes any variable in its interface that is declared with the CullDistance BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxCullDistances
VUID-VkPipelineShaderStageCreateInfo-maxSampleMaskWords-00711YLimitsMaxSampleMaskWordsexplicitVkPipelineShaderStageCreateInfocoreIf 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-06716NNoneexplicitVkPipelineShaderStageCreateInfo!(VK_EXT_graphics_pipeline_library+VK_EXT_shader_module_identifier)module must be a valid VkShaderModule
VUID-VkPipelineShaderStageCreateInfo-module-06718NNoneexplicitVkPipelineShaderStageCreateInfo!(VK_EXT_shader_module_identifier)+(VK_EXT_graphics_pipeline_library)If module is VK_NULL_HANDLE, there must be a valid VkShaderModuleCreateInfo structure in the pNext chain
VUID-VkPipelineShaderStageCreateInfo-module-parameterYShaderModuleIdentifierFeatures, ShaderModuleIdentifierimplicitVkPipelineShaderStageCreateInfocoreIf module is not VK_NULL_HANDLE, module must be a valid VkShaderModule handle
VUID-VkPipelineShaderStageCreateInfo-pName-00707YCreatePipelineMissingEntrypointexplicitVkPipelineShaderStageCreateInfocorepName must be the name of an OpEntryPoint in module with an execution model that matches stage
VUID-VkPipelineShaderStageCreateInfo-pName-parameterYCreatePipelineNullStagepNameimplicitVkPipelineShaderStageCreateInfocorepName must be a null-terminated UTF-8 string
VUID-VkPipelineShaderStageCreateInfo-pNext-02754YPipelineSubgroupSizeControlexplicitVkPipelineShaderStageCreateInfo(VK_VERSION_1_3,VK_EXT_subgroup_size_control)If 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-02755YMissingSubgroupSizeControlFeatureexplicitVkPipelineShaderStageCreateInfo(VK_VERSION_1_3,VK_EXT_subgroup_size_control)If 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-02756YTestComputeLocalWorkgroupSizeexplicitVkPipelineShaderStageCreateInfo(VK_VERSION_1_3,VK_EXT_subgroup_size_control)If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the pNext chain and stage is VK_SHADER_STAGE_COMPUTE_BIT, the local workgroup size of the shader must be less than or equal to the product of VkPipelineShaderStageRequiredSubgroupSizeCreateInfo::requiredSubgroupSize and maxComputeWorkgroupSubgroups
VUID-VkPipelineShaderStageCreateInfo-pNext-02757YTestComputeLocalWorkgroupSizeexplicitVkPipelineShaderStageCreateInfo(VK_VERSION_1_3,VK_EXT_subgroup_size_control)If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfo structure is included in the pNext chain, and flags has the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT flag set, the local workgroup size in the X dimension of the pipeline must be a multiple of VkPipelineShaderStageRequiredSubgroupSizeCreateInfo::requiredSubgroupSize
VUID-VkPipelineShaderStageCreateInfo-pNext-pNextYNoneimplicitVkPipelineShaderStageCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDebugUtilsObjectNameInfoEXT, VkPipelineRobustnessCreateInfoEXT, VkPipelineShaderStageModuleIdentifierCreateInfoEXT, VkPipelineShaderStageRequiredSubgroupSizeCreateInfo, VkShaderModuleCreateInfo, or VkShaderModuleValidationCacheCreateInfoEXT
VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-06719YCooperativeMatrixNV, CreatePipelineCheckShaderSpecializationAppliedexplicitVkPipelineShaderStageCreateInfo!(VK_EXT_shader_module_identifier)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-06849YNoneexplicitVkPipelineShaderStageCreateInfo(VK_EXT_shader_module_identifier)If a shader module identifier is not specified, the shader code used by the pipeline must be valid as described by the Khronos SPIR-V Specification after applying the specializations provided in pSpecializationInfo, if any, and then converting all specialization constants into fixed constants
VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-parameterNNoneimplicitVkPipelineShaderStageCreateInfocoreIf pSpecializationInfo is not NULL, pSpecializationInfo must be a valid pointer to a valid VkSpecializationInfo structure
VUID-VkPipelineShaderStageCreateInfo-sType-sTypeYNoneimplicitVkPipelineShaderStageCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
VUID-VkPipelineShaderStageCreateInfo-sType-uniqueYNoneimplicitVkPipelineShaderStageCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkPipelineShaderStageCreateInfo-stage-00704YValidateGeometryShaderEnabledexplicitVkPipelineShaderStageCreateInfocoreIf the geometryShader feature is not enabled, stage must not be VK_SHADER_STAGE_GEOMETRY_BIT
VUID-VkPipelineShaderStageCreateInfo-stage-00705YValidateTessellationShaderEnabledexplicitVkPipelineShaderStageCreateInfocoreIf the tessellationShader feature is not enabled, stage must not be VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
VUID-VkPipelineShaderStageCreateInfo-stage-00706NNoneexplicitVkPipelineShaderStageCreateInfocorestage must not be VK_SHADER_STAGE_ALL_GRAPHICS, or VK_SHADER_STAGE_ALL
VUID-VkPipelineShaderStageCreateInfo-stage-00712NNoneexplicitVkPipelineShaderStageCreateInfocoreIf 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-VkPipelineShaderStageCreateInfo-stage-00713NNoneexplicitVkPipelineShaderStageCreateInfocoreIf stage is VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, and the identified entry point has an OpExecutionMode instruction specifying a patch size with OutputVertices, the patch size must be greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize
VUID-VkPipelineShaderStageCreateInfo-stage-00714YCreatePipelineExceedMaxGeometryInstanceVertexCountexplicitVkPipelineShaderStageCreateInfocoreIf 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-00715YCreatePipelineExceedMaxGeometryInstanceVertexCountexplicitVkPipelineShaderStageCreateInfocoreIf 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-00718NNoneexplicitVkPipelineShaderStageCreateInfocoreIf stage is VK_SHADER_STAGE_FRAGMENT_BIT, the identified entry point must not include any output variables in its interface decorated with CullDistance
VUID-VkPipelineShaderStageCreateInfo-stage-02091YMeshShaderDisabledNV, MeshShaderEXTDisabledexplicitVkPipelineShaderStageCreateInfo(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShaders feature is not enabled, stage must not be VK_SHADER_STAGE_MESH_BIT_EXT
VUID-VkPipelineShaderStageCreateInfo-stage-02092YMeshShaderDisabledNV, MeshShaderEXTDisabledexplicitVkPipelineShaderStageCreateInfo(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShaders feature is not enabled, stage must not be VK_SHADER_STAGE_TASK_BIT_EXT
VUID-VkPipelineShaderStageCreateInfo-stage-02596NNoneexplicitVkPipelineShaderStageCreateInfocoreIf stage is either VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, or VK_SHADER_STAGE_GEOMETRY_BIT, and the identified entry point writes to Layer for any primitive, it must write the same value to Layer for all vertices of a given primitive
VUID-VkPipelineShaderStageCreateInfo-stage-02597NNoneexplicitVkPipelineShaderStageCreateInfocoreIf stage is either VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, or VK_SHADER_STAGE_GEOMETRY_BIT, and the identified entry point writes to ViewportIndex for any primitive, it must write the same value to ViewportIndex for all vertices of a given primitive
VUID-VkPipelineShaderStageCreateInfo-stage-06685NNoneexplicitVkPipelineShaderStageCreateInfocoreIf stage is VK_SHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes to FragDepth in any execution path, all execution paths that are not exclusive to helper invocations must either discard the fragment, or write or initialize the value of FragDepth
VUID-VkPipelineShaderStageCreateInfo-stage-06686NNoneexplicitVkPipelineShaderStageCreateInfo(VK_EXT_shader_stencil_export)If 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-06844YShaderModuleIdentifierexplicitVkPipelineShaderStageCreateInfo(VK_EXT_shader_module_identifier)+(VK_EXT_graphics_pipeline_library)If a shader module identifier is specified for this stage, a VkShaderModuleCreateInfo structure must not be present in the pNext chain
VUID-VkPipelineShaderStageCreateInfo-stage-06845YShaderModuleIdentifierexplicitVkPipelineShaderStageCreateInfo(VK_EXT_shader_module_identifier)+(VK_EXT_graphics_pipeline_library)If a shader module identifier is not specified for this stage, module must be a valid VkShaderModule or there must be a valid VkShaderModuleCreateInfo structure in the pNext chain
VUID-VkPipelineShaderStageCreateInfo-stage-06846YDescriptorBufferInvalidExtensionCombination, ShaderModuleIdentifierFeaturesexplicitVkPipelineShaderStageCreateInfo(VK_EXT_shader_module_identifier)+(VK_EXT_graphics_pipeline_library)If a shader module identifier is not specified for this stage, and the graphicsPipelineLibrary feature is not enabled, module must be a valid VkShaderModule
VUID-VkPipelineShaderStageCreateInfo-stage-06847YNoneexplicitVkPipelineShaderStageCreateInfo(VK_EXT_shader_module_identifier)+!(VK_EXT_graphics_pipeline_library)If a shader identifier is not specified for this stage, module must be a valid VkShaderModule
VUID-VkPipelineShaderStageCreateInfo-stage-06848YShaderModuleIdentifierexplicitVkPipelineShaderStageCreateInfo(VK_EXT_shader_module_identifier)If a shader module identifier is specified for this stage, module must be VK_NULL_HANDLE
VUID-VkPipelineShaderStageCreateInfo-stage-parameterYNoneimplicitVkPipelineShaderStageCreateInfocorestage must be a valid VkShaderStageFlagBits value
VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-identifierSize-06852YShaderModuleIdentifierexplicitVkPipelineShaderStageModuleIdentifierCreateInfoEXT(VK_EXT_shader_module_identifier)identifierSize must be less-or-equal to VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT
VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pIdentifier-parameterYNoneimplicitVkPipelineShaderStageModuleIdentifierCreateInfoEXT(VK_EXT_shader_module_identifier)If identifierSize is not 0, pIdentifier must be a valid pointer to an array of identifierSize uint8_t values
VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pNext-06850YShaderModuleIdentifierFeaturesexplicitVkPipelineShaderStageModuleIdentifierCreateInfoEXT(VK_EXT_shader_module_identifier)If this structure is included in a pNext chain and identifierSize is not equal to 0, the shaderModuleIdentifier feature must be enabled
VUID-VkPipelineShaderStageModuleIdentifierCreateInfoEXT-pNext-06851YShaderModuleIdentifierexplicitVkPipelineShaderStageModuleIdentifierCreateInfoEXT(VK_EXT_shader_module_identifier)If 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-sTypeYNoneimplicitVkPipelineShaderStageModuleIdentifierCreateInfoEXT(VK_EXT_shader_module_identifier)sType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT
VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02760YPipelineSubgroupSizeControlexplicitVkPipelineShaderStageRequiredSubgroupSizeCreateInfo(VK_VERSION_1_3,VK_EXT_subgroup_size_control)requiredSubgroupSize must be a power-of-two integer
VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02761YPipelineSubgroupSizeControlexplicitVkPipelineShaderStageRequiredSubgroupSizeCreateInfo(VK_VERSION_1_3,VK_EXT_subgroup_size_control)requiredSubgroupSize must be greater or equal to minSubgroupSize
VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-requiredSubgroupSize-02762YPipelineSubgroupSizeControlexplicitVkPipelineShaderStageRequiredSubgroupSizeCreateInfo(VK_VERSION_1_3,VK_EXT_subgroup_size_control)requiredSubgroupSize must be less than or equal to maxSubgroupSize
VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfo-sType-sTypeYNoneimplicitVkPipelineShaderStageRequiredSubgroupSizeCreateInfo(VK_VERSION_1_3,VK_EXT_subgroup_size_control)sType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO
VUID-VkPipelineTessellationDomainOriginStateCreateInfo-domainOrigin-parameterYNoneimplicitVkPipelineTessellationDomainOriginStateCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)domainOrigin must be a valid VkTessellationDomainOrigin value
VUID-VkPipelineTessellationDomainOriginStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineTessellationDomainOriginStateCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)sType must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO
VUID-VkPipelineTessellationStateCreateInfo-flags-zerobitmaskYNoneimplicitVkPipelineTessellationStateCreateInfocoreflags must be 0
VUID-VkPipelineTessellationStateCreateInfo-pNext-pNextYUsePnextOnlyStructWithoutExtensionEnabledimplicitVkPipelineTessellationStateCreateInfocorepNext must be NULL or a pointer to a valid instance of VkPipelineTessellationDomainOriginStateCreateInfo
VUID-VkPipelineTessellationStateCreateInfo-patchControlPoints-01214YCreatePipelineTessErrorsexplicitVkPipelineTessellationStateCreateInfocorepatchControlPoints must be greater than zero and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize
VUID-VkPipelineTessellationStateCreateInfo-sType-sTypeYCreatePipelineTessErrorsimplicitVkPipelineTessellationStateCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
VUID-VkPipelineTessellationStateCreateInfo-sType-uniqueYNoneimplicitVkPipelineTessellationStateCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-pVertexBindingDivisors-parameterYNoneimplicitVkPipelineVertexInputDivisorStateCreateInfoEXT(VK_EXT_vertex_attribute_divisor)pVertexBindingDivisors must be a valid pointer to an array of vertexBindingDivisorCount VkVertexInputBindingDivisorDescriptionEXT structures
VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineVertexInputDivisorStateCreateInfoEXT(VK_EXT_vertex_attribute_divisor)sType must be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT
VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-vertexBindingDivisorCount-arraylengthYNoneimplicitVkPipelineVertexInputDivisorStateCreateInfoEXT(VK_EXT_vertex_attribute_divisor)vertexBindingDivisorCount must be greater than 0
VUID-VkPipelineVertexInputStateCreateInfo-binding-00615YInvalidVertexAttributeDescriptions, VUID_VkVertexInputAttributeDescription_location_00620, VUID_VkVertexInputAttributeDescription_binding_00621explicitVkPipelineVertexInputStateCreateInfocoreFor every binding specified by each element of pVertexAttributeDescriptions, a VkVertexInputBindingDescription must exist in pVertexBindingDescriptions with the same value of binding
VUID-VkPipelineVertexInputStateCreateInfo-flags-zerobitmaskYNoneimplicitVkPipelineVertexInputStateCreateInfocoreflags must be 0
VUID-VkPipelineVertexInputStateCreateInfo-pNext-pNextYNoneimplicitVkPipelineVertexInputStateCreateInfocorepNext must be NULL or a pointer to a valid instance of VkPipelineVertexInputDivisorStateCreateInfoEXT
VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-00617YInvalidVertexAttributeDescriptionsexplicitVkPipelineVertexInputStateCreateInfocoreAll elements of pVertexAttributeDescriptions must describe distinct attribute locations
VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-parameterYNoneimplicitVkPipelineVertexInputStateCreateInfocoreIf vertexAttributeDescriptionCount is not 0, pVertexAttributeDescriptions must be a valid pointer to an array of vertexAttributeDescriptionCount valid VkVertexInputAttributeDescription structures
VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-00616YInvalidVertexBindingDescriptions, CreatePipelineAttribBindingConflictexplicitVkPipelineVertexInputStateCreateInfocoreAll elements of pVertexBindingDescriptions must describe distinct binding numbers
VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-parameterYNoneimplicitVkPipelineVertexInputStateCreateInfocoreIf vertexBindingDescriptionCount is not 0, pVertexBindingDescriptions must be a valid pointer to an array of vertexBindingDescriptionCount valid VkVertexInputBindingDescription structures
VUID-VkPipelineVertexInputStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineVertexInputStateCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
VUID-VkPipelineVertexInputStateCreateInfo-sType-uniqueYNoneimplicitVkPipelineVertexInputStateCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkPipelineVertexInputStateCreateInfo-vertexAttributeDescriptionCount-00614YInvalidVertexAttributeDescriptionsexplicitVkPipelineVertexInputStateCreateInfocorevertexAttributeDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributes
VUID-VkPipelineVertexInputStateCreateInfo-vertexBindingDescriptionCount-00613YInvalidVertexBindingDescriptionsexplicitVkPipelineVertexInputStateCreateInfocorevertexBindingDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-pCustomSampleOrders-02234NNoneexplicitVkPipelineViewportCoarseSampleOrderStateCreateInfoNV(VK_NV_shading_rate_image)The array pCustomSampleOrders must not contain two structures with matching values for both the shadingRate and sampleCount members
VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-pCustomSampleOrders-parameterYNoneimplicitVkPipelineViewportCoarseSampleOrderStateCreateInfoNV(VK_NV_shading_rate_image)If customSampleOrderCount is not 0, pCustomSampleOrders must be a valid pointer to an array of customSampleOrderCount valid VkCoarseSampleOrderCustomNV structures
VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineViewportCoarseSampleOrderStateCreateInfoNV(VK_NV_shading_rate_image)sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV
VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-02072YNoneexplicitVkPipelineViewportCoarseSampleOrderStateCreateInfoNV(VK_NV_shading_rate_image)If sampleOrderType is not VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, customSamplerOrderCount must be 0
VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-parameterYNoneimplicitVkPipelineViewportCoarseSampleOrderStateCreateInfoNV(VK_NV_shading_rate_image)sampleOrderType must be a valid VkCoarseSampleOrderTypeNV value
VUID-VkPipelineViewportDepthClipControlCreateInfoEXT-negativeOneToOne-06470YInvalidPipelineDepthClipControlFeatureDisableexplicitVkPipelineViewportDepthClipControlCreateInfoEXT(VK_EXT_depth_clip_control)If depthClipControl is not enabled, negativeOneToOne must be VK_FALSE
VUID-VkPipelineViewportDepthClipControlCreateInfoEXT-sType-sTypeYNoneimplicitVkPipelineViewportDepthClipControlCreateInfoEXT(VK_EXT_depth_clip_control)sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT
VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02027YExclusiveScissorNVexplicitVkPipelineViewportExclusiveScissorStateCreateInfoNV(VK_NV_scissor_exclusive)If the multiViewport feature is not enabled, exclusiveScissorCount must be 0 or 1
VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02028YExclusiveScissorNVexplicitVkPipelineViewportExclusiveScissorStateCreateInfoNV(VK_NV_scissor_exclusive)exclusiveScissorCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports
VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02029YExclusiveScissorNVexplicitVkPipelineViewportExclusiveScissorStateCreateInfoNV(VK_NV_scissor_exclusive)exclusiveScissorCount must be 0 or greater than or equal to the viewportCount member of VkPipelineViewportStateCreateInfo
VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineViewportExclusiveScissorStateCreateInfoNV(VK_NV_scissor_exclusive)sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV
VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineViewportShadingRateImageStateCreateInfoNV(VK_NV_shading_rate_image)sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV
VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-shadingRateImageEnable-02056YShadingRateImageNVexplicitVkPipelineViewportShadingRateImageStateCreateInfoNV(VK_NV_shading_rate_image)If shadingRateImageEnable is VK_TRUE, viewportCount must be greater or equal to the viewportCount member of VkPipelineViewportStateCreateInfo
VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02054YShadingRateImageNVexplicitVkPipelineViewportShadingRateImageStateCreateInfoNV(VK_NV_shading_rate_image)If the multiViewport feature is not enabled, viewportCount must be 0 or 1
VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02055YNoneexplicitVkPipelineViewportShadingRateImageStateCreateInfoNV(VK_NV_shading_rate_image)viewportCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports
VUID-VkPipelineViewportStateCreateInfo-flags-zerobitmaskYNoneimplicitVkPipelineViewportStateCreateInfocoreflags must be 0
VUID-VkPipelineViewportStateCreateInfo-offset-02822YValidateViewportStateScissorOverflowexplicitVkPipelineViewportStateCreateInfocoreEvaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors
VUID-VkPipelineViewportStateCreateInfo-offset-02823YValidateViewportStateScissorOverflowexplicitVkPipelineViewportStateCreateInfocoreEvaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors
VUID-VkPipelineViewportStateCreateInfo-pNext-pNextYNoneimplicitVkPipelineViewportStateCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineViewportCoarseSampleOrderStateCreateInfoNV, VkPipelineViewportDepthClipControlCreateInfoEXT, VkPipelineViewportExclusiveScissorStateCreateInfoNV, VkPipelineViewportShadingRateImageStateCreateInfoNV, VkPipelineViewportSwizzleStateCreateInfoNV, or VkPipelineViewportWScalingStateCreateInfoNV
VUID-VkPipelineViewportStateCreateInfo-sType-sTypeYNoneimplicitVkPipelineViewportStateCreateInfocoresType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
VUID-VkPipelineViewportStateCreateInfo-sType-uniqueYNoneimplicitVkPipelineViewportStateCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkPipelineViewportStateCreateInfo-scissorCount-01217YPSOViewportStateTests, ShadingRateImageNVexplicitVkPipelineViewportStateCreateInfocoreIf the multiViewport feature is not enabled, scissorCount must not be greater than 1
VUID-VkPipelineViewportStateCreateInfo-scissorCount-01219YPSOViewportStateMultiViewportTestsexplicitVkPipelineViewportStateCreateInfocorescissorCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports
VUID-VkPipelineViewportStateCreateInfo-scissorCount-01220YPSOViewportStateMultiViewportTests, PSOViewportStateTestsexplicitVkPipelineViewportStateCreateInfo!(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)scissorCount and viewportCount must be identical
VUID-VkPipelineViewportStateCreateInfo-scissorCount-04134YInvalidViewportCountWithExtendedDynamicState, IncompatibleScissorCountAndViewportCountexplicitVkPipelineViewportStateCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the graphics pipeline is being created without VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT set then scissorCount and viewportCount must be identical
VUID-VkPipelineViewportStateCreateInfo-scissorCount-04136YTestCreatingPipelineWithScissorWithCountexplicitVkPipelineViewportStateCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the graphics pipeline is being created with VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT set then scissorCount must be 0, otherwise it must be greater than 0
VUID-VkPipelineViewportStateCreateInfo-scissorCount-arraylengthYPSOViewportStateMultiViewportTests, PSOViewportStateTestsimplicitVkPipelineViewportStateCreateInfo!(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)scissorCount must be greater than 0
VUID-VkPipelineViewportStateCreateInfo-viewportCount-01216YPSOViewportStateTests, ShadingRateImageNVexplicitVkPipelineViewportStateCreateInfocoreIf the multiViewport feature is not enabled, viewportCount must not be greater than 1
VUID-VkPipelineViewportStateCreateInfo-viewportCount-01218YPSOViewportStateMultiViewportTestsexplicitVkPipelineViewportStateCreateInfocoreviewportCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports
VUID-VkPipelineViewportStateCreateInfo-viewportCount-04135YInvalidViewportCountWithExtendedDynamicStateexplicitVkPipelineViewportStateCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the graphics pipeline is being created with VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT set then viewportCount must be 0, otherwise it must be greater than 0
VUID-VkPipelineViewportStateCreateInfo-viewportCount-arraylengthYPSOViewportStateMultiViewportTests, PSOViewportStateTestsimplicitVkPipelineViewportStateCreateInfo!(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)viewportCount must be greater than 0
VUID-VkPipelineViewportStateCreateInfo-viewportWScalingEnable-01726YViewportWScalingNVexplicitVkPipelineViewportStateCreateInfo(VK_NV_clip_space_w_scaling)If 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-02821YValidateViewportStateScissorNegativeexplicitVkPipelineViewportStateCreateInfocoreThe x and y members of offset member of any element of pScissors must be greater than or equal to 0
VUID-VkPipelineViewportSwizzleStateCreateInfoNV-flags-zerobitmaskYNoneimplicitVkPipelineViewportSwizzleStateCreateInfoNV(VK_NV_viewport_swizzle)flags must be 0
VUID-VkPipelineViewportSwizzleStateCreateInfoNV-pViewportSwizzles-parameterYNoneimplicitVkPipelineViewportSwizzleStateCreateInfoNV(VK_NV_viewport_swizzle)pViewportSwizzles must be a valid pointer to an array of viewportCount valid VkViewportSwizzleNV structures
VUID-VkPipelineViewportSwizzleStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineViewportSwizzleStateCreateInfoNV(VK_NV_viewport_swizzle)sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV
VUID-VkPipelineViewportSwizzleStateCreateInfoNV-viewportCount-01215YViewportSwizzleNVexplicitVkPipelineViewportSwizzleStateCreateInfoNV(VK_NV_viewport_swizzle)viewportCount must be greater than or equal to the viewportCount set in VkPipelineViewportStateCreateInfo
VUID-VkPipelineViewportSwizzleStateCreateInfoNV-viewportCount-arraylengthYNoneimplicitVkPipelineViewportSwizzleStateCreateInfoNV(VK_NV_viewport_swizzle)viewportCount must be greater than 0
VUID-VkPipelineViewportWScalingStateCreateInfoNV-sType-sTypeYNoneimplicitVkPipelineViewportWScalingStateCreateInfoNV(VK_NV_clip_space_w_scaling)sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV
VUID-VkPipelineViewportWScalingStateCreateInfoNV-viewportCount-arraylengthYNoneimplicitVkPipelineViewportWScalingStateCreateInfoNV(VK_NV_clip_space_w_scaling)viewportCount must be greater than 0
VUID-VkPresentFrameTokenGGP-frameToken-02680NNoneexplicitVkPresentFrameTokenGGP(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GGP_frame_token)frameToken must be a valid GgpFrameToken
VUID-VkPresentFrameTokenGGP-sType-sTypeYNoneimplicitVkPresentFrameTokenGGP(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GGP_frame_token)sType must be VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP
VUID-VkPresentIdKHR-pPresentIds-parameterYNoneimplicitVkPresentIdKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_present_id)If pPresentIds is not NULL, pPresentIds must be a valid pointer to an array of swapchainCount uint64_t values
VUID-VkPresentIdKHR-presentIds-04999YPresentIdWaitexplicitVkPresentIdKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_present_id)Each presentIds entry must be greater than any previous presentIds entry passed for the associated pSwapchains entry
VUID-VkPresentIdKHR-sType-sTypeYNoneimplicitVkPresentIdKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_present_id)sType must be VK_STRUCTURE_TYPE_PRESENT_ID_KHR
VUID-VkPresentIdKHR-swapchainCount-04998YPresentIdWaitexplicitVkPresentIdKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_present_id)swapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where this VkPresentIdKHR is in the pNext chain of the VkPresentInfoKHR structure
VUID-VkPresentIdKHR-swapchainCount-arraylengthYPresentIdWaitimplicitVkPresentIdKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_present_id)swapchainCount must be greater than 0
VUID-VkPresentInfoKHR-commonparentYNoneimplicitVkPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)Both 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-01296YUseSwapchainImageBeforeWait, DisplayPresentInfoSrcRect, PipelineMissingDynamicStateDiscardRectangle, GetSwapchainImagesCountButNotImagesexplicitVkPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+!(VK_KHR_shared_presentable_image)Each 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 layout at the time the operation is executed on a VkDevice
VUID-VkPresentInfoKHR-pImageIndices-01430YNoneexplicitVkPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_shared_presentable_image)Each 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-parameterYNoneimplicitVkPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)pImageIndices must be a valid pointer to an array of swapchainCount uint32_t values
VUID-VkPresentInfoKHR-pNext-06235YPresentIdWaitFeaturesexplicitVkPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_present_id)If 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-pNextYNoneimplicitVkPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceGroupPresentInfoKHR, VkDisplayPresentInfoKHR, VkPresentFrameTokenGGP, VkPresentIdKHR, VkPresentRegionsKHR, or VkPresentTimesInfoGOOGLE
VUID-VkPresentInfoKHR-pResults-parameterYNoneimplicitVkPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)If pResults is not NULL, pResults must be a valid pointer to an array of swapchainCount VkResult values
VUID-VkPresentInfoKHR-pSwapchains-parameterYNoneimplicitVkPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)pSwapchains must be a valid pointer to an array of swapchainCount valid VkSwapchainKHR handles
VUID-VkPresentInfoKHR-pWaitSemaphores-parameterYNoneimplicitVkPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)If waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles
VUID-VkPresentInfoKHR-sType-sTypeYNoneimplicitVkPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)sType must be VK_STRUCTURE_TYPE_PRESENT_INFO_KHR
VUID-VkPresentInfoKHR-sType-uniqueYNoneimplicitVkPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)The sType value of each struct in the pNext chain must be unique
VUID-VkPresentInfoKHR-swapchainCount-arraylengthYNoneimplicitVkPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)swapchainCount must be greater than 0
VUID-VkPresentRegionKHR-pRectangles-parameterNNoneimplicitVkPresentRegionKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)If 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-parameterYNoneimplicitVkPresentRegionsKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)If pRegions is not NULL, pRegions must be a valid pointer to an array of swapchainCount valid VkPresentRegionKHR structures
VUID-VkPresentRegionsKHR-sType-sTypeYNoneimplicitVkPresentRegionsKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)sType must be VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR
VUID-VkPresentRegionsKHR-swapchainCount-01260YNoneexplicitVkPresentRegionsKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)swapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where VkPresentInfoKHR is included in the pNext chain of this VkPresentRegionsKHR structure
VUID-VkPresentRegionsKHR-swapchainCount-arraylengthYNoneimplicitVkPresentRegionsKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)swapchainCount must be greater than 0
VUID-VkPresentTimesInfoGOOGLE-pTimes-parameterYNoneimplicitVkPresentTimesInfoGOOGLE(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)If pTimes is not NULL, pTimes must be a valid pointer to an array of swapchainCount VkPresentTimeGOOGLE structures
VUID-VkPresentTimesInfoGOOGLE-sType-sTypeYNoneimplicitVkPresentTimesInfoGOOGLE(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)sType must be VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE
VUID-VkPresentTimesInfoGOOGLE-swapchainCount-01247YNoneexplicitVkPresentTimesInfoGOOGLE(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)swapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where VkPresentInfoKHR is included in the pNext chain of this VkPresentTimesInfoGOOGLE structure
VUID-VkPresentTimesInfoGOOGLE-swapchainCount-arraylengthYNoneimplicitVkPresentTimesInfoGOOGLE(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)swapchainCount must be greater than 0
VUID-VkPrivateDataSlotCreateInfo-flags-zerobitmaskYNoneimplicitVkPrivateDataSlotCreateInfo(VK_VERSION_1_3,VK_EXT_private_data)flags must be 0
VUID-VkPrivateDataSlotCreateInfo-pNext-pNextYNoneimplicitVkPrivateDataSlotCreateInfo(VK_VERSION_1_3,VK_EXT_private_data)pNext must be NULL
VUID-VkPrivateDataSlotCreateInfo-sType-sTypeYNoneimplicitVkPrivateDataSlotCreateInfo(VK_VERSION_1_3,VK_EXT_private_data)sType must be VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO
VUID-VkProtectedSubmitInfo-sType-sTypeYNoneimplicitVkProtectedSubmitInfo(VK_VERSION_1_1)sType must be VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO
VUID-VkPushConstantRange-offset-00294YInvalidPushConstantRange, InvalidPushConstantsexplicitVkPushConstantRangecoreoffset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize
VUID-VkPushConstantRange-offset-00295YInvalidPushConstantRange, InvalidPushConstantsexplicitVkPushConstantRangecoreoffset must be a multiple of 4
VUID-VkPushConstantRange-size-00296YInvalidPushConstantRange, InvalidPushConstantsexplicitVkPushConstantRangecoresize must be greater than 0
VUID-VkPushConstantRange-size-00297YInvalidPushConstantRange, InvalidPushConstantsexplicitVkPushConstantRangecoresize must be a multiple of 4
VUID-VkPushConstantRange-size-00298YInvalidPushConstantRange, InvalidPushConstantsexplicitVkPushConstantRangecoresize must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus offset
VUID-VkPushConstantRange-stageFlags-parameterYNoneimplicitVkPushConstantRangecorestageFlags must be a valid combination of VkShaderStageFlagBits values
VUID-VkPushConstantRange-stageFlags-requiredbitmaskYInvalidPushConstantRange, InvalidPushConstantsimplicitVkPushConstantRangecorestageFlags must not be 0
VUID-VkQueryPoolCreateInfo-flags-zerobitmaskYNoneimplicitVkQueryPoolCreateInfocoreflags must be 0
VUID-VkQueryPoolCreateInfo-meshShaderQueries-07068NNoneexplicitVkQueryPoolCreateInfo(VK_EXT_mesh_shader)If the meshShaderQueries feature is not enabled, queryType must not be VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT
VUID-VkQueryPoolCreateInfo-meshShaderQueries-07069NNoneexplicitVkQueryPoolCreateInfo(VK_EXT_mesh_shader)If the meshShaderQueries feature is not enabled, and queryType is VK_QUERY_TYPE_PIPELINE_STATISTICS, pipelineStatistics must not contain VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT or VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT
VUID-VkQueryPoolCreateInfo-pNext-pNextYNoneimplicitVkQueryPoolCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkQueryPoolPerformanceCreateInfoKHR, VkQueryPoolPerformanceQueryCreateInfoINTEL, VkVideoDecodeH264ProfileInfoEXT, VkVideoDecodeH265ProfileInfoEXT, VkVideoDecodeUsageInfoKHR, VkVideoEncodeH264ProfileInfoEXT, VkVideoEncodeH265ProfileInfoEXT, VkVideoEncodeUsageInfoKHR, or VkVideoProfileInfoKHR
VUID-VkQueryPoolCreateInfo-queryCount-02763YInvalidQueryPoolCreateexplicitVkQueryPoolCreateInfocorequeryCount must be greater than 0
VUID-VkQueryPoolCreateInfo-queryType-00791YInvalidQueryPoolCreateexplicitVkQueryPoolCreateInfocoreIf the pipelineStatisticsQuery feature is not enabled, queryType must not be VK_QUERY_TYPE_PIPELINE_STATISTICS
VUID-VkQueryPoolCreateInfo-queryType-00792YNoneexplicitVkQueryPoolCreateInfocoreIf queryType is VK_QUERY_TYPE_PIPELINE_STATISTICS, pipelineStatistics must be a valid combination of VkQueryPipelineStatisticFlagBits values
VUID-VkQueryPoolCreateInfo-queryType-03222YQueryPerformanceCreationexplicitVkQueryPoolCreateInfo(VK_KHR_performance_query)If queryType is VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the pNext chain must include a VkQueryPoolPerformanceCreateInfoKHR structure
VUID-VkQueryPoolCreateInfo-queryType-parameterYNoneimplicitVkQueryPoolCreateInfocorequeryType must be a valid VkQueryType value
VUID-VkQueryPoolCreateInfo-sType-sTypeYNoneimplicitVkQueryPoolCreateInfocoresType must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
VUID-VkQueryPoolCreateInfo-sType-uniqueYNoneimplicitVkQueryPoolCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkQueryPoolPerformanceCreateInfoKHR-counterIndexCount-arraylengthYNoneimplicitVkQueryPoolPerformanceCreateInfoKHR(VK_KHR_performance_query)counterIndexCount must be greater than 0
VUID-VkQueryPoolPerformanceCreateInfoKHR-pCounterIndices-03321YQueryPerformanceCreationexplicitVkQueryPoolPerformanceCreateInfoKHR(VK_KHR_performance_query)Each element of pCounterIndices must be in the range of counters reported by vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR for the queue family specified in queueFamilyIndex
VUID-VkQueryPoolPerformanceCreateInfoKHR-pCounterIndices-parameterYNoneimplicitVkQueryPoolPerformanceCreateInfoKHR(VK_KHR_performance_query)pCounterIndices must be a valid pointer to an array of counterIndexCount uint32_t values
VUID-VkQueryPoolPerformanceCreateInfoKHR-performanceCounterQueryPools-03237YNoneexplicitVkQueryPoolPerformanceCreateInfoKHR(VK_KHR_performance_query)The performanceCounterQueryPools feature must be enabled
VUID-VkQueryPoolPerformanceCreateInfoKHR-queueFamilyIndex-03236YNoneexplicitVkQueryPoolPerformanceCreateInfoKHR(VK_KHR_performance_query)queueFamilyIndex must be a valid queue family index of the device
VUID-VkQueryPoolPerformanceCreateInfoKHR-sType-sTypeYNoneimplicitVkQueryPoolPerformanceCreateInfoKHR(VK_KHR_performance_query)sType must be VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR
VUID-VkQueryPoolPerformanceQueryCreateInfoINTEL-performanceCountersSampling-parameterYNoneimplicitVkQueryPoolPerformanceQueryCreateInfoINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)performanceCountersSampling must be a valid VkQueryPoolSamplingModeINTEL value
VUID-VkQueryPoolPerformanceQueryCreateInfoINTEL-sType-sTypeYNoneimplicitVkQueryPoolPerformanceQueryCreateInfoINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)sType must be VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL
VUID-VkQueueFamilyCheckpointProperties2NV-sType-sTypeYNoneimplicitVkQueueFamilyCheckpointProperties2NV(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_NV_device_diagnostic_checkpoints)+(VK_VERSION_1_3,VK_KHR_synchronization2)sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV
VUID-VkQueueFamilyCheckpointPropertiesNV-sType-sTypeYNoneimplicitVkQueueFamilyCheckpointPropertiesNV(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_NV_device_diagnostic_checkpoints)sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV
VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-priorities-parameterNNoneimplicitVkQueueFamilyGlobalPriorityPropertiesKHR(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_global_priority_query,VK_KHR_global_priority)Any given element of priorities must be a valid VkQueueGlobalPriorityKHR value
VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-sType-sTypeYNoneimplicitVkQueueFamilyGlobalPriorityPropertiesKHR(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_global_priority_query,VK_KHR_global_priority)sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR
VUID-VkQueueFamilyProperties2-pNext-pNextYNoneimplicitVkQueueFamilyProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkQueueFamilyCheckpointProperties2NV, VkQueueFamilyCheckpointPropertiesNV, VkQueueFamilyGlobalPriorityPropertiesKHR, VkQueueFamilyQueryResultStatusPropertiesKHR, or VkQueueFamilyVideoPropertiesKHR
VUID-VkQueueFamilyProperties2-sType-sTypeYNoneimplicitVkQueueFamilyProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2
VUID-VkQueueFamilyProperties2-sType-uniqueYNoneimplicitVkQueueFamilyProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)The sType value of each struct in the pNext chain must be unique
VUID-VkQueueFamilyQueryResultStatusPropertiesKHR-sType-sTypeYNoneimplicitVkQueueFamilyQueryResultStatusPropertiesKHR(VK_KHR_video_queue)sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
VUID-VkQueueFamilyVideoPropertiesKHR-sType-sTypeYNoneimplicitVkQueueFamilyVideoPropertiesKHR(VK_KHR_video_queue)sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR
VUID-VkRayTracingPipelineCreateInfoKHR-commonparentYNoneimplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)Both 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-02904YRayTracingPipelineCreateInfoKHRexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_device_generated_commands)flags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
VUID-VkRayTracingPipelineCreateInfoKHR-flags-03421YRayTracingPipelineCreateInfoKHRexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid handle to a ray tracing VkPipeline
VUID-VkRayTracingPipelineCreateInfoKHR-flags-03422YRayTracingPipelineCreateInfoKHRexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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-03423YNoneexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is not -1, basePipelineHandle must be VK_NULL_HANDLE
VUID-VkRayTracingPipelineCreateInfoKHR-flags-03424YNoneexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is not VK_NULL_HANDLE, basePipelineIndex must be -1
VUID-VkRayTracingPipelineCreateInfoKHR-flags-03465YRayTracingPipelineCreateInfoKHRexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_pipeline_library)If flags includes VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, pLibraryInterface must not be NULL
VUID-VkRayTracingPipelineCreateInfoKHR-flags-03470YRayTracingPipelineCreateInfoKHRexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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-03471YRayTracingPipelineCreateInfoKHRexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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-03594YNoneexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_pipeline_library)If 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-03598YNoneexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If flags includes VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR, rayTracingPipelineShaderGroupHandleCaptureReplay must be enabled
VUID-VkRayTracingPipelineCreateInfoKHR-flags-04718YRayTracingLibraryFlagsexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_pipeline_library)If 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-04719YRayTracingLibraryFlagsexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_pipeline_library)If 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-04720YRayTracingLibraryFlagsexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_pipeline_library)If 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-04721YRayTracingLibraryFlagsexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_pipeline_library)If 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-04722YRayTracingLibraryFlagsexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_pipeline_library)If 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-04723YRayTracingLibraryFlagsexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_pipeline_library)If 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-06546YRayTracingInvalidPipelineFlagsexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)flags 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-07403NNoneexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_opacity_micromap)If 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-parameterYNoneimplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)flags must be a valid combination of VkPipelineCreateFlagBits values
VUID-VkRayTracingPipelineCreateInfoKHR-layout-03427YNoneexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)layout must be consistent with all shaders specified in pStages
VUID-VkRayTracingPipelineCreateInfoKHR-layout-03428YRayTracingPipelineMaxResourcesexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The 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-parameterYNoneimplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)layout must be a valid VkPipelineLayout handle
VUID-VkRayTracingPipelineCreateInfoKHR-maxPipelineRayRecursionDepth-03589YNoneexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)maxPipelineRayRecursionDepth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayRecursionDepth
VUID-VkRayTracingPipelineCreateInfoKHR-pDynamicState-parameterYNoneimplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If pDynamicState is not NULL, pDynamicState must be a valid pointer to a valid VkPipelineDynamicStateCreateInfo structure
VUID-VkRayTracingPipelineCreateInfoKHR-pDynamicStates-03602YRayTracingPipelineCreateInfoKHRexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)Any element of the pDynamicStates member of pDynamicState must be VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR
VUID-VkRayTracingPipelineCreateInfoKHR-pGroups-parameterYNoneimplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If groupCount is not 0, pGroups must be a valid pointer to an array of groupCount valid VkRayTracingShaderGroupCreateInfoKHR structures
VUID-VkRayTracingPipelineCreateInfoKHR-pLibraries-03591YNoneexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_pipeline_library)Each element of pLibraryInfo->pLibraries must have been created with the value of maxPipelineRayRecursionDepth equal to that in this pipeline
VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03590YRayTracingPipelineCreateInfoKHRexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_pipeline_library)If pLibraryInfo is not NULL and its libraryCount member is greater than 0, pLibraryInterface must not be NULL
VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03592NNoneexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_pipeline_library)If pLibraryInfo is not NULL, each element of its pLibraries member must have been created with a layout that is compatible with the layout in this pipeline
VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03593YNoneexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_pipeline_library)If 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-03595YNoneexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the VK_KHR_pipeline_library extension is not enabled, pLibraryInfo and pLibraryInterface must be NULL
VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03600YRayTracingPipelineCreateInfoKHRexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If pLibraryInfo is not NULL and its libraryCount is 0, stageCount must not be 0
VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03601YRayTracingPipelineCreateInfoKHRexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If pLibraryInfo is not NULL and its libraryCount is 0, groupCount must not be 0
VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-parameterYNoneimplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If pLibraryInfo is not NULL, pLibraryInfo must be a valid pointer to a valid VkPipelineLibraryCreateInfoKHR structure
VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInterface-parameterYNoneimplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If pLibraryInterface is not NULL, pLibraryInterface must be a valid pointer to a valid VkRayTracingPipelineInterfaceCreateInfoKHR structure
VUID-VkRayTracingPipelineCreateInfoKHR-pNext-pNextYNoneimplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineCreationFeedbackCreateInfo or VkPipelineRobustnessCreateInfoEXT
VUID-VkRayTracingPipelineCreateInfoKHR-pStages-03426NNoneexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The 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-parameterYNoneimplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If stageCount is not 0, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures
VUID-VkRayTracingPipelineCreateInfoKHR-pipelineCreationCacheControl-02905YNoneexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)If 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-06652YNoneexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_pipeline_creation_feedback,VK_VERSION_1_3)If VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be equal to stageCount
VUID-VkRayTracingPipelineCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplay-03599YNoneexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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-03596YNoneexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the rayTraversalPrimitiveCulling feature is not enabled, flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03597YNoneexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the rayTraversalPrimitiveCulling feature is not enabled, flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoKHR-sType-sTypeYNoneimplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)sType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR
VUID-VkRayTracingPipelineCreateInfoKHR-sType-uniqueYNoneimplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The sType value of each struct in the pNext chain must be unique
VUID-VkRayTracingPipelineCreateInfoKHR-stage-03425YRayTracingPipelineShaderGroupsKHRexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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-06899NNoneexplicitVkRayTracingPipelineCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The 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-commonparentYNoneimplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)Both 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-02904YNVRayTracingValidatePipelineexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_NV_device_generated_commands)flags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
VUID-VkRayTracingPipelineCreateInfoNV-flags-02957YNVRayTracingValidatePipelineexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)flags 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-03421YNVRayTracingValidatePipelineexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid handle to a ray tracing VkPipeline
VUID-VkRayTracingPipelineCreateInfoNV-flags-03422YNVRayTracingValidatePipelineexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If 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-03423YNoneexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is not -1, basePipelineHandle must be VK_NULL_HANDLE
VUID-VkRayTracingPipelineCreateInfoNV-flags-03424YNoneexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is not VK_NULL_HANDLE, basePipelineIndex must be -1
VUID-VkRayTracingPipelineCreateInfoNV-flags-03456YNVRayTracingValidatePipelineexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_KHR_pipeline_library)flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-03458YNVRayTracingValidatePipelineexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_KHR_ray_tracing_pipeline)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-03459YNVRayTracingValidatePipelineexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_KHR_ray_tracing_pipeline)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-03460YNVRayTracingValidatePipelineexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_KHR_ray_tracing_pipeline)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-03461YNVRayTracingValidatePipelineexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_KHR_ray_tracing_pipeline)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-03462YNVRayTracingValidatePipelineexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_KHR_ray_tracing_pipeline)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-03463YNVRayTracingValidatePipelineexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_KHR_ray_tracing_pipeline)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-03588YNVRayTracingValidatePipelineexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_KHR_ray_tracing_pipeline)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-flags-04948YNVRayTracingValidatePipelineexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_NV_ray_tracing_motion_blur)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
VUID-VkRayTracingPipelineCreateInfoNV-flags-07402NNoneexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_opacity_micromap)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT
VUID-VkRayTracingPipelineCreateInfoNV-flags-parameterYNoneimplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)flags must be a valid combination of VkPipelineCreateFlagBits values
VUID-VkRayTracingPipelineCreateInfoNV-groupCount-arraylengthYNoneimplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)groupCount must be greater than 0
VUID-VkRayTracingPipelineCreateInfoNV-layout-03427YNoneexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)layout must be consistent with all shaders specified in pStages
VUID-VkRayTracingPipelineCreateInfoNV-layout-03428NNoneexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)The 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-parameterYNoneimplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)layout must be a valid VkPipelineLayout handle
VUID-VkRayTracingPipelineCreateInfoNV-maxRecursionDepth-03457YNoneexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)maxRecursionDepth must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxRecursionDepth
VUID-VkRayTracingPipelineCreateInfoNV-pGroups-parameterYNoneimplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)pGroups must be a valid pointer to an array of groupCount valid VkRayTracingShaderGroupCreateInfoNV structures
VUID-VkRayTracingPipelineCreateInfoNV-pNext-pNextYNoneimplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)pNext must be NULL or a pointer to a valid instance of VkPipelineCreationFeedbackCreateInfo
VUID-VkRayTracingPipelineCreateInfoNV-pStages-03426NNoneexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)The 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-parameterYNoneimplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures
VUID-VkRayTracingPipelineCreateInfoNV-pipelineCreationCacheControl-02905YNoneexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)If 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-06651YNVRayTracingPipelineStageCreationFeedbackCountexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_pipeline_creation_feedback,VK_VERSION_1_3)If VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be equal to stageCount
VUID-VkRayTracingPipelineCreateInfoNV-sType-sTypeYNoneimplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)sType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV
VUID-VkRayTracingPipelineCreateInfoNV-sType-uniqueYNoneimplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)The sType value of each struct in the pNext chain must be unique
VUID-VkRayTracingPipelineCreateInfoNV-stage-06232YNVRayTracingPipelineShaderGroupsexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)The stage member of at least one element of pStages must be VK_SHADER_STAGE_RAYGEN_BIT_KHR
VUID-VkRayTracingPipelineCreateInfoNV-stage-06898NNoneexplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)The 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-arraylengthYNoneimplicitVkRayTracingPipelineCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)stageCount must be greater than 0
VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-maxPipelineRayHitAttributeSize-03605YNoneexplicitVkRayTracingPipelineInterfaceCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)maxPipelineRayHitAttributeSize must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayHitAttributeSize
VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-pNext-pNextYNoneimplicitVkRayTracingPipelineInterfaceCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pNext must be NULL
VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-sType-sTypeYNoneimplicitVkRayTracingPipelineInterfaceCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)sType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR
VUID-VkRayTracingShaderGroupCreateInfoKHR-anyHitShader-03479YRayTracingPipelineShaderGroupsKHRexplicitVkRayTracingShaderGroupCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)anyHitShader 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-03478YRayTracingPipelineShaderGroupsKHRexplicitVkRayTracingShaderGroupCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)closestHitShader 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-pNextYNoneimplicitVkRayTracingShaderGroupCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pNext must be NULL
VUID-VkRayTracingShaderGroupCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03603NNoneexplicitVkRayTracingShaderGroupCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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-03604NNoneexplicitVkRayTracingShaderGroupCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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-sTypeYNoneimplicitVkRayTracingShaderGroupCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)sType must be VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR
VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03474YRayTracingPipelineShaderGroupsKHRexplicitVkRayTracingShaderGroupCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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-03475YRayTracingPipelineShaderGroupsKHRexplicitVkRayTracingShaderGroupCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR then closestHitShader, anyHitShader, and intersectionShader must be VK_SHADER_UNUSED_KHR
VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03476YRayTracingPipelineShaderGroupsKHRexplicitVkRayTracingShaderGroupCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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-03477YRayTracingPipelineShaderGroupsKHRexplicitVkRayTracingShaderGroupCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR then intersectionShader must be VK_SHADER_UNUSED_KHR
VUID-VkRayTracingShaderGroupCreateInfoKHR-type-parameterYNoneimplicitVkRayTracingShaderGroupCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)type must be a valid VkRayTracingShaderGroupTypeKHR value
VUID-VkRayTracingShaderGroupCreateInfoNV-anyHitShader-02418YNVRayTracingPipelineShaderGroupsexplicitVkRayTracingShaderGroupCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)anyHitShader 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-02417YNVRayTracingPipelineShaderGroupsexplicitVkRayTracingShaderGroupCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)closestHitShader 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-pNextYNoneimplicitVkRayTracingShaderGroupCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)pNext must be NULL
VUID-VkRayTracingShaderGroupCreateInfoNV-sType-sTypeYNoneimplicitVkRayTracingShaderGroupCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)sType must be VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV
VUID-VkRayTracingShaderGroupCreateInfoNV-type-02413YNVRayTracingPipelineShaderGroupsexplicitVkRayTracingShaderGroupCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If 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-02414YNVRayTracingPipelineShaderGroupsexplicitVkRayTracingShaderGroupCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV then closestHitShader, anyHitShader, and intersectionShader must be VK_SHADER_UNUSED_NV
VUID-VkRayTracingShaderGroupCreateInfoNV-type-02415YNVRayTracingPipelineShaderGroupsexplicitVkRayTracingShaderGroupCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If 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-02416YNVRayTracingPipelineShaderGroupsexplicitVkRayTracingShaderGroupCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV then intersectionShader must be VK_SHADER_UNUSED_NV
VUID-VkRayTracingShaderGroupCreateInfoNV-type-parameterYNoneimplicitVkRayTracingShaderGroupCreateInfoNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)type must be a valid VkRayTracingShaderGroupTypeKHR value
VUID-VkRectLayerKHR-layer-01262YNoneexplicitVkRectLayerKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)layer must be less than the imageArrayLayers member of the VkSwapchainCreateInfoKHR structure passed to vkCreateSwapchainKHR
VUID-VkRectLayerKHR-offset-04864YNoneexplicitVkRectLayerKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)The 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-VkRenderPassAttachmentBeginInfo-pAttachments-03218YImagelessFramebufferRenderPassBeginImageViewMismatchTestsexplicitVkRenderPassAttachmentBeginInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)Each element of pAttachments must only specify a single mip level
VUID-VkRenderPassAttachmentBeginInfo-pAttachments-03219YImagelessFramebufferRenderPassBeginImageViewMismatchTestsexplicitVkRenderPassAttachmentBeginInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)Each element of pAttachments must have been created with the identity swizzle
VUID-VkRenderPassAttachmentBeginInfo-pAttachments-04114YImagelessFramebufferRenderPassBeginImageView3DexplicitVkRenderPassAttachmentBeginInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)Each element of pAttachments must have been created with VkImageViewCreateInfo::viewType not equal to VK_IMAGE_VIEW_TYPE_3D
VUID-VkRenderPassAttachmentBeginInfo-pAttachments-07010YMultisampledRenderToSingleSampledexplicitVkRenderPassAttachmentBeginInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_EXT_multisampled_render_to_single_sampled)If 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-parameterYNoneimplicitVkRenderPassAttachmentBeginInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkImageView handles
VUID-VkRenderPassAttachmentBeginInfo-sType-sTypeYNoneimplicitVkRenderPassAttachmentBeginInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)sType must be VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO
VUID-VkRenderPassBeginInfo-clearValueCount-00902YRenderPassBeginClearOpMismatchexplicitVkRenderPassBeginInfocoreclearValueCount 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-04962YRenderPassBeginNullValuesexplicitVkRenderPassBeginInfocoreIf clearValueCount is not 0, pClearValues must be a valid pointer to an array of clearValueCount VkClearValue unions
VUID-VkRenderPassBeginInfo-commonparentYNoneimplicitVkRenderPassBeginInfocoreBoth of framebuffer, and renderPass must have been created, allocated, or retrieved from the same VkDevice
VUID-VkRenderPassBeginInfo-framebuffer-02780NNoneexplicitVkRenderPassBeginInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If 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-03207YImagelessFramebufferRenderPassBeginImageViewMismatchTestsexplicitVkRenderPassBeginInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If 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-03208YImagelessFramebufferRenderPassBeginImageViewMismatchTestsexplicitVkRenderPassBeginInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If 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-03209YImagelessFramebufferRenderPassBeginImageViewMismatchTestsexplicitVkRenderPassBeginInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If 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-03211YImagelessFramebufferRenderPassBeginImageViewMismatchTestsexplicitVkRenderPassBeginInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If 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-03212YImagelessFramebufferRenderPassBeginImageViewMismatchTestsexplicitVkRenderPassBeginInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If 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-03213YImagelessFramebufferRenderPassBeginImageViewMismatchTestsexplicitVkRenderPassBeginInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If 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-03214YImagelessFramebufferRenderPassBeginImageViewMismatchTestsexplicitVkRenderPassBeginInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If 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-03215YImagelessFramebufferRenderPassBeginImageViewMismatchTestsexplicitVkRenderPassBeginInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If 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-03216YImagelessFramebufferRenderPassBeginImageViewMismatchTestsexplicitVkRenderPassBeginInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If 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-03217YImagelessFramebufferRenderPassBeginImageViewMismatchTestsexplicitVkRenderPassBeginInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If 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
VUID-VkRenderPassBeginInfo-framebuffer-04627YImagelessFramebufferRenderPassBeginImageViewMismatchTestsexplicitVkRenderPassBeginInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If 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-parameterYRenderPassMissingAttachmentimplicitVkRenderPassBeginInfocoreframebuffer must be a valid VkFramebuffer handle
VUID-VkRenderPassBeginInfo-pNext-02850YInvalidRenderAreaexplicitVkRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)If 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-02851YInvalidRenderAreaexplicitVkRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)If 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-02852YRenderPassBeginInvalidRenderArea, InvalidRenderAreaexplicitVkRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)If 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-02853YRenderPassBeginInvalidRenderArea, InvalidRenderAreaexplicitVkRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)If 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-02856YInvalidDeviceGroupRenderAreaexplicitVkRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)If 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-02857YInvalidDeviceGroupRenderAreaexplicitVkRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)If 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-02869NNoneexplicitVkRenderPassBeginInfo(VK_QCOM_render_pass_transform)If the pNext chain includes VkRenderPassTransformBeginInfoQCOM, renderArea.offset must equal (0,0)
VUID-VkRenderPassBeginInfo-pNext-02870NNoneexplicitVkRenderPassBeginInfo(VK_QCOM_render_pass_transform)If the pNext chain includes VkRenderPassTransformBeginInfoQCOM, renderArea.extent transformed by VkRenderPassTransformBeginInfoQCOM::transform must equal the framebuffer dimensions
VUID-VkRenderPassBeginInfo-pNext-pNextYNoneimplicitVkRenderPassBeginInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceGroupRenderPassBeginInfo, VkRenderPassAttachmentBeginInfo, VkRenderPassSampleLocationsBeginInfoEXT, or VkRenderPassTransformBeginInfoQCOM
VUID-VkRenderPassBeginInfo-renderArea-02846YInvalidRenderAreaexplicitVkRenderPassBeginInfo!(VK_VERSION_1_1,VK_KHR_device_group)renderArea.offset.x must be greater than or equal to 0
VUID-VkRenderPassBeginInfo-renderArea-02847YInvalidRenderAreaexplicitVkRenderPassBeginInfo!(VK_VERSION_1_1,VK_KHR_device_group)renderArea.offset.y must be greater than or equal to 0
VUID-VkRenderPassBeginInfo-renderArea-02848YRenderPassBeginInvalidRenderArea, InvalidRenderAreaexplicitVkRenderPassBeginInfo!(VK_VERSION_1_1,VK_KHR_device_group)renderArea.offset.x + renderArea.extent.width must be less than or equal to VkFramebufferCreateInfo::width the framebuffer was created with
VUID-VkRenderPassBeginInfo-renderArea-02849YRenderPassBeginInvalidRenderArea, InvalidRenderAreaexplicitVkRenderPassBeginInfo!(VK_VERSION_1_1,VK_KHR_device_group)renderArea.offset.y + renderArea.extent.height must be less than or equal to VkFramebufferCreateInfo::height the framebuffer was created with
VUID-VkRenderPassBeginInfo-renderPass-00904YImageSubresourceOverlapBetweenCurrentRenderPassAndDescriptorSets, IncompatibleRenderPass, RenderPassBeginIncompatibleFramebufferRenderPass, IncompatibleRenderPass2explicitVkRenderPassBeginInfocorerenderPass must be compatible with the renderPass member of the VkFramebufferCreateInfo structure specified when creating framebuffer
VUID-VkRenderPassBeginInfo-renderPass-parameterYNoneimplicitVkRenderPassBeginInfocorerenderPass must be a valid VkRenderPass handle
VUID-VkRenderPassBeginInfo-sType-sTypeYNoneimplicitVkRenderPassBeginInfocoresType must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
VUID-VkRenderPassBeginInfo-sType-uniqueYNoneimplicitVkRenderPassBeginInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkRenderPassCreateInfo-attachment-00834YRenderPassCreateAttachmentIndexOutOfRangeexplicitVkRenderPassCreateInfocoreIf the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or any element of pPreserveAttachments in any element of pSubpasses is not VK_ATTACHMENT_UNUSED, then it must be less than attachmentCount
VUID-VkRenderPassCreateInfo-flags-parameterYNoneimplicitVkRenderPassCreateInfocoreflags must be a valid combination of VkRenderPassCreateFlagBits values
VUID-VkRenderPassCreateInfo-fragmentDensityMapAttachment-06471YRenderPassCreateInvalidFragmentDensityMapReferencesexplicitVkRenderPassCreateInfo(VK_EXT_fragment_density_map)If 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-00836YRenderPassCreateAttachmentReadOnlyButClearedexplicitVkRenderPassCreateInfocoreFor 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-01566YRenderPassCreateAttachmentReadOnlyButClearedexplicitVkRenderPassCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)For 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-01567YRenderPassCreateAttachmentReadOnlyButClearedexplicitVkRenderPassCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)For 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-02511YRenderPassCreateAttachmentReadOnlyButClearedexplicitVkRenderPassCreateInfocoreFor any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
VUID-VkRenderPassCreateInfo-pAttachments-parameterYNoneimplicitVkRenderPassCreateInfocoreIf attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkAttachmentDescription structures
VUID-VkRenderPassCreateInfo-pDependencies-00837YRenderPassCreateInvalidSubpassDependenciesexplicitVkRenderPassCreateInfocoreFor 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-00838YRenderPassCreateInvalidSubpassDependenciesexplicitVkRenderPassCreateInfocoreFor 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-06866YRenderPassCreateInvalidSubpassDependencies, BadSubpassIndicesexplicitVkRenderPassCreateInfocoreFor any element of pDependencies, if its srcSubpass is not VK_SUBPASS_EXTERNAL, it must be less than subpassCount
VUID-VkRenderPassCreateInfo-pDependencies-06867YRenderPassCreateInvalidSubpassDependencies, BadSubpassIndicesexplicitVkRenderPassCreateInfocoreFor any element of pDependencies, if its dstSubpass is not VK_SUBPASS_EXTERNAL, it must be less than subpassCount
VUID-VkRenderPassCreateInfo-pDependencies-parameterYNoneimplicitVkRenderPassCreateInfocoreIf dependencyCount is not 0, pDependencies must be a valid pointer to an array of dependencyCount valid VkSubpassDependency structures
VUID-VkRenderPassCreateInfo-pNext-01926YRenderPassCreateInvalidInputAttachmentReferencesexplicitVkRenderPassCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-01927YRenderPassCreateInvalidInputAttachmentReferencesexplicitVkRenderPassCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-01928YRenderPassCreateInvalidViewMasksexplicitVkRenderPassCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If 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-01929YRenderPassCreateInvalidSubpassDependenciesexplicitVkRenderPassCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, if its dependencyCount member is not zero, it must be equal to dependencyCount
VUID-VkRenderPassCreateInfo-pNext-01930YRenderPassCreateInvalidSubpassDependenciesexplicitVkRenderPassCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If 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-01963YRenderPassCreateInvalidInputAttachmentReferences, MessageIdFilterStringexplicitVkRenderPassCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-02512YRenderPassMultiViewCreateInvalidViewOffsetsexplicitVkRenderPassCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If 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-02513YRenderPassMultiViewCreateInvalidViewMasksexplicitVkRenderPassCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If 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-02514YTestAllViewMasksZeroexplicitVkRenderPassCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If 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-02515YTestAllViewMasksZeroexplicitVkRenderPassCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, and each element of its pViewMasks member is 0, its correlationMaskCount member must be 0
VUID-VkRenderPassCreateInfo-pNext-pNextYNoneimplicitVkRenderPassCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkRenderPassFragmentDensityMapCreateInfoEXT, VkRenderPassInputAttachmentAspectCreateInfo, or VkRenderPassMultiviewCreateInfo
VUID-VkRenderPassCreateInfo-pSubpasses-parameterYNoneimplicitVkRenderPassCreateInfocorepSubpasses must be a valid pointer to an array of subpassCount valid VkSubpassDescription structures
VUID-VkRenderPassCreateInfo-sType-sTypeYNoneimplicitVkRenderPassCreateInfocoresType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
VUID-VkRenderPassCreateInfo-sType-uniqueYNoneimplicitVkRenderPassCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkRenderPassCreateInfo-subpassCount-arraylengthYNoneimplicitVkRenderPassCreateInfocoresubpassCount must be greater than 0
VUID-VkRenderPassCreateInfo2-None-03049NNoneexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-02525YRenderPassCreateInvalidInputAttachmentReferences, MessageIdFilterString, MessageIdFilterInt, MessageIdFilterHexIntexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-03050NNoneexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or the attachment indexed by any element of pPreserveAttachments in any given 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-03051YRenderPassCreateAttachmentIndexOutOfRangeexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or any element of pPreserveAttachments in any given element of pSubpasses is not VK_ATTACHMENT_UNUSED, then it must be less than attachmentCount
VUID-VkRenderPassCreateInfo2-attachment-06244NNoneexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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 aspects
VUID-VkRenderPassCreateInfo2-attachment-06245NNoneexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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 aspect
VUID-VkRenderPassCreateInfo2-attachment-06246NNoneexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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 aspect
VUID-VkRenderPassCreateInfo2-dstSubpass-02527YRenderPassCreateInvalidSubpassDependencies, BadSubpassIndicesexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)The dstSubpass member of each element of pDependencies must be less than subpassCount
VUID-VkRenderPassCreateInfo2-flags-04521YInvalidFragmentShadingRateAttachmentsexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)+(VK_QCOM_render_pass_transform)If 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-04907YInvalidRenderPassCreateRenderPassShaderResolveQCOMexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_QCOM_render_pass_shader_resolve)If 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-04908YNoneexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_QCOM_render_pass_shader_resolve)If 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-04909YInvalidRenderPassCreateRenderPassShaderResolveQCOMexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_QCOM_render_pass_shader_resolve)If 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-parameterYNoneimplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)flags must be a valid combination of VkRenderPassCreateFlagBits values
VUID-VkRenderPassCreateInfo2-fragmentDensityMapAttachment-06472YFragmentDensityMappAttachmentCountexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_fragment_density_map)If 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-02522YRenderPassCreateAttachmentReadOnlyButClearedexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)For 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-02523YRenderPassCreateAttachmentReadOnlyButClearedexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)For 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-04585YNoneexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)If 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-04586YInvalidFragmentShadingRateAttachmentsexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)If 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-parameterYNoneimplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkAttachmentDescription2 structures
VUID-VkRenderPassCreateInfo2-pCorrelatedViewMasks-03056YRenderPassCreateOverlappingCorrelationMasksexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)The 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-parameterYNoneimplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If correlatedViewMaskCount is not 0, pCorrelatedViewMasks must be a valid pointer to an array of correlatedViewMaskCount uint32_t values
VUID-VkRenderPassCreateInfo2-pDependencies-03054YRenderPassCreateInvalidSubpassDependenciesexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)For 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-03055YRenderPassCreateInvalidSubpassDependenciesexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)For 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-03060YRenderPassCreateInvalidSubpassDependenciesexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)For 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-parameterYNoneimplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If dependencyCount is not 0, pDependencies must be a valid pointer to an array of dependencyCount valid VkSubpassDependency2 structures
VUID-VkRenderPassCreateInfo2-pNext-pNextYNoneimplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkRenderPassCreationControlEXT, VkRenderPassCreationFeedbackCreateInfoEXT, or VkRenderPassFragmentDensityMapCreateInfoEXT
VUID-VkRenderPassCreateInfo2-pSubpasses-06473YDepthStencilResolveModeexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)If 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-parameterYNoneimplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)pSubpasses must be a valid pointer to an array of subpassCount valid VkSubpassDescription2 structures
VUID-VkRenderPassCreateInfo2-rasterizationSamples-04905NNoneexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_QCOM_render_pass_shader_resolve)If 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-sTypeYNoneimplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)sType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2
VUID-VkRenderPassCreateInfo2-sType-uniqueYNoneimplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)The sType value of each struct in the pNext chain must be unique
VUID-VkRenderPassCreateInfo2-sampleShadingEnable-04906NNoneexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_QCOM_render_pass_shader_resolve)If 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-02526YRenderPassCreateInvalidSubpassDependencies, BadSubpassIndicesexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)The srcSubpass member of each element of pDependencies must be less than subpassCount
VUID-VkRenderPassCreateInfo2-subpassCount-arraylengthYNoneimplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)subpassCount must be greater than 0
VUID-VkRenderPassCreateInfo2-viewMask-03057YRenderPassCreateOverlappingCorrelationMasksexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If the VkSubpassDescription2::viewMask member of all elements of pSubpasses is 0, correlatedViewMaskCount must be 0
VUID-VkRenderPassCreateInfo2-viewMask-03058YRenderPassCreateInvalidViewMasksexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)The VkSubpassDescription2::viewMask member of all elements of pSubpasses must either all be 0, or all not be 0
VUID-VkRenderPassCreateInfo2-viewMask-03059YRenderPassCreateInvalidSubpassDependenciesexplicitVkRenderPassCreateInfo2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-sTypeYNoneimplicitVkRenderPassCreationControlEXT(VK_EXT_subpass_merge_feedback)sType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT
VUID-VkRenderPassCreationFeedbackCreateInfoEXT-pRenderPassFeedback-parameterYNoneimplicitVkRenderPassCreationFeedbackCreateInfoEXT(VK_EXT_subpass_merge_feedback)pRenderPassFeedback must be a valid pointer to a VkRenderPassCreationFeedbackInfoEXT structure
VUID-VkRenderPassCreationFeedbackCreateInfoEXT-sType-sTypeYNoneimplicitVkRenderPassCreationFeedbackCreateInfoEXT(VK_EXT_subpass_merge_feedback)sType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT
VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02548NNoneexplicitVkRenderPassFragmentDensityMapCreateInfoEXT(VK_EXT_fragment_density_map)If 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-02549YRenderPassCreateInvalidFragmentDensityMapReferencesexplicitVkRenderPassFragmentDensityMapCreateInfoEXT(VK_EXT_fragment_density_map)If 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-02550YRenderPassCreateInvalidFragmentDensityMapReferencesexplicitVkRenderPassFragmentDensityMapCreateInfoEXT(VK_EXT_fragment_density_map)If 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-02551YRenderPassCreateInvalidFragmentDensityMapReferencesexplicitVkRenderPassFragmentDensityMapCreateInfoEXT(VK_EXT_fragment_density_map)If 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-parameterNNoneimplicitVkRenderPassFragmentDensityMapCreateInfoEXT(VK_EXT_fragment_density_map)fragmentDensityMapAttachment must be a valid VkAttachmentReference structure
VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-sType-sTypeYNoneimplicitVkRenderPassFragmentDensityMapCreateInfoEXT(VK_EXT_fragment_density_map)sType must be VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT
VUID-VkRenderPassInputAttachmentAspectCreateInfo-aspectReferenceCount-arraylengthYNoneimplicitVkRenderPassInputAttachmentAspectCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)aspectReferenceCount must be greater than 0
VUID-VkRenderPassInputAttachmentAspectCreateInfo-pAspectReferences-parameterYNoneimplicitVkRenderPassInputAttachmentAspectCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)pAspectReferences must be a valid pointer to an array of aspectReferenceCount valid VkInputAttachmentAspectReference structures
VUID-VkRenderPassInputAttachmentAspectCreateInfo-sType-sTypeYNoneimplicitVkRenderPassInputAttachmentAspectCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)sType must be VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO
VUID-VkRenderPassMultiviewCreateInfo-multiview-06555NNoneexplicitVkRenderPassMultiviewCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If the multiview feature is not enabled, each element of pViewMasks must be 0
VUID-VkRenderPassMultiviewCreateInfo-pCorrelationMasks-00841YRenderPassCreateOverlappingCorrelationMasksexplicitVkRenderPassMultiviewCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)Each view index must not be set in more than one element of pCorrelationMasks
VUID-VkRenderPassMultiviewCreateInfo-pCorrelationMasks-parameterYNoneimplicitVkRenderPassMultiviewCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If correlationMaskCount is not 0, pCorrelationMasks must be a valid pointer to an array of correlationMaskCount uint32_t values
VUID-VkRenderPassMultiviewCreateInfo-pViewMasks-06697YRenderPassMultiViewCreateInvalidViewMaskexplicitVkRenderPassMultiviewCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)The index of the most significant bit in each element of pViewMasks must be less than maxMultiviewViewCount
VUID-VkRenderPassMultiviewCreateInfo-pViewMasks-parameterYNoneimplicitVkRenderPassMultiviewCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If subpassCount is not 0, pViewMasks must be a valid pointer to an array of subpassCount uint32_t values
VUID-VkRenderPassMultiviewCreateInfo-pViewOffsets-parameterYNoneimplicitVkRenderPassMultiviewCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If dependencyCount is not 0, pViewOffsets must be a valid pointer to an array of dependencyCount int32_t values
VUID-VkRenderPassMultiviewCreateInfo-sType-sTypeYNoneimplicitVkRenderPassMultiviewCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)sType must be VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO
VUID-VkRenderPassSampleLocationsBeginInfoEXT-pAttachmentInitialSampleLocations-parameterYNoneimplicitVkRenderPassSampleLocationsBeginInfoEXT(VK_EXT_sample_locations)If attachmentInitialSampleLocationsCount is not 0, pAttachmentInitialSampleLocations must be a valid pointer to an array of attachmentInitialSampleLocationsCount valid VkAttachmentSampleLocationsEXT structures
VUID-VkRenderPassSampleLocationsBeginInfoEXT-pPostSubpassSampleLocations-parameterYNoneimplicitVkRenderPassSampleLocationsBeginInfoEXT(VK_EXT_sample_locations)If postSubpassSampleLocationsCount is not 0, pPostSubpassSampleLocations must be a valid pointer to an array of postSubpassSampleLocationsCount valid VkSubpassSampleLocationsEXT structures
VUID-VkRenderPassSampleLocationsBeginInfoEXT-sType-sTypeYNoneimplicitVkRenderPassSampleLocationsBeginInfoEXT(VK_EXT_sample_locations)sType must be VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT
VUID-VkRenderPassSubpassFeedbackCreateInfoEXT-pSubpassFeedback-parameterYNoneimplicitVkRenderPassSubpassFeedbackCreateInfoEXT(VK_EXT_subpass_merge_feedback)pSubpassFeedback must be a valid pointer to a VkRenderPassSubpassFeedbackInfoEXT structure
VUID-VkRenderPassSubpassFeedbackCreateInfoEXT-sType-sTypeYNoneimplicitVkRenderPassSubpassFeedbackCreateInfoEXT(VK_EXT_subpass_merge_feedback)sType must be VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT
VUID-VkRenderPassTransformBeginInfoQCOM-flags-02872NNoneexplicitVkRenderPassTransformBeginInfoQCOM(VK_QCOM_render_pass_transform)The renderpass must have been created with VkRenderPassCreateInfo::flags containing VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM
VUID-VkRenderPassTransformBeginInfoQCOM-sType-sTypeYNoneimplicitVkRenderPassTransformBeginInfoQCOM(VK_QCOM_render_pass_transform)sType must be VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM
VUID-VkRenderPassTransformBeginInfoQCOM-transform-02871NNoneexplicitVkRenderPassTransformBeginInfoQCOM(VK_QCOM_render_pass_transform)transform 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-VkRenderingAttachmentInfo-clearValue-parameterNNoneimplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)clearValue must be a valid VkClearValue union
VUID-VkRenderingAttachmentInfo-commonparentYNoneimplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)Both 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-imageLayout-parameterYNoneimplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)imageLayout must be a valid VkImageLayout value
VUID-VkRenderingAttachmentInfo-imageView-06129YDynamicRenderingResolveModeWithNonIntegerColorFormatexplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06130YDynamicRenderingResolveModeWithIntegerColorFormatexplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06132YDynamicRenderingResolveModeSamplesexplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+!(VK_EXT_multisampled_render_to_single_sampled)If imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, imageView must not have a sample count of VK_SAMPLE_COUNT_1_BIT
VUID-VkRenderingAttachmentInfo-imageView-06135YDynamicRenderingAttachmentImageViewLayoutexplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06136YDynamicRenderingResolveImageViewLayoutexplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06137YDynamicRenderingResolveImageViewLayoutSeparateDepthStencilexplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_separate_depth_stencil_layouts,VK_VERSION_1_2)If 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-06138YDynamicRenderingAttachmentImageViewShadingRateLayoutexplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_NV_shading_rate_image)If imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV
VUID-VkRenderingAttachmentInfo-imageView-06139YDynamicRenderingResolveImageViewShadingRateLayoutexplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_NV_shading_rate_image)If 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-06140YDynamicRenderingAttachmentImageViewFragmentDensityLayoutexplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT
VUID-VkRenderingAttachmentInfo-imageView-06141YDynamicRenderingResolveImageViewFragmentDensityLayoutexplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If 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-06142YDynamicRenderingResolveImageViewReadOnlyOptimalLayoutexplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-06143YDynamicRenderingAttachmentImageViewShadingRateLayoutexplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR
VUID-VkRenderingAttachmentInfo-imageView-06144YDynamicRenderingResolveImageViewShadingRateLayoutexplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-06145YDynamicRenderingAttachmentInfoexplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_swapchain)If imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
VUID-VkRenderingAttachmentInfo-imageView-06146YDynamicRenderingAttachmentInfoexplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_swapchain)If 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-06860YDynamicRenderingResolveImageViewSamplesexplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+!(VK_EXT_multisampled_render_to_single_sampled)If imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageView must not be VK_NULL_HANDLE
VUID-VkRenderingAttachmentInfo-imageView-06861YMultisampledRenderToSingleSampledexplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_multisampled_render_to_single_sampled)If imageView is not VK_NULL_HANDLE, resolveMode is not VK_RESOLVE_MODE_NONE, and the pNext chain of VkRenderingInfo does not includes a VkMultisampledRenderToSingleSampledInfoEXT structure with the multisampledRenderToSingleSampledEnable field equal to VK_TRUE, imageView must not have a sample count of VK_SAMPLE_COUNT_1_BIT
VUID-VkRenderingAttachmentInfo-imageView-06862YMultisampledRenderToSingleSampledexplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_multisampled_render_to_single_sampled)If imageView is not VK_NULL_HANDLE, resolveMode is not VK_RESOLVE_MODE_NONE, and the pNext chain of VkRenderingInfo does not includes a VkMultisampledRenderToSingleSampledInfoEXT structure with the multisampledRenderToSingleSampledEnable field equal to VK_TRUE, resolveImageView must not be VK_NULL_HANDLE
VUID-VkRenderingAttachmentInfo-imageView-06863YMultisampledRenderToSingleSampledexplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_multisampled_render_to_single_sampled)If 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-06864YDynamicRenderingResolveImageViewSamplesexplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06865YDynamicRenderingResolveImageViewFormatMatchexplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-parameterYNoneimplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle
VUID-VkRenderingAttachmentInfo-loadOp-parameterYNoneimplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)loadOp must be a valid VkAttachmentLoadOp value
VUID-VkRenderingAttachmentInfo-pNext-pNextYNoneimplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)pNext must be NULL
VUID-VkRenderingAttachmentInfo-resolveImageLayout-parameterYNoneimplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)resolveImageLayout must be a valid VkImageLayout value
VUID-VkRenderingAttachmentInfo-resolveImageView-parameterYNoneimplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If resolveImageView is not VK_NULL_HANDLE, resolveImageView must be a valid VkImageView handle
VUID-VkRenderingAttachmentInfo-resolveMode-parameterYNoneimplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If resolveMode is not 0, resolveMode must be a valid VkResolveModeFlagBits value
VUID-VkRenderingAttachmentInfo-sType-sTypeYNoneimplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)sType must be VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO
VUID-VkRenderingAttachmentInfo-storeOp-parameterYNoneimplicitVkRenderingAttachmentInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)storeOp must be a valid VkAttachmentStoreOp value
VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageLayout-parameterYNoneimplicitVkRenderingFragmentDensityMapAttachmentInfoEXT(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)imageLayout must be a valid VkImageLayout value
VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06157YDynamicRenderingInvalidRenderingFragmentDensityMapAttachmentexplicitVkRenderingFragmentDensityMapAttachmentInfoEXT(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If imageView is not VK_NULL_HANDLE, layout must be VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT
VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06158YDynamicRenderingInvalidRenderingFragmentDensityMapAttachmentUsageexplicitVkRenderingFragmentDensityMapAttachmentInfoEXT(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If imageView is not VK_NULL_HANDLE, it must have been created with VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06159YDynamicRenderingFragmentDensityMapAttachmentCreateFlagsexplicitVkRenderingFragmentDensityMapAttachmentInfoEXT(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If imageView is not VK_NULL_HANDLE, it must not have been created with VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-06160YDynamicRenderingInvalidRenderingFragmentDensityMapAttachment, DynamicRenderingFragmentDensityMapAttachmentLayerCountexplicitVkRenderingFragmentDensityMapAttachmentInfoEXT(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)+!(VK_VERSION_1_1,VK_KHR_multiview)If imageView is not VK_NULL_HANDLE, it must have a layerCount equal to 1
VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-imageView-parameterNNoneimplicitVkRenderingFragmentDensityMapAttachmentInfoEXT(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)imageView must be a valid VkImageView handle
VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-sType-sTypeYNoneimplicitVkRenderingFragmentDensityMapAttachmentInfoEXT(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)sType must be VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageLayout-parameterYNoneimplicitVkRenderingFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)imageLayout must be a valid VkImageLayout value
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06147YDynamicRenderingBeginRenderingFragmentShadingRateImageViewexplicitVkRenderingFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-06148YDynamicRenderingBeginRenderingInvalidFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If imageView is not VK_NULL_HANDLE, it must have been created with VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06149YDynamicRenderingBeginRenderingInvalidFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.width must be a power of two value
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06150YDynamicRenderingBeginRenderingInvalidFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.width must be less than or equal to maxFragmentShadingRateAttachmentTexelSize.width
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06151YDynamicRenderingBeginRenderingInvalidFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.width must be greater than or equal to minFragmentShadingRateAttachmentTexelSize.width
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06152YDynamicRenderingBeginRenderingInvalidFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.height must be a power of two value
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06153YDynamicRenderingBeginRenderingInvalidFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.height must be less than or equal to maxFragmentShadingRateAttachmentTexelSize.height
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06154YDynamicRenderingBeginRenderingInvalidFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If imageView is not VK_NULL_HANDLE, shadingRateAttachmentTexelSize.height must be greater than or equal to minFragmentShadingRateAttachmentTexelSize.height
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-imageView-06155YDynamicRenderingBeginRenderingInvalidFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-06156YDynamicRenderingBeginRenderingInvalidFragmentShadingRateImageexplicitVkRenderingFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-parameterNNoneimplicitVkRenderingFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle
VUID-VkRenderingFragmentShadingRateAttachmentInfoKHR-sType-sTypeYNoneimplicitVkRenderingFragmentShadingRateAttachmentInfoKHR(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)sType must be VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR
VUID-VkRenderingInfo-colorAttachmentCount-06087YDynamicRenderingRenderingInfoColorAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06090YDynamicRenderingRenderingInfoColorAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06091YDynamicRenderingRenderingInfoColorAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06096YDynamicRenderingRenderingInfoColorAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_maintenance2,VK_VERSION_1_1)If 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-06097YDynamicRenderingRenderingInfoColorAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_maintenance2,VK_VERSION_1_1)If 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-06100YDynamicRenderingRenderingInfoColorAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_separate_depth_stencil_layouts,VK_VERSION_1_2)If 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-06101YDynamicRenderingRenderingInfoColorAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_separate_depth_stencil_layouts,VK_VERSION_1_2)If 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-06106YDynamicRenderingRenderingInfoColorAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)colorAttachmentCount must be less than or equal to VkPhysicalDeviceLimits::maxColorAttachments
VUID-VkRenderingInfo-flags-parameterYNoneimplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)flags must be a valid combination of VkRenderingFlagBits values
VUID-VkRenderingInfo-imageView-06075YDynamicRenderingAreaGreaterThanAttachmentExtentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+!(VK_VERSION_1_1,VK_KHR_device_group)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-imageView-06076YDynamicRenderingAreaGreaterThanAttachmentExtentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+!(VK_VERSION_1_1,VK_KHR_device_group)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-imageView-06107YDynamicRenderingAttachmentInfoexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If 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-06108YDynamicRenderingAttachmentInfoexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)+(VK_VERSION_1_1,VK_KHR_multiview)If 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-06109YDynamicRenderingInvalidRenderingFragmentDensityMapAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)+(VK_VERSION_1_1,VK_KHR_multiview)If 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-06110YDynamicRenderingFragmentDensityMapRenderAreaWithoutDeviceGroupExtexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)+!(VK_VERSION_1_1,VK_KHR_device_group)If 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-imageView-06111YDynamicRenderingFragmentDensityMapRenderAreaWithoutDeviceGroupExtexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)+!(VK_VERSION_1_1,VK_KHR_device_group)If 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-imageView-06116YDynamicRenderingAttachmentInfoexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If 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-06117YDynamicRenderingBeginRenderingFragmentShadingRateAttachmentSizeexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)+!(VK_VERSION_1_1,VK_KHR_device_group)If 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-imageView-06118YDynamicRenderingBeginRenderingFragmentShadingRateAttachmentSizeexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)+!(VK_VERSION_1_1,VK_KHR_device_group)If 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-imageView-06123YDynamicRenderingBeginRenderingFragmentShadingRateexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-06124YDynamicRenderingBeginRenderingFragmentShadingRateexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-06125YDynamicRenderingBeginRenderingFragmentShadingRateexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-06126YDynamicRenderingPNextImageViewexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)+(VK_EXT_fragment_density_map)If 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-06858YMultisampledRenderToSingleSampledexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_multisampled_render_to_single_sampled)If 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-06859YMultisampledRenderToSingleSampledexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_multisampled_render_to_single_sampled)If 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-multisampledRenderToSingleSampled-06857YDynamicRenderingInfoMismatchedSamplesexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, imageView members of pDepthAttachment, pStencilAttachment, and elements of pColorAttachments that are not VK_NULL_HANDLE must have been created with the same sampleCount
VUID-VkRenderingInfo-multiview-06127YDynamicRenderingAttachmentInfoexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the multiview feature is not enabled, viewMask must be 0
VUID-VkRenderingInfo-pColorAttachments-parameterYNoneimplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkRenderingAttachmentInfo structures
VUID-VkRenderingInfo-pDepthAttachment-06085YDynamicRenderingRenderingInfoDepthAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-06086YDynamicRenderingRenderingInfoDepthAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-06088YDynamicRenderingRenderingInfoDepthAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06092YDynamicRenderingRenderingInfoDepthAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06093YDynamicRenderingRenderingInfoDepthAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06098YDynamicRenderingRenderingInfoDepthAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_maintenance2,VK_VERSION_1_1)If 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-06102YDynamicRenderingRenderingInfoDepthAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06104YDynamicRenderingRenderingInfoDepthAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06105YDynamicRenderingRenderingInfoDepthAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06547YDynamicRenderingBeginRenderingInvalidDepthAttachmentFormatexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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 aspect
VUID-VkRenderingInfo-pDepthAttachment-07732NNoneexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_separate_depth_stencil_layouts,VK_VERSION_1_2)If 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-07733NNoneexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_separate_depth_stencil_layouts,VK_VERSION_1_2)If 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-parameterYNoneimplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If pDepthAttachment is not NULL, pDepthAttachment must be a valid pointer to a valid VkRenderingAttachmentInfo structure
VUID-VkRenderingInfo-pNext-06077YDynamicRenderingRenderAreaWithDeviceGroupExtexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-06078YDynamicRenderingRenderAreaWithDeviceGroupExtexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-06079YDynamicRenderingDeviceGroupAreaGreaterThanAttachmentExtentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-06080YDynamicRenderingDeviceGroupAreaGreaterThanAttachmentExtentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-06083YDynamicRenderingDeviceGroupRenderPassBeginInfoexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-06084YDynamicRenderingDeviceGroupRenderPassBeginInfoexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-06112YDynamicRenderingTestFragmentDensityMapRenderAreaexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-06113YDynamicRenderingTestFragmentDensityMapRenderAreaexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-06114YDynamicRenderingTestFragmentDensityMapRenderAreaexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-06115YDynamicRenderingTestFragmentDensityMapRenderAreaexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-06119YDynamicRenderingFragmentShadingRateAttachmentSizeWithDeviceGroupExtexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-06120YDynamicRenderingFragmentShadingRateAttachmentSizeWithDeviceGroupExtexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-06121YNoneexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-06122YDynamicRenderingFragmentShadingRateAttachmentSizeWithDeviceGroupExtexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-pNextYNoneimplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceGroupRenderPassBeginInfo, VkMultisampledRenderToSingleSampledInfoEXT, VkMultiviewPerViewAttributesInfoNVX, VkRenderingFragmentDensityMapAttachmentInfoEXT, or VkRenderingFragmentShadingRateAttachmentInfoKHR
VUID-VkRenderingInfo-pStencilAttachment-06089YDynamicRenderingRenderingInfoDepthAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06094YDynamicRenderingRenderingInfoDepthAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06095YDynamicRenderingRenderingInfoDepthAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06099YDynamicRenderingRenderingInfoDepthAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_maintenance2,VK_VERSION_1_1)If 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-06103YDynamicRenderingRenderingInfoDepthAttachmentexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06548YDynamicRenderingBeginRenderingInvalidStencilAttachmentFormatexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-07734NNoneexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_separate_depth_stencil_layouts,VK_VERSION_1_2)If 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-07735NNoneexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_separate_depth_stencil_layouts,VK_VERSION_1_2)If 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-parameterYNoneimplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If pStencilAttachment is not NULL, pStencilAttachment must be a valid pointer to a valid VkRenderingAttachmentInfo structure
VUID-VkRenderingInfo-renderArea-06071YDynamicRenderingRenderAreaexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+!(VK_VERSION_1_1,VK_KHR_device_group)renderArea.offset.x must be greater than or equal to 0
VUID-VkRenderingInfo-renderArea-06072YDynamicRenderingRenderAreaexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+!(VK_VERSION_1_1,VK_KHR_device_group)renderArea.offset.y must be greater than or equal to 0
VUID-VkRenderingInfo-renderArea-06073YDynamicRenderingAreaGreaterThanAttachmentExtent, DynamicRenderingRenderAreaexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+!(VK_VERSION_1_1,VK_KHR_device_group)The sum of renderArea.offset.x and renderArea.extent.width must be less than or equal to maxFramebufferWidth
VUID-VkRenderingInfo-renderArea-06074YDynamicRenderingAreaGreaterThanAttachmentExtent, DynamicRenderingRenderAreaexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+!(VK_VERSION_1_1,VK_KHR_device_group)The sum of renderArea.offset.y and renderArea.extent.height must be less than or equal to maxFramebufferHeight
VUID-VkRenderingInfo-sType-sTypeYNoneimplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)sType must be VK_STRUCTURE_TYPE_RENDERING_INFO
VUID-VkRenderingInfo-sType-uniqueYNoneimplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)The sType value of each struct in the pNext chain must be unique
VUID-VkRenderingInfo-viewMask-06069YDynamicRenderingLayerCountexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If viewMask is 0, layerCount must not be 0
VUID-VkRenderingInfo-viewMask-06128YDynamicRenderingInfoViewMaskexplicitVkRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_multiview)The index of the most significant bit in viewMask must be less than maxMultiviewViewCount
VUID-VkResolveImageInfo2-commonparentYNoneimplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-VkResolveImageInfo2-dstImage-00258YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkResolveImageInfo2-dstImage-00259YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-VkResolveImageInfo2-dstImage-00276YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If 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-00278YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If 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-02003YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The format features of dstImage must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VUID-VkResolveImageInfo2-dstImage-02546YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkResolveImageInfo2-dstImage-06764YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkResolveImageInfo2-dstImage-06765YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-VkResolveImageInfo2-dstImage-parameterYNoneimplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImage must be a valid VkImage handle
VUID-VkResolveImageInfo2-dstImageLayout-00262YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImageLayout 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-00263YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkResolveImageInfo2-dstImageLayout-01401YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkResolveImageInfo2-dstImageLayout-parameterYNoneimplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImageLayout must be a valid VkImageLayout value
VUID-VkResolveImageInfo2-dstOffset-00274YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, dstOffset.x and (extent.width + dstOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage
VUID-VkResolveImageInfo2-dstOffset-00275YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, dstOffset.y and (extent.height + dstOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage
VUID-VkResolveImageInfo2-dstOffset-00277YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)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-VkResolveImageInfo2-dstSubresource-01710YResolveInvalidSubresourceexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-VkResolveImageInfo2-dstSubresource-01712YResolveInvalidSubresourceexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The 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-06519NNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_NV_linear_color_attachment)If 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-pNextYNoneimplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)pNext must be NULL
VUID-VkResolveImageInfo2-pRegions-00255NNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory
VUID-VkResolveImageInfo2-pRegions-parameterYNoneimplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)pRegions must be a valid pointer to an array of regionCount valid VkImageResolve2 structures
VUID-VkResolveImageInfo2-regionCount-arraylengthYNoneimplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)regionCount must be greater than 0
VUID-VkResolveImageInfo2-sType-sTypeYNoneimplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2
VUID-VkResolveImageInfo2-srcImage-00256YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkResolveImageInfo2-srcImage-00257YCopyCommands2V13explicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImage must have a sample count equal to any valid sample count value other than VK_SAMPLE_COUNT_1_BIT
VUID-VkResolveImageInfo2-srcImage-00271YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If 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-00273YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If 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-01386YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImage and dstImage must have been created with the same image format
VUID-VkResolveImageInfo2-srcImage-04446YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If either srcImage or dstImage are of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and srcSubresource.layerCount must be 1
VUID-VkResolveImageInfo2-srcImage-04447YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If either srcImage or dstImage are 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-06762YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkResolveImageInfo2-srcImage-06763YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
VUID-VkResolveImageInfo2-srcImage-parameterYNoneimplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImage must be a valid VkImage handle
VUID-VkResolveImageInfo2-srcImageLayout-00260YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImageLayout 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-00261YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkResolveImageInfo2-srcImageLayout-01400YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkResolveImageInfo2-srcImageLayout-parameterYNoneimplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImageLayout must be a valid VkImageLayout value
VUID-VkResolveImageInfo2-srcOffset-00269YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage
VUID-VkResolveImageInfo2-srcOffset-00270YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage
VUID-VkResolveImageInfo2-srcOffset-00272YNoneexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)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-VkResolveImageInfo2-srcSubresource-01709YResolveInvalidSubresourceexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-VkResolveImageInfo2-srcSubresource-01711YResolveInvalidSubresourceexplicitVkResolveImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The 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-parameterYNoneimplicitVkSampleLocationsInfoEXT(VK_EXT_sample_locations)If sampleLocationsCount is not 0, pSampleLocations must be a valid pointer to an array of sampleLocationsCount VkSampleLocationEXT structures
VUID-VkSampleLocationsInfoEXT-sType-sTypeYNoneimplicitVkSampleLocationsInfoEXT(VK_EXT_sample_locations)sType must be VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT
VUID-VkSampleLocationsInfoEXT-sampleLocationsCount-01527YInvalidSampleLocationsexplicitVkSampleLocationsInfoEXT(VK_EXT_sample_locations)sampleLocationsCount must equal sampleLocationsPerPixel {times} sampleLocationGridSize.width {times} sampleLocationGridSize.height
VUID-VkSampleLocationsInfoEXT-sampleLocationsPerPixel-01526YInvalidSampleLocationsexplicitVkSampleLocationsInfoEXT(VK_EXT_sample_locations)sampleLocationsPerPixel must be a bit value that is set in VkPhysicalDeviceSampleLocationsPropertiesEXT::sampleLocationSampleCounts
VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-borderColorSwizzle-06437YValidateCreateSamplerWithBorderColorSwizzleexplicitVkSamplerBorderColorComponentMappingCreateInfoEXT(VK_EXT_border_color_swizzle)The borderColorSwizzle feature must be enabled
VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-components-parameterNNoneimplicitVkSamplerBorderColorComponentMappingCreateInfoEXT(VK_EXT_border_color_swizzle)components must be a valid VkComponentMapping structure
VUID-VkSamplerBorderColorComponentMappingCreateInfoEXT-sType-sTypeYNoneimplicitVkSamplerBorderColorComponentMappingCreateInfoEXT(VK_EXT_border_color_swizzle)sType must be VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT
VUID-VkSamplerCaptureDescriptorDataInfoEXT-pNext-pNextYNoneimplicitVkSamplerCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)pNext must be NULL
VUID-VkSamplerCaptureDescriptorDataInfoEXT-sType-sTypeYNoneimplicitVkSamplerCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)sType must be VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT
VUID-VkSamplerCaptureDescriptorDataInfoEXT-sampler-08087YDescriptorBufferNotEnabledexplicitVkSamplerCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)sampler must have been created with VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT set in VkSamplerCreateInfo::flags
VUID-VkSamplerCaptureDescriptorDataInfoEXT-sampler-parameterYNoneimplicitVkSamplerCaptureDescriptorDataInfoEXT(VK_EXT_descriptor_buffer)sampler must be a valid VkSampler handle
VUID-VkSamplerCreateInfo-None-01647YInvalidSamplerFilterMinmaxexplicitVkSamplerCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)if sampler {YCbCr} 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-04012YCustomBorderColorexplicitVkSamplerCreateInfo(VK_EXT_custom_border_color)The 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-01078YNoneexplicitVkSamplerCreateInfocoreIf any of addressModeU, addressModeV or addressModeW are VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, borderColor must be a valid VkBorderColor value
VUID-VkSamplerCreateInfo-addressModeU-01079YMirrorClampToEdgeNotEnabled12, MirrorClampToEdgeNotEnabledexplicitVkSamplerCreateInfocoreIf 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-01646YMultiplaneImageSamplerConversionMismatchexplicitVkSamplerCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If sampler {YCbCr} 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-parameterYNoneimplicitVkSamplerCreateInfocoreaddressModeU must be a valid VkSamplerAddressMode value
VUID-VkSamplerCreateInfo-addressModeV-parameterYNoneimplicitVkSamplerCreateInfocoreaddressModeV must be a valid VkSamplerAddressMode value
VUID-VkSamplerCreateInfo-addressModeW-parameterYNoneimplicitVkSamplerCreateInfocoreaddressModeW must be a valid VkSamplerAddressMode value
VUID-VkSamplerCreateInfo-anisotropyEnable-01070YAnisotropyFeatureDisabledexplicitVkSamplerCreateInfocoreIf the samplerAnisotropy feature is not enabled, anisotropyEnable must be VK_FALSE
VUID-VkSamplerCreateInfo-anisotropyEnable-01071YAnisotropyFeatureEnabledexplicitVkSamplerCreateInfocoreIf anisotropyEnable is VK_TRUE, maxAnisotropy must be between 1.0 and VkPhysicalDeviceLimits::maxSamplerAnisotropy, inclusive
VUID-VkSamplerCreateInfo-borderColor-04011YCustomBorderColorexplicitVkSamplerCreateInfo(VK_EXT_custom_border_color)If 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-04442NNoneexplicitVkSamplerCreateInfo(VK_EXT_custom_border_color)If 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-01080YNoneexplicitVkSamplerCreateInfocoreIf compareEnable is VK_TRUE, compareOp must be a valid VkCompareOp value
VUID-VkSamplerCreateInfo-compareEnable-01423YInvalidSamplerFilterMinmaxexplicitVkSamplerCreateInfo(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)If compareEnable is VK_TRUE, the reductionMode member of VkSamplerReductionModeCreateInfo must be VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE
VUID-VkSamplerCreateInfo-customBorderColors-04085YNoneexplicitVkSamplerCreateInfo(VK_EXT_custom_border_color)If 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-02574YFragmentDensityMapEnabledexplicitVkSamplerCreateInfo(VK_EXT_fragment_density_map)If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then minFilter and magFilter must be equal
VUID-VkSamplerCreateInfo-flags-02575YFragmentDensityMapEnabledexplicitVkSamplerCreateInfo(VK_EXT_fragment_density_map)If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then mipmapMode must be VK_SAMPLER_MIPMAP_MODE_NEAREST
VUID-VkSamplerCreateInfo-flags-02576YFragmentDensityMapEnabledexplicitVkSamplerCreateInfo(VK_EXT_fragment_density_map)If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then minLod and maxLod must be zero
VUID-VkSamplerCreateInfo-flags-02577YFragmentDensityMapEnabledexplicitVkSamplerCreateInfo(VK_EXT_fragment_density_map)If 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-02578YFragmentDensityMapEnabledexplicitVkSamplerCreateInfo(VK_EXT_fragment_density_map)If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then anisotropyEnable must be VK_FALSE
VUID-VkSamplerCreateInfo-flags-02579YFragmentDensityMapEnabledexplicitVkSamplerCreateInfo(VK_EXT_fragment_density_map)If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then compareEnable must be VK_FALSE
VUID-VkSamplerCreateInfo-flags-02580YFragmentDensityMapEnabledexplicitVkSamplerCreateInfo(VK_EXT_fragment_density_map)If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then unnormalizedCoordinates must be VK_FALSE
VUID-VkSamplerCreateInfo-flags-06964NNoneexplicitVkSamplerCreateInfo(VK_QCOM_image_processing)If flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then minFilter and magFilter must be VK_FILTER_NEAREST
VUID-VkSamplerCreateInfo-flags-06965NNoneexplicitVkSamplerCreateInfo(VK_QCOM_image_processing)If flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then mipmapMode must be VK_SAMPLER_MIPMAP_MODE_NEAREST
VUID-VkSamplerCreateInfo-flags-06966NNoneexplicitVkSamplerCreateInfo(VK_QCOM_image_processing)[If flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then minLod and maxLod must be zero
VUID-VkSamplerCreateInfo-flags-06967NNoneexplicitVkSamplerCreateInfo(VK_QCOM_image_processing)If 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-06968NNoneexplicitVkSamplerCreateInfo(VK_QCOM_image_processing)If 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-06969NNoneexplicitVkSamplerCreateInfo(VK_QCOM_image_processing)If flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then anisotropyEnable must be VK_FALSE
VUID-VkSamplerCreateInfo-flags-06970NNoneexplicitVkSamplerCreateInfo(VK_QCOM_image_processing)If flags includes VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM, then compareEnable must be VK_FALSE
VUID-VkSamplerCreateInfo-flags-08110YDescriptorBufferNotEnabledexplicitVkSamplerCreateInfo(VK_EXT_descriptor_buffer)If flags includes VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, the descriptorBufferCaptureReplay feature must be enabled
VUID-VkSamplerCreateInfo-flags-parameterYNoneimplicitVkSamplerCreateInfocoreflags must be a valid combination of VkSamplerCreateFlagBits values
VUID-VkSamplerCreateInfo-magFilter-01081YAnisotropyFeatureEnabledexplicitVkSamplerCreateInfo(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If either magFilter or minFilter is VK_FILTER_CUBIC_EXT, anisotropyEnable must be VK_FALSE
VUID-VkSamplerCreateInfo-magFilter-01422YTestInvalidSamplerReductionModeexplicitVkSamplerCreateInfo(VK_IMG_filter_cubic+VK_EXT_sampler_filter_minmax)+!(VK_EXT_filter_cubic)If either magFilter or minFilter is VK_FILTER_CUBIC_EXT, the reductionMode member of VkSamplerReductionModeCreateInfo must be VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE
VUID-VkSamplerCreateInfo-magFilter-parameterYNoneimplicitVkSamplerCreateInfocoremagFilter must be a valid VkFilter value
VUID-VkSamplerCreateInfo-maxLod-01973YInvalidSamplerCreateInfoexplicitVkSamplerCreateInfocoremaxLod must be greater than or equal to minLod
VUID-VkSamplerCreateInfo-minFilter-01645YCreateYCbCrSamplerexplicitVkSamplerCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If sampler {YCbCr} conversion is enabled and the potential format features of the sampler {YCbCr} conversion do not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT, minFilter and magFilter must be equal to the sampler {YCbCr} conversion's chromaFilter
VUID-VkSamplerCreateInfo-minFilter-parameterYNoneimplicitVkSamplerCreateInfocoreminFilter must be a valid VkFilter value
VUID-VkSamplerCreateInfo-mipLodBias-01069YInvalidSamplerCreateInfoexplicitVkSamplerCreateInfocoreThe absolute value of mipLodBias must be less than or equal to VkPhysicalDeviceLimits::maxSamplerLodBias
VUID-VkSamplerCreateInfo-mipmapMode-parameterYNoneimplicitVkSamplerCreateInfocoremipmapMode must be a valid VkSamplerMipmapMode value
VUID-VkSamplerCreateInfo-nonSeamlessCubeMap-06788YNonSeamlessCubeMapNotEnabledexplicitVkSamplerCreateInfo(VK_EXT_non_seamless_cube_map)If the nonSeamlessCubeMap feature is not enabled, flags must not include VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT
VUID-VkSamplerCreateInfo-pNext-06726YTestSamplerReductionModeexplicitVkSamplerCreateInfo(VK_VERSION_1_2)If 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-08111YDescriptorBufferNotEnabledexplicitVkSamplerCreateInfo(VK_EXT_descriptor_buffer)If the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
VUID-VkSamplerCreateInfo-pNext-pNextYNoneimplicitVkSamplerCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkOpaqueCaptureDescriptorDataCreateInfoEXT, VkSamplerBorderColorComponentMappingCreateInfoEXT, VkSamplerCustomBorderColorCreateInfoEXT, VkSamplerReductionModeCreateInfo, or VkSamplerYcbcrConversionInfo
VUID-VkSamplerCreateInfo-sType-sTypeYNoneimplicitVkSamplerCreateInfocoresType must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
VUID-VkSamplerCreateInfo-sType-uniqueYNoneimplicitVkSamplerCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkSamplerCreateInfo-samplerMipLodBias-04467YInvalidDepthStencilStateForReadOnlyLayoutexplicitVkSamplerCreateInfo(VK_KHR_portability_subset)If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::samplerMipLodBias is VK_FALSE, mipLodBias must be zero
VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01072YUnnormalizedCoordinatesEnabledexplicitVkSamplerCreateInfocoreIf unnormalizedCoordinates is VK_TRUE, minFilter and magFilter must be equal
VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01073YUnnormalizedCoordinatesEnabledexplicitVkSamplerCreateInfocoreIf unnormalizedCoordinates is VK_TRUE, mipmapMode must be VK_SAMPLER_MIPMAP_MODE_NEAREST
VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01074YUnnormalizedCoordinatesEnabledexplicitVkSamplerCreateInfocoreIf unnormalizedCoordinates is VK_TRUE, minLod and maxLod must be zero
VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01075YUnnormalizedCoordinatesEnabledexplicitVkSamplerCreateInfocoreIf 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-01076YAnisotropyFeatureEnabledexplicitVkSamplerCreateInfocoreIf unnormalizedCoordinates is VK_TRUE, anisotropyEnable must be VK_FALSE
VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01077YUnnormalizedCoordinatesEnabledexplicitVkSamplerCreateInfocoreIf unnormalizedCoordinates is VK_TRUE, compareEnable must be VK_FALSE
VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04014YCustomBorderColorexplicitVkSamplerCustomBorderColorCreateInfoEXT(VK_EXT_custom_border_color)If the customBorderColorWithoutFormat feature is not enabled then format must not be VK_FORMAT_UNDEFINED
VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04015YCustomBorderColorFormatUndefinedexplicitVkSamplerCustomBorderColorCreateInfoEXT(VK_EXT_custom_border_color)If the sampler is used to sample an image view of VK_FORMAT_B4G4R4A4_UNORM_PACK16, VK_FORMAT_B5G6R5_UNORM_PACK16, or VK_FORMAT_B5G5R5A1_UNORM_PACK16 format then format must not be VK_FORMAT_UNDEFINED
VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-07605YCustomBorderColorexplicitVkSamplerCustomBorderColorCreateInfoEXT(VK_EXT_custom_border_color)If format is not VK_FORMAT_UNDEFINED and format is not a combined depth stencil format then the VkSamplerCreateInfo::borderColor type must match the sampled type of the provided format, as shown in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-parameterYNoneimplicitVkSamplerCustomBorderColorCreateInfoEXT(VK_EXT_custom_border_color)format must be a valid VkFormat value
VUID-VkSamplerCustomBorderColorCreateInfoEXT-sType-sTypeYNoneimplicitVkSamplerCustomBorderColorCreateInfoEXT(VK_EXT_custom_border_color)sType must be VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT
VUID-VkSamplerReductionModeCreateInfo-reductionMode-parameterYNoneimplicitVkSamplerReductionModeCreateInfo(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)reductionMode must be a valid VkSamplerReductionMode value
VUID-VkSamplerReductionModeCreateInfo-sType-sTypeYNoneimplicitVkSamplerReductionModeCreateInfo(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)sType must be VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO
VUID-VkSamplerYcbcrConversionCreateInfo-chromaFilter-01657YCreateYCbCrSamplerexplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the potential format features of the sampler {YCbCr} conversion do not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT, chromaFilter must not be VK_FILTER_LINEAR
VUID-VkSamplerYcbcrConversionCreateInfo-chromaFilter-parameterYNoneimplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)chromaFilter must be a valid VkFilter value
VUID-VkSamplerYcbcrConversionCreateInfo-components-02581YInvalidSwizzleYCbCrexplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the format has a _422 or _420 suffix, then components.g must be the identity swizzle
VUID-VkSamplerYcbcrConversionCreateInfo-components-02582YInvalidSwizzleYCbCrexplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-02583YInvalidSwizzleYCbCrexplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the format has a _422 or _420 suffix, then components.r must be the identity swizzle or VK_COMPONENT_SWIZZLE_B
VUID-VkSamplerYcbcrConversionCreateInfo-components-02584YInvalidSwizzleYCbCrexplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the format has a _422 or _420 suffix, then components.b must be the identity swizzle or VK_COMPONENT_SWIZZLE_R
VUID-VkSamplerYcbcrConversionCreateInfo-components-02585YInvalidSwizzleYCbCrexplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-parameterNNoneimplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)components must be a valid VkComponentMapping structure
VUID-VkSamplerYcbcrConversionCreateInfo-forceExplicitReconstruction-01656YCreateYCbCrSamplerexplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the potential format features of the sampler {YCbCr} conversion do not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT forceExplicitReconstruction must be VK_FALSE
VUID-VkSamplerYcbcrConversionCreateInfo-format-01650YCreateYCbCrSamplerexplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)The potential format features of the sampler {YCbCr} conversion must support VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT or VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT
VUID-VkSamplerYcbcrConversionCreateInfo-format-01904YAndroidHardwareBufferCreateYCbCrSamplerexplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_ANDROID_external_memory_android_hardware_buffer)If an external format conversion is being created, format must be VK_FORMAT_UNDEFINED
VUID-VkSamplerYcbcrConversionCreateInfo-format-04060YCreateYCbCrSamplerexplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_ANDROID_external_memory_android_hardware_buffer)format must represent unsigned normalized values (i.e. the format must be a UNORM format)
VUID-VkSamplerYcbcrConversionCreateInfo-format-04061YAndroidHardwareBufferCreateYCbCrSamplerexplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_ANDROID_external_memory_android_hardware_buffer)If 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-parameterYNoneimplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)format must be a valid VkFormat value
VUID-VkSamplerYcbcrConversionCreateInfo-pNext-pNextYNoneimplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)pNext must be NULL or a pointer to a valid instance of VkExternalFormatANDROID
VUID-VkSamplerYcbcrConversionCreateInfo-sType-sTypeYNoneimplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)sType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO
VUID-VkSamplerYcbcrConversionCreateInfo-sType-uniqueYNoneimplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)The sType value of each struct in the pNext chain must be unique
VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-01651YAndroidHardwareBufferCreateYCbCrSampler, CreateYCbCrSamplerexplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the potential format features of the sampler {YCbCr} 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-01652YCreateYCbCrSamplerexplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the potential format features of the sampler {YCbCr} 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-parameterYNoneimplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)xChromaOffset must be a valid VkChromaLocation value
VUID-VkSamplerYcbcrConversionCreateInfo-yChromaOffset-parameterYNoneimplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)yChromaOffset must be a valid VkChromaLocation value
VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrModel-01655YInvalidSwizzleYCbCrexplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-parameterYNoneimplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)ycbcrModel must be a valid VkSamplerYcbcrModelConversion value
VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrRange-02748NNoneexplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-parameterYNoneimplicitVkSamplerYcbcrConversionCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)ycbcrRange must be a valid VkSamplerYcbcrRange value
VUID-VkSamplerYcbcrConversionImageFormatProperties-sType-sTypeYNoneimplicitVkSamplerYcbcrConversionImageFormatProperties(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)sType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES
VUID-VkSamplerYcbcrConversionInfo-conversion-parameterNNoneimplicitVkSamplerYcbcrConversionInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)conversion must be a valid VkSamplerYcbcrConversion handle
VUID-VkSamplerYcbcrConversionInfo-sType-sTypeYNoneimplicitVkSamplerYcbcrConversionInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)sType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO
VUID-VkScreenSurfaceCreateInfoQNX-context-04741NNoneexplicitVkScreenSurfaceCreateInfoQNX(VK_KHR_surface)+(VK_QNX_screen_surface)context must point to a valid QNX Screen struct _screen_context
VUID-VkScreenSurfaceCreateInfoQNX-flags-zerobitmaskYNoneimplicitVkScreenSurfaceCreateInfoQNX(VK_KHR_surface)+(VK_QNX_screen_surface)flags must be 0
VUID-VkScreenSurfaceCreateInfoQNX-pNext-pNextYNoneimplicitVkScreenSurfaceCreateInfoQNX(VK_KHR_surface)+(VK_QNX_screen_surface)pNext must be NULL
VUID-VkScreenSurfaceCreateInfoQNX-sType-sTypeYNoneimplicitVkScreenSurfaceCreateInfoQNX(VK_KHR_surface)+(VK_QNX_screen_surface)sType must be VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX
VUID-VkScreenSurfaceCreateInfoQNX-window-04742NNoneexplicitVkScreenSurfaceCreateInfoQNX(VK_KHR_surface)+(VK_QNX_screen_surface)window must point to a valid QNX Screen struct _screen_window
VUID-VkSemaphoreCreateInfo-flags-zerobitmaskYZeroBitmaskimplicitVkSemaphoreCreateInfocoreflags must be 0
VUID-VkSemaphoreCreateInfo-pNext-06789YExportMetalObjectsexplicitVkSemaphoreCreateInfo(VK_EXT_metal_objects)If the pNext chain includes a VkExportMetalObjectCreateInfoEXT structure, its exportObjectType member must be VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT
VUID-VkSemaphoreCreateInfo-pNext-pNextYNoneimplicitVkSemaphoreCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkExportMetalObjectCreateInfoEXT, VkExportSemaphoreCreateInfo, VkExportSemaphoreWin32HandleInfoKHR, VkImportMetalSharedEventInfoEXT, or VkSemaphoreTypeCreateInfo
VUID-VkSemaphoreCreateInfo-sType-sTypeYNoneimplicitVkSemaphoreCreateInfocoresType must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
VUID-VkSemaphoreCreateInfo-sType-uniqueYNoneimplicitVkSemaphoreCreateInfocoreThe sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkExportMetalObjectCreateInfoEXT
VUID-VkSemaphoreGetFdInfoKHR-handleType-01132YInvalidExternalSemaphore, ExternalSyncFdSemaphoreexplicitVkSemaphoreGetFdInfoKHR(VK_KHR_external_semaphore_fd)handleType must have been included in VkExportSemaphoreCreateInfo::handleTypes when semaphore's current payload was created
VUID-VkSemaphoreGetFdInfoKHR-handleType-01134NNoneexplicitVkSemaphoreGetFdInfoKHR(VK_KHR_external_semaphore_fd)If 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-01135NNoneexplicitVkSemaphoreGetFdInfoKHR(VK_KHR_external_semaphore_fd)If 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-01136YInvalidExternalSemaphoreexplicitVkSemaphoreGetFdInfoKHR(VK_KHR_external_semaphore_fd)handleType must be defined as a POSIX file descriptor handle
VUID-VkSemaphoreGetFdInfoKHR-handleType-03253YExternalSyncFdSemaphoreexplicitVkSemaphoreGetFdInfoKHR(VK_KHR_external_semaphore_fd)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)If 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-03254YInvalidExternalSemaphore, ExternalSyncFdSemaphoreexplicitVkSemaphoreGetFdInfoKHR(VK_KHR_external_semaphore_fd)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)If 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 (if any) must have also been submitted for execution
VUID-VkSemaphoreGetFdInfoKHR-handleType-parameterYNoneimplicitVkSemaphoreGetFdInfoKHR(VK_KHR_external_semaphore_fd)handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value
VUID-VkSemaphoreGetFdInfoKHR-pNext-pNextYNoneimplicitVkSemaphoreGetFdInfoKHR(VK_KHR_external_semaphore_fd)pNext must be NULL
VUID-VkSemaphoreGetFdInfoKHR-sType-sTypeYNoneimplicitVkSemaphoreGetFdInfoKHR(VK_KHR_external_semaphore_fd)sType must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR
VUID-VkSemaphoreGetFdInfoKHR-semaphore-01133NNoneexplicitVkSemaphoreGetFdInfoKHR(VK_KHR_external_semaphore_fd)semaphore 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-parameterYNoneimplicitVkSemaphoreGetFdInfoKHR(VK_KHR_external_semaphore_fd)semaphore must be a valid VkSemaphore handle
VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01126YInvalidExternalSemaphoreexplicitVkSemaphoreGetWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)handleType must have been included in VkExportSemaphoreCreateInfo::handleTypes when the semaphore's current payload was created
VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01127NNoneexplicitVkSemaphoreGetWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)If 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-01129NNoneexplicitVkSemaphoreGetWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)If 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-01130NNoneexplicitVkSemaphoreGetWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)If 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-01131YInvalidExternalSemaphoreexplicitVkSemaphoreGetWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)handleType must be defined as an NT handle or a global share handle
VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-parameterYNoneimplicitVkSemaphoreGetWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value
VUID-VkSemaphoreGetWin32HandleInfoKHR-pNext-pNextYNoneimplicitVkSemaphoreGetWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)pNext must be NULL
VUID-VkSemaphoreGetWin32HandleInfoKHR-sType-sTypeYNoneimplicitVkSemaphoreGetWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)sType must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR
VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-01128NNoneexplicitVkSemaphoreGetWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)semaphore 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-parameterYNoneimplicitVkSemaphoreGetWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)semaphore must be a valid VkSemaphore handle
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04758NNoneexplicitVkSemaphoreGetZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_semaphore)handleType must have been included in VkExportSemaphoreCreateInfo::handleTypes when semaphore's current payload was created
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-04760NNoneexplicitVkSemaphoreGetZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_semaphore)If 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-04761NNoneexplicitVkSemaphoreGetZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_semaphore)If 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-04762NNoneexplicitVkSemaphoreGetZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_semaphore)handleType must be defined as a Zircon event handle
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-handleType-parameterYNoneimplicitVkSemaphoreGetZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_semaphore)handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-pNext-pNextYNoneimplicitVkSemaphoreGetZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_semaphore)pNext must be NULL
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-sType-sTypeYNoneimplicitVkSemaphoreGetZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_semaphore)sType must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-04759NNoneexplicitVkSemaphoreGetZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_semaphore)semaphore 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-04763NNoneexplicitVkSemaphoreGetZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_semaphore)semaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY
VUID-VkSemaphoreGetZirconHandleInfoFUCHSIA-semaphore-parameterYNoneimplicitVkSemaphoreGetZirconHandleInfoFUCHSIA(VK_FUCHSIA_external_semaphore)semaphore must be a valid VkSemaphore handle
VUID-VkSemaphoreSignalInfo-pNext-pNextYNoneimplicitVkSemaphoreSignalInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)pNext must be NULL
VUID-VkSemaphoreSignalInfo-sType-sTypeYNoneimplicitVkSemaphoreSignalInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)sType must be VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO
VUID-VkSemaphoreSignalInfo-semaphore-03257YInvalidSignalSemaphoreTypeexplicitVkSemaphoreSignalInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)semaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE
VUID-VkSemaphoreSignalInfo-semaphore-parameterYNoneimplicitVkSemaphoreSignalInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)semaphore must be a valid VkSemaphore handle
VUID-VkSemaphoreSignalInfo-value-03258YInvalidSignalSemaphoreValueexplicitVkSemaphoreSignalInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)value must have a value greater than the current value of the semaphore
VUID-VkSemaphoreSignalInfo-value-03259YSync2InvalidSignalSemaphoreValue, InvalidSignalSemaphoreValueexplicitVkSemaphoreSignalInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)value must be less than the value of any pending semaphore signal operations
VUID-VkSemaphoreSignalInfo-value-03260YInvalidSignalSemaphoreValueexplicitVkSemaphoreSignalInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)value 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-03888NNoneexplicitVkSemaphoreSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)If the device that semaphore was created on is not a device group, deviceIndex must be 0
VUID-VkSemaphoreSubmitInfo-device-03889NNoneexplicitVkSemaphoreSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_device_group_creation,VK_VERSION_1_1)If the device that semaphore was created on is a device group, deviceIndex must be a valid device index
VUID-VkSemaphoreSubmitInfo-pNext-pNextYNoneimplicitVkSemaphoreSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)pNext must be NULL
VUID-VkSemaphoreSubmitInfo-sType-sTypeYNoneimplicitVkSemaphoreSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)sType must be VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO
VUID-VkSemaphoreSubmitInfo-semaphore-parameterYNoneimplicitVkSemaphoreSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)semaphore must be a valid VkSemaphore handle
VUID-VkSemaphoreSubmitInfo-stageMask-03929YNoneexplicitVkSemaphoreSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)If the geometryShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-VkSemaphoreSubmitInfo-stageMask-03930YNoneexplicitVkSemaphoreSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)If the tessellationShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkSemaphoreSubmitInfo-stageMask-03931YNoneexplicitVkSemaphoreSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkSemaphoreSubmitInfo-stageMask-03932YNoneexplicitVkSemaphoreSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkSemaphoreSubmitInfo-stageMask-03933YNoneexplicitVkSemaphoreSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkSemaphoreSubmitInfo-stageMask-03934YNoneexplicitVkSemaphoreSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-VkSemaphoreSubmitInfo-stageMask-03935YNoneexplicitVkSemaphoreSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-VkSemaphoreSubmitInfo-stageMask-04956YNoneexplicitVkSemaphoreSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV
VUID-VkSemaphoreSubmitInfo-stageMask-04957NNoneexplicitVkSemaphoreSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)If the subpassShading feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
VUID-VkSemaphoreSubmitInfo-stageMask-04995NNoneexplicitVkSemaphoreSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)If the invocationMask feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-VkSemaphoreSubmitInfo-stageMask-07316NNoneexplicitVkSemaphoreSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSemaphoreSubmitInfo-stageMask-07317NNoneexplicitVkSemaphoreSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSemaphoreSubmitInfo-stageMask-parameterYNoneimplicitVkSemaphoreSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)stageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-VkSemaphoreTypeCreateInfo-sType-sTypeYNoneimplicitVkSemaphoreTypeCreateInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)sType must be VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO
VUID-VkSemaphoreTypeCreateInfo-semaphoreType-03279YInvalidVkSemaphoreTypeCreateInfoCore, InvalidVkSemaphoreTypeCreateInfoExtensionexplicitVkSemaphoreTypeCreateInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)If semaphoreType is VK_SEMAPHORE_TYPE_BINARY, initialValue must be zero
VUID-VkSemaphoreTypeCreateInfo-semaphoreType-parameterYNoneimplicitVkSemaphoreTypeCreateInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)semaphoreType must be a valid VkSemaphoreType value
VUID-VkSemaphoreTypeCreateInfo-timelineSemaphore-03252YInvalidVkSemaphoreTypeCreateInfoCore, InvalidVkSemaphoreTypeCreateInfoExtensionexplicitVkSemaphoreTypeCreateInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)If the timelineSemaphore feature is not enabled, semaphoreType must not equal VK_SEMAPHORE_TYPE_TIMELINE
VUID-VkSemaphoreWaitInfo-flags-parameterYNoneimplicitVkSemaphoreWaitInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)flags must be a valid combination of VkSemaphoreWaitFlagBits values
VUID-VkSemaphoreWaitInfo-pNext-pNextYNoneimplicitVkSemaphoreWaitInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)pNext must be NULL
VUID-VkSemaphoreWaitInfo-pSemaphores-03256YInvalidWaitSemaphoresTypeexplicitVkSemaphoreWaitInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)All of the elements of pSemaphores must reference a semaphore that was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE
VUID-VkSemaphoreWaitInfo-pSemaphores-parameterYNoneimplicitVkSemaphoreWaitInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)pSemaphores must be a valid pointer to an array of semaphoreCount valid VkSemaphore handles
VUID-VkSemaphoreWaitInfo-pValues-parameterYNoneimplicitVkSemaphoreWaitInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)pValues must be a valid pointer to an array of semaphoreCount uint64_t values
VUID-VkSemaphoreWaitInfo-sType-sTypeYNoneimplicitVkSemaphoreWaitInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)sType must be VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO
VUID-VkSemaphoreWaitInfo-semaphoreCount-arraylengthYNoneimplicitVkSemaphoreWaitInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)semaphoreCount must be greater than 0
VUID-VkShaderModuleCreateInfo-codeSize-01085NNoneexplicitVkShaderModuleCreateInfocorecodeSize must be greater than 0
VUID-VkShaderModuleCreateInfo-codeSize-01086NNoneexplicitVkShaderModuleCreateInfo!(VK_NV_glsl_shader)codeSize must be a multiple of 4
VUID-VkShaderModuleCreateInfo-flags-zerobitmaskYNoneimplicitVkShaderModuleCreateInfocoreflags must be 0
VUID-VkShaderModuleCreateInfo-pCode-01087NNoneexplicitVkShaderModuleCreateInfo!(VK_NV_glsl_shader)pCode must point to valid SPIR-V code, formatted and packed as described by the Khronos SPIR-V Specification
VUID-VkShaderModuleCreateInfo-pCode-01088NNoneexplicitVkShaderModuleCreateInfo!(VK_NV_glsl_shader)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-01089NNoneexplicitVkShaderModuleCreateInfocorepCode must declare the Shader capability for SPIR-V code
VUID-VkShaderModuleCreateInfo-pCode-01090YNoneexplicitVkShaderModuleCreateInfocorepCode 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-01091YShaderDrawParametersNotEnabled11, SubpassInputWithoutFormat, CreatePipelineCheckComputeShaderDerivativesEnabled, ShaderFloatControl, CreatePipelineCheckShaderNotEnabled, ShaderDrawParametersNotEnabled10, MissingStorageImageFormatRead, CreatePipelineCheckFragmentShaderInterlockEnabled, CreatePipelineCheckDemoteToHelperInvocation, ShaderAtomicInt64, ShaderAtomicFloat, MissingStorageImageFormatWrite, CreatePipelineCheckFragmentShaderBarycentricEnabled, SubgroupSupportedProperties, ShaderImageAtomicInt64, Storage8and16bitCapability, CreatePipelineCheckShaderImageFootprintEnabled, ValidateGeometryShaderEnabled, ShaderAtomicFloat2, ValidateTessellationShaderEnabled, CreatePipelineDynamicUniformIndex, QueueFamilyMemoryScope, WorkgroupMemoryExplicitLayoutexplicitVkShaderModuleCreateInfocoreIf pCode declares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied
VUID-VkShaderModuleCreateInfo-pCode-01376YInvalidSPIRVCodeSizeexplicitVkShaderModuleCreateInfo(VK_NV_glsl_shader)If pCode is a pointer to SPIR-V code, codeSize must be a multiple of 4
VUID-VkShaderModuleCreateInfo-pCode-01377NNoneexplicitVkShaderModuleCreateInfo(VK_NV_glsl_shader)pCode must point to either valid SPIR-V code, formatted and packed as described by the Khronos SPIR-V Specification or valid GLSL code which must be written to the GL_KHR_vulkan_glsl extension specification
VUID-VkShaderModuleCreateInfo-pCode-01378NNoneexplicitVkShaderModuleCreateInfo(VK_NV_glsl_shader)If pCode is a pointer to SPIR-V code, that code must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix
VUID-VkShaderModuleCreateInfo-pCode-01379NNoneexplicitVkShaderModuleCreateInfo(VK_NV_glsl_shader)If 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-04146YInvalidSpirvExtensionexplicitVkShaderModuleCreateInfocorepCode 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-04147YCreatePipelineCheckFragmentShaderInterlockEnabled, CreatePipelineCheckComputeShaderDerivativesEnabled, CreatePipelineCheckShaderImageFootprintEnabled, NonSemanticInfoEnabled, ShaderAtomicFloat2, ShaderAtomicFloat, ShaderDrawParametersNotEnabled10, ShaderImageAtomicInt64, SubgroupSupportedProperties, WorkgroupMemoryExplicitLayoutexplicitVkShaderModuleCreateInfocoreIf pCode declares any of the SPIR-V extensions listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied
VUID-VkShaderModuleCreateInfo-pCode-parameterYNoneimplicitVkShaderModuleCreateInfocorepCode must be a valid pointer to an array of (codeSize/4) uint32_t values
VUID-VkShaderModuleCreateInfo-sType-sTypeYNoneimplicitVkShaderModuleCreateInfocoresType must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
VUID-VkShaderModuleIdentifierEXT-pNext-pNextYNoneimplicitVkShaderModuleIdentifierEXT(VK_EXT_shader_module_identifier)pNext must be NULL
VUID-VkShaderModuleIdentifierEXT-sType-sTypeYNoneimplicitVkShaderModuleIdentifierEXT(VK_EXT_shader_module_identifier)sType must be VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT
VUID-VkShaderModuleValidationCacheCreateInfoEXT-sType-sTypeYNoneimplicitVkShaderModuleValidationCacheCreateInfoEXT(VK_EXT_validation_cache)sType must be VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT
VUID-VkShaderModuleValidationCacheCreateInfoEXT-validationCache-parameterNNoneimplicitVkShaderModuleValidationCacheCreateInfoEXT(VK_EXT_validation_cache)validationCache must be a valid VkValidationCacheEXT handle
VUID-VkShadingRatePaletteNV-pShadingRatePaletteEntries-parameterNNoneimplicitVkShadingRatePaletteNV(VK_NV_shading_rate_image)pShadingRatePaletteEntries must be a valid pointer to an array of shadingRatePaletteEntryCount valid VkShadingRatePaletteEntryNV values
VUID-VkShadingRatePaletteNV-shadingRatePaletteEntryCount-02071YShadingRateImageNVexplicitVkShadingRatePaletteNV(VK_NV_shading_rate_image)shadingRatePaletteEntryCount must be between 1 and VkPhysicalDeviceShadingRateImagePropertiesNV::shadingRatePaletteSize, inclusive
VUID-VkShadingRatePaletteNV-shadingRatePaletteEntryCount-arraylengthNNoneimplicitVkShadingRatePaletteNV(VK_NV_shading_rate_image)shadingRatePaletteEntryCount must be greater than 0
VUID-VkSharedPresentSurfaceCapabilitiesKHR-sType-sTypeYNoneimplicitVkSharedPresentSurfaceCapabilitiesKHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_KHR_shared_presentable_image)sType must be VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR
VUID-VkSparseBufferMemoryBindInfo-bindCount-arraylengthYNoneimplicitVkSparseBufferMemoryBindInfocorebindCount must be greater than 0
VUID-VkSparseBufferMemoryBindInfo-buffer-parameterYNoneimplicitVkSparseBufferMemoryBindInfocorebuffer must be a valid VkBuffer handle
VUID-VkSparseBufferMemoryBindInfo-pBinds-parameterYNoneimplicitVkSparseBufferMemoryBindInfocorepBinds must be a valid pointer to an array of bindCount valid VkSparseMemoryBind structures
VUID-VkSparseImageFormatProperties2-pNext-pNextYNoneimplicitVkSparseImageFormatProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)pNext must be NULL
VUID-VkSparseImageFormatProperties2-sType-sTypeYNoneimplicitVkSparseImageFormatProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)sType must be VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2
VUID-VkSparseImageMemoryBind-extent-01108YInvalidVkSparseImageMemoryBindexplicitVkSparseImageMemoryBindcoreextent.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-01110YInvalidVkSparseImageMemoryBindexplicitVkSparseImageMemoryBindcoreextent.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-01112YInvalidVkSparseImageMemoryBindexplicitVkSparseImageMemoryBindcoreextent.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-flags-parameterYNoneimplicitVkSparseImageMemoryBindcoreflags must be a valid combination of VkSparseMemoryBindFlagBits values
VUID-VkSparseImageMemoryBind-memory-01104NNoneexplicitVkSparseImageMemoryBindcoreIf the sparseResidencyAliased feature is not enabled, and if any other resources are bound to ranges of memory, the range of memory being bound must not overlap with those bound ranges
VUID-VkSparseImageMemoryBind-memory-01105NNoneexplicitVkSparseImageMemoryBindcorememory and memoryOffset must match the memory requirements of the calling command's image, as described in section Resource Memory Association
VUID-VkSparseImageMemoryBind-memory-02732NNoneexplicitVkSparseImageMemoryBind(VK_VERSION_1_1,VK_KHR_external_memory)If 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-02733NNoneexplicitVkSparseImageMemoryBind(VK_VERSION_1_1,VK_KHR_external_memory)If memory was created by a memory import operation, the external handle type of the imported memory must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when image was created
VUID-VkSparseImageMemoryBind-memory-parameterYNoneimplicitVkSparseImageMemoryBindcoreIf memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle
VUID-VkSparseImageMemoryBind-offset-01107YInvalidVkSparseImageMemoryBindexplicitVkSparseImageMemoryBindcoreoffset.x must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of the image
VUID-VkSparseImageMemoryBind-offset-01109YInvalidVkSparseImageMemoryBindexplicitVkSparseImageMemoryBindcoreoffset.y must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of the image
VUID-VkSparseImageMemoryBind-offset-01111YInvalidVkSparseImageMemoryBindexplicitVkSparseImageMemoryBindcoreoffset.z must be a multiple of the sparse image block depth (VkSparseImageFormatProperties::imageGranularity.depth) of the image
VUID-VkSparseImageMemoryBind-subresource-01106YInvalidVkSparseImageMemoryBindexplicitVkSparseImageMemoryBindcoresubresource must be a valid image subresource for image (see Image Views)
VUID-VkSparseImageMemoryBind-subresource-parameterNNoneimplicitVkSparseImageMemoryBindcoresubresource must be a valid VkImageSubresource structure
VUID-VkSparseImageMemoryBindInfo-bindCount-arraylengthYNoneimplicitVkSparseImageMemoryBindInfocorebindCount must be greater than 0
VUID-VkSparseImageMemoryBindInfo-image-02901YSparseResidencyFlagMissingexplicitVkSparseImageMemoryBindInfocoreimage must have been created with VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set
VUID-VkSparseImageMemoryBindInfo-image-parameterYNoneimplicitVkSparseImageMemoryBindInfocoreimage must be a valid VkImage handle
VUID-VkSparseImageMemoryBindInfo-pBinds-parameterYNoneimplicitVkSparseImageMemoryBindInfocorepBinds must be a valid pointer to an array of bindCount valid VkSparseImageMemoryBind structures
VUID-VkSparseImageMemoryBindInfo-subresource-01722NNoneexplicitVkSparseImageMemoryBindInfocoreThe subresource.mipLevel member of each element of pBinds must be less than the mipLevels specified in VkImageCreateInfo when image was created
VUID-VkSparseImageMemoryBindInfo-subresource-01723NNoneexplicitVkSparseImageMemoryBindInfocoreThe subresource.arrayLayer member of each element of pBinds must be less than the arrayLayers specified in VkImageCreateInfo when image was created
VUID-VkSparseImageMemoryRequirements2-pNext-pNextYNoneimplicitVkSparseImageMemoryRequirements2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)pNext must be NULL
VUID-VkSparseImageMemoryRequirements2-sType-sTypeYNoneimplicitVkSparseImageMemoryRequirements2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)sType must be VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2
VUID-VkSparseImageOpaqueMemoryBindInfo-bindCount-arraylengthYNoneimplicitVkSparseImageOpaqueMemoryBindInfocorebindCount must be greater than 0
VUID-VkSparseImageOpaqueMemoryBindInfo-image-parameterYNoneimplicitVkSparseImageOpaqueMemoryBindInfocoreimage must be a valid VkImage handle
VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-01103NNoneexplicitVkSparseImageOpaqueMemoryBindInfocoreIf the flags member of any element of pBinds contains VK_SPARSE_MEMORY_BIND_METADATA_BIT, the binding range defined must be within the mip tail region of the metadata aspect of image
VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-parameterYNoneimplicitVkSparseImageOpaqueMemoryBindInfocorepBinds must be a valid pointer to an array of bindCount valid VkSparseMemoryBind structures
VUID-VkSparseMemoryBind-flags-parameterYNoneimplicitVkSparseMemoryBindcoreflags must be a valid combination of VkSparseMemoryBindFlagBits values
VUID-VkSparseMemoryBind-memory-01096NNoneexplicitVkSparseMemoryBindcoreIf 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-01097YInvalidQueueBindSparseMemoryTypeexplicitVkSparseMemoryBindcoreIf 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-02730NNoneexplicitVkSparseMemoryBind(VK_VERSION_1_1,VK_KHR_external_memory)If 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-02731NNoneexplicitVkSparseMemoryBind(VK_VERSION_1_1,VK_KHR_external_memory)If 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-parameterYNoneimplicitVkSparseMemoryBindcoreIf memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle
VUID-VkSparseMemoryBind-memoryOffset-01101YSparseMemoryBindOffsetexplicitVkSparseMemoryBindcorememoryOffset must be less than the size of memory
VUID-VkSparseMemoryBind-resourceOffset-01099YQueueBindSparse_InvalidSparseMemoryBindResourceOffsetexplicitVkSparseMemoryBindcoreresourceOffset must be less than the size of the resource
VUID-VkSparseMemoryBind-size-01098YQueueBindSparse_InvalidSparseMemoryBindSizeexplicitVkSparseMemoryBindcoresize must be greater than 0
VUID-VkSparseMemoryBind-size-01100YQueueBindSparse_InvalidSparseMemoryBindSizeResourceOffsetexplicitVkSparseMemoryBindcoresize must be less than or equal to the size of the resource minus resourceOffset
VUID-VkSparseMemoryBind-size-01102YQueueBindSparse_InvalidSparseMemoryBindSizeMemoryOffsetexplicitVkSparseMemoryBindcoresize must be less than or equal to the size of memory minus memoryOffset
VUID-VkSpecializationInfo-constantID-04911YCreatePipelineWithDuplicatedSpecializationConstantIDexplicitVkSpecializationInfocoreThe constantID value of each element of pMapEntries must be unique within pMapEntries
VUID-VkSpecializationInfo-offset-00773YCreatePipelineCheckShaderBadSpecializationOffsetOutOfBoundsexplicitVkSpecializationInfocoreThe offset member of each element of pMapEntries must be less than dataSize
VUID-VkSpecializationInfo-pData-parameterYNoneimplicitVkSpecializationInfocoreIf dataSize is not 0, pData must be a valid pointer to an array of dataSize bytes
VUID-VkSpecializationInfo-pMapEntries-00774YCreatePipelineCheckShaderBadSpecializationSizeOutOfBoundsexplicitVkSpecializationInfocoreThe size member of each element of pMapEntries must be less than or equal to dataSize minus offset
VUID-VkSpecializationInfo-pMapEntries-parameterYNoneimplicitVkSpecializationInfocoreIf mapEntryCount is not 0, pMapEntries must be a valid pointer to an array of mapEntryCount valid VkSpecializationMapEntry structures
VUID-VkSpecializationMapEntry-constantID-00776YSpecializationInvalidSizeZero, SpecializationInvalidSizeMismatchexplicitVkSpecializationMapEntrycoreFor 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-parameterNNoneimplicitVkStencilOpStatecorecompareOp must be a valid VkCompareOp value
VUID-VkStencilOpState-depthFailOp-parameterYNoneimplicitVkStencilOpStatecoredepthFailOp must be a valid VkStencilOp value
VUID-VkStencilOpState-failOp-parameterYNoneimplicitVkStencilOpStatecorefailOp must be a valid VkStencilOp value
VUID-VkStencilOpState-passOp-parameterYNoneimplicitVkStencilOpStatecorepassOp must be a valid VkStencilOp value
VUID-VkStreamDescriptorSurfaceCreateInfoGGP-flags-zerobitmaskYNoneimplicitVkStreamDescriptorSurfaceCreateInfoGGP(VK_KHR_surface)+(VK_GGP_stream_descriptor_surface)flags must be 0
VUID-VkStreamDescriptorSurfaceCreateInfoGGP-pNext-pNextYNoneimplicitVkStreamDescriptorSurfaceCreateInfoGGP(VK_KHR_surface)+(VK_GGP_stream_descriptor_surface)pNext must be NULL
VUID-VkStreamDescriptorSurfaceCreateInfoGGP-sType-sTypeYNoneimplicitVkStreamDescriptorSurfaceCreateInfoGGP(VK_KHR_surface)+(VK_GGP_stream_descriptor_surface)sType must be VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP
VUID-VkStreamDescriptorSurfaceCreateInfoGGP-streamDescriptor-02681NNoneexplicitVkStreamDescriptorSurfaceCreateInfoGGP(VK_KHR_surface)+(VK_GGP_stream_descriptor_surface)streamDescriptor must be a valid GgpStreamDescriptor
VUID-VkStridedDeviceAddressRegionKHR-size-04631NNoneexplicitVkStridedDeviceAddressRegionKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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-04632NNoneexplicitVkStridedDeviceAddressRegionKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If size is not zero, stride must be less than or equal to the size of the buffer from which deviceAddress was queried
VUID-VkSubmitInfo-commonparentYNoneimplicitVkSubmitInfocoreEach of the elements of pCommandBuffers, the elements of pSignalSemaphores, and the elements of pWaitSemaphores that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkSubmitInfo-pCommandBuffers-00075YSecondaryCommandbufferAsPrimaryexplicitVkSubmitInfocoreEach element of pCommandBuffers must not have been allocated with VK_COMMAND_BUFFER_LEVEL_SECONDARY
VUID-VkSubmitInfo-pCommandBuffers-06014YDynamicRenderingSuspendingRenderPassInstanceexplicitVkSubmitInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06015NNoneexplicitVkSubmitInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06016YDynamicRenderingSuspendingRenderPassInstanceexplicitVkSubmitInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06193YDynamicRenderingSuspendingRenderPassInstanceexplicitVkSubmitInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If pCommandBuffers contains any resumed render pass instances, they must be suspended by a render pass instance earlier in submission order within pCommandBuffers
VUID-VkSubmitInfo-pCommandBuffers-parameterYNoneimplicitVkSubmitInfocoreIf commandBufferCount is not 0, pCommandBuffers must be a valid pointer to an array of commandBufferCount valid VkCommandBuffer handles
VUID-VkSubmitInfo-pNext-03240YQueueSubmitTimelineSemaphoreBadValueexplicitVkSubmitInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)If 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-03241YQueueSubmitTimelineSemaphoreBadValue, MixedTimelineAndBinarySemaphoresexplicitVkSubmitInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)If 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-04120YInvalidMixingProtectedResourcesexplicitVkSubmitInfo(VK_VERSION_1_1)If 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-04148YInvalidMixingProtectedResources, InvalidProtectedSubmitexplicitVkSubmitInfo(VK_VERSION_1_1)If the pNext chain of this structure includes a VkProtectedSubmitInfo structure with protectedSubmit set to VK_TRUE, then each element of the pCommandBuffers array must be a protected command buffer
VUID-VkSubmitInfo-pNext-pNextYNoneimplicitVkSubmitInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkAmigoProfilingSubmitInfoSEC, VkD3D12FenceSubmitInfoKHR, VkDeviceGroupSubmitInfo, VkPerformanceQuerySubmitInfoKHR, VkProtectedSubmitInfo, VkTimelineSemaphoreSubmitInfo, VkWin32KeyedMutexAcquireReleaseInfoKHR, or VkWin32KeyedMutexAcquireReleaseInfoNV
VUID-VkSubmitInfo-pSignalSemaphores-03242YQueueSubmitTimelineSemaphoreBadValueexplicitVkSubmitInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)For 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-03244YQueueSubmitTimelineSemaphoreBadValueexplicitVkSubmitInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)For each element of pSignalSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pSignalSemaphoreValues must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference
VUID-VkSubmitInfo-pSignalSemaphores-parameterYNoneimplicitVkSubmitInfocoreIf signalSemaphoreCount is not 0, pSignalSemaphores must be a valid pointer to an array of signalSemaphoreCount valid VkSemaphore handles
VUID-VkSubmitInfo-pWaitDstStageMask-00078YStageMaskHostexplicitVkSubmitInfocoreEach element of pWaitDstStageMask must not include VK_PIPELINE_STAGE_HOST_BIT
VUID-VkSubmitInfo-pWaitDstStageMask-03937YNoneexplicitVkSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)If the synchronization2 feature is not enabled, pname:pWaitDstStageMask must not be 0
VUID-VkSubmitInfo-pWaitDstStageMask-04090YNoneexplicitVkSubmitInfocoreIf the geometryShader feature is not enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-VkSubmitInfo-pWaitDstStageMask-04091YNoneexplicitVkSubmitInfocoreIf the tessellationShader feature is not enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkSubmitInfo-pWaitDstStageMask-04092YNoneexplicitVkSubmitInfo(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkSubmitInfo-pWaitDstStageMask-04093YNoneexplicitVkSubmitInfo(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkSubmitInfo-pWaitDstStageMask-04094YNoneexplicitVkSubmitInfo(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkSubmitInfo-pWaitDstStageMask-04095YMeshShaderDisabledNVexplicitVkSubmitInfo(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-VkSubmitInfo-pWaitDstStageMask-04096YMeshShaderDisabledNVexplicitVkSubmitInfo(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-VkSubmitInfo-pWaitDstStageMask-04097YNoneexplicitVkSubmitInfo(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV
VUID-VkSubmitInfo-pWaitDstStageMask-04996NNoneexplicitVkSubmitInfo!(VK_VERSION_1_3,VK_KHR_synchronization2)pname:pWaitDstStageMask must not be 0
VUID-VkSubmitInfo-pWaitDstStageMask-07318NNoneexplicitVkSubmitInfo(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSubmitInfo-pWaitDstStageMask-07319NNoneexplicitVkSubmitInfo(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pname:pWaitDstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSubmitInfo-pWaitDstStageMask-parameterNNoneimplicitVkSubmitInfocoreIf waitSemaphoreCount is not 0, pWaitDstStageMask must be a valid pointer to an array of waitSemaphoreCount valid combinations of VkPipelineStageFlagBits values
VUID-VkSubmitInfo-pWaitSemaphores-03239YQueueSubmitNoTimelineSemaphoreInfoexplicitVkSubmitInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)If 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-03243YQueueSubmitTimelineSemaphoreBadValueexplicitVkSubmitInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)For 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-parameterYRequiredParameterimplicitVkSubmitInfocoreIf waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles
VUID-VkSubmitInfo-sType-sTypeYRequiredParameterimplicitVkSubmitInfocoresType must be VK_STRUCTURE_TYPE_SUBMIT_INFO
VUID-VkSubmitInfo-sType-uniqueYNoneimplicitVkSubmitInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkSubmitInfo-variableSampleLocations-06017NNoneexplicitVkSubmitInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_sample_locations)If 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-03886YNoneexplicitVkSubmitInfo2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1)If flags includes VK_SUBMIT_PROTECTED_BIT, all elements of pCommandBuffers must be protected command buffers
VUID-VkSubmitInfo2-flags-03887YNoneexplicitVkSubmitInfo2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1)If flags does not include VK_SUBMIT_PROTECTED_BIT, each element of pCommandBuffers must not be a protected command buffer
VUID-VkSubmitInfo2-flags-parameterYNoneimplicitVkSubmitInfo2(VK_VERSION_1_3,VK_KHR_synchronization2)flags must be a valid combination of VkSubmitFlagBits values
VUID-VkSubmitInfo2-pCommandBufferInfos-parameterYNoneimplicitVkSubmitInfo2(VK_VERSION_1_3,VK_KHR_synchronization2)If commandBufferInfoCount is not 0, pCommandBufferInfos must be a valid pointer to an array of commandBufferInfoCount valid VkCommandBufferSubmitInfo structures
VUID-VkSubmitInfo2-pNext-pNextYNoneimplicitVkSubmitInfo2(VK_VERSION_1_3,VK_KHR_synchronization2)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPerformanceQuerySubmitInfoKHR, VkWin32KeyedMutexAcquireReleaseInfoKHR, or VkWin32KeyedMutexAcquireReleaseInfoNV
VUID-VkSubmitInfo2-pSignalSemaphoreInfos-parameterYNoneimplicitVkSubmitInfo2(VK_VERSION_1_3,VK_KHR_synchronization2)If signalSemaphoreInfoCount is not 0, pSignalSemaphoreInfos must be a valid pointer to an array of signalSemaphoreInfoCount valid VkSemaphoreSubmitInfo structures
VUID-VkSubmitInfo2-pWaitSemaphoreInfos-parameterYNoneimplicitVkSubmitInfo2(VK_VERSION_1_3,VK_KHR_synchronization2)If waitSemaphoreInfoCount is not 0, pWaitSemaphoreInfos must be a valid pointer to an array of waitSemaphoreInfoCount valid VkSemaphoreSubmitInfo structures
VUID-VkSubmitInfo2-sType-sTypeYNoneimplicitVkSubmitInfo2(VK_VERSION_1_3,VK_KHR_synchronization2)sType must be VK_STRUCTURE_TYPE_SUBMIT_INFO_2
VUID-VkSubmitInfo2-sType-uniqueYNoneimplicitVkSubmitInfo2(VK_VERSION_1_3,VK_KHR_synchronization2)The sType value of each struct in the pNext chain must be unique
VUID-VkSubmitInfo2-semaphore-03881YSync2InvalidSignalSemaphoreValueexplicitVkSubmitInfo2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_timeline_semaphore)If 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-03882YSync2InvalidSignalSemaphoreValue, Sync2QueueSubmitTimelineSemaphoreBadValueexplicitVkSubmitInfo2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_timeline_semaphore)If 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-03883YSync2QueueSubmitTimelineSemaphoreBadValueexplicitVkSubmitInfo2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_timeline_semaphore)If 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-03884YSync2QueueSubmitTimelineSemaphoreBadValueexplicitVkSubmitInfo2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_timeline_semaphore)If 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-06010YDynamicRenderingSuspendingRenderPassInstanceQueueSubmit2explicitVkSubmitInfo2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06011NNoneexplicitVkSubmitInfo2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06012YDynamicRenderingSuspendingRenderPassInstanceQueueSubmit2explicitVkSubmitInfo2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06192YDynamicRenderingSuspendingRenderPassInstanceQueueSubmit2explicitVkSubmitInfo2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06013NNoneexplicitVkSubmitInfo2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_sample_locations)If 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-parameterYNoneimplicitVkSubpassBeginInfo(VK_VERSION_1_2,VK_KHR_create_renderpass2)contents must be a valid VkSubpassContents value
VUID-VkSubpassBeginInfo-pNext-pNextYNoneimplicitVkSubpassBeginInfo(VK_VERSION_1_2,VK_KHR_create_renderpass2)pNext must be NULL
VUID-VkSubpassBeginInfo-sType-sTypeYNoneimplicitVkSubpassBeginInfo(VK_VERSION_1_2,VK_KHR_create_renderpass2)sType must be VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO
VUID-VkSubpassDependency-dependencyFlags-02520YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependency(VK_VERSION_1_1,VK_KHR_multiview)If dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, srcSubpass must not be equal to VK_SUBPASS_EXTERNAL
VUID-VkSubpassDependency-dependencyFlags-02521YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependency(VK_VERSION_1_1,VK_KHR_multiview)If dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, dstSubpass must not be equal to VK_SUBPASS_EXTERNAL
VUID-VkSubpassDependency-dependencyFlags-parameterYNoneimplicitVkSubpassDependencycoredependencyFlags must be a valid combination of VkDependencyFlagBits values
VUID-VkSubpassDependency-dstAccessMask-00869YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependencycoreAny access flag included in dstAccessMask must be supported by one of the pipeline stages in dstStageMask, as specified in the table of supported access types
VUID-VkSubpassDependency-dstAccessMask-parameterYNoneimplicitVkSubpassDependencycoredstAccessMask must be a valid combination of VkAccessFlagBits values
VUID-VkSubpassDependency-dstStageMask-03937YNoneexplicitVkSubpassDependency(VK_VERSION_1_3,VK_KHR_synchronization2)If the synchronization2 feature is not enabled, pname:dstStageMask must not be 0
VUID-VkSubpassDependency-dstStageMask-04090YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependencycoreIf the geometryShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-VkSubpassDependency-dstStageMask-04091YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependencycoreIf the tessellationShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkSubpassDependency-dstStageMask-04092YNoneexplicitVkSubpassDependency(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkSubpassDependency-dstStageMask-04093YNoneexplicitVkSubpassDependency(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkSubpassDependency-dstStageMask-04094YNoneexplicitVkSubpassDependency(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkSubpassDependency-dstStageMask-04095YNoneexplicitVkSubpassDependency(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-VkSubpassDependency-dstStageMask-04096YNoneexplicitVkSubpassDependency(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-VkSubpassDependency-dstStageMask-04097YNoneexplicitVkSubpassDependency(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV
VUID-VkSubpassDependency-dstStageMask-04996NNoneexplicitVkSubpassDependency!(VK_VERSION_1_3,VK_KHR_synchronization2)pname:dstStageMask must not be 0
VUID-VkSubpassDependency-dstStageMask-07318NNoneexplicitVkSubpassDependency(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSubpassDependency-dstStageMask-07319NNoneexplicitVkSubpassDependency(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSubpassDependency-dstStageMask-parameterYNoneimplicitVkSubpassDependencycoredstStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-VkSubpassDependency-srcAccessMask-00868YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependencycoreAny access flag included in srcAccessMask must be supported by one of the pipeline stages in srcStageMask, as specified in the table of supported access types
VUID-VkSubpassDependency-srcAccessMask-parameterYNoneimplicitVkSubpassDependencycoresrcAccessMask must be a valid combination of VkAccessFlagBits values
VUID-VkSubpassDependency-srcStageMask-03937YNoneexplicitVkSubpassDependency(VK_VERSION_1_3,VK_KHR_synchronization2)If the synchronization2 feature is not enabled, pname:srcStageMask must not be 0
VUID-VkSubpassDependency-srcStageMask-04090YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependencycoreIf the geometryShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-VkSubpassDependency-srcStageMask-04091YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependencycoreIf the tessellationShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkSubpassDependency-srcStageMask-04092YNoneexplicitVkSubpassDependency(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkSubpassDependency-srcStageMask-04093YNoneexplicitVkSubpassDependency(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkSubpassDependency-srcStageMask-04094YNoneexplicitVkSubpassDependency(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkSubpassDependency-srcStageMask-04095YNoneexplicitVkSubpassDependency(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-VkSubpassDependency-srcStageMask-04096YNoneexplicitVkSubpassDependency(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-VkSubpassDependency-srcStageMask-04097YNoneexplicitVkSubpassDependency(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV
VUID-VkSubpassDependency-srcStageMask-04996NNoneexplicitVkSubpassDependency!(VK_VERSION_1_3,VK_KHR_synchronization2)pname:srcStageMask must not be 0
VUID-VkSubpassDependency-srcStageMask-07318NNoneexplicitVkSubpassDependency(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSubpassDependency-srcStageMask-07319NNoneexplicitVkSubpassDependency(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSubpassDependency-srcStageMask-parameterYNoneimplicitVkSubpassDependencycoresrcStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-VkSubpassDependency-srcSubpass-00864YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependencycoresrcSubpass 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-00865YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependencycoresrcSubpass and dstSubpass must not both be equal to VK_SUBPASS_EXTERNAL
VUID-VkSubpassDependency-srcSubpass-00872YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependency(VK_VERSION_1_1,VK_KHR_multiview)If 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-02243YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependencycoreIf 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-06809YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependencycoreIf srcSubpass is equal to dstSubpass and srcStageMask includes a framebuffer-space stage, dstStageMask must only contain framebuffer-space stages
VUID-VkSubpassDependency2-dependencyFlags-03090YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, srcSubpass must not be equal to VK_SUBPASS_EXTERNAL
VUID-VkSubpassDependency2-dependencyFlags-03091YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, dstSubpass must not be equal to VK_SUBPASS_EXTERNAL
VUID-VkSubpassDependency2-dependencyFlags-03092YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If dependencyFlags does not include VK_DEPENDENCY_VIEW_LOCAL_BIT, viewOffset must be 0
VUID-VkSubpassDependency2-dependencyFlags-parameterYNoneimplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)dependencyFlags must be a valid combination of VkDependencyFlagBits values
VUID-VkSubpassDependency2-dstAccessMask-03089YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)Any 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-parameterYNoneimplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)dstAccessMask must be a valid combination of VkAccessFlagBits values
VUID-VkSubpassDependency2-dstStageMask-03937YNoneexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_3,VK_KHR_synchronization2)If the synchronization2 feature is not enabled, pname:dstStageMask must not be 0
VUID-VkSubpassDependency2-dstStageMask-04090YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If the geometryShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-VkSubpassDependency2-dstStageMask-04091YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If the tessellationShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkSubpassDependency2-dstStageMask-04092YNoneexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkSubpassDependency2-dstStageMask-04093YNoneexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkSubpassDependency2-dstStageMask-04094YNoneexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkSubpassDependency2-dstStageMask-04095YNoneexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-VkSubpassDependency2-dstStageMask-04096YNoneexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-VkSubpassDependency2-dstStageMask-04097YNoneexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV
VUID-VkSubpassDependency2-dstStageMask-04996NNoneexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+!(VK_VERSION_1_3,VK_KHR_synchronization2)pname:dstStageMask must not be 0
VUID-VkSubpassDependency2-dstStageMask-07318NNoneexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSubpassDependency2-dstStageMask-07319NNoneexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSubpassDependency2-dstStageMask-parameterYNoneimplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)dstStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-VkSubpassDependency2-pNext-pNextYNoneimplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)pNext must be NULL or a pointer to a valid instance of VkMemoryBarrier2
VUID-VkSubpassDependency2-sType-sTypeYNoneimplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)sType must be VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2
VUID-VkSubpassDependency2-sType-uniqueYNoneimplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)The sType value of each struct in the pNext chain must be unique
VUID-VkSubpassDependency2-srcAccessMask-03088YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)Any 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-parameterYNoneimplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)srcAccessMask must be a valid combination of VkAccessFlagBits values
VUID-VkSubpassDependency2-srcStageMask-03937YNoneexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_3,VK_KHR_synchronization2)If the synchronization2 feature is not enabled, pname:srcStageMask must not be 0
VUID-VkSubpassDependency2-srcStageMask-04090YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If the geometryShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-VkSubpassDependency2-srcStageMask-04091YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If the tessellationShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-VkSubpassDependency2-srcStageMask-04092YNoneexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkSubpassDependency2-srcStageMask-04093YNoneexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkSubpassDependency2-srcStageMask-04094YNoneexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkSubpassDependency2-srcStageMask-04095YNoneexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-VkSubpassDependency2-srcStageMask-04096YNoneexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-VkSubpassDependency2-srcStageMask-04097YNoneexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV
VUID-VkSubpassDependency2-srcStageMask-04996NNoneexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+!(VK_VERSION_1_3,VK_KHR_synchronization2)pname:srcStageMask must not be 0
VUID-VkSubpassDependency2-srcStageMask-07318NNoneexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSubpassDependency2-srcStageMask-07319NNoneexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkSubpassDependency2-srcStageMask-parameterYNoneimplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)srcStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-VkSubpassDependency2-srcSubpass-02245YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-03084YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)srcSubpass 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-03085YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)srcSubpass and dstSubpass must not both be equal to VK_SUBPASS_EXTERNAL
VUID-VkSubpassDependency2-srcSubpass-06810YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If srcSubpass is equal to dstSubpass and srcStageMask includes a framebuffer-space stage, dstStageMask must only contain framebuffer-space stages
VUID-VkSubpassDependency2-viewOffset-02530YRenderPassCreateInvalidSubpassDependenciesexplicitVkSubpassDependency2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If viewOffset is not equal to 0, srcSubpass must not be equal to dstSubpass
VUID-VkSubpassDescription-attachment-00853YRenderPassCreateAttachmentsMiscexplicitVkSubpassDescriptioncoreEach element of pPreserveAttachments must not be VK_ATTACHMENT_UNUSED
VUID-VkSubpassDescription-attachment-06912NNoneexplicitVkSubpassDescriptioncoreIf 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-06913NNoneexplicitVkSubpassDescriptioncoreIf 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-06914NNoneexplicitVkSubpassDescriptioncoreIf 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-06915NNoneexplicitVkSubpassDescriptioncoreIf 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-06916NNoneexplicitVkSubpassDescription(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06917NNoneexplicitVkSubpassDescription(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06918NNoneexplicitVkSubpassDescription(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06919NNoneexplicitVkSubpassDescription(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06920NNoneexplicitVkSubpassDescription(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06921NNoneexplicitVkSubpassDescription(VK_KHR_synchronization2)If 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-06922NNoneexplicitVkSubpassDescription(VK_KHR_synchronization2)If 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-06923NNoneexplicitVkSubpassDescription(VK_KHR_synchronization2)If 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-00845YRenderPassCreateAttachmentsMiscexplicitVkSubpassDescriptioncorecolorAttachmentCount must be less than or equal to VkPhysicalDeviceLimits::maxColorAttachments
VUID-VkSubpassDescription-flags-00856YRenderPassCreateSubpassMissingAttributesBitMultiviewNVXexplicitVkSubpassDescription(VK_NVX_multiview_per_view_attributes)If 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-03341YInvalidRenderPassCreateRenderPassShaderResolveQCOMexplicitVkSubpassDescription(VK_QCOM_render_pass_shader_resolve)If 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-03343YInvalidRenderPassCreateRenderPassShaderResolveQCOMexplicitVkSubpassDescription(VK_QCOM_render_pass_shader_resolve)If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, then the subpass must be the last subpass in a subpass dependency chain
VUID-VkSubpassDescription-flags-parameterYNoneimplicitVkSubpassDescriptioncoreflags must be a valid combination of VkSubpassDescriptionFlagBits values
VUID-VkSubpassDescription-layout-02519YNoneexplicitVkSubpassDescriptioncoreIf any attachment is used by more than one VkAttachmentReference member, then each use must use the same layout
VUID-VkSubpassDescription-linearColorAttachment-06496YNullDescriptorsEnabledexplicitVkSubpassDescription(VK_NV_linear_color_attachment)If 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-06497YNullDescriptorsEnabledexplicitVkSubpassDescription(VK_NV_linear_color_attachment)If 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-06498YNullDescriptorsEnabledexplicitVkSubpassDescription(VK_NV_linear_color_attachment)If 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-00846YRenderPassCreateAttachmentsMiscexplicitVkSubpassDescriptioncoreIf 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-01506YRenderPassCreateInvalidMixedAttachmentSamplesAMDexplicitVkSubpassDescription(VK_AMD_mixed_attachment_samples)If the VK_AMD_mixed_attachment_samples extension is enabled, 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-pColorAttachments-02648YRenderPassCreateAttachmentsMisc, NullDescriptorsEnabledexplicitVkSubpassDescriptioncoreAll 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-06868YRenderPassCreateAttachmentsMiscexplicitVkSubpassDescriptioncoreIf neither the VK_AMD_mixed_attachment_samples extension nor the VK_NV_framebuffer_mixed_samples extension is enabled, all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have the same sample count
VUID-VkSubpassDescription-pColorAttachments-parameterYNoneimplicitVkSubpassDescriptioncoreIf colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference structures
VUID-VkSubpassDescription-pDepthStencilAttachment-01418YFramebufferMixedSamples, RenderPassCreateAttachmentsMiscexplicitVkSubpassDescriptioncoreIf neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, and if pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED and any attachments in pColorAttachments are not VK_ATTACHMENT_UNUSED, they must have the same sample count
VUID-VkSubpassDescription-pDepthStencilAttachment-02650YNullDescriptorsEnabledexplicitVkSubpassDescriptioncoreIf 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-04438YRenderPassCreateAttachmentsMiscexplicitVkSubpassDescriptioncorepDepthStencilAttachment and pColorAttachments must not contain references to the same attachment
VUID-VkSubpassDescription-pDepthStencilAttachment-parameterNNoneimplicitVkSubpassDescriptioncoreIf pDepthStencilAttachment is not NULL, pDepthStencilAttachment must be a valid pointer to a valid VkAttachmentReference structure
VUID-VkSubpassDescription-pInputAttachments-02647YNullDescriptorsEnabledexplicitVkSubpassDescriptioncoreAll 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-02868NNoneexplicitVkSubpassDescription(VK_QCOM_render_pass_transform)If the render pass is created with VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM each of the elements of pInputAttachments must be VK_ATTACHMENT_UNUSED
VUID-VkSubpassDescription-pInputAttachments-parameterYNoneimplicitVkSubpassDescriptioncoreIf inputAttachmentCount is not 0, pInputAttachments must be a valid pointer to an array of inputAttachmentCount valid VkAttachmentReference structures
VUID-VkSubpassDescription-pPreserveAttachments-00854YRenderPassCreateAttachmentsMiscexplicitVkSubpassDescriptioncoreEach element of pPreserveAttachments must not also be an element of any other member of the subpass description
VUID-VkSubpassDescription-pPreserveAttachments-parameterYNoneimplicitVkSubpassDescriptioncoreIf preserveAttachmentCount is not 0, pPreserveAttachments must be a valid pointer to an array of preserveAttachmentCount uint32_t values
VUID-VkSubpassDescription-pResolveAttachments-00847YRenderPassCreateAttachmentsMiscexplicitVkSubpassDescriptioncoreIf 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-00848YRenderPassCreateAttachmentsMiscexplicitVkSubpassDescriptioncoreIf 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-00849YRenderPassCreateAttachmentsMiscexplicitVkSubpassDescriptioncoreIf 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-00850YRenderPassCreateAttachmentsMisc, NullDescriptorsEnabledexplicitVkSubpassDescriptioncoreIf 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-02649YNullDescriptorsEnabledexplicitVkSubpassDescriptioncoreAll attachments in pResolveAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VUID-VkSubpassDescription-pResolveAttachments-parameterNNoneimplicitVkSubpassDescriptioncoreIf colorAttachmentCount is not 0, and pResolveAttachments is not NULL, pResolveAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference structures
VUID-VkSubpassDescription-pipelineBindPoint-00844YRenderPassCreateSubpassNonGraphicsPipelineexplicitVkSubpassDescription!(VK_HUAWEI_subpass_shading)pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-VkSubpassDescription-pipelineBindPoint-04952YNoneexplicitVkSubpassDescription(VK_HUAWEI_subpass_shading)pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS or VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI
VUID-VkSubpassDescription-pipelineBindPoint-parameterYNoneimplicitVkSubpassDescriptioncorepipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-VkSubpassDescription2-attachment-02799YRenderPassCreate2SubpassInvalidInputAttachmentParametersexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-02800YRenderPassCreate2SubpassInvalidInputAttachmentParametersexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If the attachment member of any element of pInputAttachments is not VK_ATTACHMENT_UNUSED, then the aspectMask member must not be 0
VUID-VkSubpassDescription2-attachment-02801YRenderPassCreate2SubpassInvalidInputAttachmentParametersexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-03073YRenderPassCreateAttachmentsMiscexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)Each element of pPreserveAttachments must not be VK_ATTACHMENT_UNUSED
VUID-VkSubpassDescription2-attachment-04563YNoneexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_image_drm_format_modifier)If 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{ibit}BIT_EXT for any index i
VUID-VkSubpassDescription2-attachment-06251NNoneexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If the attachment member of pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED and its pNext chain includes a VkAttachmentDescriptionStencilLayout 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-06912NNoneexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-06913NNoneexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-06914NNoneexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-06915NNoneexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-06916NNoneexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06917NNoneexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06918NNoneexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06919NNoneexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06920NNoneexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06921NNoneexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_synchronization2)If 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-06922NNoneexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_synchronization2)If 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-06923NNoneexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_synchronization2)If 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-03063YRenderPassCreateAttachmentsMiscexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)colorAttachmentCount must be less than or equal to VkPhysicalDeviceLimits::maxColorAttachments
VUID-VkSubpassDescription2-flags-03076YRenderPassCreateSubpassMissingAttributesBitMultiviewNVXexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NVX_multiview_per_view_attributes)If 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-parameterYNoneimplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)flags must be a valid combination of VkSubpassDescriptionFlagBits values
VUID-VkSubpassDescription2-layout-02528YNoneexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If any attachment is used by more than one VkAttachmentReference2 member, then each use must use the same layout
VUID-VkSubpassDescription2-linearColorAttachment-06499YNullDescriptorsEnabledexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NV_linear_color_attachment)If 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-06500YNullDescriptorsEnabledexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NV_linear_color_attachment)If 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-06501YNullDescriptorsEnabledexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NV_linear_color_attachment)If 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-03064YRenderPassCreateAttachmentsMiscexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-06869YNoneexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_multisampled_render_to_single_sampled)If none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have the same sample count
VUID-VkSubpassDescription2-multisampledRenderToSingleSampled-06872YRenderPassCreateAttachmentsMiscexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, all attachments in pDepthStencilAttachment or pColorAttachments that are not VK_ATTACHMENT_UNUSED must have the same sample count
VUID-VkSubpassDescription2-multiview-06558YCreateRenderPassWithViewMaskexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_1,VK_KHR_multiview)If the multiview feature is not enabled, viewMask must be 0
VUID-VkSubpassDescription2-pColorAttachments-02898YRenderPassCreateAttachmentsMisc, NullDescriptorsEnabledexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)All 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-03070YRenderPassCreateInvalidMixedAttachmentSamplesAMDexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_AMD_mixed_attachment_samples)If the VK_AMD_mixed_attachment_samples extension is enabled, 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-pColorAttachments-parameterYNoneimplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference2 structures
VUID-VkSubpassDescription2-pDepthStencilAttachment-02900YNullDescriptorsEnabledexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-04440YRenderPassCreateAttachmentsMiscexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)An attachment must not be used in both pDepthStencilAttachment and pColorAttachments
VUID-VkSubpassDescription2-pDepthStencilAttachment-parameterYNoneimplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If pDepthStencilAttachment is not NULL, pDepthStencilAttachment must be a valid pointer to a valid VkAttachmentReference2 structure
VUID-VkSubpassDescription2-pInputAttachments-02897YNullDescriptorsEnabled, RenderPassCreate2SubpassInvalidInputAttachmentParametersexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)All 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-VkSubpassDescription2-pInputAttachments-parameterYNoneimplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If inputAttachmentCount is not 0, pInputAttachments must be a valid pointer to an array of inputAttachmentCount valid VkAttachmentReference2 structures
VUID-VkSubpassDescription2-pNext-06870YMultisampledRenderToSingleSampledexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_multisampled_render_to_single_sampled)If 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-06871YMultisampledRenderToSingleSampledexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_multisampled_render_to_single_sampled)If 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-pNextYNoneimplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkFragmentShadingRateAttachmentInfoKHR, VkMultisampledRenderToSingleSampledInfoEXT, VkRenderPassCreationControlEXT, VkRenderPassSubpassFeedbackCreateInfoEXT, or VkSubpassDescriptionDepthStencilResolve
VUID-VkSubpassDescription2-pPreserveAttachments-03074YRenderPassCreateAttachmentsMiscexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)Any given element of pPreserveAttachments must not also be an element of any other member of the subpass description
VUID-VkSubpassDescription2-pPreserveAttachments-parameterYNoneimplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If preserveAttachmentCount is not 0, pPreserveAttachments must be a valid pointer to an array of preserveAttachmentCount uint32_t values
VUID-VkSubpassDescription2-pResolveAttachments-02899YNullDescriptorsEnabledexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)All 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-VkSubpassDescription2-pResolveAttachments-03065YRenderPassCreateAttachmentsMiscexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-pResolveAttachments-03066YRenderPassCreateAttachmentsMiscexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-pResolveAttachments-03067YRenderPassCreateAttachmentsMiscexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-03068YRenderPassCreateAttachmentsMisc, NullDescriptorsEnabledexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)Any given element of pResolveAttachments must have the same VkFormat as its corresponding color attachment
VUID-VkSubpassDescription2-pResolveAttachments-parameterYNoneimplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-03062YRenderPassCreateSubpassNonGraphicsPipelineexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+!(VK_HUAWEI_subpass_shading)pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-VkSubpassDescription2-pipelineBindPoint-04953YNoneexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_HUAWEI_subpass_shading)pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS or VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI
VUID-VkSubpassDescription2-pipelineBindPoint-parameterYNoneimplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)pipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-VkSubpassDescription2-sType-sTypeYNoneimplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)sType must be VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2
VUID-VkSubpassDescription2-sType-uniqueYNoneimplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)The sType value of each struct in the pNext chain must be unique
VUID-VkSubpassDescription2-viewMask-06706YInvalidSubpassDescriptionViewMaskexplicitVkSubpassDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_1,VK_KHR_multiview)The index of the most significant bit in viewMask must be less than maxMultiviewViewCount
VUID-VkSubpassDescriptionDepthStencilResolve-depthResolveMode-03183YDepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolve(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)If 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-02651YDepthStencilResolveAttachmentInvalidFormatexplicitVkSubpassDescriptionDepthStencilResolve(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)If 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-03177YDepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolve(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)If 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-03178YDepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolve(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)If 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-03179YDepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolve(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)If 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-03180YDepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolve(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)If 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-03181YDepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolve(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)If 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 numerical type
VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03182YDepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolve(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)If 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 numerical type
VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03185YDepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolve(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)If 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-03186YDepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolve(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)If 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-parameterYNoneimplicitVkSubpassDescriptionDepthStencilResolve(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)If pDepthStencilResolveAttachment is not NULL, pDepthStencilResolveAttachment must be a valid pointer to a valid VkAttachmentReference2 structure
VUID-VkSubpassDescriptionDepthStencilResolve-pNext-06873YMultisampledRenderToSingleSampledexplicitVkSubpassDescriptionDepthStencilResolve(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)+(VK_EXT_multisampled_render_to_single_sampled)If 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-06874YMultisampledRenderToSingleSampledexplicitVkSubpassDescriptionDepthStencilResolve(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)+(VK_EXT_multisampled_render_to_single_sampled)If 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-06875YMultisampledRenderToSingleSampledexplicitVkSubpassDescriptionDepthStencilResolve(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)+(VK_EXT_multisampled_render_to_single_sampled)If 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-06876YMultisampledRenderToSingleSampledexplicitVkSubpassDescriptionDepthStencilResolve(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)+(VK_EXT_multisampled_render_to_single_sampled)If 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-06877YMultisampledRenderToSingleSampledexplicitVkSubpassDescriptionDepthStencilResolve(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)+(VK_EXT_multisampled_render_to_single_sampled)If 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-sTypeYNoneimplicitVkSubpassDescriptionDepthStencilResolve(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)sType must be VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE
VUID-VkSubpassDescriptionDepthStencilResolve-stencilResolveMode-03184YDepthStencilResolveModeexplicitVkSubpassDescriptionDepthStencilResolve(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)If 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-pNextYNoneimplicitVkSubpassEndInfo(VK_VERSION_1_2,VK_KHR_create_renderpass2)pNext must be NULL or a pointer to a valid instance of VkSubpassFragmentDensityMapOffsetEndInfoQCOM
VUID-VkSubpassEndInfo-sType-sTypeYNoneimplicitVkSubpassEndInfo(VK_VERSION_1_2,VK_KHR_create_renderpass2)sType must be VK_STRUCTURE_TYPE_SUBPASS_END_INFO
VUID-VkSubpassEndInfo-sType-uniqueYNoneimplicitVkSubpassEndInfo(VK_VERSION_1_2,VK_KHR_create_renderpass2)The sType value of each struct in the pNext chain must be unique
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityMapAttachment-06504YInvalidRenderPassEndFragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOM(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_QCOM_fragment_density_map_offset)If 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-06503YInvalidRenderPassEndFragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOM(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_QCOM_fragment_density_map_offset)If the fragmentDensityMapOffsets feature is not enabled or fragment density map is not enabled in the render pass, fragmentDensityOffsetCount must equal 0
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityOffsetCount-06510YInvalidRenderPassEndFragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOM(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_QCOM_fragment_density_map_offset)If 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-06511YInvalidRenderPassEndFragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOM(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_QCOM_fragment_density_map_offset)If fragmentDensityOffsetCount is not 0 and multiview is not enabled for the render pass, fragmentDensityOffsetCount must equal 1
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pColorAttachments-06507YInvalidRenderPassEndFragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOM(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_QCOM_fragment_density_map_offset)If 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-06505YInvalidRenderPassEndFragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOM(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_QCOM_fragment_density_map_offset)If 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-parameterYNoneimplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOM(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_QCOM_fragment_density_map_offset)If fragmentDensityOffsetCount is not 0, pFragmentDensityOffsets must be a valid pointer to an array of fragmentDensityOffsetCount VkOffset2D structures
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pInputAttachments-06506YInvalidRenderPassEndFragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOM(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_QCOM_fragment_density_map_offset)If 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-06509YInvalidRenderPassEndFragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOM(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_QCOM_fragment_density_map_offset)If 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-06508YInvalidRenderPassEndFragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOM(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_QCOM_fragment_density_map_offset)If 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-sTypeYNoneimplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOM(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_QCOM_fragment_density_map_offset)sType must be VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-x-06512YInvalidRenderPassEndFragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOM(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_QCOM_fragment_density_map_offset)The x component of each element of pFragmentDensityOffsets must be an integer multiple of fragmentDensityOffsetGranularity.width
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-y-06513YInvalidRenderPassEndFragmentDensityMapOffsetQCOMexplicitVkSubpassFragmentDensityMapOffsetEndInfoQCOM(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_QCOM_fragment_density_map_offset)The y component of each element of pFragmentDensityOffsets must be an integer multiple of fragmentDensityOffsetGranularity.height
VUID-VkSubpassResolvePerformanceQueryEXT-sType-sTypeYNoneimplicitVkSubpassResolvePerformanceQueryEXT(VK_EXT_multisampled_render_to_single_sampled)sType must be VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT
VUID-VkSubpassSampleLocationsEXT-sampleLocationsInfo-parameterNNoneimplicitVkSubpassSampleLocationsEXT(VK_EXT_sample_locations)sampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure
VUID-VkSubpassSampleLocationsEXT-subpassIndex-01532YRenderPassBeginSampleLocationsInvalidIndicesEXTexplicitVkSubpassSampleLocationsEXT(VK_EXT_sample_locations)subpassIndex must be less than the subpassCount specified in VkRenderPassCreateInfo the render pass specified by VkRenderPassBeginInfo::renderPass was created with
VUID-VkSubpassShadingPipelineCreateInfoHUAWEI-sType-sTypeYNoneimplicitVkSubpassShadingPipelineCreateInfoHUAWEI(VK_HUAWEI_subpass_shading)sType must be VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI
VUID-VkSubpassShadingPipelineCreateInfoHUAWEI-subpass-04946NNoneexplicitVkSubpassShadingPipelineCreateInfoHUAWEI(VK_HUAWEI_subpass_shading)subpass must be created with VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI bind point
VUID-VkSubresourceLayout2EXT-pNext-pNextYNoneimplicitVkSubresourceLayout2EXT(VK_EXT_image_compression_control)pNext must be NULL or a pointer to a valid instance of VkImageCompressionPropertiesEXT
VUID-VkSubresourceLayout2EXT-sType-sTypeYNoneimplicitVkSubresourceLayout2EXT(VK_EXT_image_compression_control)sType must be VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT
VUID-VkSubresourceLayout2EXT-sType-uniqueYNoneimplicitVkSubresourceLayout2EXT(VK_EXT_image_compression_control)The sType value of each struct in the pNext chain must be unique
VUID-VkSurfaceCapabilities2EXT-pNext-pNextYNoneimplicitVkSurfaceCapabilities2EXT(VK_KHR_surface)+(VK_EXT_display_surface_counter)pNext must be NULL
VUID-VkSurfaceCapabilities2EXT-sType-sTypeYNoneimplicitVkSurfaceCapabilities2EXT(VK_KHR_surface)+(VK_EXT_display_surface_counter)sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT
VUID-VkSurfaceCapabilities2EXT-supportedSurfaceCounters-01246NNoneexplicitVkSurfaceCapabilities2EXT(VK_KHR_surface)+(VK_EXT_display_surface_counter)supportedSurfaceCounters must not include VK_SURFACE_COUNTER_VBLANK_BIT_EXT unless the surface queried is a display surface
VUID-VkSurfaceCapabilities2KHR-pNext-pNextYNoneimplicitVkSurfaceCapabilities2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDisplayNativeHdrSurfaceCapabilitiesAMD, VkSharedPresentSurfaceCapabilitiesKHR, VkSurfaceCapabilitiesFullScreenExclusiveEXT, VkSurfaceCapabilitiesPresentBarrierNV, or VkSurfaceProtectedCapabilitiesKHR
VUID-VkSurfaceCapabilities2KHR-sType-sTypeYNoneimplicitVkSurfaceCapabilities2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR
VUID-VkSurfaceCapabilities2KHR-sType-uniqueYNoneimplicitVkSurfaceCapabilities2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)The sType value of each struct in the pNext chain must be unique
VUID-VkSurfaceCapabilitiesFullScreenExclusiveEXT-sType-sTypeYNoneimplicitVkSurfaceCapabilitiesFullScreenExclusiveEXT(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_full_screen_exclusive)sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT
VUID-VkSurfaceCapabilitiesPresentBarrierNV-sType-sTypeYNoneimplicitVkSurfaceCapabilitiesPresentBarrierNV(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_NV_present_barrier)sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV
VUID-VkSurfaceFormat2KHR-pNext-06749NNoneexplicitVkSurfaceFormat2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_image_compression_control)+!(VK_EXT_image_compression_control_swapchain)The pNext chain must not include an VkImageCompressionPropertiesEXT structure
VUID-VkSurfaceFormat2KHR-pNext-06750NNoneexplicitVkSurfaceFormat2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_image_compression_control)+(VK_EXT_image_compression_control_swapchain)If the imageCompressionControlSwapchain feature is not enabled, the pNext chain must not include an VkImageCompressionPropertiesEXT structure
VUID-VkSurfaceFormat2KHR-pNext-pNextYNoneimplicitVkSurfaceFormat2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)pNext must be NULL or a pointer to a valid instance of VkImageCompressionPropertiesEXT
VUID-VkSurfaceFormat2KHR-sType-sTypeYNoneimplicitVkSurfaceFormat2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)sType must be VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR
VUID-VkSurfaceFormat2KHR-sType-uniqueYNoneimplicitVkSurfaceFormat2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)The sType value of each struct in the pNext chain must be unique
VUID-VkSurfaceFullScreenExclusiveInfoEXT-fullScreenExclusive-parameterYNoneimplicitVkSurfaceFullScreenExclusiveInfoEXT(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_full_screen_exclusive)fullScreenExclusive must be a valid VkFullScreenExclusiveEXT value
VUID-VkSurfaceFullScreenExclusiveInfoEXT-sType-sTypeYNoneimplicitVkSurfaceFullScreenExclusiveInfoEXT(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_full_screen_exclusive)sType must be VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT
VUID-VkSurfaceFullScreenExclusiveWin32InfoEXT-hmonitor-02673NNoneexplicitVkSurfaceFullScreenExclusiveWin32InfoEXT(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_full_screen_exclusive)+(VK_KHR_win32_surface)hmonitor must be a valid HMONITOR
VUID-VkSurfaceFullScreenExclusiveWin32InfoEXT-sType-sTypeYNoneimplicitVkSurfaceFullScreenExclusiveWin32InfoEXT(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_full_screen_exclusive)+(VK_KHR_win32_surface)sType must be VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT
VUID-VkSurfaceProtectedCapabilitiesKHR-sType-sTypeYNoneimplicitVkSurfaceProtectedCapabilitiesKHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_KHR_surface_protected_capabilities)sType must be VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR
VUID-VkSwapchainCounterCreateInfoEXT-sType-sTypeYNoneimplicitVkSwapchainCounterCreateInfoEXT(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_display_control)sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT
VUID-VkSwapchainCounterCreateInfoEXT-surfaceCounters-01244NNoneexplicitVkSwapchainCounterCreateInfoEXT(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_display_control)The bits in surfaceCounters must be supported by VkSwapchainCreateInfoKHR::surface, as reported by vkGetPhysicalDeviceSurfaceCapabilities2EXT
VUID-VkSwapchainCounterCreateInfoEXT-surfaceCounters-parameterYNoneimplicitVkSwapchainCounterCreateInfoEXT(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_display_control)surfaceCounters must be a valid combination of VkSurfaceCounterFlagBitsEXT values
VUID-VkSwapchainCreateInfoKHR-commonparentNNoneimplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)Both 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-01280YNoneexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)compositeAlpha must be one of the bits present in the supportedCompositeAlpha member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface
VUID-VkSwapchainCreateInfoKHR-compositeAlpha-parameterYNoneimplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)compositeAlpha must be a valid VkCompositeAlphaFlagBitsKHR value
VUID-VkSwapchainCreateInfoKHR-flags-03168YInvalidSwapchainImageFormatListexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_swapchain_mutable_format)If 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-03187YInitSwapchainPotentiallyIncompatibleFlagexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_surface_protected_capabilities)If 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-04100YInvalidSwapchainImageFormatListexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_swapchain_mutable_format)If 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-parameterYNoneimplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)flags must be a valid combination of VkSwapchainCreateFlagBitsKHR values
VUID-VkSwapchainCreateInfoKHR-imageArrayLayers-01275YNoneexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)imageArrayLayers 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-parameterYNoneimplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)imageColorSpace must be a valid VkColorSpaceKHR value
VUID-VkSwapchainCreateInfoKHR-imageExtent-01274YTestCreatingSwapchainWithInvalidExtentexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)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-imageExtent-01689YNoneexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)imageExtent members width and height must both be non-zero
VUID-VkSwapchainCreateInfoKHR-imageFormat-01273YNoneexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)imageFormat 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-01778YValidSwapchainImageParamsexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)The implied image creation parameters of the swapchain must be supported as reported by vkGetPhysicalDeviceImageFormatProperties
VUID-VkSwapchainCreateInfoKHR-imageFormat-parameterYNoneimplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)imageFormat must be a valid VkFormat value
VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01277YNoneexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)If imageSharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values
VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01278YNoneexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)If imageSharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1
VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01393NNoneexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+!(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)If imageSharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the physicalDevice that was used to create device
VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01428YNoneexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)If 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-parameterYNoneimplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)imageSharingMode must be a valid VkSharingMode value
VUID-VkSwapchainCreateInfoKHR-imageUsage-01384YSwapchainInvalidUsageSharedexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_shared_presentable_image)If 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-parameterYNoneimplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)imageUsage must be a valid combination of VkImageUsageFlagBits values
VUID-VkSwapchainCreateInfoKHR-imageUsage-requiredbitmaskYNoneimplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)imageUsage must not be 0
VUID-VkSwapchainCreateInfoKHR-minImageCount-01271YSwapchainMinImageCountNonSharedexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+!(VK_KHR_shared_presentable_image)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-minImageCount-01272YNoneexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)minImageCount 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-01383YSwapchainMinImageCountSharedexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_shared_presentable_image)minImageCount 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-01933YNoneexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)If oldSwapchain is not VK_NULL_HANDLE, oldSwapchain must be a non-retired swapchain associated with native window referred to by surface
VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parameterYNoneimplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)If oldSwapchain is not VK_NULL_HANDLE, oldSwapchain must be a valid VkSwapchainKHR handle
VUID-VkSwapchainCreateInfoKHR-pNext-02679NNoneexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_full_screen_exclusive+VK_KHR_win32_surface)If 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-04099YInvalidSwapchainImageFormatListexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_swapchain_mutable_format)If 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-06751NNoneexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_image_compression_control)+!(VK_EXT_image_compression_control_swapchain)The pNext chain must not include an VkImageCompressionControlEXT structure
VUID-VkSwapchainCreateInfoKHR-pNext-06752NNoneexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_image_compression_control)+(VK_EXT_image_compression_control_swapchain)If the imageCompressionControlSwapchain feature is not enabled, the pNext chain must not include an VkImageCompressionControlEXT structure
VUID-VkSwapchainCreateInfoKHR-pNext-pNextYNoneimplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceGroupSwapchainCreateInfoKHR, VkImageCompressionControlEXT, VkImageFormatListCreateInfo, VkSurfaceFullScreenExclusiveInfoEXT, VkSurfaceFullScreenExclusiveWin32InfoEXT, VkSwapchainCounterCreateInfoEXT, VkSwapchainDisplayNativeHdrCreateInfoAMD, or VkSwapchainPresentBarrierCreateInfoNV
VUID-VkSwapchainCreateInfoKHR-physicalDeviceCount-01429YValidSwapchainImageParams, InitSwapchainPotentiallyIncompatibleFlagexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-01279YWarningSwapchainCreateInfoPreTransformexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)preTransform must be one of the bits present in the supportedTransforms member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface
VUID-VkSwapchainCreateInfoKHR-preTransform-parameterYNoneimplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)preTransform must be a valid VkSurfaceTransformFlagBitsKHR value
VUID-VkSwapchainCreateInfoKHR-presentMode-01281YNoneexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)presentMode must be one of the VkPresentModeKHR values returned by vkGetPhysicalDeviceSurfacePresentModesKHR for the surface
VUID-VkSwapchainCreateInfoKHR-presentMode-01427YSwapchainInvalidUsageNonSharedexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)If 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-02839YNoneexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_shared_presentable_image)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-presentMode-parameterYNoneimplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)presentMode must be a valid VkPresentModeKHR value
VUID-VkSwapchainCreateInfoKHR-sType-sTypeYNoneimplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR
VUID-VkSwapchainCreateInfoKHR-sType-uniqueYNoneimplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)The sType value of each struct in the pNext chain must be unique
VUID-VkSwapchainCreateInfoKHR-surface-01270YSwapchainNotSupportedexplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)surface must be a surface that is supported by the device as determined using vkGetPhysicalDeviceSurfaceSupportKHR
VUID-VkSwapchainCreateInfoKHR-surface-parameterYNoneimplicitVkSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)surface must be a valid VkSurfaceKHR handle
VUID-VkSwapchainDisplayNativeHdrCreateInfoAMD-localDimmingEnable-04449NNoneexplicitVkSwapchainDisplayNativeHdrCreateInfoAMD(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_AMD_display_native_hdr)It is only valid to set localDimmingEnable to VK_TRUE if VkDisplayNativeHdrSurfaceCapabilitiesAMD::localDimmingSupport is supported
VUID-VkSwapchainDisplayNativeHdrCreateInfoAMD-sType-sTypeYNoneimplicitVkSwapchainDisplayNativeHdrCreateInfoAMD(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_AMD_display_native_hdr)sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD
VUID-VkSwapchainPresentBarrierCreateInfoNV-sType-sTypeYNoneimplicitVkSwapchainPresentBarrierCreateInfoNV(VK_KHR_surface)+(VK_NV_present_barrier)sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV
VUID-VkSysmemColorSpaceFUCHSIA-colorSpace-06402NNoneexplicitVkSysmemColorSpaceFUCHSIA(VK_FUCHSIA_buffer_collection)colorSpace must be a ColorSpaceType as defined in fuchsia.sysmem/image_formats.fidl
VUID-VkSysmemColorSpaceFUCHSIA-pNext-pNextYNoneimplicitVkSysmemColorSpaceFUCHSIA(VK_FUCHSIA_buffer_collection)pNext must be NULL
VUID-VkSysmemColorSpaceFUCHSIA-sType-sTypeYNoneimplicitVkSysmemColorSpaceFUCHSIA(VK_FUCHSIA_buffer_collection)sType must be VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA
VUID-VkTextureLODGatherFormatPropertiesAMD-sType-sTypeYNoneimplicitVkTextureLODGatherFormatPropertiesAMD(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_AMD_texture_gather_bias_lod)sType must be VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD
VUID-VkTilePropertiesQCOM-pNext-pNextNNoneimplicitVkTilePropertiesQCOM(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_QCOM_tile_properties)pNext must be NULL
VUID-VkTilePropertiesQCOM-sType-sTypeYNoneimplicitVkTilePropertiesQCOM(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_QCOM_tile_properties)sType must be VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM
VUID-VkTimelineSemaphoreSubmitInfo-pSignalSemaphoreValues-parameterNNoneimplicitVkTimelineSemaphoreSubmitInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)If 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-parameterNNoneimplicitVkTimelineSemaphoreSubmitInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)If 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-sTypeYNoneimplicitVkTimelineSemaphoreSubmitInfo(VK_VERSION_1_2,VK_KHR_timeline_semaphore)sType must be VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO
VUID-VkTraceRaysIndirectCommand2KHR-depth-03640NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)depth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2]
VUID-VkTraceRaysIndirectCommand2KHR-flags-03511NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)If 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 pname:missShaderBindingTableAddress must not be set to zero
VUID-VkTraceRaysIndirectCommand2KHR-flags-03512NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)If 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 pname: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-03513NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)If 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 pname: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-03514NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)If 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 pname:hitShaderBindingTableAddress accessed as a result of this command in order to execute an intersection shader must not be set to zero
VUID-VkTraceRaysIndirectCommand2KHR-flags-03696NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, pname:hitShaderBindingTableAddress must not be zero
VUID-VkTraceRaysIndirectCommand2KHR-flags-03697NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, pname:hitShaderBindingTableAddress must not be zero
VUID-VkTraceRaysIndirectCommand2KHR-height-03639NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)height must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]
VUID-VkTraceRaysIndirectCommand2KHR-pCallableShaderBindingTable-03691NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)If the buffer from which pname:callableShaderBindingTableAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkTraceRaysIndirectCommand2KHR-pCallableShaderBindingTable-03692NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)The buffer from which the pname:callableShaderBindingTableAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-VkTraceRaysIndirectCommand2KHR-pCallableShaderBindingTable-03693NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)pname:callableShaderBindingTableAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-03687NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)If the buffer from which pname:hitShaderBindingTableAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-03688NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)The buffer from which the pname:hitShaderBindingTableAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-03689NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)pname:hitShaderBindingTableAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-04735NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)Any non-zero hit shader group entries in the table identified by pname: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-04736NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)Any non-zero hit shader group entries in the table identified by pname: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-03683NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)If the buffer from which pname:missShaderBindingTableAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkTraceRaysIndirectCommand2KHR-pMissShaderBindingTable-03684NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)The buffer from which the pname:missShaderBindingTableAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-VkTraceRaysIndirectCommand2KHR-pMissShaderBindingTable-03685NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)pname:missShaderBindingTableAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-VkTraceRaysIndirectCommand2KHR-pRayGenShaderBindingTable-03680NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)If the buffer from which pname:raygenShaderRecordAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkTraceRaysIndirectCommand2KHR-pRayGenShaderBindingTable-03681NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)The buffer from which the pname:raygenShaderRecordAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-VkTraceRaysIndirectCommand2KHR-pRayGenShaderBindingTable-03682NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)pname:raygenShaderRecordAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-VkTraceRaysIndirectCommand2KHR-stride-03686NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)pname:missShaderBindingTableStride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-VkTraceRaysIndirectCommand2KHR-stride-03690NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)pname:hitShaderBindingTableStride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-VkTraceRaysIndirectCommand2KHR-stride-03694NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)pname:callableShaderBindingTableStride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-VkTraceRaysIndirectCommand2KHR-stride-04029NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)pname:missShaderBindingTableStride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-VkTraceRaysIndirectCommand2KHR-stride-04035NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)pname:hitShaderBindingTableStride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-VkTraceRaysIndirectCommand2KHR-stride-04041NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)pname:callableShaderBindingTableStride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-VkTraceRaysIndirectCommand2KHR-width-03638NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]
VUID-VkTraceRaysIndirectCommand2KHR-width-03641NNoneexplicitVkTraceRaysIndirectCommand2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)width {times} height {times} depth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayDispatchInvocationCount
VUID-VkTraceRaysIndirectCommandKHR-depth-03640NNoneexplicitVkTraceRaysIndirectCommandKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)depth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2]
VUID-VkTraceRaysIndirectCommandKHR-height-03639NNoneexplicitVkTraceRaysIndirectCommandKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)height must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]
VUID-VkTraceRaysIndirectCommandKHR-width-03638NNoneexplicitVkTraceRaysIndirectCommandKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]
VUID-VkTraceRaysIndirectCommandKHR-width-03641NNoneexplicitVkTraceRaysIndirectCommandKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)width {times} height {times} depth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayDispatchInvocationCount
VUID-VkTransformMatrixKHR-matrix-03799NNoneexplicitVkTransformMatrixKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The first three columns of matrix must define an invertible 3x3 matrix
VUID-VkValidationCacheCreateInfoEXT-flags-zerobitmaskYNoneimplicitVkValidationCacheCreateInfoEXT(VK_EXT_validation_cache)flags must be 0
VUID-VkValidationCacheCreateInfoEXT-initialDataSize-01534NNoneexplicitVkValidationCacheCreateInfoEXT(VK_EXT_validation_cache)If 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-01535NNoneexplicitVkValidationCacheCreateInfoEXT(VK_EXT_validation_cache)If initialDataSize is not 0, pInitialData must have been retrieved from a previous call to vkGetValidationCacheDataEXT
VUID-VkValidationCacheCreateInfoEXT-pInitialData-parameterYNoneimplicitVkValidationCacheCreateInfoEXT(VK_EXT_validation_cache)If initialDataSize is not 0, pInitialData must be a valid pointer to an array of initialDataSize bytes
VUID-VkValidationCacheCreateInfoEXT-pNext-pNextYNoneimplicitVkValidationCacheCreateInfoEXT(VK_EXT_validation_cache)pNext must be NULL
VUID-VkValidationCacheCreateInfoEXT-sType-sTypeYNoneimplicitVkValidationCacheCreateInfoEXT(VK_EXT_validation_cache)sType must be VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT
VUID-VkValidationFeaturesEXT-pDisabledValidationFeatures-parameterNNoneimplicitVkValidationFeaturesEXT(VK_EXT_validation_features)If disabledValidationFeatureCount is not 0, pDisabledValidationFeatures must be a valid pointer to an array of disabledValidationFeatureCount valid VkValidationFeatureDisableEXT values
VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-02967YNVRayTracingValidateCmdCopyAccelerationStructureexplicitVkValidationFeaturesEXT(VK_EXT_validation_features)If the pEnabledValidationFeatures array contains VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT, then it must also contain VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT
VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-02968YNVRayTracingValidateCmdCopyAccelerationStructureexplicitVkValidationFeaturesEXT(VK_EXT_validation_features)If 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-parameterNNoneimplicitVkValidationFeaturesEXT(VK_EXT_validation_features)If enabledValidationFeatureCount is not 0, pEnabledValidationFeatures must be a valid pointer to an array of enabledValidationFeatureCount valid VkValidationFeatureEnableEXT values
VUID-VkValidationFeaturesEXT-sType-sTypeYNoneimplicitVkValidationFeaturesEXT(VK_EXT_validation_features)sType must be VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT
VUID-VkValidationFlagsEXT-disabledValidationCheckCount-arraylengthNNoneimplicitVkValidationFlagsEXT(VK_EXT_validation_flags)disabledValidationCheckCount must be greater than 0
VUID-VkValidationFlagsEXT-pDisabledValidationChecks-parameterNNoneimplicitVkValidationFlagsEXT(VK_EXT_validation_flags)pDisabledValidationChecks must be a valid pointer to an array of disabledValidationCheckCount valid VkValidationCheckEXT values
VUID-VkValidationFlagsEXT-sType-sTypeYNoneimplicitVkValidationFlagsEXT(VK_EXT_validation_flags)sType must be VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT
VUID-VkVertexInputAttributeDescription-binding-00621YVUID_VkVertexInputAttributeDescription_binding_00621explicitVkVertexInputAttributeDescriptioncorebinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-VkVertexInputAttributeDescription-format-00623YCreatePipelineBadVertexAttributeFormatexplicitVkVertexInputAttributeDescriptioncoreformat must be allowed as a vertex buffer format, as specified by the VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT flag in VkFormatProperties::bufferFeatures returned by vkGetPhysicalDeviceFormatProperties
VUID-VkVertexInputAttributeDescription-format-parameterYNoneimplicitVkVertexInputAttributeDescriptioncoreformat must be a valid VkFormat value
VUID-VkVertexInputAttributeDescription-location-00620YVUID_VkVertexInputAttributeDescription_location_00620explicitVkVertexInputAttributeDescriptioncorelocation must be less than VkPhysicalDeviceLimits::maxVertexInputAttributes
VUID-VkVertexInputAttributeDescription-offset-00622YVUID_VkVertexInputAttributeDescription_offset_00622explicitVkVertexInputAttributeDescriptioncoreoffset must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributeOffset
VUID-VkVertexInputAttributeDescription-vertexAttributeAccessBeyondStride-04457YInvalidDepthStencilStateForReadOnlyLayoutexplicitVkVertexInputAttributeDescription(VK_KHR_portability_subset)If 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-06229YValidateVertexInputDynamicStateEnabledexplicitVkVertexInputAttributeDescription2EXT(VK_EXT_vertex_input_dynamic_state)binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-VkVertexInputAttributeDescription2EXT-format-04805YValidateVertexInputDynamicStateEnabledexplicitVkVertexInputAttributeDescription2EXT(VK_EXT_vertex_input_dynamic_state)format must be allowed as a vertex buffer format, as specified by the VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT flag in VkFormatProperties::bufferFeatures returned by vkGetPhysicalDeviceFormatProperties
VUID-VkVertexInputAttributeDescription2EXT-format-parameterYNoneimplicitVkVertexInputAttributeDescription2EXT(VK_EXT_vertex_input_dynamic_state)format must be a valid VkFormat value
VUID-VkVertexInputAttributeDescription2EXT-location-06228YValidateVertexInputDynamicStateEnabledexplicitVkVertexInputAttributeDescription2EXT(VK_EXT_vertex_input_dynamic_state)location must be less than VkPhysicalDeviceLimits::maxVertexInputAttributes
VUID-VkVertexInputAttributeDescription2EXT-offset-06230YValidateVertexInputDynamicStateEnabledexplicitVkVertexInputAttributeDescription2EXT(VK_EXT_vertex_input_dynamic_state)offset must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributeOffset
VUID-VkVertexInputAttributeDescription2EXT-sType-sTypeYNoneimplicitVkVertexInputAttributeDescription2EXT(VK_EXT_vertex_input_dynamic_state)sType must be VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT
VUID-VkVertexInputAttributeDescription2EXT-vertexAttributeAccessBeyondStride-04806NNoneexplicitVkVertexInputAttributeDescription2EXT(VK_EXT_vertex_input_dynamic_state)+(VK_KHR_portability_subset)If 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-00618YVUID_VkVertexInputBindingDescription_binding_00618explicitVkVertexInputBindingDescriptioncorebinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-VkVertexInputBindingDescription-inputRate-parameterYNoneimplicitVkVertexInputBindingDescriptioncoreinputRate must be a valid VkVertexInputRate value
VUID-VkVertexInputBindingDescription-stride-00619YVUID_VkVertexInputBindingDescription_stride_00619explicitVkVertexInputBindingDescriptioncorestride must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride
VUID-VkVertexInputBindingDescription-stride-04456YInvalidDepthStencilStateForReadOnlyLayoutexplicitVkVertexInputBindingDescription(VK_KHR_portability_subset)If 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-04796YValidateVertexInputDynamicStateEnabledexplicitVkVertexInputBindingDescription2EXT(VK_EXT_vertex_input_dynamic_state)binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-VkVertexInputBindingDescription2EXT-divisor-04798YValidateVertexInputDynamicStateEnabledexplicitVkVertexInputBindingDescription2EXT(VK_EXT_vertex_input_dynamic_state)If the vertexAttributeInstanceRateZeroDivisor feature is not enabled, divisor must not be 0
VUID-VkVertexInputBindingDescription2EXT-divisor-04799YValidateVertexInputDynamicStateEnabledexplicitVkVertexInputBindingDescription2EXT(VK_EXT_vertex_input_dynamic_state)If the vertexAttributeInstanceRateDivisor feature is not enabled, divisor must be 1
VUID-VkVertexInputBindingDescription2EXT-divisor-06226YValidateVertexInputDynamicStateDivisorexplicitVkVertexInputBindingDescription2EXT(VK_EXT_vertex_input_dynamic_state)divisor must be a value between 0 and VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT::maxVertexAttribDivisor, inclusive
VUID-VkVertexInputBindingDescription2EXT-divisor-06227YValidateVertexInputDynamicStateDivisorexplicitVkVertexInputBindingDescription2EXT(VK_EXT_vertex_input_dynamic_state)If divisor is not 1 then inputRate must be of type VK_VERTEX_INPUT_RATE_INSTANCE
VUID-VkVertexInputBindingDescription2EXT-inputRate-parameterYNoneimplicitVkVertexInputBindingDescription2EXT(VK_EXT_vertex_input_dynamic_state)inputRate must be a valid VkVertexInputRate value
VUID-VkVertexInputBindingDescription2EXT-sType-sTypeYNoneimplicitVkVertexInputBindingDescription2EXT(VK_EXT_vertex_input_dynamic_state)sType must be VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT
VUID-VkVertexInputBindingDescription2EXT-stride-04797YValidateVertexInputDynamicStateEnabledexplicitVkVertexInputBindingDescription2EXT(VK_EXT_vertex_input_dynamic_state)stride must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride
VUID-VkVertexInputBindingDivisorDescriptionEXT-binding-01869YVertexAttributeDivisorExtensionexplicitVkVertexInputBindingDivisorDescriptionEXT(VK_EXT_vertex_attribute_divisor)binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-VkVertexInputBindingDivisorDescriptionEXT-divisor-01870YVertexAttributeDivisorExtensionexplicitVkVertexInputBindingDivisorDescriptionEXT(VK_EXT_vertex_attribute_divisor)divisor must be a value between 0 and VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT::maxVertexAttribDivisor, inclusive
VUID-VkVertexInputBindingDivisorDescriptionEXT-inputRate-01871YVertexAttributeDivisorExtensionexplicitVkVertexInputBindingDivisorDescriptionEXT(VK_EXT_vertex_attribute_divisor)VkVertexInputBindingDescription::inputRate must be of type VK_VERTEX_INPUT_RATE_INSTANCE for this binding
VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateDivisor-02229YVertexAttributeDivisorDisabledexplicitVkVertexInputBindingDivisorDescriptionEXT(VK_EXT_vertex_attribute_divisor)If the vertexAttributeInstanceRateDivisor feature is not enabled, divisor must be 1
VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateZeroDivisor-02228YVertexAttributeDivisorInstanceRateZeroexplicitVkVertexInputBindingDivisorDescriptionEXT(VK_EXT_vertex_attribute_divisor)If the vertexAttributeInstanceRateZeroDivisor feature is not enabled, divisor must not be 0
VUID-VkViSurfaceCreateInfoNN-flags-zerobitmaskYNoneimplicitVkViSurfaceCreateInfoNN(VK_KHR_surface)+(VK_NN_vi_surface)flags must be 0
VUID-VkViSurfaceCreateInfoNN-pNext-pNextYNoneimplicitVkViSurfaceCreateInfoNN(VK_KHR_surface)+(VK_NN_vi_surface)pNext must be NULL
VUID-VkViSurfaceCreateInfoNN-sType-sTypeYNoneimplicitVkViSurfaceCreateInfoNN(VK_KHR_surface)+(VK_NN_vi_surface)sType must be VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN
VUID-VkViSurfaceCreateInfoNN-window-01318NNoneexplicitVkViSurfaceCreateInfoNN(VK_KHR_surface)+(VK_NN_vi_surface)window must be a valid nn::vi::NativeWindowHandle
VUID-VkVideoBeginCodingInfoKHR-commonparentYNoneimplicitVkVideoBeginCodingInfoKHR(VK_KHR_video_queue)Both 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-zerobitmaskYNoneimplicitVkVideoBeginCodingInfoKHR(VK_KHR_video_queue)flags must be 0
VUID-VkVideoBeginCodingInfoKHR-pNext-pNextYNoneimplicitVkVideoBeginCodingInfoKHR(VK_KHR_video_queue)pNext must be NULL
VUID-VkVideoBeginCodingInfoKHR-pReferenceSlots-parameterYNoneimplicitVkVideoBeginCodingInfoKHR(VK_KHR_video_queue)If referenceSlotCount is not 0, pReferenceSlots must be a valid pointer to an array of referenceSlotCount valid VkVideoReferenceSlotInfoKHR structures
VUID-VkVideoBeginCodingInfoKHR-referenceSlotCount-04856NNoneexplicitVkVideoBeginCodingInfoKHR(VK_KHR_video_queue)VkVideoBeginCodingInfoKHR::referenceSlotCount must not exceed the value specified in VkVideoSessionCreateInfoKHR::maxDpbSlots when creating the video session object that is being provided in videoSession
VUID-VkVideoBeginCodingInfoKHR-sType-sTypeYNoneimplicitVkVideoBeginCodingInfoKHR(VK_KHR_video_queue)sType must be VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR
VUID-VkVideoBeginCodingInfoKHR-videoSession-parameterYNoneimplicitVkVideoBeginCodingInfoKHR(VK_KHR_video_queue)videoSession must be a valid VkVideoSessionKHR handle
VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-04857NNoneexplicitVkVideoBeginCodingInfoKHR(VK_KHR_video_queue)If videoSessionParameters is not VK_NULL_HANDLE, it must have been created using videoSession as a parent object
VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-parameterYNoneimplicitVkVideoBeginCodingInfoKHR(VK_KHR_video_queue)If videoSessionParameters is not VK_NULL_HANDLE, videoSessionParameters must be a valid VkVideoSessionParametersKHR handle
VUID-VkVideoBeginCodingInfoKHR-videoSessionParameters-parentYNoneimplicitVkVideoBeginCodingInfoKHR(VK_KHR_video_queue)If videoSessionParameters is a valid handle, it must have been created, allocated, or retrieved from videoSession
VUID-VkVideoCapabilitiesKHR-pNext-pNextYNoneimplicitVkVideoCapabilitiesKHR(VK_KHR_video_queue)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoDecodeCapabilitiesKHR, VkVideoDecodeH264CapabilitiesEXT, VkVideoDecodeH265CapabilitiesEXT, VkVideoEncodeCapabilitiesKHR, VkVideoEncodeH264CapabilitiesEXT, or VkVideoEncodeH265CapabilitiesEXT
VUID-VkVideoCapabilitiesKHR-sType-sTypeYNoneimplicitVkVideoCapabilitiesKHR(VK_KHR_video_queue)sType must be VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR
VUID-VkVideoCapabilitiesKHR-sType-uniqueYNoneimplicitVkVideoCapabilitiesKHR(VK_KHR_video_queue)The sType value of each struct in the pNext chain must be unique
VUID-VkVideoCodingControlInfoKHR-flags-07016NNoneexplicitVkVideoCodingControlInfoKHR(VK_KHR_video_queue)flags must include at least one bit
VUID-VkVideoCodingControlInfoKHR-flags-07017NNoneexplicitVkVideoCodingControlInfoKHR(VK_KHR_video_queue)If the bound video session object is in uninitialized state, then flags must include VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR
VUID-VkVideoCodingControlInfoKHR-flags-07018NNoneexplicitVkVideoCodingControlInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)If flags includes VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR, then the pNext chain must include a valid VkVideoEncodeRateControlInfoKHR structure
VUID-VkVideoCodingControlInfoKHR-flags-07019NNoneexplicitVkVideoCodingControlInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)If flags includes VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR, then the pNext chain must include a valid VkVideoEncodeRateControlLayerInfoKHR structure
VUID-VkVideoCodingControlInfoKHR-flags-07020NNoneexplicitVkVideoCodingControlInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)If flags includes VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR, then it must not also include VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR
VUID-VkVideoCodingControlInfoKHR-flags-07021NNoneexplicitVkVideoCodingControlInfoKHR(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)If flags includes VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR, the rateControlMode member of VkVideoEncodeRateControlInfoKHR included in the pNext chain is not VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR, and the bound video session was created with VkVideoProfileInfoKHR::videoCodecOperation set to VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT, then the pNext chain must include a VkVideoEncodeH264RateControlInfoEXT structure
VUID-VkVideoCodingControlInfoKHR-flags-07023NNoneexplicitVkVideoCodingControlInfoKHR(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)If flags includes VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR and the bound video session was created with VkVideoProfileInfoKHR::videoCodecOperation set to VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT, then the pNext chain must include a VkVideoEncodeH264RateControlLayerInfoEXT structure
VUID-VkVideoCodingControlInfoKHR-flags-07024NNoneexplicitVkVideoCodingControlInfoKHR(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)If flags includes VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR, the rateControlMode member of VkVideoEncodeRateControlInfoKHR included in the pNext chain is not VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR, and the bound video session was created with VkVideoProfileInfoKHR::videoCodecOperation set to VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT, then the pNext chain must include a VkVideoEncodeH265RateControlInfoEXT structure
VUID-VkVideoCodingControlInfoKHR-flags-07026NNoneexplicitVkVideoCodingControlInfoKHR(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)If flags includes VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR and the bound video session was created with VkVideoProfileInfoKHR::videoCodecOperation set to VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT, then the pNext chain must include a VkVideoEncodeH265RateControlLayerInfoEXT structure
VUID-VkVideoCodingControlInfoKHR-flags-parameterYNoneimplicitVkVideoCodingControlInfoKHR(VK_KHR_video_queue)flags must be a valid combination of VkVideoCodingControlFlagBitsKHR values
VUID-VkVideoCodingControlInfoKHR-flags-requiredbitmaskYNoneimplicitVkVideoCodingControlInfoKHR(VK_KHR_video_queue)flags must not be 0
VUID-VkVideoCodingControlInfoKHR-pNext-07022NNoneexplicitVkVideoCodingControlInfoKHR(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)If the pNext chain includes a VkVideoEncodeRateControlInfoKHR, and VkVideoEncodeRateControlInfoKHR::layerCount is greater than 1, then VkVideoEncodeH264RateControlInfoEXT::temporalLayerCount must be equal to layerCount
VUID-VkVideoCodingControlInfoKHR-pNext-07025NNoneexplicitVkVideoCodingControlInfoKHR(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)If the pNext chain includes a VkVideoEncodeRateControlInfoKHR, and VkVideoEncodeRateControlInfoKHR::layerCount is greater than 1, then VkVideoEncodeH265RateControlInfoEXT::subLayerCount must be equal to layerCount
VUID-VkVideoCodingControlInfoKHR-pNext-pNextYNoneimplicitVkVideoCodingControlInfoKHR(VK_KHR_video_queue)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoEncodeH264RateControlInfoEXT, VkVideoEncodeH264RateControlLayerInfoEXT, VkVideoEncodeH265RateControlInfoEXT, VkVideoEncodeH265RateControlLayerInfoEXT, VkVideoEncodeRateControlInfoKHR, or VkVideoEncodeRateControlLayerInfoKHR
VUID-VkVideoCodingControlInfoKHR-sType-sTypeYNoneimplicitVkVideoCodingControlInfoKHR(VK_KHR_video_queue)sType must be VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR
VUID-VkVideoCodingControlInfoKHR-sType-uniqueYNoneimplicitVkVideoCodingControlInfoKHR(VK_KHR_video_queue)The sType value of each struct in the pNext chain must be unique
VUID-VkVideoDecodeCapabilitiesKHR-sType-sTypeYNoneimplicitVkVideoDecodeCapabilitiesKHR(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR
VUID-VkVideoDecodeH264CapabilitiesEXT-sType-sTypeYNoneimplicitVkVideoDecodeH264CapabilitiesEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT
VUID-VkVideoDecodeH264DpbSlotInfoEXT-pStdReferenceInfo-parameterYNoneimplicitVkVideoDecodeH264DpbSlotInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)pStdReferenceInfo must be a valid pointer to a valid StdVideoDecodeH264ReferenceInfo value
VUID-VkVideoDecodeH264DpbSlotInfoEXT-sType-sTypeYNoneimplicitVkVideoDecodeH264DpbSlotInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT
VUID-VkVideoDecodeH264PictureInfoEXT-pSliceOffsets-parameterYNoneimplicitVkVideoDecodeH264PictureInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)pSliceOffsets must be a valid pointer to an array of sliceCount uint32_t values
VUID-VkVideoDecodeH264PictureInfoEXT-pStdPictureInfo-parameterYNoneimplicitVkVideoDecodeH264PictureInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)pStdPictureInfo must be a valid pointer to a valid StdVideoDecodeH264PictureInfo value
VUID-VkVideoDecodeH264PictureInfoEXT-sType-sTypeYNoneimplicitVkVideoDecodeH264PictureInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT
VUID-VkVideoDecodeH264PictureInfoEXT-sliceCount-arraylengthYNoneimplicitVkVideoDecodeH264PictureInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)sliceCount must be greater than 0
VUID-VkVideoDecodeH264ProfileInfoEXT-pNext-06259NNoneexplicitVkVideoDecodeH264ProfileInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)If the VkVideoDecodeH264ProfileInfoEXT structure is included in the pNext chain of the VkVideoCapabilitiesKHR structure passed to vkGetPhysicalDeviceVideoCapabilitiesKHR, the value in pictureLayout is treated as a bitmask of requested picture layouts. It is always valid to use the value VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT as the implementation is guaranteed to support decoding of progressive content
VUID-VkVideoDecodeH264ProfileInfoEXT-pNext-06260NNoneexplicitVkVideoDecodeH264ProfileInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)If the VkVideoDecodeH264ProfileInfoEXT structure is included in the pNext chain of the VkVideoSessionCreateInfoKHR structure passed to vkCreateVideoSessionKHR, the value in pictureLayout must be exactly one of VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT, VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT or VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT
VUID-VkVideoDecodeH264ProfileInfoEXT-pictureLayout-parameterYNoneimplicitVkVideoDecodeH264ProfileInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)If pictureLayout is not 0, pictureLayout must be a valid VkVideoDecodeH264PictureLayoutFlagBitsEXT value
VUID-VkVideoDecodeH264ProfileInfoEXT-sType-sTypeYNoneimplicitVkVideoDecodeH264ProfileInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_EXT
VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-None-04825NNoneexplicitVkVideoDecodeH264SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)Each entry to be added must have a unique, to the rest of the parameter array entries and the existing parameters in the Video Session Parameters Object that is being updated, SPS-PPS IDs
VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-None-04826NNoneexplicitVkVideoDecodeH264SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)Parameter entries that already exist in Video Session Parameters object with a particular SPS-PPS IDs cannot be replaced nor updated
VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-None-04827NNoneexplicitVkVideoDecodeH264SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)When creating a new object using a Video Session Parameters as a template, the array's parameters with the same SPS-PPS IDs as the ones from the template take precedence
VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-None-04828NNoneexplicitVkVideoDecodeH264SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)SPS/PPS parameters must comply with the limits specified in VkVideoSessionCreateInfoKHR during Video Session creation
VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-maxStdPPSCount-04824NNoneexplicitVkVideoDecodeH264SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)When the maxStdPPSCount number of parameters of type StdVideoH264PictureParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to this object. VK_ERROR_TOO_MANY_OBJECTS will be returned if an attempt is made to add additional data to this object at this point
VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-maxStdSPSCount-04823NNoneexplicitVkVideoDecodeH264SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)When the maxStdSPSCount number of parameters of type StdVideoH264SequenceParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to this object. VK_ERROR_TOO_MANY_OBJECTS will be returned if an attempt is made to add additional data to this object at this point
VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-pStdPPSs-parameterYNoneimplicitVkVideoDecodeH264SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)If stdPPSCount is not 0, pStdPPSs must be a valid pointer to an array of stdPPSCount StdVideoH264PictureParameterSet values
VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-pStdSPSs-parameterYNoneimplicitVkVideoDecodeH264SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)If stdSPSCount is not 0, pStdSPSs must be a valid pointer to an array of stdSPSCount StdVideoH264SequenceParameterSet values
VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-sType-sTypeYNoneimplicitVkVideoDecodeH264SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT
VUID-VkVideoDecodeH264SessionParametersAddInfoEXT-stdSPSCount-04822NNoneexplicitVkVideoDecodeH264SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)The values of stdSPSCount and stdPPSCount must be less than or equal to the values of maxStdSPSCount and maxStdPPSCount, respectively
VUID-VkVideoDecodeH264SessionParametersCreateInfoEXT-pParametersAddInfo-parameterYNoneimplicitVkVideoDecodeH264SessionParametersCreateInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)If pParametersAddInfo is not NULL, pParametersAddInfo must be a valid pointer to a valid VkVideoDecodeH264SessionParametersAddInfoEXT structure
VUID-VkVideoDecodeH264SessionParametersCreateInfoEXT-sType-sTypeYNoneimplicitVkVideoDecodeH264SessionParametersCreateInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h264)sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT
VUID-VkVideoDecodeH265CapabilitiesEXT-sType-sTypeYNoneimplicitVkVideoDecodeH265CapabilitiesEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT
VUID-VkVideoDecodeH265DpbSlotInfoEXT-pStdReferenceInfo-parameterYNoneimplicitVkVideoDecodeH265DpbSlotInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)pStdReferenceInfo must be a valid pointer to a valid StdVideoDecodeH265ReferenceInfo value
VUID-VkVideoDecodeH265DpbSlotInfoEXT-sType-sTypeYNoneimplicitVkVideoDecodeH265DpbSlotInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT
VUID-VkVideoDecodeH265PictureInfoEXT-pSliceSegmentOffsets-parameterYNoneimplicitVkVideoDecodeH265PictureInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)pSliceSegmentOffsets must be a valid pointer to an array of sliceSegmentCount uint32_t values
VUID-VkVideoDecodeH265PictureInfoEXT-pStdPictureInfo-parameterYNoneimplicitVkVideoDecodeH265PictureInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)pStdPictureInfo must be a valid pointer to a StdVideoDecodeH265PictureInfo value
VUID-VkVideoDecodeH265PictureInfoEXT-sType-sTypeYNoneimplicitVkVideoDecodeH265PictureInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT
VUID-VkVideoDecodeH265PictureInfoEXT-sliceSegmentCount-arraylengthYNoneimplicitVkVideoDecodeH265PictureInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)sliceSegmentCount must be greater than 0
VUID-VkVideoDecodeH265ProfileInfoEXT-sType-sTypeYNoneimplicitVkVideoDecodeH265ProfileInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_EXT
VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-None-04833NNoneexplicitVkVideoDecodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)Each entry to be added must have a unique, to the rest of the parameter array entries and the existing parameters in the Video Session Parameters Object that is being updated, VPS-SPS-PPS IDs
VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-None-04834NNoneexplicitVkVideoDecodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)Parameter entries that already exist in Video Session Parameters object with a particular VPS-SPS-PPS IDs cannot be replaced nor updated
VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-None-04835NNoneexplicitVkVideoDecodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)When creating a new object using a Video Session Parameters as a template, the array's parameters with the same VPS-SPS-PPS IDs as the ones from the template take precedence
VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-None-04836NNoneexplicitVkVideoDecodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)VPS/SPS/PPS parameters must comply with the limits specified in VkVideoSessionCreateInfoKHR during Video Session creation
VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-maxStdPPSCount-04832NNoneexplicitVkVideoDecodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)When the maxStdPPSCount number of parameters of type StdVideoH265PictureParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to the object. VK_ERROR_TOO_MANY_OBJECTS will be returned if an attempt is made to add additional data to this object at this point
VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-maxStdSPSCount-04831NNoneexplicitVkVideoDecodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)When the maxStdSPSCount number of parameters of type StdVideoH265SequenceParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to the object. VK_ERROR_TOO_MANY_OBJECTS will be returned if an attempt is made to add additional data to this object at this point
VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-maxStdVPSCount-04830NNoneexplicitVkVideoDecodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)When the maxStdVPSCount number of parameters of type StdVideoH265VideoParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to the object. VK_ERROR_TOO_MANY_OBJECTS will be returned if an attempt is made to add additional data to this object at this point
VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-pStdPPSs-parameterYNoneimplicitVkVideoDecodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)If stdPPSCount is not 0, pStdPPSs must be a valid pointer to an array of stdPPSCount StdVideoH265PictureParameterSet values
VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-pStdSPSs-parameterYNoneimplicitVkVideoDecodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)If stdSPSCount is not 0, pStdSPSs must be a valid pointer to an array of stdSPSCount StdVideoH265SequenceParameterSet values
VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-pStdVPSs-parameterYNoneimplicitVkVideoDecodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)If stdVPSCount is not 0, pStdVPSs must be a valid pointer to an array of stdVPSCount StdVideoH265VideoParameterSet values
VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-sType-sTypeYNoneimplicitVkVideoDecodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT
VUID-VkVideoDecodeH265SessionParametersAddInfoEXT-stdVPSCount-04829NNoneexplicitVkVideoDecodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)The values of stdVPSCount, stdSPSCount and stdPPSCount must be less than or equal to the values of maxStdVPSCount, maxStdSPSCount and maxStdPPSCount, respectively
VUID-VkVideoDecodeH265SessionParametersCreateInfoEXT-pParametersAddInfo-parameterYNoneimplicitVkVideoDecodeH265SessionParametersCreateInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)If pParametersAddInfo is not NULL, pParametersAddInfo must be a valid pointer to a valid VkVideoDecodeH265SessionParametersAddInfoEXT structure
VUID-VkVideoDecodeH265SessionParametersCreateInfoEXT-sType-sTypeYNoneimplicitVkVideoDecodeH265SessionParametersCreateInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_decode_h265)sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT
VUID-VkVideoDecodeInfoKHR-dstPictureResource-parameterNNoneimplicitVkVideoDecodeInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)dstPictureResource must be a valid VkVideoPictureResourceInfoKHR structure
VUID-VkVideoDecodeInfoKHR-flags-zerobitmaskYNoneimplicitVkVideoDecodeInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)flags must be 0
VUID-VkVideoDecodeInfoKHR-pNext-pNextYNoneimplicitVkVideoDecodeInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoDecodeH264PictureInfoEXT or VkVideoDecodeH265PictureInfoEXT
VUID-VkVideoDecodeInfoKHR-pReferenceSlots-parameterYNoneimplicitVkVideoDecodeInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)If referenceSlotCount is not 0, pReferenceSlots must be a valid pointer to an array of referenceSlotCount valid VkVideoReferenceSlotInfoKHR structures
VUID-VkVideoDecodeInfoKHR-pSetupReferenceSlot-parameterYNoneimplicitVkVideoDecodeInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)If pSetupReferenceSlot is not NULL, pSetupReferenceSlot must be a valid pointer to a valid VkVideoReferenceSlotInfoKHR structure
VUID-VkVideoDecodeInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR
VUID-VkVideoDecodeInfoKHR-sType-uniqueYNoneimplicitVkVideoDecodeInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)The sType value of each struct in the pNext chain must be unique
VUID-VkVideoDecodeInfoKHR-srcBuffer-parameterYNoneimplicitVkVideoDecodeInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)srcBuffer must be a valid VkBuffer handle
VUID-VkVideoDecodeUsageInfoKHR-sType-sTypeYNoneimplicitVkVideoDecodeUsageInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR
VUID-VkVideoDecodeUsageInfoKHR-videoUsageHints-parameterYNoneimplicitVkVideoDecodeUsageInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)videoUsageHints must be a valid combination of VkVideoDecodeUsageFlagBitsKHR values
VUID-VkVideoEncodeCapabilitiesKHR-sType-sTypeYNoneimplicitVkVideoEncodeCapabilitiesKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR
VUID-VkVideoEncodeH264CapabilitiesEXT-sType-sTypeYNoneimplicitVkVideoEncodeH264CapabilitiesEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT
VUID-VkVideoEncodeH264DpbSlotInfoEXT-pNext-pNextNNoneimplicitVkVideoEncodeH264DpbSlotInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)pNext must be NULL
VUID-VkVideoEncodeH264DpbSlotInfoEXT-pStdReferenceInfo-parameterYNoneimplicitVkVideoEncodeH264DpbSlotInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)pStdReferenceInfo must be a valid pointer to a valid StdVideoEncodeH264ReferenceInfo value
VUID-VkVideoEncodeH264DpbSlotInfoEXT-sType-sTypeYNoneimplicitVkVideoEncodeH264DpbSlotInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT
VUID-VkVideoEncodeH264EmitPictureParametersInfoEXT-ppsIdEntries-parameterYNoneimplicitVkVideoEncodeH264EmitPictureParametersInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)ppsIdEntries must be a valid pointer to an array of ppsIdEntryCount uint8_t values
VUID-VkVideoEncodeH264EmitPictureParametersInfoEXT-ppsIdEntryCount-arraylengthYNoneimplicitVkVideoEncodeH264EmitPictureParametersInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)ppsIdEntryCount must be greater than 0
VUID-VkVideoEncodeH264EmitPictureParametersInfoEXT-sType-sTypeYNoneimplicitVkVideoEncodeH264EmitPictureParametersInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_INFO_EXT
VUID-VkVideoEncodeH264NaluSliceInfoEXT-pNext-pNextNNoneimplicitVkVideoEncodeH264NaluSliceInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)pNext must be NULL
VUID-VkVideoEncodeH264NaluSliceInfoEXT-pReferenceFinalLists-parameterYNoneimplicitVkVideoEncodeH264NaluSliceInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)If pReferenceFinalLists is not NULL, pReferenceFinalLists must be a valid pointer to a valid VkVideoEncodeH264ReferenceListsInfoEXT structure
VUID-VkVideoEncodeH264NaluSliceInfoEXT-pSliceHeaderStd-parameterYNoneimplicitVkVideoEncodeH264NaluSliceInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)pSliceHeaderStd must be a valid pointer to a valid StdVideoEncodeH264SliceHeader value
VUID-VkVideoEncodeH264NaluSliceInfoEXT-sType-sTypeYNoneimplicitVkVideoEncodeH264NaluSliceInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_EXT
VUID-VkVideoEncodeH264ProfileInfoEXT-sType-sTypeYNoneimplicitVkVideoEncodeH264ProfileInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT
VUID-VkVideoEncodeH264RateControlInfoEXT-rateControlStructure-parameterYNoneimplicitVkVideoEncodeH264RateControlInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)rateControlStructure must be a valid VkVideoEncodeH264RateControlStructureEXT value
VUID-VkVideoEncodeH264RateControlInfoEXT-sType-sTypeYNoneimplicitVkVideoEncodeH264RateControlInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT
VUID-VkVideoEncodeH264RateControlLayerInfoEXT-initialRcQp-parameterNNoneimplicitVkVideoEncodeH264RateControlLayerInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)initialRcQp must be a valid VkVideoEncodeH264QpEXT structure
VUID-VkVideoEncodeH264RateControlLayerInfoEXT-maxFrameSize-parameterNNoneimplicitVkVideoEncodeH264RateControlLayerInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)maxFrameSize must be a valid VkVideoEncodeH264FrameSizeEXT structure
VUID-VkVideoEncodeH264RateControlLayerInfoEXT-maxQp-parameterNNoneimplicitVkVideoEncodeH264RateControlLayerInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)maxQp must be a valid VkVideoEncodeH264QpEXT structure
VUID-VkVideoEncodeH264RateControlLayerInfoEXT-minQp-parameterNNoneimplicitVkVideoEncodeH264RateControlLayerInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)minQp must be a valid VkVideoEncodeH264QpEXT structure
VUID-VkVideoEncodeH264RateControlLayerInfoEXT-rateControlMode-06474NNoneexplicitVkVideoEncodeH264RateControlLayerInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)When VkVideoEncodeRateControlInfoKHR::rateControlMode is VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR, both useMinQp and useMaxQp must be set to VK_TRUE
VUID-VkVideoEncodeH264RateControlLayerInfoEXT-rateControlMode-06475NNoneexplicitVkVideoEncodeH264RateControlLayerInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)When VkVideoEncodeRateControlInfoKHR::rateControlMode is VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR, the values provided in minQP must be identical to those provided in maxQp
VUID-VkVideoEncodeH264RateControlLayerInfoEXT-sType-sTypeYNoneimplicitVkVideoEncodeH264RateControlLayerInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT
VUID-VkVideoEncodeH264ReferenceListsInfoEXT-pMemMgmtCtrlOperations-parameterYNoneimplicitVkVideoEncodeH264ReferenceListsInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)pMemMgmtCtrlOperations must be a valid pointer to a valid StdVideoEncodeH264RefMemMgmtCtrlOperations value
VUID-VkVideoEncodeH264ReferenceListsInfoEXT-pNext-pNextNNoneimplicitVkVideoEncodeH264ReferenceListsInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)pNext must be NULL
VUID-VkVideoEncodeH264ReferenceListsInfoEXT-pReferenceList0Entries-parameterYNoneimplicitVkVideoEncodeH264ReferenceListsInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)If referenceList0EntryCount is not 0, pReferenceList0Entries must be a valid pointer to an array of referenceList0EntryCount valid VkVideoEncodeH264DpbSlotInfoEXT structures
VUID-VkVideoEncodeH264ReferenceListsInfoEXT-pReferenceList1Entries-parameterYNoneimplicitVkVideoEncodeH264ReferenceListsInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)If referenceList1EntryCount is not 0, pReferenceList1Entries must be a valid pointer to an array of referenceList1EntryCount valid VkVideoEncodeH264DpbSlotInfoEXT structures
VUID-VkVideoEncodeH264ReferenceListsInfoEXT-sType-sTypeYNoneimplicitVkVideoEncodeH264ReferenceListsInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_INFO_EXT
VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-None-04840NNoneexplicitVkVideoEncodeH264SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)Each entry to be added must have a unique, to the rest of the parameter array entries and the existing parameters in the Video Session Parameters Object that is being updated, SPS-PPS IDs
VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-None-04841NNoneexplicitVkVideoEncodeH264SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)Parameter entries that already exist in Video Session Parameters object with a particular SPS-PPS IDs cannot be replaced nor updated
VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-None-04842NNoneexplicitVkVideoEncodeH264SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)When creating a new object using a Video Session Parameters as a template, the array's parameters with the same SPS-PPS IDs as the ones from the template take precedence
VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-None-04843NNoneexplicitVkVideoEncodeH264SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)SPS/PPS parameters must comply with the limits specified in VkVideoSessionCreateInfoKHR during Video Session creation
VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-maxStdPPSCount-04839NNoneexplicitVkVideoEncodeH264SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)When the maxStdPPSCount number of parameters of type StdVideoH264PictureParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to the object. VK_ERROR_TOO_MANY_OBJECTS will be returned if an attempt is made to add additional data to this object at this point
VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-maxStdSPSCount-04838NNoneexplicitVkVideoEncodeH264SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)When the maxStdSPSCount number of parameters of type StdVideoH264SequenceParameterSet in the Video Session Parameters object is reached, no additional parameters of that type can be added to the object. VK_ERROR_TOO_MANY_OBJECTS will be returned if an attempt is made to add additional data to this object at this point
VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-pStdPPSs-parameterYNoneimplicitVkVideoEncodeH264SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)If pStdPPSs is not NULL, pStdPPSs must be a valid pointer to an array of stdPPSCount StdVideoH264PictureParameterSet values
VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-pStdSPSs-parameterYNoneimplicitVkVideoEncodeH264SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)If pStdSPSs is not NULL, pStdSPSs must be a valid pointer to an array of stdSPSCount StdVideoH264SequenceParameterSet values
VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-sType-sTypeYNoneimplicitVkVideoEncodeH264SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT
VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-stdPPSCount-arraylengthYNoneimplicitVkVideoEncodeH264SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)stdPPSCount must be greater than 0
VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-stdSPSCount-04837NNoneexplicitVkVideoEncodeH264SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)The values of stdSPSCount and stdPPSCount must be less than or equal to the values of maxStdSPSCount and maxStdPPSCount, respectively
VUID-VkVideoEncodeH264SessionParametersAddInfoEXT-stdSPSCount-arraylengthYNoneimplicitVkVideoEncodeH264SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)stdSPSCount must be greater than 0
VUID-VkVideoEncodeH264SessionParametersCreateInfoEXT-pParametersAddInfo-parameterYNoneimplicitVkVideoEncodeH264SessionParametersCreateInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)If pParametersAddInfo is not NULL, pParametersAddInfo must be a valid pointer to a valid VkVideoEncodeH264SessionParametersAddInfoEXT structure
VUID-VkVideoEncodeH264SessionParametersCreateInfoEXT-sType-sTypeYNoneimplicitVkVideoEncodeH264SessionParametersCreateInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT
VUID-VkVideoEncodeH264VclFrameInfoEXT-naluSliceEntryCount-arraylengthYNoneimplicitVkVideoEncodeH264VclFrameInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)naluSliceEntryCount must be greater than 0
VUID-VkVideoEncodeH264VclFrameInfoEXT-pCurrentPictureInfo-parameterYNoneimplicitVkVideoEncodeH264VclFrameInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)pCurrentPictureInfo must be a valid pointer to a valid StdVideoEncodeH264PictureInfo value
VUID-VkVideoEncodeH264VclFrameInfoEXT-pNaluSliceEntries-parameterYNoneimplicitVkVideoEncodeH264VclFrameInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)pNaluSliceEntries must be a valid pointer to an array of naluSliceEntryCount valid VkVideoEncodeH264NaluSliceInfoEXT structures
VUID-VkVideoEncodeH264VclFrameInfoEXT-pReferenceFinalLists-parameterYNoneimplicitVkVideoEncodeH264VclFrameInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)If pReferenceFinalLists is not NULL, pReferenceFinalLists must be a valid pointer to a valid VkVideoEncodeH264ReferenceListsInfoEXT structure
VUID-VkVideoEncodeH264VclFrameInfoEXT-sType-sTypeYNoneimplicitVkVideoEncodeH264VclFrameInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h264)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT
VUID-VkVideoEncodeH265CapabilitiesEXT-sType-sTypeYNoneimplicitVkVideoEncodeH265CapabilitiesEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT
VUID-VkVideoEncodeH265DpbSlotInfoEXT-pNext-pNextNNoneimplicitVkVideoEncodeH265DpbSlotInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)pNext must be NULL
VUID-VkVideoEncodeH265DpbSlotInfoEXT-pStdReferenceInfo-parameterYNoneimplicitVkVideoEncodeH265DpbSlotInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)pStdReferenceInfo must be a valid pointer to a valid StdVideoEncodeH265ReferenceInfo value
VUID-VkVideoEncodeH265DpbSlotInfoEXT-sType-sTypeYNoneimplicitVkVideoEncodeH265DpbSlotInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT
VUID-VkVideoEncodeH265EmitPictureParametersInfoEXT-ppsIdEntries-parameterYNoneimplicitVkVideoEncodeH265EmitPictureParametersInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)If ppsIdEntryCount is not 0, ppsIdEntries must be a valid pointer to an array of ppsIdEntryCount uint8_t values
VUID-VkVideoEncodeH265EmitPictureParametersInfoEXT-sType-sTypeYNoneimplicitVkVideoEncodeH265EmitPictureParametersInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_INFO_EXT
VUID-VkVideoEncodeH265NaluSliceSegmentInfoEXT-pNext-pNextNNoneimplicitVkVideoEncodeH265NaluSliceSegmentInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)pNext must be NULL
VUID-VkVideoEncodeH265NaluSliceSegmentInfoEXT-pReferenceFinalLists-parameterYNoneimplicitVkVideoEncodeH265NaluSliceSegmentInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)If pReferenceFinalLists is not NULL, pReferenceFinalLists must be a valid pointer to a valid VkVideoEncodeH265ReferenceListsInfoEXT structure
VUID-VkVideoEncodeH265NaluSliceSegmentInfoEXT-pSliceSegmentHeaderStd-parameterYNoneimplicitVkVideoEncodeH265NaluSliceSegmentInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)pSliceSegmentHeaderStd must be a valid pointer to a valid StdVideoEncodeH265SliceSegmentHeader value
VUID-VkVideoEncodeH265NaluSliceSegmentInfoEXT-sType-sTypeYNoneimplicitVkVideoEncodeH265NaluSliceSegmentInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_EXT
VUID-VkVideoEncodeH265ProfileInfoEXT-sType-sTypeYNoneimplicitVkVideoEncodeH265ProfileInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT
VUID-VkVideoEncodeH265RateControlInfoEXT-rateControlStructure-parameterYNoneimplicitVkVideoEncodeH265RateControlInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)rateControlStructure must be a valid VkVideoEncodeH265RateControlStructureEXT value
VUID-VkVideoEncodeH265RateControlInfoEXT-sType-sTypeYNoneimplicitVkVideoEncodeH265RateControlInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT
VUID-VkVideoEncodeH265RateControlLayerInfoEXT-initialRcQp-parameterNNoneimplicitVkVideoEncodeH265RateControlLayerInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)initialRcQp must be a valid VkVideoEncodeH265QpEXT structure
VUID-VkVideoEncodeH265RateControlLayerInfoEXT-maxFrameSize-parameterNNoneimplicitVkVideoEncodeH265RateControlLayerInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)maxFrameSize must be a valid VkVideoEncodeH265FrameSizeEXT structure
VUID-VkVideoEncodeH265RateControlLayerInfoEXT-maxQp-parameterNNoneimplicitVkVideoEncodeH265RateControlLayerInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)maxQp must be a valid VkVideoEncodeH265QpEXT structure
VUID-VkVideoEncodeH265RateControlLayerInfoEXT-minQp-parameterNNoneimplicitVkVideoEncodeH265RateControlLayerInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)minQp must be a valid VkVideoEncodeH265QpEXT structure
VUID-VkVideoEncodeH265RateControlLayerInfoEXT-rateControlMode-06476NNoneexplicitVkVideoEncodeH265RateControlLayerInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)When VkVideoEncodeRateControlInfoKHR::rateControlMode is VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR, both useMinQp and useMaxQp must be set to VK_TRUE
VUID-VkVideoEncodeH265RateControlLayerInfoEXT-rateControlMode-06477NNoneexplicitVkVideoEncodeH265RateControlLayerInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)When VkVideoEncodeRateControlInfoKHR::rateControlMode is VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR, the values provided in minQP must be identical to those provided in maxQp
VUID-VkVideoEncodeH265RateControlLayerInfoEXT-sType-sTypeYNoneimplicitVkVideoEncodeH265RateControlLayerInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT
VUID-VkVideoEncodeH265ReferenceListsInfoEXT-pNext-pNextNNoneimplicitVkVideoEncodeH265ReferenceListsInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)pNext must be NULL
VUID-VkVideoEncodeH265ReferenceListsInfoEXT-pReferenceList0Entries-parameterYNoneimplicitVkVideoEncodeH265ReferenceListsInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)If referenceList0EntryCount is not 0, pReferenceList0Entries must be a valid pointer to an array of referenceList0EntryCount valid VkVideoEncodeH265DpbSlotInfoEXT structures
VUID-VkVideoEncodeH265ReferenceListsInfoEXT-pReferenceList1Entries-parameterYNoneimplicitVkVideoEncodeH265ReferenceListsInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)If referenceList1EntryCount is not 0, pReferenceList1Entries must be a valid pointer to an array of referenceList1EntryCount valid VkVideoEncodeH265DpbSlotInfoEXT structures
VUID-VkVideoEncodeH265ReferenceListsInfoEXT-pReferenceModifications-parameterYNoneimplicitVkVideoEncodeH265ReferenceListsInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)pReferenceModifications must be a valid pointer to a valid StdVideoEncodeH265ReferenceModifications value
VUID-VkVideoEncodeH265ReferenceListsInfoEXT-sType-sTypeYNoneimplicitVkVideoEncodeH265ReferenceListsInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_INFO_EXT
VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-None-06442NNoneexplicitVkVideoEncodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)Each entry to be added must have a unique, to the rest of the parameter array entries and the existing parameters in the Video Session Parameters Object that is being updated, VPS-SPS-PPS IDs
VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-None-06443NNoneexplicitVkVideoEncodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)Parameter entries that already exist in Video Session Parameters object with a particular VPS-SPS-PPS IDs must not be replaced nor updated
VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-None-06444NNoneexplicitVkVideoEncodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)When creating a new object using a Video Session Parameters as a template, the array's parameters with the same VPS-SPS-PPS IDs as the ones from the template take precedence
VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-None-06445NNoneexplicitVkVideoEncodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)VPS/SPS/PPS parameters must comply with the limits specified in VkVideoSessionCreateInfoKHR during Video Session creation
VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pStdPPSs-06441NNoneexplicitVkVideoEncodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)Each StdVideoH265PictureParameterSet entry in pStdPPSs must have a unique H.265 VPS-SPS-PPS ID tuple
VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pStdPPSs-parameterYNoneimplicitVkVideoEncodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)If pStdPPSs is not NULL, pStdPPSs must be a valid pointer to an array of stdPPSCount StdVideoH265PictureParameterSet values
VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pStdSPSs-06440NNoneexplicitVkVideoEncodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)Each StdVideoH265SequenceParameterSet entry in pStdSPSs must have a unique H.265 VPS-SPS ID pair
VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pStdSPSs-parameterYNoneimplicitVkVideoEncodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)If pStdSPSs is not NULL, pStdSPSs must be a valid pointer to an array of stdSPSCount StdVideoH265SequenceParameterSet values
VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pStdVPSs-06439NNoneexplicitVkVideoEncodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)Each StdVideoH265VideoParameterSet entry in pStdVPSs must have a unique H.265 VPS ID
VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-pStdVPSs-parameterYNoneimplicitVkVideoEncodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)If pStdVPSs is not NULL, pStdVPSs must be a valid pointer to an array of stdVPSCount StdVideoH265VideoParameterSet values
VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-sType-sTypeYNoneimplicitVkVideoEncodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT
VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-stdPPSCount-arraylengthYNoneimplicitVkVideoEncodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)stdPPSCount must be greater than 0
VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-stdSPSCount-arraylengthYNoneimplicitVkVideoEncodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)stdSPSCount must be greater than 0
VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-stdVPSCount-06438NNoneexplicitVkVideoEncodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)The values of stdVPSCount, stdSPSCount and stdPPSCount must be less than or equal to the values of VkVideoEncodeH265SessionParametersCreateInfoEXT::maxStdVPSCount, VkVideoEncodeH265SessionParametersCreateInfoEXT:maxStdSPSCount, and VkVideoEncodeH265SessionParametersCreateInfoEXT:maxStdPPSCount, respectively
VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-stdVPSCount-arraylengthYNoneimplicitVkVideoEncodeH265SessionParametersAddInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)stdVPSCount must be greater than 0
VUID-VkVideoEncodeH265SessionParametersCreateInfoEXT-pParametersAddInfo-parameterYNoneimplicitVkVideoEncodeH265SessionParametersCreateInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)If pParametersAddInfo is not NULL, pParametersAddInfo must be a valid pointer to a valid VkVideoEncodeH265SessionParametersAddInfoEXT structure
VUID-VkVideoEncodeH265SessionParametersCreateInfoEXT-sType-sTypeYNoneimplicitVkVideoEncodeH265SessionParametersCreateInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT
VUID-VkVideoEncodeH265VclFrameInfoEXT-naluSliceSegmentEntryCount-arraylengthYNoneimplicitVkVideoEncodeH265VclFrameInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)naluSliceSegmentEntryCount must be greater than 0
VUID-VkVideoEncodeH265VclFrameInfoEXT-pCurrentPictureInfo-parameterYNoneimplicitVkVideoEncodeH265VclFrameInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)pCurrentPictureInfo must be a valid pointer to a valid StdVideoEncodeH265PictureInfo value
VUID-VkVideoEncodeH265VclFrameInfoEXT-pNaluSliceSegmentEntries-parameterYNoneimplicitVkVideoEncodeH265VclFrameInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)pNaluSliceSegmentEntries must be a valid pointer to an array of naluSliceSegmentEntryCount valid VkVideoEncodeH265NaluSliceSegmentInfoEXT structures
VUID-VkVideoEncodeH265VclFrameInfoEXT-pReferenceFinalLists-parameterYNoneimplicitVkVideoEncodeH265VclFrameInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)If pReferenceFinalLists is not NULL, pReferenceFinalLists must be a valid pointer to a valid VkVideoEncodeH265ReferenceListsInfoEXT structure
VUID-VkVideoEncodeH265VclFrameInfoEXT-sType-sTypeYNoneimplicitVkVideoEncodeH265VclFrameInfoEXT(VK_KHR_video_queue)+(VK_EXT_video_encode_h265)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT
VUID-VkVideoEncodeInfoKHR-None-07012NNoneexplicitVkVideoEncodeInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)The bound video session object must not be in uninitialized state
VUID-VkVideoEncodeInfoKHR-dstBitstreamBuffer-parameterYNoneimplicitVkVideoEncodeInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)dstBitstreamBuffer must be a valid VkBuffer handle
VUID-VkVideoEncodeInfoKHR-flags-zerobitmaskYNoneimplicitVkVideoEncodeInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)flags must be 0
VUID-VkVideoEncodeInfoKHR-pNext-pNextYNoneimplicitVkVideoEncodeInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoEncodeH264EmitPictureParametersInfoEXT, VkVideoEncodeH264VclFrameInfoEXT, VkVideoEncodeH265EmitPictureParametersInfoEXT, or VkVideoEncodeH265VclFrameInfoEXT
VUID-VkVideoEncodeInfoKHR-pReferenceSlots-parameterYNoneimplicitVkVideoEncodeInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)If referenceSlotCount is not 0, pReferenceSlots must be a valid pointer to an array of referenceSlotCount valid VkVideoReferenceSlotInfoKHR structures
VUID-VkVideoEncodeInfoKHR-pSetupReferenceSlot-parameterYNoneimplicitVkVideoEncodeInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)If pSetupReferenceSlot is not NULL, pSetupReferenceSlot must be a valid pointer to a valid VkVideoReferenceSlotInfoKHR structure
VUID-VkVideoEncodeInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR
VUID-VkVideoEncodeInfoKHR-sType-uniqueYNoneimplicitVkVideoEncodeInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)The sType value of each struct in the pNext chain must be unique
VUID-VkVideoEncodeInfoKHR-srcPictureResource-parameterNNoneimplicitVkVideoEncodeInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)srcPictureResource must be a valid VkVideoPictureResourceInfoKHR structure
VUID-VkVideoEncodeRateControlInfoKHR-flags-zerobitmaskYNoneimplicitVkVideoEncodeRateControlInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)flags must be 0
VUID-VkVideoEncodeRateControlInfoKHR-layerCount-arraylengthYNoneimplicitVkVideoEncodeRateControlInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)layerCount must be greater than 0
VUID-VkVideoEncodeRateControlInfoKHR-pLayerConfigs-parameterYNoneimplicitVkVideoEncodeRateControlInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)pLayerConfigs must be a valid pointer to an array of layerCount valid VkVideoEncodeRateControlLayerInfoKHR structures
VUID-VkVideoEncodeRateControlInfoKHR-rateControlMode-parameterYNoneimplicitVkVideoEncodeRateControlInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)rateControlMode must be a valid VkVideoEncodeRateControlModeFlagBitsKHR value
VUID-VkVideoEncodeRateControlInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeRateControlInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR
VUID-VkVideoEncodeRateControlLayerInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeRateControlLayerInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR
VUID-VkVideoEncodeUsageInfoKHR-sType-sTypeYNoneimplicitVkVideoEncodeUsageInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)sType must be VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR
VUID-VkVideoEncodeUsageInfoKHR-tuningMode-parameterYNoneimplicitVkVideoEncodeUsageInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)If tuningMode is not 0, tuningMode must be a valid VkVideoEncodeTuningModeKHR value
VUID-VkVideoEncodeUsageInfoKHR-videoContentHints-parameterYNoneimplicitVkVideoEncodeUsageInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)videoContentHints must be a valid combination of VkVideoEncodeContentFlagBitsKHR values
VUID-VkVideoEncodeUsageInfoKHR-videoUsageHints-parameterYNoneimplicitVkVideoEncodeUsageInfoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)videoUsageHints must be a valid combination of VkVideoEncodeUsageFlagBitsKHR values
VUID-VkVideoEndCodingInfoKHR-flags-zerobitmaskYNoneimplicitVkVideoEndCodingInfoKHR(VK_KHR_video_queue)flags must be 0
VUID-VkVideoEndCodingInfoKHR-pNext-pNextYNoneimplicitVkVideoEndCodingInfoKHR(VK_KHR_video_queue)pNext must be NULL
VUID-VkVideoEndCodingInfoKHR-sType-sTypeYNoneimplicitVkVideoEndCodingInfoKHR(VK_KHR_video_queue)sType must be VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR
VUID-VkVideoFormatPropertiesKHR-pNext-pNextYNoneimplicitVkVideoFormatPropertiesKHR(VK_KHR_video_queue)pNext must be NULL
VUID-VkVideoFormatPropertiesKHR-sType-sTypeYNoneimplicitVkVideoFormatPropertiesKHR(VK_KHR_video_queue)sType must be VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR
VUID-VkVideoPictureResourceInfoKHR-imageViewBinding-parameterYNoneimplicitVkVideoPictureResourceInfoKHR(VK_KHR_video_queue)imageViewBinding must be a valid VkImageView handle
VUID-VkVideoPictureResourceInfoKHR-pNext-pNextYNoneimplicitVkVideoPictureResourceInfoKHR(VK_KHR_video_queue)pNext must be NULL
VUID-VkVideoPictureResourceInfoKHR-sType-sTypeYNoneimplicitVkVideoPictureResourceInfoKHR(VK_KHR_video_queue)sType must be VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR
VUID-VkVideoProfileInfoKHR-chromaBitDepth-parameterYNoneimplicitVkVideoProfileInfoKHR(VK_KHR_video_queue)chromaBitDepth must be a valid combination of VkVideoComponentBitDepthFlagBitsKHR values
VUID-VkVideoProfileInfoKHR-chromaSubsampling-07013NNoneexplicitVkVideoProfileInfoKHR(VK_KHR_video_queue)chromaSubsampling must have a single bit set
VUID-VkVideoProfileInfoKHR-chromaSubsampling-07015NNoneexplicitVkVideoProfileInfoKHR(VK_KHR_video_queue)If chromaSubsampling is not VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR, then chromaBitDepth must have a single bit set
VUID-VkVideoProfileInfoKHR-chromaSubsampling-parameterYNoneimplicitVkVideoProfileInfoKHR(VK_KHR_video_queue)chromaSubsampling must be a valid combination of VkVideoChromaSubsamplingFlagBitsKHR values
VUID-VkVideoProfileInfoKHR-chromaSubsampling-requiredbitmaskYNoneimplicitVkVideoProfileInfoKHR(VK_KHR_video_queue)chromaSubsampling must not be 0
VUID-VkVideoProfileInfoKHR-lumaBitDepth-07014NNoneexplicitVkVideoProfileInfoKHR(VK_KHR_video_queue)lumaBitDepth must have a single bit set
VUID-VkVideoProfileInfoKHR-lumaBitDepth-parameterYNoneimplicitVkVideoProfileInfoKHR(VK_KHR_video_queue)lumaBitDepth must be a valid combination of VkVideoComponentBitDepthFlagBitsKHR values
VUID-VkVideoProfileInfoKHR-lumaBitDepth-requiredbitmaskYNoneimplicitVkVideoProfileInfoKHR(VK_KHR_video_queue)lumaBitDepth must not be 0
VUID-VkVideoProfileInfoKHR-sType-sTypeYNoneimplicitVkVideoProfileInfoKHR(VK_KHR_video_queue)sType must be VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR
VUID-VkVideoProfileInfoKHR-videoCodecOperation-parameterYNoneimplicitVkVideoProfileInfoKHR(VK_KHR_video_queue)videoCodecOperation must be a valid VkVideoCodecOperationFlagBitsKHR value
VUID-VkVideoProfileListInfoKHR-pProfiles-06813NNoneexplicitVkVideoProfileListInfoKHR(VK_KHR_video_queue)If the pProfiles list contains more than one VkVideoProfileInfoKHR entry, then it must not contain more than one entry whose videoCodecOperation member specifies a decode operation
VUID-VkVideoProfileListInfoKHR-pProfiles-parameterYNoneimplicitVkVideoProfileListInfoKHR(VK_KHR_video_queue)If profileCount is not 0, pProfiles must be a valid pointer to an array of profileCount valid VkVideoProfileInfoKHR structures
VUID-VkVideoProfileListInfoKHR-sType-sTypeYNoneimplicitVkVideoProfileListInfoKHR(VK_KHR_video_queue)sType must be VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR
VUID-VkVideoReferenceSlotInfoKHR-pNext-pNextYNoneimplicitVkVideoReferenceSlotInfoKHR(VK_KHR_video_queue)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoDecodeH264DpbSlotInfoEXT or VkVideoDecodeH265DpbSlotInfoEXT
VUID-VkVideoReferenceSlotInfoKHR-pPictureResource-parameterYNoneimplicitVkVideoReferenceSlotInfoKHR(VK_KHR_video_queue)If pPictureResource is not NULL, pPictureResource must be a valid pointer to a valid VkVideoPictureResourceInfoKHR structure
VUID-VkVideoReferenceSlotInfoKHR-sType-sTypeYNoneimplicitVkVideoReferenceSlotInfoKHR(VK_KHR_video_queue)sType must be VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR
VUID-VkVideoReferenceSlotInfoKHR-sType-uniqueYNoneimplicitVkVideoReferenceSlotInfoKHR(VK_KHR_video_queue)The sType value of each struct in the pNext chain must be unique
VUID-VkVideoSessionCreateInfoKHR-flags-parameterYNoneimplicitVkVideoSessionCreateInfoKHR(VK_KHR_video_queue)flags must be a valid combination of VkVideoSessionCreateFlagBitsKHR values
VUID-VkVideoSessionCreateInfoKHR-maxActiveReferencePictures-04848NNoneexplicitVkVideoSessionCreateInfoKHR(VK_KHR_video_queue)If Reference Pictures are required for use with the created video session, the maxActiveReferencePictures must be set to a value bigger than 0
VUID-VkVideoSessionCreateInfoKHR-maxActiveReferencePictures-04849NNoneexplicitVkVideoSessionCreateInfoKHR(VK_KHR_video_queue)maxActiveReferencePictures cannot exceed the implementation reported VkVideoCapabilitiesKHR::maxActiveReferencePictures
VUID-VkVideoSessionCreateInfoKHR-maxActiveReferencePictures-04850NNoneexplicitVkVideoSessionCreateInfoKHR(VK_KHR_video_queue)maxActiveReferencePictures cannot exceed the maxDpbSlots
VUID-VkVideoSessionCreateInfoKHR-maxCodedExtent-04851NNoneexplicitVkVideoSessionCreateInfoKHR(VK_KHR_video_queue)maxCodedExtent cannot be smaller than VkVideoCapabilitiesKHR::minExtent and bigger than VkVideoCapabilitiesKHR::maxExtent
VUID-VkVideoSessionCreateInfoKHR-maxDpbSlots-04846NNoneexplicitVkVideoSessionCreateInfoKHR(VK_KHR_video_queue)If Reference Pictures are required for use with the created video session, the maxDpbSlots must be set to a value bigger than 0
VUID-VkVideoSessionCreateInfoKHR-maxDpbSlots-04847NNoneexplicitVkVideoSessionCreateInfoKHR(VK_KHR_video_queue)maxDpbSlots cannot exceed the implementation reported VkVideoCapabilitiesKHR::maxDpbSlots
VUID-VkVideoSessionCreateInfoKHR-pNext-pNextYNoneimplicitVkVideoSessionCreateInfoKHR(VK_KHR_video_queue)pNext must be NULL
VUID-VkVideoSessionCreateInfoKHR-pStdHeaderVersion-parameterYNoneimplicitVkVideoSessionCreateInfoKHR(VK_KHR_video_queue)pStdHeaderVersion must be a valid pointer to a valid VkExtensionProperties structure
VUID-VkVideoSessionCreateInfoKHR-pVideoProfile-04845NNoneexplicitVkVideoSessionCreateInfoKHR(VK_KHR_video_queue)pVideoProfile must be a pointer to a valid VkVideoProfileInfoKHR structure whose pNext chain must include a valid codec-specific profile structure
VUID-VkVideoSessionCreateInfoKHR-pVideoProfile-parameterYNoneimplicitVkVideoSessionCreateInfoKHR(VK_KHR_video_queue)pVideoProfile must be a valid pointer to a valid VkVideoProfileInfoKHR structure
VUID-VkVideoSessionCreateInfoKHR-pictureFormat-04853NNoneexplicitVkVideoSessionCreateInfoKHR(VK_KHR_video_queue)If the videoCodecOperation member of pVideoProfile specifies a decode operation then pictureFormat must be one of the supported decode output formats as reported by vkGetPhysicalDeviceVideoFormatPropertiesKHR in the format member of VkVideoFormatPropertiesKHR when called with the imageUsage member of its pVideoFormatInfo parameter containing VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, and with a VkVideoProfileListInfoKHR structure chained to its pVideoFormatInfo parameter whose pProfiles member contains an entry matching pVideoProfile
VUID-VkVideoSessionCreateInfoKHR-pictureFormat-04854NNoneexplicitVkVideoSessionCreateInfoKHR(VK_KHR_video_queue)If the videoCodecOperation member of pVideoProfile specifies an encode operation then pictureFormat must be one of the supported encode input formats as reported by vkGetPhysicalDeviceVideoFormatPropertiesKHR in the format member of VkVideoFormatPropertiesKHR when called with the imageUsage member of its pVideoFormatInfo parameter containing VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR, and with a VkVideoProfileListInfoKHR structure chained to its pVideoFormatInfo parameter whose pProfiles member contains an entry matching pVideoProfile
VUID-VkVideoSessionCreateInfoKHR-pictureFormat-parameterYNoneimplicitVkVideoSessionCreateInfoKHR(VK_KHR_video_queue)pictureFormat must be a valid VkFormat value
VUID-VkVideoSessionCreateInfoKHR-referencePictureFormat-parameterYNoneimplicitVkVideoSessionCreateInfoKHR(VK_KHR_video_queue)referencePictureFormat must be a valid VkFormat value
VUID-VkVideoSessionCreateInfoKHR-referencePicturesFormat-04852NNoneexplicitVkVideoSessionCreateInfoKHR(VK_KHR_video_queue)If the videoCodecOperation member of pVideoProfile specifies a decode operation then referencePicturesFormat must be one of the supported decode DPB formats as reported by vkGetPhysicalDeviceVideoFormatPropertiesKHR in the format member of VkVideoFormatPropertiesKHR when called with the imageUsage member of its pVideoFormatInfo parameter containing VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR, and with a VkVideoProfileListInfoKHR structure chained to its pVideoFormatInfo parameter whose pProfiles member contains an entry matching pVideoProfile
VUID-VkVideoSessionCreateInfoKHR-sType-sTypeYNoneimplicitVkVideoSessionCreateInfoKHR(VK_KHR_video_queue)sType must be VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR
VUID-VkVideoSessionCreateInfoKHR-videoCodecOperation-06814NNoneexplicitVkVideoSessionCreateInfoKHR(VK_KHR_video_queue)If the videoCodecOperation member of pVideoProfile specifies an encode operation then referencePicturesFormat must be one of the supported encode DPB formats as reported by vkGetPhysicalDeviceVideoFormatPropertiesKHR in the format member of VkVideoFormatPropertiesKHR when called with the imageUsage member of its pVideoFormatInfo parameter containing VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR, and with a VkVideoProfileListInfoKHR structure chained to its pVideoFormatInfo parameter whose pProfiles member contains an entry matching pVideoProfile
VUID-VkVideoSessionMemoryRequirementsKHR-pNext-pNextYNoneimplicitVkVideoSessionMemoryRequirementsKHR(VK_KHR_video_queue)pNext must be NULL
VUID-VkVideoSessionMemoryRequirementsKHR-sType-sTypeYNoneimplicitVkVideoSessionMemoryRequirementsKHR(VK_KHR_video_queue)sType must be VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR
VUID-VkVideoSessionParametersCreateInfoKHR-commonparentYNoneimplicitVkVideoSessionParametersCreateInfoKHR(VK_KHR_video_queue)Both 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-zerobitmaskYNoneimplicitVkVideoSessionParametersCreateInfoKHR(VK_KHR_video_queue)flags must be 0
VUID-VkVideoSessionParametersCreateInfoKHR-pNext-pNextYNoneimplicitVkVideoSessionParametersCreateInfoKHR(VK_KHR_video_queue)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoDecodeH264SessionParametersCreateInfoEXT, VkVideoDecodeH265SessionParametersCreateInfoEXT, VkVideoEncodeH264SessionParametersCreateInfoEXT, or VkVideoEncodeH265SessionParametersCreateInfoEXT
VUID-VkVideoSessionParametersCreateInfoKHR-sType-sTypeYNoneimplicitVkVideoSessionParametersCreateInfoKHR(VK_KHR_video_queue)sType must be VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR
VUID-VkVideoSessionParametersCreateInfoKHR-sType-uniqueYNoneimplicitVkVideoSessionParametersCreateInfoKHR(VK_KHR_video_queue)The sType value of each struct in the pNext chain must be unique
VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-parameterYNoneimplicitVkVideoSessionParametersCreateInfoKHR(VK_KHR_video_queue)videoSession must be a valid VkVideoSessionKHR handle
VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-04855NNoneexplicitVkVideoSessionParametersCreateInfoKHR(VK_KHR_video_queue)If videoSessionParametersTemplate represents a valid handle, it must have been created against videoSession
VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-parameterYNoneimplicitVkVideoSessionParametersCreateInfoKHR(VK_KHR_video_queue)If videoSessionParametersTemplate is not VK_NULL_HANDLE, videoSessionParametersTemplate must be a valid VkVideoSessionParametersKHR handle
VUID-VkVideoSessionParametersCreateInfoKHR-videoSessionParametersTemplate-parentYNoneimplicitVkVideoSessionParametersCreateInfoKHR(VK_KHR_video_queue)If videoSessionParametersTemplate is a valid handle, it must have been created, allocated, or retrieved from videoSession
VUID-VkVideoSessionParametersUpdateInfoKHR-pNext-pNextYNoneimplicitVkVideoSessionParametersUpdateInfoKHR(VK_KHR_video_queue)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkVideoDecodeH264SessionParametersAddInfoEXT, VkVideoDecodeH265SessionParametersAddInfoEXT, VkVideoEncodeH264SessionParametersAddInfoEXT, or VkVideoEncodeH265SessionParametersAddInfoEXT
VUID-VkVideoSessionParametersUpdateInfoKHR-sType-sTypeYNoneimplicitVkVideoSessionParametersUpdateInfoKHR(VK_KHR_video_queue)sType must be VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR
VUID-VkVideoSessionParametersUpdateInfoKHR-sType-uniqueYNoneimplicitVkVideoSessionParametersUpdateInfoKHR(VK_KHR_video_queue)The sType value of each struct in the pNext chain must be unique
VUID-VkViewport-height-01772YSetDynViewportParamTestsexplicitVkViewport!(VK_VERSION_1_1,VK_KHR_maintenance1,VK_AMD_negative_viewport_height)height must be greater than 0.0
VUID-VkViewport-height-01773YSetDynViewportParamTests, ExportMetalObjectsexplicitVkViewportcoreThe absolute value of height must be less than or equal to VkPhysicalDeviceLimits::maxViewportDimensions[1]
VUID-VkViewport-maxDepth-01235YSetDynViewportParamTestsexplicitVkViewport(VK_EXT_depth_range_unrestricted)Unless VK_EXT_depth_range_unrestricted extension is enabled maxDepth must be between 0.0 and 1.0, inclusive
VUID-VkViewport-maxDepth-02541YNoneexplicitVkViewport!(VK_EXT_depth_range_unrestricted)maxDepth must be between 0.0 and 1.0, inclusive
VUID-VkViewport-minDepth-01234YSetDynViewportParamTestsexplicitVkViewport(VK_EXT_depth_range_unrestricted)Unless VK_EXT_depth_range_unrestricted extension is enabled minDepth must be between 0.0 and 1.0, inclusive
VUID-VkViewport-minDepth-02540YNoneexplicitVkViewport!(VK_EXT_depth_range_unrestricted)minDepth must be between 0.0 and 1.0, inclusive
VUID-VkViewport-width-01770YSetDynViewportParamTestsexplicitVkViewportcorewidth must be greater than 0.0
VUID-VkViewport-width-01771YSetDynViewportParamTestsexplicitVkViewportcorewidth must be less than or equal to VkPhysicalDeviceLimits::maxViewportDimensions[0]
VUID-VkViewport-x-01232YSetDynViewportParamTestsexplicitVkViewportcore(x + width) must be less than or equal to viewportBoundsRange[1]
VUID-VkViewport-x-01774YSetDynViewportParamTestsexplicitVkViewportcorex must be greater than or equal to viewportBoundsRange[0]
VUID-VkViewport-y-01233YSetDynViewportParamTests, ExportMetalObjectsexplicitVkViewportcore(y + height) must be less than or equal to viewportBoundsRange[1]
VUID-VkViewport-y-01775YSetDynViewportParamTests, ExportMetalObjectsexplicitVkViewportcorey must be greater than or equal to viewportBoundsRange[0]
VUID-VkViewport-y-01776YExportMetalObjectsexplicitVkViewport(VK_VERSION_1_1,VK_KHR_maintenance1,VK_AMD_negative_viewport_height)y must be less than or equal to viewportBoundsRange[1]
VUID-VkViewport-y-01777YExportMetalObjectsexplicitVkViewport(VK_VERSION_1_1,VK_KHR_maintenance1,VK_AMD_negative_viewport_height)(y + height) must be greater than or equal to viewportBoundsRange[0]
VUID-VkViewportSwizzleNV-w-parameterYViewportSwizzleNVimplicitVkViewportSwizzleNV(VK_NV_viewport_swizzle)w must be a valid VkViewportCoordinateSwizzleNV value
VUID-VkViewportSwizzleNV-x-parameterYViewportSwizzleNVimplicitVkViewportSwizzleNV(VK_NV_viewport_swizzle)x must be a valid VkViewportCoordinateSwizzleNV value
VUID-VkViewportSwizzleNV-y-parameterYViewportSwizzleNVimplicitVkViewportSwizzleNV(VK_NV_viewport_swizzle)y must be a valid VkViewportCoordinateSwizzleNV value
VUID-VkViewportSwizzleNV-z-parameterYViewportSwizzleNVimplicitVkViewportSwizzleNV(VK_NV_viewport_swizzle)z must be a valid VkViewportCoordinateSwizzleNV value
VUID-VkWaylandSurfaceCreateInfoKHR-display-01304NNoneexplicitVkWaylandSurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_wayland_surface)display must point to a valid Wayland wl_display
VUID-VkWaylandSurfaceCreateInfoKHR-flags-zerobitmaskYNoneimplicitVkWaylandSurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_wayland_surface)flags must be 0
VUID-VkWaylandSurfaceCreateInfoKHR-pNext-pNextYNoneimplicitVkWaylandSurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_wayland_surface)pNext must be NULL
VUID-VkWaylandSurfaceCreateInfoKHR-sType-sTypeYNoneimplicitVkWaylandSurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_wayland_surface)sType must be VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR
VUID-VkWaylandSurfaceCreateInfoKHR-surface-01305NNoneexplicitVkWaylandSurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_wayland_surface)surface must point to a valid Wayland wl_surface
VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-commonparentNNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoKHR(VK_KHR_win32_keyed_mutex)Both 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-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoKHR(VK_KHR_win32_keyed_mutex)If acquireCount is not 0, pAcquireKeys must be a valid pointer to an array of acquireCount uint64_t values
VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireSyncs-00081NNoneexplicitVkWin32KeyedMutexAcquireReleaseInfoKHR(VK_KHR_win32_keyed_mutex)Each 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-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoKHR(VK_KHR_win32_keyed_mutex)If acquireCount is not 0, pAcquireSyncs must be a valid pointer to an array of acquireCount valid VkDeviceMemory handles
VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireTimeouts-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoKHR(VK_KHR_win32_keyed_mutex)If acquireCount is not 0, pAcquireTimeouts must be a valid pointer to an array of acquireCount uint32_t values
VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pReleaseKeys-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoKHR(VK_KHR_win32_keyed_mutex)If releaseCount is not 0, pReleaseKeys must be a valid pointer to an array of releaseCount uint64_t values
VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pReleaseSyncs-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoKHR(VK_KHR_win32_keyed_mutex)If releaseCount is not 0, pReleaseSyncs must be a valid pointer to an array of releaseCount valid VkDeviceMemory handles
VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-sType-sTypeYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoKHR(VK_KHR_win32_keyed_mutex)sType must be VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR
VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-commonparentNNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoNV(VK_NV_win32_keyed_mutex)Both 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-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoNV(VK_NV_win32_keyed_mutex)If acquireCount is not 0, pAcquireKeys must be a valid pointer to an array of acquireCount uint64_t values
VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireSyncs-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoNV(VK_NV_win32_keyed_mutex)If acquireCount is not 0, pAcquireSyncs must be a valid pointer to an array of acquireCount valid VkDeviceMemory handles
VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireTimeoutMilliseconds-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoNV(VK_NV_win32_keyed_mutex)If acquireCount is not 0, pAcquireTimeoutMilliseconds must be a valid pointer to an array of acquireCount uint32_t values
VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pReleaseKeys-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoNV(VK_NV_win32_keyed_mutex)If releaseCount is not 0, pReleaseKeys must be a valid pointer to an array of releaseCount uint64_t values
VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pReleaseSyncs-parameterYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoNV(VK_NV_win32_keyed_mutex)If releaseCount is not 0, pReleaseSyncs must be a valid pointer to an array of releaseCount valid VkDeviceMemory handles
VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-sType-sTypeYNoneimplicitVkWin32KeyedMutexAcquireReleaseInfoNV(VK_NV_win32_keyed_mutex)sType must be VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV
VUID-VkWin32SurfaceCreateInfoKHR-flags-zerobitmaskYNoneimplicitVkWin32SurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_win32_surface)flags must be 0
VUID-VkWin32SurfaceCreateInfoKHR-hinstance-01307NNoneexplicitVkWin32SurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_win32_surface)hinstance must be a valid Win32 HINSTANCE
VUID-VkWin32SurfaceCreateInfoKHR-hwnd-01308YTestCreatingWin32SurfaceexplicitVkWin32SurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_win32_surface)hwnd must be a valid Win32 HWND
VUID-VkWin32SurfaceCreateInfoKHR-pNext-pNextYNoneimplicitVkWin32SurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_win32_surface)pNext must be NULL
VUID-VkWin32SurfaceCreateInfoKHR-sType-sTypeYNoneimplicitVkWin32SurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_win32_surface)sType must be VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR
VUID-VkWriteDescriptorSet-commonparentYNoneimplicitVkWriteDescriptorSetcoreBoth of dstSet, and the elements of pTexelBufferView that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkWriteDescriptorSet-descriptorCount-00317YWriteDescriptorSetIntegrityCheckexplicitVkWriteDescriptorSetcoreAll consecutive bindings updated via a single VkWriteDescriptorSet structure, except those with a descriptorCount of zero, must have identical descriptorType and stageFlags
VUID-VkWriteDescriptorSet-descriptorCount-00318YWriteDescriptorSetIntegrityCheckexplicitVkWriteDescriptorSetcoreAll consecutive bindings updated via a single VkWriteDescriptorSet structure, except those with a descriptorCount of zero, must all either use immutable samplers or must all not use immutable samplers
VUID-VkWriteDescriptorSet-descriptorCount-arraylengthYNoneimplicitVkWriteDescriptorSetcoredescriptorCount must be greater than 0
VUID-VkWriteDescriptorSet-descriptorType-00319YUpdateDescriptorSetMismatchTypeexplicitVkWriteDescriptorSetcoredescriptorType must match the type of dstBinding within dstSet
VUID-VkWriteDescriptorSet-descriptorType-00324YWriteDescriptorSetIntegrityCheckexplicitVkWriteDescriptorSetcoreIf 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-00325YValidateUpdatingMutableDescriptors, SampleDescriptorUpdateErrorexplicitVkWriteDescriptorSetcoreIf 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-00327YPushDescriptorSetCmdBufferOffsetUnaligned, DSBufferLimitErrorsexplicitVkWriteDescriptorSetcoreIf 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-00328YDSBufferLimitErrorsexplicitVkWriteDescriptorSetcoreIf 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-00329YDescriptorBufferUpdateNoMemoryBoundexplicitVkWriteDescriptorSetcoreIf 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-00330YDSUsageBitsErrors, PushDescriptorSetCmdPushBadArgsexplicitVkWriteDescriptorSetcoreIf 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-00331YDSUsageBitsErrorsexplicitVkWriteDescriptorSetcoreIf 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-00332YDSBufferLimitErrorsexplicitVkWriteDescriptorSetcoreIf 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-00333YDSBufferLimitErrorsexplicitVkWriteDescriptorSetcoreIf 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-00334YDSUsageBitsErrorsexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, the VkBuffer that each element of pTexelBufferView was created from must have been created with VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT set
VUID-VkWriteDescriptorSet-descriptorType-00335YDSUsageBitsErrorsexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, the VkBuffer that each element of pTexelBufferView was created from must have been created with VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT set
VUID-VkWriteDescriptorSet-descriptorType-00336YWriteDescriptorSetIdentitySwizzleexplicitVkWriteDescriptorSetcoreIf 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-00337YDSUsageBitsErrors, TestColorAttachmentImageViewUsageexplicitVkWriteDescriptorSetcoreIf 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-00338YDSUsageBitsErrorsexplicitVkWriteDescriptorSetcoreIf 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-00339YDSUsageBitsErrorsexplicitVkWriteDescriptorSetcoreIf 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-01946YWriteDescriptorSetYcbcrexplicitVkWriteDescriptorSet(VK_VULKAN_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-01948YMultiplaneImageSamplerConversionMismatchexplicitVkWriteDescriptorSet(VK_VULKAN_1_1,VK_KHR_sampler_ycbcr_conversion)If 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 {YCbCr} 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-02219YInlineUniformBlockEXTexplicitVkWriteDescriptorSet(VK_VERSION_1_3,VK_EXT_inline_uniform_block)If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, dstArrayElement must be an integer multiple of 4
VUID-VkWriteDescriptorSet-descriptorType-02220YInlineUniformBlockEXTexplicitVkWriteDescriptorSet(VK_VERSION_1_3,VK_EXT_inline_uniform_block)If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, descriptorCount must be an integer multiple of 4
VUID-VkWriteDescriptorSet-descriptorType-02221YInlineUniformBlockEXTexplicitVkWriteDescriptorSet(VK_VERSION_1_3,VK_EXT_inline_uniform_block)If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, the pNext chain must include a VkWriteDescriptorSetInlineUniformBlock structure whose dataSize member equals descriptorCount
VUID-VkWriteDescriptorSet-descriptorType-02382YNoneexplicitVkWriteDescriptorSet(VK_KHR_acceleration_structure)If descriptorType is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, the pNext chain must include a VkWriteDescriptorSetAccelerationStructureKHR structure whose accelerationStructureCount member equals descriptorCount
VUID-VkWriteDescriptorSet-descriptorType-02738YMultiplaneImageSamplerConversionMismatchexplicitVkWriteDescriptorSet(VK_VULKAN_1_1,VK_KHR_sampler_ycbcr_conversion)If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and if any element of pImageInfo has a imageView member that was created with a VkSamplerYcbcrConversionInfo structure in its pNext chain, then dstSet must have been allocated with a layout that included immutable samplers for dstBinding, and the corresponding immutable sampler must have been created with an identically defined VkSamplerYcbcrConversionInfo object
VUID-VkWriteDescriptorSet-descriptorType-02752YWriteDescriptorSetIntegrityCheckexplicitVkWriteDescriptorSetcoreIf 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-02994YInvalidBufferViewObjectexplicitVkWriteDescriptorSetcoreIf 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-02995YNullDescriptorsDisabledexplicitVkWriteDescriptorSetcoreIf 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-02996YImageViewDescriptorUpdateErrorexplicitVkWriteDescriptorSetcoreIf 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-02997YNullDescriptorsDisabledexplicitVkWriteDescriptorSetcoreIf 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-03817YNoneexplicitVkWriteDescriptorSet(VK_NV_ray_tracing)If descriptorType is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, the pNext chain must include a VkWriteDescriptorSetAccelerationStructureNV structure whose accelerationStructureCount member equals descriptorCount
VUID-VkWriteDescriptorSet-descriptorType-04149YWriteDescriptorSetIntegrityCheckexplicitVkWriteDescriptorSetcoreIf 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-04150YNoneexplicitVkWriteDescriptorSetcoreIf 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-04151YNoneexplicitVkWriteDescriptorSetcoreIf 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-04152YInvalidStorageImageLayoutexplicitVkWriteDescriptorSetcoreIf 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-06450YImageViewMinLodexplicitVkWriteDescriptorSet(VK_EXT_image_view_min_lod)If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must have either been created without a VkImageViewMinLodCreateInfoEXT present in the pNext chain or with a VkImageViewMinLodCreateInfoEXT::minLod of 0.0
VUID-VkWriteDescriptorSet-descriptorType-06710YImage2DViewOf3DexplicitVkWriteDescriptorSet(VK_EXT_image_2d_view_of_3d)If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, each imageView member of each element of pImageInfo that is a 2D image view created from a 3D image must have been created from an image created with VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT set
VUID-VkWriteDescriptorSet-descriptorType-06942NNoneexplicitVkWriteDescriptorSet(VK_QCOM_image_processing)If 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-06943NNoneexplicitVkWriteDescriptorSet(VK_QCOM_image_processing)If 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-07683YInputAttachmentDescriptorUpdateErrorexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must not be VK_NULL_HANDLE
VUID-VkWriteDescriptorSet-descriptorType-07729NNoneexplicitVkWriteDescriptorSetcoreIf descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must have been created with exactly one aspect
VUID-VkWriteDescriptorSet-descriptorType-parameterYNoneimplicitVkWriteDescriptorSetcoredescriptorType must be a valid VkDescriptorType value
VUID-VkWriteDescriptorSet-dstArrayElement-00321YDescriptorIndexingSetNonIdenticalWrite, DescriptorIndexingSetLayout, DSUpdateOutOfBounds, WrongdstArrayElementexplicitVkWriteDescriptorSetcoreThe 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-00315YInvalidDSUpdateIndexexplicitVkWriteDescriptorSetcoredstBinding 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-00316YDSUpdateEmptyBindingexplicitVkWriteDescriptorSetcoredstBinding must be a binding with a non-zero descriptorCount
VUID-VkWriteDescriptorSet-dstSet-00320YUpdateDestroyDescriptorSetLayoutexplicitVkWriteDescriptorSetcoredstSet must be a valid VkDescriptorSet handle
VUID-VkWriteDescriptorSet-dstSet-04611YInvalidWriteMutableDescriptorSetexplicitVkWriteDescriptorSet(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)If the VkDescriptorSetLayoutBinding for dstSet at dstBinding is VK_DESCRIPTOR_TYPE_MUTABLE_EXT, the new active descriptor type descriptorType must exist in the corresponding pMutableDescriptorTypeLists list for dstBinding
VUID-VkWriteDescriptorSet-pNext-pNextYNoneimplicitVkWriteDescriptorSetcoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkWriteDescriptorSetAccelerationStructureKHR, VkWriteDescriptorSetAccelerationStructureNV, or VkWriteDescriptorSetInlineUniformBlock
VUID-VkWriteDescriptorSet-sType-sTypeYNoneimplicitVkWriteDescriptorSetcoresType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
VUID-VkWriteDescriptorSet-sType-uniqueYNoneimplicitVkWriteDescriptorSetcoreThe sType value of each struct in the pNext chain must be unique
VUID-VkWriteDescriptorSetAccelerationStructureKHR-accelerationStructureCount-02236YNoneexplicitVkWriteDescriptorSetAccelerationStructureKHR(VK_KHR_acceleration_structure)accelerationStructureCount must be equal to descriptorCount in the extended structure
VUID-VkWriteDescriptorSetAccelerationStructureKHR-accelerationStructureCount-arraylengthYNoneimplicitVkWriteDescriptorSetAccelerationStructureKHR(VK_KHR_acceleration_structure)accelerationStructureCount must be greater than 0
VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-03579YNoneexplicitVkWriteDescriptorSetAccelerationStructureKHR(VK_KHR_acceleration_structure)Each 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-03580YNoneexplicitVkWriteDescriptorSetAccelerationStructureKHR(VK_KHR_acceleration_structure)If the nullDescriptor feature is not enabled, each element of pAccelerationStructures must not be VK_NULL_HANDLE
VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-parameterYNoneimplicitVkWriteDescriptorSetAccelerationStructureKHR(VK_KHR_acceleration_structure)pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid or VK_NULL_HANDLE VkAccelerationStructureKHR handles
VUID-VkWriteDescriptorSetAccelerationStructureKHR-sType-sTypeYNoneimplicitVkWriteDescriptorSetAccelerationStructureKHR(VK_KHR_acceleration_structure)sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR
VUID-VkWriteDescriptorSetAccelerationStructureNV-accelerationStructureCount-03747YNoneexplicitVkWriteDescriptorSetAccelerationStructureNV(VK_NV_ray_tracing)accelerationStructureCount must be equal to descriptorCount in the extended structure
VUID-VkWriteDescriptorSetAccelerationStructureNV-accelerationStructureCount-arraylengthYNoneimplicitVkWriteDescriptorSetAccelerationStructureNV(VK_NV_ray_tracing)accelerationStructureCount must be greater than 0
VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-03748YNoneexplicitVkWriteDescriptorSetAccelerationStructureNV(VK_NV_ray_tracing)Each acceleration structure in pAccelerationStructures must have been created with VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR
VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-03749YNoneexplicitVkWriteDescriptorSetAccelerationStructureNV(VK_NV_ray_tracing)If the nullDescriptor feature is not enabled, each member of pAccelerationStructures must not be VK_NULL_HANDLE
VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-parameterYNoneimplicitVkWriteDescriptorSetAccelerationStructureNV(VK_NV_ray_tracing)pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid or VK_NULL_HANDLE VkAccelerationStructureNV handles
VUID-VkWriteDescriptorSetAccelerationStructureNV-sType-sTypeYNoneimplicitVkWriteDescriptorSetAccelerationStructureNV(VK_NV_ray_tracing)sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV
VUID-VkWriteDescriptorSetInlineUniformBlock-dataSize-02222YNoneexplicitVkWriteDescriptorSetInlineUniformBlock(VK_VERSION_1_3,VK_EXT_inline_uniform_block)dataSize must be an integer multiple of 4
VUID-VkWriteDescriptorSetInlineUniformBlock-dataSize-arraylengthYNoneimplicitVkWriteDescriptorSetInlineUniformBlock(VK_VERSION_1_3,VK_EXT_inline_uniform_block)dataSize must be greater than 0
VUID-VkWriteDescriptorSetInlineUniformBlock-pData-parameterYNoneimplicitVkWriteDescriptorSetInlineUniformBlock(VK_VERSION_1_3,VK_EXT_inline_uniform_block)pData must be a valid pointer to an array of dataSize bytes
VUID-VkWriteDescriptorSetInlineUniformBlock-sType-sTypeYNoneimplicitVkWriteDescriptorSetInlineUniformBlock(VK_VERSION_1_3,VK_EXT_inline_uniform_block)sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK
VUID-VkXcbSurfaceCreateInfoKHR-connection-01310NNoneexplicitVkXcbSurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_xcb_surface)connection must point to a valid X11 xcb_connection_t
VUID-VkXcbSurfaceCreateInfoKHR-flags-zerobitmaskYNoneimplicitVkXcbSurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_xcb_surface)flags must be 0
VUID-VkXcbSurfaceCreateInfoKHR-pNext-pNextYNoneimplicitVkXcbSurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_xcb_surface)pNext must be NULL
VUID-VkXcbSurfaceCreateInfoKHR-sType-sTypeYNoneimplicitVkXcbSurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_xcb_surface)sType must be VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR
VUID-VkXcbSurfaceCreateInfoKHR-window-01311NNoneexplicitVkXcbSurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_xcb_surface)window must be a valid X11 xcb_window_t
VUID-VkXlibSurfaceCreateInfoKHR-dpy-01313NNoneexplicitVkXlibSurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_xlib_surface)dpy must point to a valid Xlib Display
VUID-VkXlibSurfaceCreateInfoKHR-flags-zerobitmaskYNoneimplicitVkXlibSurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_xlib_surface)flags must be 0
VUID-VkXlibSurfaceCreateInfoKHR-pNext-pNextYNoneimplicitVkXlibSurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_xlib_surface)pNext must be NULL
VUID-VkXlibSurfaceCreateInfoKHR-sType-sTypeYNoneimplicitVkXlibSurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_xlib_surface)sType must be VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR
VUID-VkXlibSurfaceCreateInfoKHR-window-01314NNoneexplicitVkXlibSurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_xlib_surface)window must be a valid Xlib Window
VUID-WarpIDARM-WarpIDARM-07603NNoneexplicitWarpIDARM(VK_ARM_shader_core_builtins)The variable decorated with WarpIDARM must be declared using the Input {StorageClass}
VUID-WarpIDARM-WarpIDARM-07604NNoneexplicitWarpIDARM(VK_ARM_shader_core_builtins)The variable decorated with WarpIDARM must be declared as a scalar 32-bit integer value
VUID-WarpIDNV-WarpIDNV-04420NNoneexplicitWarpIDNV(VK_NV_shader_sm_builtins)The variable decorated with WarpIDNV must be declared using the Input {StorageClass}
VUID-WarpIDNV-WarpIDNV-04421NNoneexplicitWarpIDNV(VK_NV_shader_sm_builtins)The variable decorated with WarpIDNV must be declared as a scalar 32-bit integer value
VUID-WarpMaxIDARM-WarpMaxIDARM-07601NNoneexplicitWarpMaxIDARM(VK_ARM_shader_core_builtins)The variable decorated with WarpMaxIDARM must be declared using the Input {StorageClass}
VUID-WarpMaxIDARM-WarpMaxIDARM-07602NNoneexplicitWarpMaxIDARM(VK_ARM_shader_core_builtins)The variable decorated with WarpMaxIDARM must be declared as a scalar 32-bit integer value
VUID-WarpsPerSMNV-WarpsPerSMNV-04418NNoneexplicitWarpsPerSMNV(VK_NV_shader_sm_builtins)The variable decorated with WarpsPerSMNV must be declared using the Input {StorageClass}
VUID-WarpsPerSMNV-WarpsPerSMNV-04419NNoneexplicitWarpsPerSMNV(VK_NV_shader_sm_builtins)The variable decorated with WarpsPerSMNV must be declared as a scalar 32-bit integer value
VUID-WorkgroupId-WorkgroupId-04422NNoneexplicitWorkgroupIdcoreThe WorkgroupId decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV {ExecutionModel}
VUID-WorkgroupId-WorkgroupId-04423NNoneexplicitWorkgroupIdcoreThe variable decorated with WorkgroupId must be declared using the Input {StorageClass}
VUID-WorkgroupId-WorkgroupId-04424NNoneexplicitWorkgroupIdcoreThe variable decorated with WorkgroupId must be declared as a three-component vector of 32-bit integer values
VUID-WorkgroupSize-WorkgroupSize-04425NNoneexplicitWorkgroupSizecoreThe WorkgroupSize decoration must be used only within the GLCompute, MeshEXT, TaskEXT, MeshNV, or TaskNV {ExecutionModel}
VUID-WorkgroupSize-WorkgroupSize-04426NNoneexplicitWorkgroupSizecoreThe variable decorated with WorkgroupSize must be a specialization constant or a constant
VUID-WorkgroupSize-WorkgroupSize-04427YNoneexplicitWorkgroupSizecoreThe variable decorated with WorkgroupSize must be declared as a three-component vector of 32-bit integer values
VUID-WorldRayDirectionKHR-WorldRayDirectionKHR-04428NNoneexplicitWorldRayDirectionKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The WorldRayDirectionKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR {ExecutionModel}
VUID-WorldRayDirectionKHR-WorldRayDirectionKHR-04429NNoneexplicitWorldRayDirectionKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with WorldRayDirectionKHR must be declared using the Input {StorageClass}
VUID-WorldRayDirectionKHR-WorldRayDirectionKHR-04430NNoneexplicitWorldRayDirectionKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with WorldRayDirectionKHR must be declared as a three-component vector of 32-bit floating-point values
VUID-WorldRayOriginKHR-WorldRayOriginKHR-04431NNoneexplicitWorldRayOriginKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The WorldRayOriginKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR {ExecutionModel}
VUID-WorldRayOriginKHR-WorldRayOriginKHR-04432NNoneexplicitWorldRayOriginKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with WorldRayOriginKHR must be declared using the Input {StorageClass}
VUID-WorldRayOriginKHR-WorldRayOriginKHR-04433NNoneexplicitWorldRayOriginKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with WorldRayOriginKHR must be declared as a three-component vector of 32-bit floating-point values
VUID-WorldToObjectKHR-WorldToObjectKHR-04434NNoneexplicitWorldToObjectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The WorldToObjectKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel}
VUID-WorldToObjectKHR-WorldToObjectKHR-04435NNoneexplicitWorldToObjectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with WorldToObjectKHR must be declared using the Input {StorageClass}
VUID-WorldToObjectKHR-WorldToObjectKHR-04436NNoneexplicitWorldToObjectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The 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-parameterYNoneimplicitvkAcquireDrmDisplayEXT(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_drm_display)display must be a valid VkDisplayKHR handle
VUID-vkAcquireDrmDisplayEXT-display-parentNNoneimplicitvkAcquireDrmDisplayEXT(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_drm_display)display must have been created, allocated, or retrieved from physicalDevice
VUID-vkAcquireDrmDisplayEXT-physicalDevice-parameterYNoneimplicitvkAcquireDrmDisplayEXT(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_drm_display)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkAcquireFullScreenExclusiveModeEXT-device-parameterYNoneimplicitvkAcquireFullScreenExclusiveModeEXT(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)device must be a valid VkDevice handle
VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02674YTestvkAcquireFullScreenExclusiveModeEXTexplicitvkAcquireFullScreenExclusiveModeEXT(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)swapchain must not be in the retired state
VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02675YTestvkAcquireFullScreenExclusiveModeEXTexplicitvkAcquireFullScreenExclusiveModeEXT(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)swapchain must be a swapchain created with a VkSurfaceFullScreenExclusiveInfoEXT structure, with fullScreenExclusive set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02676YTestvkAcquireFullScreenExclusiveModeEXTexplicitvkAcquireFullScreenExclusiveModeEXT(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)swapchain must not currently have exclusive full-screen access
VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-parameterYNoneimplicitvkAcquireFullScreenExclusiveModeEXT(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)swapchain must be a valid VkSwapchainKHR handle
VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-parentNNoneimplicitvkAcquireFullScreenExclusiveModeEXT(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)swapchain must have been created, allocated, or retrieved from device
VUID-vkAcquireNextImage2KHR-device-parameterYNoneimplicitvkAcquireNextImage2KHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)device must be a valid VkDevice handle
VUID-vkAcquireNextImage2KHR-pAcquireInfo-parameterYNoneimplicitvkAcquireNextImage2KHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)pAcquireInfo must be a valid pointer to a valid VkAcquireNextImageInfoKHR structure
VUID-vkAcquireNextImage2KHR-pImageIndex-parameterYNoneimplicitvkAcquireNextImage2KHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)pImageIndex must be a valid pointer to a uint32_t value
VUID-vkAcquireNextImage2KHR-swapchain-01803YSwapchainAcquireTooManyImages2KHRexplicitvkAcquireNextImage2KHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If the number of currently acquired images is greater than the difference between the number of images in the swapchain member of pAcquireInfo and the value of VkSurfaceCapabilitiesKHR::minImageCount as returned by a call to vkGetPhysicalDeviceSurfaceCapabilities2KHR with the surface used to create swapchain, the timeout member of pAcquireInfo must not be UINT64_MAX
VUID-vkAcquireNextImageKHR-device-parameterYNoneimplicitvkAcquireNextImageKHR(VK_KHR_surface)+(VK_KHR_swapchain)device must be a valid VkDevice handle
VUID-vkAcquireNextImageKHR-fence-01287YNoneexplicitvkAcquireNextImageKHR(VK_KHR_surface)+(VK_KHR_swapchain)If fence is not VK_NULL_HANDLE it must be unsignaled and must not be associated with any other queue command that has not yet completed execution on that queue
VUID-vkAcquireNextImageKHR-fence-parameterYNoneimplicitvkAcquireNextImageKHR(VK_KHR_surface)+(VK_KHR_swapchain)If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle
VUID-vkAcquireNextImageKHR-fence-parentYNoneimplicitvkAcquireNextImageKHR(VK_KHR_surface)+(VK_KHR_swapchain)If fence is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkAcquireNextImageKHR-pImageIndex-parameterYNoneimplicitvkAcquireNextImageKHR(VK_KHR_surface)+(VK_KHR_swapchain)pImageIndex must be a valid pointer to a uint32_t value
VUID-vkAcquireNextImageKHR-semaphore-01286YSwapchainAcquireImageWithSignaledSemaphoreexplicitvkAcquireNextImageKHR(VK_KHR_surface)+(VK_KHR_swapchain)If semaphore is not VK_NULL_HANDLE it must be unsignaled
VUID-vkAcquireNextImageKHR-semaphore-01779NNoneexplicitvkAcquireNextImageKHR(VK_KHR_surface)+(VK_KHR_swapchain)If semaphore is not VK_NULL_HANDLE it must not have any uncompleted signal or wait operations pending
VUID-vkAcquireNextImageKHR-semaphore-01780YSwapchainAcquireImageNoSyncexplicitvkAcquireNextImageKHR(VK_KHR_surface)+(VK_KHR_swapchain)semaphore and fence must not both be equal to VK_NULL_HANDLE
VUID-vkAcquireNextImageKHR-semaphore-03265YSwapchainAcquireImageNoBinarySemaphoreexplicitvkAcquireNextImageKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)semaphore must have a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY
VUID-vkAcquireNextImageKHR-semaphore-parameterYNoneimplicitvkAcquireNextImageKHR(VK_KHR_surface)+(VK_KHR_swapchain)If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle
VUID-vkAcquireNextImageKHR-semaphore-parentYNoneimplicitvkAcquireNextImageKHR(VK_KHR_surface)+(VK_KHR_swapchain)If semaphore is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkAcquireNextImageKHR-swapchain-01285YSwapchainAcquireImageRetiredexplicitvkAcquireNextImageKHR(VK_KHR_surface)+(VK_KHR_swapchain)swapchain must not be in the retired state
VUID-vkAcquireNextImageKHR-swapchain-01802YSwapchainAcquireTooManyImagesexplicitvkAcquireNextImageKHR(VK_KHR_surface)+(VK_KHR_swapchain)If the number of currently acquired images is greater than the difference between the number of images in swapchain and the value of VkSurfaceCapabilitiesKHR::minImageCount as returned by a call to vkGetPhysicalDeviceSurfaceCapabilities2KHR with the surface used to create swapchain, timeout must not be UINT64_MAX
VUID-vkAcquireNextImageKHR-swapchain-parameterYNoneimplicitvkAcquireNextImageKHR(VK_KHR_surface)+(VK_KHR_swapchain)swapchain must be a valid VkSwapchainKHR handle
VUID-vkAcquireNextImageKHR-swapchain-parentNNoneimplicitvkAcquireNextImageKHR(VK_KHR_surface)+(VK_KHR_swapchain)swapchain must have been created, allocated, or retrieved from device
VUID-vkAcquirePerformanceConfigurationINTEL-device-parameterYNoneimplicitvkAcquirePerformanceConfigurationINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)device must be a valid VkDevice handle
VUID-vkAcquirePerformanceConfigurationINTEL-pAcquireInfo-parameterYNoneimplicitvkAcquirePerformanceConfigurationINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)pAcquireInfo must be a valid pointer to a valid VkPerformanceConfigurationAcquireInfoINTEL structure
VUID-vkAcquirePerformanceConfigurationINTEL-pConfiguration-parameterYNoneimplicitvkAcquirePerformanceConfigurationINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)pConfiguration must be a valid pointer to a VkPerformanceConfigurationINTEL handle
VUID-vkAcquireProfilingLockKHR-device-parameterYNoneimplicitvkAcquireProfilingLockKHR(VK_KHR_performance_query)device must be a valid VkDevice handle
VUID-vkAcquireProfilingLockKHR-pInfo-parameterYNoneimplicitvkAcquireProfilingLockKHR(VK_KHR_performance_query)pInfo must be a valid pointer to a valid VkAcquireProfilingLockInfoKHR structure
VUID-vkAcquireWinrtDisplayNV-display-parameterYNoneimplicitvkAcquireWinrtDisplayNV(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_NV_acquire_winrt_display)display must be a valid VkDisplayKHR handle
VUID-vkAcquireWinrtDisplayNV-display-parentNNoneimplicitvkAcquireWinrtDisplayNV(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_NV_acquire_winrt_display)display must have been created, allocated, or retrieved from physicalDevice
VUID-vkAcquireWinrtDisplayNV-physicalDevice-parameterYNoneimplicitvkAcquireWinrtDisplayNV(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_NV_acquire_winrt_display)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkAcquireXlibDisplayEXT-display-parameterYNoneimplicitvkAcquireXlibDisplayEXT(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_xlib_display)display must be a valid VkDisplayKHR handle
VUID-vkAcquireXlibDisplayEXT-display-parentNNoneimplicitvkAcquireXlibDisplayEXT(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_xlib_display)display must have been created, allocated, or retrieved from physicalDevice
VUID-vkAcquireXlibDisplayEXT-dpy-parameterYNoneimplicitvkAcquireXlibDisplayEXT(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_xlib_display)dpy must be a valid pointer to a Display value
VUID-vkAcquireXlibDisplayEXT-physicalDevice-parameterYNoneimplicitvkAcquireXlibDisplayEXT(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_xlib_display)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkAllocateCommandBuffers-device-parameterYNoneimplicitvkAllocateCommandBufferscoredevice must be a valid VkDevice handle
VUID-vkAllocateCommandBuffers-pAllocateInfo-parameterYNoneimplicitvkAllocateCommandBufferscorepAllocateInfo must be a valid pointer to a valid VkCommandBufferAllocateInfo structure
VUID-vkAllocateCommandBuffers-pAllocateInfo::commandBufferCount-arraylengthYValidateArrayLengthimplicitvkAllocateCommandBufferscorepAllocateInfo->commandBufferCount must be greater than 0
VUID-vkAllocateCommandBuffers-pCommandBuffers-parameterYNoneimplicitvkAllocateCommandBufferscorepCommandBuffers must be a valid pointer to an array of pAllocateInfo->commandBufferCount VkCommandBuffer handles
VUID-vkAllocateDescriptorSets-device-parameterYNoneimplicitvkAllocateDescriptorSetscoredevice must be a valid VkDevice handle
VUID-vkAllocateDescriptorSets-pAllocateInfo-parameterYNoneimplicitvkAllocateDescriptorSetscorepAllocateInfo must be a valid pointer to a valid VkDescriptorSetAllocateInfo structure
VUID-vkAllocateDescriptorSets-pAllocateInfo::descriptorSetCount-arraylengthYValidateArrayLengthimplicitvkAllocateDescriptorSetscorepAllocateInfo->descriptorSetCount must be greater than 0
VUID-vkAllocateDescriptorSets-pDescriptorSets-parameterYNoneimplicitvkAllocateDescriptorSetscorepDescriptorSets must be a valid pointer to an array of pAllocateInfo->descriptorSetCount VkDescriptorSet handles
VUID-vkAllocateMemory-device-parameterYNoneimplicitvkAllocateMemorycoredevice must be a valid VkDevice handle
VUID-vkAllocateMemory-deviceCoherentMemory-02790YDeviceCoherentMemoryDisabledAMDexplicitvkAllocateMemory(VK_AMD_device_coherent_memory)If 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-04101YNoneexplicitvkAllocateMemorycoreThere must be less than VkPhysicalDeviceLimits::maxMemoryAllocationCount device memory allocations currently allocated on the device
VUID-vkAllocateMemory-pAllocateInfo-01713YAllocationBeyondHeapSizeexplicitvkAllocateMemorycorepAllocateInfo->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-01714YInvalidMemoryTypeexplicitvkAllocateMemorycorepAllocateInfo->memoryTypeIndex must be less than VkPhysicalDeviceMemoryProperties::memoryTypeCount as returned by vkGetPhysicalDeviceMemoryProperties for the VkPhysicalDevice that device was created from
VUID-vkAllocateMemory-pAllocateInfo-parameterYNoneimplicitvkAllocateMemorycorepAllocateInfo must be a valid pointer to a valid VkMemoryAllocateInfo structure
VUID-vkAllocateMemory-pAllocator-parameterNNoneimplicitvkAllocateMemorycoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkAllocateMemory-pMemory-parameterYNoneimplicitvkAllocateMemorycorepMemory must be a valid pointer to a VkDeviceMemory handle
VUID-vkBeginCommandBuffer-commandBuffer-00049YCommandBufferResetErrorsexplicitvkBeginCommandBuffercorecommandBuffer must not be in the recording or pending state
VUID-vkBeginCommandBuffer-commandBuffer-00050YCommandBufferResetErrorsexplicitvkBeginCommandBuffercoreIf 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-00051YNoneexplicitvkBeginCommandBuffercoreIf commandBuffer is a secondary command buffer, the pInheritanceInfo member of pBeginInfo must be a valid VkCommandBufferInheritanceInfo structure
VUID-vkBeginCommandBuffer-commandBuffer-00052YNoneexplicitvkBeginCommandBuffercoreIf 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-02840YCommandBufferPrimaryFlagsexplicitvkBeginCommandBuffercoreIf commandBuffer is a primary command buffer, then pBeginInfo->flags must not set both the VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT and the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flags
VUID-vkBeginCommandBuffer-commandBuffer-parameterYNoneimplicitvkBeginCommandBuffercorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkBeginCommandBuffer-pBeginInfo-parameterYNoneimplicitvkBeginCommandBuffercorepBeginInfo must be a valid pointer to a valid VkCommandBufferBeginInfo structure
VUID-vkBindAccelerationStructureMemoryNV-bindInfoCount-arraylengthYNoneimplicitvkBindAccelerationStructureMemoryNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)bindInfoCount must be greater than 0
VUID-vkBindAccelerationStructureMemoryNV-device-parameterYNoneimplicitvkBindAccelerationStructureMemoryNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)device must be a valid VkDevice handle
VUID-vkBindAccelerationStructureMemoryNV-pBindInfos-parameterYNoneimplicitvkBindAccelerationStructureMemoryNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)pBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindAccelerationStructureMemoryInfoNV structures
VUID-vkBindBufferMemory-None-01898YInvalidProtectedMemoryexplicitvkBindBufferMemory(VK_VERSION_1_1)If 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-01899YInvalidProtectedMemoryexplicitvkBindBufferMemory(VK_VERSION_1_1)If 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-buffer-01030YBindInvalidMemoryexplicitvkBindBufferMemorycorebuffer must not have been created with any sparse memory binding flags
VUID-vkBindBufferMemory-buffer-01038NNoneexplicitvkBindBufferMemory(VK_NV_dedicated_allocation)If 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-01039NNoneexplicitvkBindBufferMemory(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)If 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-01444NNoneexplicitvkBindBufferMemory(VK_VERSION_1_1,VK_KHR_dedicated_allocation)If 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-06408NNoneexplicitvkBindBufferMemory(VK_FUCHSIA_buffer_collection)If buffer was created with VkBufferCollectionBufferCreateInfoFUCHSIA chained to VkBufferCreateInfo::pNext, memory must be allocated with a VkImportMemoryBufferCollectionFUCHSIA chained to VkMemoryAllocateInfo::pNext
VUID-vkBindBufferMemory-buffer-07459YBindInvalidMemoryexplicitvkBindBufferMemorycorebuffer must not have been bound to a memory object
VUID-vkBindBufferMemory-buffer-parameterYVertexBufferInvalidimplicitvkBindBufferMemorycorebuffer must be a valid VkBuffer handle
VUID-vkBindBufferMemory-buffer-parentYNoneimplicitvkBindBufferMemorycorebuffer must have been created, allocated, or retrieved from device
VUID-vkBindBufferMemory-bufferDeviceAddress-03339YBufferDeviceAddressKHRexplicitvkBindBufferMemory(VK_VERSION_1_2,VK_KHR_buffer_device_address)If 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-descriptorBufferCaptureReplay-08112YDescriptorBufferVariousexplicitvkBindBufferMemory(VK_EXT_descriptor_buffer)If the VkPhysicalDeviceDescriptorBufferFeaturesEXT ::descriptorBufferCaptureReplay feature is enabled and buffer was created with the VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set
VUID-vkBindBufferMemory-device-parameterYNoneimplicitvkBindBufferMemorycoredevice must be a valid VkDevice handle
VUID-vkBindBufferMemory-memory-01035YInvalidProtectedMemory, BindInvalidMemory, AndroidHardwareBufferImportBufferHandleTypeexplicitvkBindBufferMemorycorememory 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-01508YDedicatedAllocationBindingexplicitvkBindBufferMemory(VK_VERSION_1_1,VK_KHR_dedicated_allocation)If 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-02726YInvalidExportExternalBufferHandleTypeexplicitvkBindBufferMemory(VK_VERSION_1_1,VK_KHR_external_memory)If 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-02727YValidateImportMemoryHandleTypeexplicitvkBindBufferMemory(VK_VERSION_1_1,VK_KHR_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)If memory was allocated by a memory import operation, the external handle type of the imported memory must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created
VUID-vkBindBufferMemory-memory-02985YNoneexplicitvkBindBufferMemory(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)If 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-02986YAndroidHardwareBufferImportBufferHandleTypeexplicitvkBindBufferMemory(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)If 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-parameterYBindInvalidMemoryimplicitvkBindBufferMemorycorememory must be a valid VkDeviceMemory handle
VUID-vkBindBufferMemory-memory-parentYNoneimplicitvkBindBufferMemorycorememory must have been created, allocated, or retrieved from device
VUID-vkBindBufferMemory-memoryOffset-01031YBindInvalidMemoryexplicitvkBindBufferMemorycorememoryOffset must be less than the size of memory
VUID-vkBindBufferMemory-memoryOffset-01036YBindInvalidMemory, BindInvalidMemoryNoCheck, AndroidHardwareBufferInvalidBindBufferMemory, VertexBufferInvalidexplicitvkBindBufferMemorycorememoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer
VUID-vkBindBufferMemory-size-01037YDedicatedAllocationBinding, BindInvalidMemory, AndroidHardwareBufferInvalidBindBufferMemoryexplicitvkBindBufferMemorycoreThe 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-arraylengthYNoneimplicitvkBindBufferMemory2(VK_VERSION_1_1,VK_KHR_bind_memory2)bindInfoCount must be greater than 0
VUID-vkBindBufferMemory2-device-parameterYNoneimplicitvkBindBufferMemory2(VK_VERSION_1_1,VK_KHR_bind_memory2)device must be a valid VkDevice handle
VUID-vkBindBufferMemory2-pBindInfos-parameterYNoneimplicitvkBindBufferMemory2(VK_VERSION_1_1,VK_KHR_bind_memory2)pBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindBufferMemoryInfo structures
VUID-vkBindImageMemory-None-01901YInvalidProtectedMemoryexplicitvkBindImageMemory(VK_VERSION_1_1)If 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-01902YInvalidProtectedMemoryexplicitvkBindImageMemory(VK_VERSION_1_1)If 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-descriptorBufferCaptureReplay-08113YDescriptorBufferVariousexplicitvkBindImageMemory(VK_EXT_descriptor_buffer)If the VkPhysicalDeviceDescriptorBufferFeaturesEXT ::descriptorBufferCaptureReplay feature is enabled and image was created with the VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set
VUID-vkBindImageMemory-device-parameterYNoneimplicitvkBindImageMemorycoredevice must be a valid VkDevice handle
VUID-vkBindImageMemory-image-01045YBindInvalidMemoryexplicitvkBindImageMemorycoreimage must not have been created with any sparse memory binding flags
VUID-vkBindImageMemory-image-01050NNoneexplicitvkBindImageMemory(VK_NV_dedicated_allocation)If 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-01051NNoneexplicitvkBindImageMemory(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)If 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-image-01445NNoneexplicitvkBindImageMemory(VK_VERSION_1_1,VK_KHR_dedicated_allocation)If 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-01608YBindInvalidMemoryYcbcrexplicitvkBindImageMemory(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)image must not have been created with the VK_IMAGE_CREATE_DISJOINT_BIT set
VUID-vkBindImageMemory-image-06392NNoneexplicitvkBindImageMemory(VK_FUCHSIA_buffer_collection)If image was created with VkBufferCollectionImageCreateInfoFUCHSIA chained to VkImageCreateInfo::pNext, memory must be allocated with a VkImportMemoryBufferCollectionFUCHSIA chained to VkMemoryAllocateInfo::pNext
VUID-vkBindImageMemory-image-07460YBindInvalidMemory, RebindMemory_MultiObjectDebugUtilsexplicitvkBindImageMemorycoreimage must not have been bound to a memory object
VUID-vkBindImageMemory-image-parameterYBindMemoryToDestroyedObjectimplicitvkBindImageMemorycoreimage must be a valid VkImage handle
VUID-vkBindImageMemory-image-parentYNoneimplicitvkBindImageMemorycoreimage must have been created, allocated, or retrieved from device
VUID-vkBindImageMemory-memory-01047YBindInvalidMemory, AndroidHardwareBufferImportImageHandleType, InvalidProtectedMemoryexplicitvkBindImageMemorycorememory 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-01509YDedicatedAllocationBindingexplicitvkBindImageMemory(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+!(VK_NV_dedicated_allocation_image_aliasing)If 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-02628NNoneexplicitvkBindImageMemory(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_NV_dedicated_allocation_image_aliasing)If 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-02629YDedicatedAllocationImageAliasingexplicitvkBindImageMemory(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_NV_dedicated_allocation_image_aliasing)If 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-02728YInvalidExportExternalImageHandleTypeexplicitvkBindImageMemory(VK_VERSION_1_1,VK_KHR_external_memory)If 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-02729YValidateImportMemoryHandleTypeexplicitvkBindImageMemory(VK_VERSION_1_1,VK_KHR_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)If 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-vkBindImageMemory-memory-02989YNoneexplicitvkBindImageMemory(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)If 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-02990YAndroidHardwareBufferImportImageHandleTypeexplicitvkBindImageMemory(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)If 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-parameterYBindInvalidMemoryimplicitvkBindImageMemorycorememory must be a valid VkDeviceMemory handle
VUID-vkBindImageMemory-memory-parentYNoneimplicitvkBindImageMemorycorememory must have been created, allocated, or retrieved from device
VUID-vkBindImageMemory-memoryOffset-01046YBindInvalidMemoryexplicitvkBindImageMemorycorememoryOffset must be less than the size of memory
VUID-vkBindImageMemory-memoryOffset-01048YBindInvalidMemory, BindInvalidMemoryNoCheckexplicitvkBindImageMemorycorememoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with image
VUID-vkBindImageMemory-size-01049YBindInvalidMemory, DedicatedAllocationImageAliasing, AndroidHardwareBufferImportImageHandleType, DedicatedAllocationBindingexplicitvkBindImageMemorycoreThe 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-arraylengthYNoneimplicitvkBindImageMemory2(VK_VERSION_1_1,VK_KHR_bind_memory2)bindInfoCount must be greater than 0
VUID-vkBindImageMemory2-device-parameterYNoneimplicitvkBindImageMemory2(VK_VERSION_1_1,VK_KHR_bind_memory2)device must be a valid VkDevice handle
VUID-vkBindImageMemory2-pBindInfos-02858YBindInvalidMemory2BindInfos, BindInvalidMemoryYcbcrexplicitvkBindImageMemory2(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-04006YBindInvalidMemory2BindInfosexplicitvkBindImageMemory2(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)pBindInfos must not refer to the same image subresource more than once
VUID-vkBindImageMemory2-pBindInfos-parameterYNoneimplicitvkBindImageMemory2(VK_VERSION_1_1,VK_KHR_bind_memory2)pBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindImageMemoryInfo structures
VUID-vkBindOpticalFlowSessionImageNV-bindingPoint-parameterYNoneimplicitvkBindOpticalFlowSessionImageNV(VK_NV_optical_flow)bindingPoint must be a valid VkOpticalFlowSessionBindingPointNV value
VUID-vkBindOpticalFlowSessionImageNV-device-parameterYNoneimplicitvkBindOpticalFlowSessionImageNV(VK_NV_optical_flow)device must be a valid VkDevice handle
VUID-vkBindOpticalFlowSessionImageNV-layout-parameterYNoneimplicitvkBindOpticalFlowSessionImageNV(VK_NV_optical_flow)layout must be a valid VkImageLayout value
VUID-vkBindOpticalFlowSessionImageNV-session-parameterYNoneimplicitvkBindOpticalFlowSessionImageNV(VK_NV_optical_flow)session must be a valid VkOpticalFlowSessionNV handle
VUID-vkBindOpticalFlowSessionImageNV-session-parentYNoneimplicitvkBindOpticalFlowSessionImageNV(VK_NV_optical_flow)session must have been created, allocated, or retrieved from device
VUID-vkBindOpticalFlowSessionImageNV-view-parameterYNoneimplicitvkBindOpticalFlowSessionImageNV(VK_NV_optical_flow)If view is not VK_NULL_HANDLE, view must be a valid VkImageView handle
VUID-vkBindOpticalFlowSessionImageNV-view-parentYNoneimplicitvkBindOpticalFlowSessionImageNV(VK_NV_optical_flow)If view is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkBindVideoSessionMemoryKHR-bindSessionMemoryInfoCount-arraylengthYNoneimplicitvkBindVideoSessionMemoryKHR(VK_KHR_video_queue)bindSessionMemoryInfoCount must be greater than 0
VUID-vkBindVideoSessionMemoryKHR-device-parameterYNoneimplicitvkBindVideoSessionMemoryKHR(VK_KHR_video_queue)device must be a valid VkDevice handle
VUID-vkBindVideoSessionMemoryKHR-pBindSessionMemoryInfos-parameterYNoneimplicitvkBindVideoSessionMemoryKHR(VK_KHR_video_queue)pBindSessionMemoryInfos must be a valid pointer to an array of bindSessionMemoryInfoCount valid VkBindVideoSessionMemoryInfoKHR structures
VUID-vkBindVideoSessionMemoryKHR-videoSession-parameterYNoneimplicitvkBindVideoSessionMemoryKHR(VK_KHR_video_queue)videoSession must be a valid VkVideoSessionKHR handle
VUID-vkBindVideoSessionMemoryKHR-videoSession-parentYNoneimplicitvkBindVideoSessionMemoryKHR(VK_KHR_video_queue)videoSession must have been created, allocated, or retrieved from device
VUID-vkBuildAccelerationStructuresKHR-None-03407NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The 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-03581YNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled
VUID-vkBuildAccelerationStructuresKHR-deferredOperation-03677NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object
VUID-vkBuildAccelerationStructuresKHR-deferredOperation-03678NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)Any previous deferred operation that was associated with deferredOperation must be complete
VUID-vkBuildAccelerationStructuresKHR-deferredOperation-parameterYNoneimplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkBuildAccelerationStructuresKHR-deferredOperation-parentYNoneimplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkBuildAccelerationStructuresKHR-device-parameterYNoneimplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)device must be a valid VkDevice handle
VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03698YNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The 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-03701NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The 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-03702NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The 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-03703NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The 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-03706NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The 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-03800YRayTracingValidateCmdBuildAccelerationStructuresKHRexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The dstAccelerationStructure member of any element of pInfos must be a valid VkAccelerationStructureKHR handle
VUID-vkBuildAccelerationStructuresKHR-firstVertex-03770NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, if the corresponding geometry uses indices, its firstVertex member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkBuildAccelerationStructuresKHR-infoCount-arraylengthYNoneimplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)infoCount must be greater than 0
VUID-vkBuildAccelerationStructuresKHR-mode-04628NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The mode member of each element of pInfos must be a valid VkBuildAccelerationStructureModeKHR value
VUID-vkBuildAccelerationStructuresKHR-pInfos-03403YNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The 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-03663NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03664NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03667YNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03668NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03675NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For each pInfos[i], dstAccelerationStructure must have been created with a value of VkAccelerationStructureCreateInfoKHR::size greater than or equal to the memory size required by the build operation, as returned by vkGetAccelerationStructureBuildSizesKHR with pBuildInfo = pInfos[i] and with each element of the pMaxPrimitiveCounts array greater than or equal to the equivalent ppBuildRangeInfos[i][j].primitiveCount values for j in [0,pInfos[i].geometryCount)
VUID-vkBuildAccelerationStructuresKHR-pInfos-03699YNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03700YNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03722YRayTracingBuildAccelerationStructureKHR, RayTracingTestWriteAccelerationStructureMemoryexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to host-visible device memory
VUID-vkBuildAccelerationStructuresKHR-pInfos-03723YRayTracingBuildAccelerationStructureKHRexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03724NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03725NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If 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-03726NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If 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-03758YNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03759YNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03760YNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03761NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03762NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03763NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03764NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03765NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03766NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03767NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03768NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03771NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03772NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03773NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03774NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03775NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_device_group,VK_VERSION_1_1)For 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-03776NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_device_group,VK_VERSION_1_1)For 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-03777NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_device_group,VK_VERSION_1_1)For 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-03778NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03779NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-03801NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For each element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, the corresponding pname:ppBuildRangeInfos[i][j].pname:primitiveCount must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount
VUID-vkBuildAccelerationStructuresKHR-pInfos-04630NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For 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-04930NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur)For 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-parameterYNoneimplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pInfos must be a valid pointer to an array of infoCount valid VkAccelerationStructureBuildGeometryInfoKHR structures
VUID-vkBuildAccelerationStructuresKHR-ppBuildRangeInfos-03676NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)Each element of ppBuildRangeInfos[i] must be a valid pointer to an array of pInfos[i].geometryCount VkAccelerationStructureBuildRangeInfoKHR structures
VUID-vkBuildAccelerationStructuresKHR-ppBuildRangeInfos-parameterYNoneimplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)ppBuildRangeInfos must be a valid pointer to an array of infoCount VkAccelerationStructureBuildRangeInfoKHR structures
VUID-vkBuildAccelerationStructuresKHR-primitiveCount-03769NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, its primitiveCount member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkBuildAccelerationStructuresKHR-scratchData-03704NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The 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-03705NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The 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-04629NNoneexplicitvkBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If 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-parameterYNoneimplicitvkBuildMicromapsEXT(VK_EXT_opacity_micromap)If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkBuildMicromapsEXT-deferredOperation-parentYNoneimplicitvkBuildMicromapsEXT(VK_EXT_opacity_micromap)If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkBuildMicromapsEXT-device-parameterYNoneimplicitvkBuildMicromapsEXT(VK_EXT_opacity_micromap)device must be a valid VkDevice handle
VUID-vkBuildMicromapsEXT-dstMicromap-07463NNoneexplicitvkBuildMicromapsEXT(VK_EXT_opacity_micromap)The dstMicromap member of any element of pInfos must be a valid VkMicromapEXT handle
VUID-vkBuildMicromapsEXT-dstMicromap-07465NNoneexplicitvkBuildMicromapsEXT(VK_EXT_opacity_micromap)The 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-07466NNoneexplicitvkBuildMicromapsEXT(VK_EXT_opacity_micromap)The 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-arraylengthYNoneimplicitvkBuildMicromapsEXT(VK_EXT_opacity_micromap)infoCount must be greater than 0
VUID-vkBuildMicromapsEXT-micromapHostCommands-07555NNoneexplicitvkBuildMicromapsEXT(VK_EXT_opacity_micromap)The VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled
VUID-vkBuildMicromapsEXT-mode-07462NNoneexplicitvkBuildMicromapsEXT(VK_EXT_opacity_micromap)The mode member of each element of pInfos must be a valid VkBuildMicromapModeEXT value
VUID-vkBuildMicromapsEXT-pInfos-07461NNoneexplicitvkBuildMicromapsEXT(VK_EXT_opacity_micromap)For 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-07464NNoneexplicitvkBuildMicromapsEXT(VK_EXT_opacity_micromap)For each element of pInfos its type member must match the value of VkMicromapCreateInfoEXT::type when its dstMicromap was created
VUID-vkBuildMicromapsEXT-pInfos-07552NNoneexplicitvkBuildMicromapsEXT(VK_EXT_opacity_micromap)For each element of pInfos, the buffer used to create its dstMicromap member must be bound to host-visible device memory
VUID-vkBuildMicromapsEXT-pInfos-07553NNoneexplicitvkBuildMicromapsEXT(VK_EXT_opacity_micromap)For each element of pInfos, all referenced addresses of pInfos[i].data.hostAddress must be valid host memory
VUID-vkBuildMicromapsEXT-pInfos-07554NNoneexplicitvkBuildMicromapsEXT(VK_EXT_opacity_micromap)For each element of pInfos, all referenced addresses of pInfos[i].triangleArray.hostAddress must be valid host memory
VUID-vkBuildMicromapsEXT-pInfos-07556NNoneexplicitvkBuildMicromapsEXT(VK_EXT_opacity_micromap)If 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-07557NNoneexplicitvkBuildMicromapsEXT(VK_EXT_opacity_micromap)+(VK_KHR_device_group,VK_VERSION_1_1)For 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-parameterYNoneimplicitvkBuildMicromapsEXT(VK_EXT_opacity_micromap)pInfos must be a valid pointer to an array of infoCount valid VkMicromapBuildInfoEXT structures
VUID-vkBuildMicromapsEXT-scratchData-07467NNoneexplicitvkBuildMicromapsEXT(VK_EXT_opacity_micromap)The 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-01980YInvalidBeginConditionalRenderingexplicitvkCmdBeginConditionalRenderingEXT(VK_EXT_conditional_rendering)Conditional rendering must not already be active
VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginConditionalRenderingEXT(VK_EXT_conditional_rendering)The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-parameterYNoneimplicitvkCmdBeginConditionalRenderingEXT(VK_EXT_conditional_rendering)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-recordingYNoneimplicitvkCmdBeginConditionalRenderingEXT(VK_EXT_conditional_rendering)commandBuffer must be in the recording state
VUID-vkCmdBeginConditionalRenderingEXT-pConditionalRenderingBegin-parameterYNoneimplicitvkCmdBeginConditionalRenderingEXT(VK_EXT_conditional_rendering)pConditionalRenderingBegin must be a valid pointer to a valid VkConditionalRenderingBeginInfoEXT structure
VUID-vkCmdBeginConditionalRenderingEXT-videocodingNNoneimplicitvkCmdBeginConditionalRenderingEXT(VK_EXT_conditional_rendering)This command must only be called outside of a video coding scope
VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginDebugUtilsLabelEXT(VK_EXT_debug_utils)The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-parameterYNoneimplicitvkCmdBeginDebugUtilsLabelEXT(VK_EXT_debug_utils)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-recordingYNoneimplicitvkCmdBeginDebugUtilsLabelEXT(VK_EXT_debug_utils)commandBuffer must be in the recording state
VUID-vkCmdBeginDebugUtilsLabelEXT-pLabelInfo-parameterYNoneimplicitvkCmdBeginDebugUtilsLabelEXT(VK_EXT_debug_utils)pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure
VUID-vkCmdBeginDebugUtilsLabelEXT-videocodingNNoneimplicitvkCmdBeginDebugUtilsLabelEXT(VK_EXT_debug_utils)This command must only be called outside of a video coding scope
VUID-vkCmdBeginQuery-None-00807NNoneexplicitvkCmdBeginQuerycoreAll queries used by the command must be unavailable
VUID-vkCmdBeginQuery-None-02863YQueryPerformanceResetAndBeginexplicitvkCmdBeginQuery(VK_KHR_performance_query)If 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-commandBuffer-01885YInvalidUnprotectedCommandsexplicitvkCmdBeginQuery(VK_VERSION_1_1)commandBuffer must not be a protected command buffer
VUID-vkCmdBeginQuery-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginQuerycoreThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdBeginQuery-commandBuffer-parameterYNoneimplicitvkCmdBeginQuerycorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginQuery-commandBuffer-recordingYNoneimplicitvkCmdBeginQuerycorecommandBuffer must be in the recording state
VUID-vkCmdBeginQuery-commonparentYNoneimplicitvkCmdBeginQuerycoreBoth of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBeginQuery-flags-parameterYNoneimplicitvkCmdBeginQuerycoreflags must be a valid combination of VkQueryControlFlagBits values
VUID-vkCmdBeginQuery-query-00802YNoneexplicitvkCmdBeginQuerycorequery must be less than the number of queries in queryPool
VUID-vkCmdBeginQuery-query-00808YBeginQueryWithMultiviewexplicitvkCmdBeginQuery(VK_VERSION_1_1,VK_KHR_multiview)If called within a render pass instance, the sum of query and the number of bits set in the current subpass's view mask must be less than or equal to the number of queries in queryPool
VUID-vkCmdBeginQuery-queryPool-01922YUnclosedAndDuplicateQueriesexplicitvkCmdBeginQuerycorequeryPool must have been created with a queryType that differs from that of any queries that are active within commandBuffer
VUID-vkCmdBeginQuery-queryPool-03223YQueryPerformanceCreationexplicitvkCmdBeginQuery(VK_KHR_performance_query)If 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-03224YQueryPerformanceCounterCommandbufferScopeexplicitvkCmdBeginQuery(VK_KHR_performance_query)If 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-03225YQueryPerformanceCounterRenderPassScopeexplicitvkCmdBeginQuery(VK_KHR_performance_query)If 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-03226YNoneexplicitvkCmdBeginQuery(VK_KHR_performance_query)If 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-07289NNoneexplicitvkCmdBeginQuery(VK_KHR_performance_query)If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then the VkQueryPoolPerformanceCreateInfoKHR::queueFamilyIndex queryPool was created with must equal the queue family index of the VkCommandPool that commandBuffer was allocated from
VUID-vkCmdBeginQuery-queryPool-parameterYNoneimplicitvkCmdBeginQuerycorequeryPool must be a valid VkQueryPool handle
VUID-vkCmdBeginQuery-queryType-00800YQueryPreciseBitexplicitvkCmdBeginQuerycoreIf 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-00803YNoneexplicitvkCmdBeginQuerycoreIf 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-00804YPipelineStatisticsQueryexplicitvkCmdBeginQuerycoreIf 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-00805YPipelineStatisticsQueryexplicitvkCmdBeginQuerycoreIf 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-02327YNoneexplicitvkCmdBeginQuery(VK_EXT_transform_feedback)If 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-02328YBeginQueryTypeTransformFeedbackStreamexplicitvkCmdBeginQuery(VK_EXT_transform_feedback)If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT then VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackQueries must be supported
VUID-vkCmdBeginQuery-queryType-02804YBeginQueryOnTimestampPoolexplicitvkCmdBeginQuerycoreThe queryType used to create queryPool must not be VK_QUERY_TYPE_TIMESTAMP
VUID-vkCmdBeginQuery-queryType-04728YRayTracingValidateBeginQueryQueryPoolTypeexplicitvkCmdBeginQuery(VK_KHR_acceleration_structure)The 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-04729YRayTracingValidateBeginQueryQueryPoolTypeexplicitvkCmdBeginQuery(VK_NV_ray_tracing)The queryType used to create queryPool must not be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV
VUID-vkCmdBeginQuery-queryType-04862NNoneexplicitvkCmdBeginQuery(VK_KHR_video_encode_queue)If the queryType used to create queryPool was VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR the VkCommandPool that commandBuffer was allocated from must support video encode operations
VUID-vkCmdBeginQuery-queryType-06687YPrimitivesGeneratedQueryexplicitvkCmdBeginQuery(VK_EXT_primitives_generated_query)If 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-06688YPrimitivesGeneratedQueryFeatureexplicitvkCmdBeginQuery(VK_EXT_primitives_generated_query)If the queryType used to create queryPool was VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT then primitivesGeneratedQuery must be enabled
VUID-vkCmdBeginQuery-queryType-06741YNoneexplicitvkCmdBeginQuery(VK_KHR_ray_tracing_maintenance1)The 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-07070NNoneexplicitvkCmdBeginQuery(VK_EXT_mesh_shader)If 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-vkCmdBeginQueryIndexedEXT-None-00807NNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)All queries used by the command must be unavailable
VUID-vkCmdBeginQueryIndexedEXT-None-02863YNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_KHR_performance_query)If 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-commandBuffer-01885YNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_1)commandBuffer must not be a protected command buffer
VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-parameterYNoneimplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-recordingYNoneimplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)commandBuffer must be in the recording state
VUID-vkCmdBeginQueryIndexedEXT-commonparentYNoneimplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBeginQueryIndexedEXT-flags-parameterYNoneimplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)flags must be a valid combination of VkQueryControlFlagBits values
VUID-vkCmdBeginQueryIndexedEXT-query-00802YNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)query must be less than the number of queries in queryPool
VUID-vkCmdBeginQueryIndexedEXT-query-00808YNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_multiview)If called within a render pass instance, the sum of query and the number of bits set in the current subpass's view mask must be less than or equal to the number of queries in queryPool
VUID-vkCmdBeginQueryIndexedEXT-queryPool-03223YNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_KHR_performance_query)If 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-03224YNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_KHR_performance_query)If 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-03225YNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_KHR_performance_query)If 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-03226YNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_KHR_performance_query)If 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-04753YNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)If 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-07289NNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_KHR_performance_query)If 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-parameterYNoneimplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)queryPool must be a valid VkQueryPool handle
VUID-vkCmdBeginQueryIndexedEXT-queryType-00800YNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)If 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-00803YNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)If 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-00804YNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)If 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-00805YNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)If 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-02338YNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)If 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-02339YNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)If 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-02340YNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)+!(VK_EXT_primitives_generated_query)If the queryType used to create queryPool was not VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the index must be zero
VUID-vkCmdBeginQueryIndexedEXT-queryType-02341YNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT then VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackQueries must be supported
VUID-vkCmdBeginQueryIndexedEXT-queryType-02804NNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)The queryType used to create queryPool must not be VK_QUERY_TYPE_TIMESTAMP
VUID-vkCmdBeginQueryIndexedEXT-queryType-04728YRayTracingValidateBeginQueryQueryPoolTypeexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_KHR_acceleration_structure)The 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-04729YRayTracingValidateBeginQueryQueryPoolTypeexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_NV_ray_tracing)The queryType used to create queryPool must not be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV
VUID-vkCmdBeginQueryIndexedEXT-queryType-04862NNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_KHR_video_encode_queue)If the queryType used to create queryPool was VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR the VkCommandPool that commandBuffer was allocated from must support video encode operations
VUID-vkCmdBeginQueryIndexedEXT-queryType-06689YPrimitivesGeneratedQueryexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_EXT_primitives_generated_query)If 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-06690YPrimitivesGeneratedQuery, InvalidCmdEndQueryIndexedEXTPrimitiveGeneratedexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_EXT_primitives_generated_query)If 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-06691YPrimitivesGeneratedQuery, InvalidCmdEndQueryIndexedEXTPrimitiveGeneratedexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_EXT_primitives_generated_query)If 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-06692YPrimitivesGeneratedQueryexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_EXT_primitives_generated_query)If 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-06693YPrimitivesGeneratedQueryFeatureexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_EXT_primitives_generated_query)If the queryType used to create queryPool was VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT then primitivesGeneratedQuery must be enabled
VUID-vkCmdBeginQueryIndexedEXT-queryType-06741YNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_KHR_ray_tracing_maintenance1)The 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-07071NNoneexplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_EXT_mesh_shader)The queryType used to create queryPool must not be VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT
VUID-vkCmdBeginQueryIndexedEXT-videocodingNNoneimplicitvkCmdBeginQueryIndexedEXT(VK_EXT_transform_feedback)This command must only be called outside of a video coding scope
VUID-vkCmdBeginRenderPass-bufferlevelYNoneimplicitvkCmdBeginRenderPasscorecommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdBeginRenderPass-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginRenderPasscoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBeginRenderPass-commandBuffer-parameterYNoneimplicitvkCmdBeginRenderPasscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginRenderPass-commandBuffer-recordingYNoneimplicitvkCmdBeginRenderPasscorecommandBuffer must be in the recording state
VUID-vkCmdBeginRenderPass-contents-parameterYNoneimplicitvkCmdBeginRenderPasscorecontents must be a valid VkSubpassContents value
VUID-vkCmdBeginRenderPass-dstStageMask-06452YNoneexplicitvkCmdBeginRenderPasscoreThe dstStageMask members of any element of the pDependencies member of VkRenderPassCreateInfo used to create renderPass must be supported by the capabilities of the queue family identified by the queueFamilyIndex member of the VkCommandPoolCreateInfo used to create the command pool which commandBuffer was allocated from
VUID-vkCmdBeginRenderPass-framebuffer-02532NNoneexplicitvkCmdBeginRenderPasscoreFor any attachment in framebuffer that is used by renderPass and is bound to memory locations that are also bound to another attachment used by renderPass, and if at least one of those uses causes either attachment to be written to, both attachments must have had the VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT set
VUID-vkCmdBeginRenderPass-initialLayout-00895YRenderPassBeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPasscoreIf 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-00896YRenderPassBeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass!(VK_VERSION_1_1,VK_KHR_maintenance2)If 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_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-00897YRenderPassBeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPasscoreIf 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-00898YRenderPassBeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPasscoreIf 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-00899YRenderPassBeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPasscoreIf 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-00900NNoneexplicitvkCmdBeginRenderPasscoreIf 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-01758YRenderPassBeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-02842NNoneexplicitvkCmdBeginRenderPass(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-07000YRenderPassBeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass(VK_EXT_attachment_feedback_loop_layout)If 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-07001YRenderPassBeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass(VK_EXT_attachment_feedback_loop_layout)If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value the VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT usage bit
VUID-vkCmdBeginRenderPass-pRenderPassBegin-parameterYNoneimplicitvkCmdBeginRenderPasscorepRenderPassBegin must be a valid pointer to a valid VkRenderPassBeginInfo structure
VUID-vkCmdBeginRenderPass-renderpassYRenderPassBeginWithinRenderPassimplicitvkCmdBeginRenderPasscoreThis command must only be called outside of a render pass instance
VUID-vkCmdBeginRenderPass-srcStageMask-06451YNoneexplicitvkCmdBeginRenderPasscoreThe srcStageMask members of any element of the pDependencies member of VkRenderPassCreateInfo used to create renderPass must be supported by the capabilities of the queue family identified by the queueFamilyIndex member of the VkCommandPoolCreateInfo used to create the command pool which commandBuffer was allocated from
VUID-vkCmdBeginRenderPass-stencilInitialLayout-02843NNoneexplicitvkCmdBeginRenderPass(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-videocodingNNoneimplicitvkCmdBeginRenderPasscoreThis command must only be called outside of a video coding scope
VUID-vkCmdBeginRenderPass2-bufferlevelYNoneimplicitvkCmdBeginRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)commandBuffer must be a primary VkCommandBuffer
VUID-vkCmdBeginRenderPass2-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBeginRenderPass2-commandBuffer-parameterYNoneimplicitvkCmdBeginRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginRenderPass2-commandBuffer-recordingYNoneimplicitvkCmdBeginRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)commandBuffer must be in the recording state
VUID-vkCmdBeginRenderPass2-dstStageMask-06454YNoneexplicitvkCmdBeginRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)The 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-02533NNoneexplicitvkCmdBeginRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)For any attachment in framebuffer that is used by renderPass and is bound to memory locations that are also bound to another attachment used by renderPass, and if at least one of those uses causes either attachment to be written to, both attachments must have had the VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT set
VUID-vkCmdBeginRenderPass2-framebuffer-02779NNoneexplicitvkCmdBeginRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)Both the framebuffer and renderPass members of pRenderPassBegin must have been created on the same VkDevice that commandBuffer was allocated on
VUID-vkCmdBeginRenderPass2-initialLayout-02844NNoneexplicitvkCmdBeginRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-03094YRenderPassBeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-03096YRenderPassBeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-03097YRenderPassBeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-03098YRenderPassBeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-03099YRenderPassBeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-03100NNoneexplicitvkCmdBeginRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If 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-07002YRenderPassBeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_attachment_feedback_loop_layout)If 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-07003YRenderPassBeginLayoutsFramebufferImageUsageMismatchesexplicitvkCmdBeginRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_attachment_feedback_loop_layout)If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value the VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT usage bit
VUID-vkCmdBeginRenderPass2-pRenderPassBegin-parameterYNoneimplicitvkCmdBeginRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)pRenderPassBegin must be a valid pointer to a valid VkRenderPassBeginInfo structure
VUID-vkCmdBeginRenderPass2-pSubpassBeginInfo-parameterYNoneimplicitvkCmdBeginRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)pSubpassBeginInfo must be a valid pointer to a valid VkSubpassBeginInfo structure
VUID-vkCmdBeginRenderPass2-renderpassYRenderPassBeginWithinRenderPassimplicitvkCmdBeginRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)This command must only be called outside of a render pass instance
VUID-vkCmdBeginRenderPass2-srcStageMask-06453YNoneexplicitvkCmdBeginRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)The 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-02845NNoneexplicitvkCmdBeginRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-videocodingNNoneimplicitvkCmdBeginRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)This command must only be called outside of a video coding scope
VUID-vkCmdBeginRendering-commandBuffer-06068YDynamicRenderingBeginRenderingWithSecondaryContentsexplicitvkCmdBeginRendering(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If commandBuffer is a secondary command buffer, pRenderingInfo->flags must not include VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT
VUID-vkCmdBeginRendering-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginRendering(VK_VERSION_1_3,VK_KHR_dynamic_rendering)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBeginRendering-commandBuffer-parameterYNoneimplicitvkCmdBeginRendering(VK_VERSION_1_3,VK_KHR_dynamic_rendering)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginRendering-commandBuffer-recordingYNoneimplicitvkCmdBeginRendering(VK_VERSION_1_3,VK_KHR_dynamic_rendering)commandBuffer must be in the recording state
VUID-vkCmdBeginRendering-dynamicRendering-06446YDynamicRenderingBeginRenderingDisabledexplicitvkCmdBeginRendering(VK_VERSION_1_3,VK_KHR_dynamic_rendering)The dynamicRendering feature must be enabled
VUID-vkCmdBeginRendering-pRenderingInfo-parameterYNoneimplicitvkCmdBeginRendering(VK_VERSION_1_3,VK_KHR_dynamic_rendering)pRenderingInfo must be a valid pointer to a valid VkRenderingInfo structure
VUID-vkCmdBeginRendering-renderpassYNoneimplicitvkCmdBeginRendering(VK_VERSION_1_3,VK_KHR_dynamic_rendering)This command must only be called outside of a render pass instance
VUID-vkCmdBeginRendering-videocodingNNoneimplicitvkCmdBeginRendering(VK_VERSION_1_3,VK_KHR_dynamic_rendering)This command must only be called outside of a video coding scope
VUID-vkCmdBeginTransformFeedbackEXT-None-02367YTransformFeedbackCmdBeginTransformFeedbackEXTexplicitvkCmdBeginTransformFeedbackEXT(VK_EXT_transform_feedback)Transform feedback must not be active
VUID-vkCmdBeginTransformFeedbackEXT-None-02373YInvalidBeginTransformFeedbackInMultiviewRenderPassexplicitvkCmdBeginTransformFeedbackEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_multiview)Transform feedback must not be made active in a render pass instance with multiview enabled
VUID-vkCmdBeginTransformFeedbackEXT-None-04128NNoneexplicitvkCmdBeginTransformFeedbackEXT(VK_EXT_transform_feedback)The last pre-rasterization shader stage of the bound graphics pipeline must have been declared with the Xfb execution mode
VUID-vkCmdBeginTransformFeedbackEXT-None-06233YTransformFeedbackNoBoundPipelineexplicitvkCmdBeginTransformFeedbackEXT(VK_EXT_transform_feedback)A valid graphics pipeline must be bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginTransformFeedbackEXT(VK_EXT_transform_feedback)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-parameterYNoneimplicitvkCmdBeginTransformFeedbackEXT(VK_EXT_transform_feedback)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-recordingYNoneimplicitvkCmdBeginTransformFeedbackEXT(VK_EXT_transform_feedback)commandBuffer must be in the recording state
VUID-vkCmdBeginTransformFeedbackEXT-commonparentYNoneimplicitvkCmdBeginTransformFeedbackEXT(VK_EXT_transform_feedback)Both of commandBuffer, and the elements of pCounterBuffers that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBeginTransformFeedbackEXT-counterBufferCount-02607NNoneexplicitvkCmdBeginTransformFeedbackEXT(VK_EXT_transform_feedback)If 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-02368YTransformFeedbackCmdBeginTransformFeedbackEXTexplicitvkCmdBeginTransformFeedbackEXT(VK_EXT_transform_feedback)firstCounterBuffer must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers
VUID-vkCmdBeginTransformFeedbackEXT-firstCounterBuffer-02369YTransformFeedbackCmdBeginTransformFeedbackEXTexplicitvkCmdBeginTransformFeedbackEXT(VK_EXT_transform_feedback)The sum of firstCounterBuffer and counterBufferCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers
VUID-vkCmdBeginTransformFeedbackEXT-pCounterBuffer-02371YTransformFeedbackCmdBeginTransformFeedbackEXTexplicitvkCmdBeginTransformFeedbackEXT(VK_EXT_transform_feedback)If pCounterBuffer is NULL, then pCounterBufferOffsets must also be NULL
VUID-vkCmdBeginTransformFeedbackEXT-pCounterBufferOffsets-02370YTransformFeedbackCmdBeginTransformFeedbackEXTexplicitvkCmdBeginTransformFeedbackEXT(VK_EXT_transform_feedback)For 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-parameterNNoneimplicitvkCmdBeginTransformFeedbackEXT(VK_EXT_transform_feedback)If 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-02372YTransformFeedbackCmdBeginTransformFeedbackEXTexplicitvkCmdBeginTransformFeedbackEXT(VK_EXT_transform_feedback)For 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-renderpassYNoneimplicitvkCmdBeginTransformFeedbackEXT(VK_EXT_transform_feedback)This command must only be called inside of a render pass instance
VUID-vkCmdBeginTransformFeedbackEXT-transformFeedback-02366YTransformFeedbackFeatureEnabledexplicitvkCmdBeginTransformFeedbackEXT(VK_EXT_transform_feedback)VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled
VUID-vkCmdBeginTransformFeedbackEXT-videocodingNNoneimplicitvkCmdBeginTransformFeedbackEXT(VK_EXT_transform_feedback)This command must only be called outside of a video coding scope
VUID-vkCmdBeginVideoCodingKHR-bufferlevelYNoneimplicitvkCmdBeginVideoCodingKHR(VK_KHR_video_queue)commandBuffer must be a primary VkCommandBuffer
VUID-vkCmdBeginVideoCodingKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdBeginVideoCodingKHR(VK_KHR_video_queue)The VkCommandPool that commandBuffer was allocated from must support decode, or encode operations
VUID-vkCmdBeginVideoCodingKHR-commandBuffer-parameterYNoneimplicitvkCmdBeginVideoCodingKHR(VK_KHR_video_queue)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBeginVideoCodingKHR-commandBuffer-recordingYNoneimplicitvkCmdBeginVideoCodingKHR(VK_KHR_video_queue)commandBuffer must be in the recording state
VUID-vkCmdBeginVideoCodingKHR-pBeginInfo-parameterYNoneimplicitvkCmdBeginVideoCodingKHR(VK_KHR_video_queue)pBeginInfo must be a valid pointer to a valid VkVideoBeginCodingInfoKHR structure
VUID-vkCmdBeginVideoCodingKHR-renderpassYNoneimplicitvkCmdBeginVideoCodingKHR(VK_KHR_video_queue)This command must only be called outside of a render pass instance
VUID-vkCmdBeginVideoCodingKHR-videocodingNNoneimplicitvkCmdBeginVideoCodingKHR(VK_KHR_video_queue)This command must only be called outside of a video coding scope
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-None-08068YDescriptorBufferNotEnabledexplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXT(VK_EXT_descriptor_buffer)The descriptorBuffer feature must be enabled
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXT(VK_EXT_descriptor_buffer)The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-parameterYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXT(VK_EXT_descriptor_buffer)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-recordingYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXT(VK_EXT_descriptor_buffer)commandBuffer must be in the recording state
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commonparentYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXT(VK_EXT_descriptor_buffer)Both of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-layout-parameterYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXT(VK_EXT_descriptor_buffer)layout must be a valid VkPipelineLayout handle
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-pipelineBindPoint-08069YDescriptorBufferInvalidBindPointexplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXT(VK_EXT_descriptor_buffer)pipelineBindPoint must be supported by the commandBuffer's parent VkCommandPool's queue family
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-pipelineBindPoint-parameterYNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXT(VK_EXT_descriptor_buffer)pipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-set-08070YDescriptorBufferBindingAndOffsetsexplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXT(VK_EXT_descriptor_buffer)The 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-08071YDescriptorBufferBindingAndOffsetsexplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXT(VK_EXT_descriptor_buffer)set must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-videocodingNNoneimplicitvkCmdBindDescriptorBufferEmbeddedSamplersEXT(VK_EXT_descriptor_buffer)This command must only be called outside of a video coding scope
VUID-vkCmdBindDescriptorBuffersEXT-None-08047YDescriptorBufferNotEnabledexplicitvkCmdBindDescriptorBuffersEXT(VK_EXT_descriptor_buffer)The descriptorBuffer feature must be enabled
VUID-vkCmdBindDescriptorBuffersEXT-None-08050YDescriptorBufferBindingAndOffsetsexplicitvkCmdBindDescriptorBuffersEXT(VK_EXT_descriptor_buffer)There 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-08051YDescriptorBufferBindingAndOffsetsexplicitvkCmdBindDescriptorBuffersEXT(VK_EXT_descriptor_buffer)bufferCount must be less than or equal to VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxDescriptorBufferBindings
VUID-vkCmdBindDescriptorBuffersEXT-bufferCount-arraylengthYNoneimplicitvkCmdBindDescriptorBuffersEXT(VK_EXT_descriptor_buffer)bufferCount must be greater than 0
VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBindDescriptorBuffersEXT(VK_EXT_descriptor_buffer)The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-parameterYNoneimplicitvkCmdBindDescriptorBuffersEXT(VK_EXT_descriptor_buffer)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-recordingYNoneimplicitvkCmdBindDescriptorBuffersEXT(VK_EXT_descriptor_buffer)commandBuffer must be in the recording state
VUID-vkCmdBindDescriptorBuffersEXT-maxResourceDescriptorBufferBindings-08049YDescriptorBufferBindingAndOffsetsexplicitvkCmdBindDescriptorBuffersEXT(VK_EXT_descriptor_buffer)There must be no more than VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxResourceDescriptorBufferBindings descriptor buffers containing resource descriptor data bound
VUID-vkCmdBindDescriptorBuffersEXT-maxSamplerDescriptorBufferBindings-08048YDescriptorBufferBindingAndOffsetsexplicitvkCmdBindDescriptorBuffersEXT(VK_EXT_descriptor_buffer)There must be no more than VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxSamplerDescriptorBufferBindings descriptor buffers containing sampler descriptor data bound
VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08052YDescriptorBufferNotEnabledexplicitvkCmdBindDescriptorBuffersEXT(VK_EXT_descriptor_buffer)For 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-08053NNoneexplicitvkCmdBindDescriptorBuffersEXT(VK_EXT_descriptor_buffer)For 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-08054NNoneexplicitvkCmdBindDescriptorBuffersEXT(VK_EXT_descriptor_buffer)For 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-08055YDescriptorBufferNotEnabled, DescriptorBufferBindingAndOffsetsexplicitvkCmdBindDescriptorBuffersEXT(VK_EXT_descriptor_buffer)For any element of pBindingInfos, usage must match the buffer from which address was queried
VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-parameterYNoneimplicitvkCmdBindDescriptorBuffersEXT(VK_EXT_descriptor_buffer)pBindingInfos must be a valid pointer to an array of bufferCount valid VkDescriptorBufferBindingInfoEXT structures
VUID-vkCmdBindDescriptorBuffersEXT-videocodingNNoneimplicitvkCmdBindDescriptorBuffersEXT(VK_EXT_descriptor_buffer)This command must only be called outside of a video coding scope
VUID-vkCmdBindDescriptorSets-commandBuffer-cmdpoolYNoneimplicitvkCmdBindDescriptorSetscoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBindDescriptorSets-commandBuffer-parameterYNoneimplicitvkCmdBindDescriptorSetscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindDescriptorSets-commandBuffer-recordingYNoneimplicitvkCmdBindDescriptorSetscorecommandBuffer must be in the recording state
VUID-vkCmdBindDescriptorSets-commonparentYNoneimplicitvkCmdBindDescriptorSetscoreEach of commandBuffer, layout, and the elements of pDescriptorSets that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindDescriptorSets-descriptorSetCount-arraylengthYValidateArrayLengthimplicitvkCmdBindDescriptorSetscoredescriptorSetCount must be greater than 0
VUID-vkCmdBindDescriptorSets-dynamicOffsetCount-00359YInvalidDynamicOffsetCasesexplicitvkCmdBindDescriptorSetscoredynamicOffsetCount must be equal to the total number of dynamic descriptors in pDescriptorSets
VUID-vkCmdBindDescriptorSets-firstSet-00360YInvalidDescriptorSet, DescriptorSetCompatibilityexplicitvkCmdBindDescriptorSetscoreThe sum of firstSet and descriptorSetCount must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-vkCmdBindDescriptorSets-graphicsPipelineLibrary-06754YDescriptorBufferInvalidExtensionCombinationexplicitvkCmdBindDescriptorSets(VK_EXT_graphics_pipeline_library)If graphicsPipelineLibrary is not enabled, each element of pDescriptorSets must be a valid VkDescriptorSet
VUID-vkCmdBindDescriptorSets-layout-parameterYDescriptorSetCompatibilityimplicitvkCmdBindDescriptorSetscorelayout must be a valid VkPipelineLayout handle
VUID-vkCmdBindDescriptorSets-pDescriptorSets-00358YInvalidDescriptorSet, DescriptorBufferInvalidExtensionCombinationexplicitvkCmdBindDescriptorSetscoreEach 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-01979YInvalidDynamicDescriptorSet, InvalidDynamicOffsetCasesexplicitvkCmdBindDescriptorSetscoreFor 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-04616YTestBindingDescriptorSetFromHostOnlyPoolexplicitvkCmdBindDescriptorSets(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)Each 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-06563YDescriptorBufferInvalidExtensionCombinationexplicitvkCmdBindDescriptorSets!(VK_EXT_graphics_pipeline_library)Each element of pDescriptorSets must be a valid VkDescriptorSet
VUID-vkCmdBindDescriptorSets-pDescriptorSets-06715YInvalidDynamicDescriptorSetexplicitvkCmdBindDescriptorSetscoreFor 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-08010YNoneexplicitvkCmdBindDescriptorSets(VK_EXT_descriptor_buffer)Each 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-parameterYInvalidDescriptorSetimplicitvkCmdBindDescriptorSetscorepDescriptorSets must be a valid pointer to an array of descriptorSetCount valid or VK_NULL_HANDLE VkDescriptorSet handles
VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01971YInvalidDynamicDescriptorSetexplicitvkCmdBindDescriptorSetscoreEach 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-01972YNoneexplicitvkCmdBindDescriptorSetscoreEach element of pDynamicOffsets which corresponds to a descriptor binding with type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must be a multiple of VkPhysicalDeviceLimits::minStorageBufferOffsetAlignment
VUID-vkCmdBindDescriptorSets-pDynamicOffsets-parameterYNoneimplicitvkCmdBindDescriptorSetscoreIf dynamicOffsetCount is not 0, pDynamicOffsets must be a valid pointer to an array of dynamicOffsetCount uint32_t values
VUID-vkCmdBindDescriptorSets-pipelineBindPoint-00361YInvalidDescriptorSetPipelineBindPointexplicitvkCmdBindDescriptorSetscorepipelineBindPoint must be supported by the commandBuffer's parent VkCommandPool's queue family
VUID-vkCmdBindDescriptorSets-pipelineBindPoint-parameterYNoneimplicitvkCmdBindDescriptorSetscorepipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-vkCmdBindDescriptorSets-videocodingNNoneimplicitvkCmdBindDescriptorSetscoreThis command must only be called outside of a video coding scope
VUID-vkCmdBindIndexBuffer-buffer-00433YNoneexplicitvkCmdBindIndexBuffercorebuffer must have been created with the VK_BUFFER_USAGE_INDEX_BUFFER_BIT flag
VUID-vkCmdBindIndexBuffer-buffer-00434YNoneexplicitvkCmdBindIndexBuffercoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBindIndexBuffer-buffer-parameterYNoneimplicitvkCmdBindIndexBuffercorebuffer must be a valid VkBuffer handle
VUID-vkCmdBindIndexBuffer-commandBuffer-cmdpoolYNoneimplicitvkCmdBindIndexBuffercoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindIndexBuffer-commandBuffer-parameterYNoneimplicitvkCmdBindIndexBuffercorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindIndexBuffer-commandBuffer-recordingYNoneimplicitvkCmdBindIndexBuffercorecommandBuffer must be in the recording state
VUID-vkCmdBindIndexBuffer-commonparentYNoneimplicitvkCmdBindIndexBuffercoreBoth of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindIndexBuffer-indexType-02507YNoneexplicitvkCmdBindIndexBuffer(VK_NV_ray_tracing,VK_KHR_acceleration_structure)indexType must not be VK_INDEX_TYPE_NONE_KHR
VUID-vkCmdBindIndexBuffer-indexType-02765YBadIndexBufferOffsetexplicitvkCmdBindIndexBuffer(VK_EXT_index_type_uint8)If indexType is VK_INDEX_TYPE_UINT8_EXT, the indexTypeUint8 feature must be enabled
VUID-vkCmdBindIndexBuffer-indexType-parameterYNoneimplicitvkCmdBindIndexBuffercoreindexType must be a valid VkIndexType value
VUID-vkCmdBindIndexBuffer-offset-00431YBadIndexBufferOffsetexplicitvkCmdBindIndexBuffercoreoffset must be less than the size of buffer
VUID-vkCmdBindIndexBuffer-offset-00432YBadIndexBufferOffsetexplicitvkCmdBindIndexBuffercoreThe sum of offset and the address of the range of VkDeviceMemory object that is backing buffer, must be a multiple of the type indicated by indexType
VUID-vkCmdBindIndexBuffer-videocodingNNoneimplicitvkCmdBindIndexBuffercoreThis command must only be called outside of a video coding scope
VUID-vkCmdBindInvocationMaskHUAWEI-None-04976NNoneexplicitvkCmdBindInvocationMaskHUAWEI(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_HUAWEI_invocation_mask)The invocationMask feature must be enabled
VUID-vkCmdBindInvocationMaskHUAWEI-None-04982NNoneexplicitvkCmdBindInvocationMaskHUAWEI(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_HUAWEI_invocation_mask)Each element in the invocation mask image must have the value 0 or 1. The value 1 means the invocation is active
VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-cmdpoolYNoneimplicitvkCmdBindInvocationMaskHUAWEI(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_HUAWEI_invocation_mask)The VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-parameterYNoneimplicitvkCmdBindInvocationMaskHUAWEI(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_HUAWEI_invocation_mask)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-recordingYNoneimplicitvkCmdBindInvocationMaskHUAWEI(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_HUAWEI_invocation_mask)commandBuffer must be in the recording state
VUID-vkCmdBindInvocationMaskHUAWEI-commonparentYNoneimplicitvkCmdBindInvocationMaskHUAWEI(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_HUAWEI_invocation_mask)Both 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-imageLayout-parameterYNoneimplicitvkCmdBindInvocationMaskHUAWEI(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_HUAWEI_invocation_mask)imageLayout must be a valid VkImageLayout value
VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04977NNoneexplicitvkCmdBindInvocationMaskHUAWEI(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_HUAWEI_invocation_mask)If imageView is not VK_NULL_HANDLE, it must be a valid VkImageView handle of type VK_IMAGE_VIEW_TYPE_2D
VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04978NNoneexplicitvkCmdBindInvocationMaskHUAWEI(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_HUAWEI_invocation_mask)If imageView is not VK_NULL_HANDLE, it must have a format of VK_FORMAT_R8_UINT
VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04979NNoneexplicitvkCmdBindInvocationMaskHUAWEI(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_HUAWEI_invocation_mask)If imageView is not VK_NULL_HANDLE, it must have been created with VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI set
VUID-vkCmdBindInvocationMaskHUAWEI-imageView-04980NNoneexplicitvkCmdBindInvocationMaskHUAWEI(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_HUAWEI_invocation_mask)If imageView is not VK_NULL_HANDLE, imageLayout must be VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdBindInvocationMaskHUAWEI-imageView-parameterYNoneimplicitvkCmdBindInvocationMaskHUAWEI(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_HUAWEI_invocation_mask)If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle
VUID-vkCmdBindInvocationMaskHUAWEI-renderpassYNoneimplicitvkCmdBindInvocationMaskHUAWEI(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_HUAWEI_invocation_mask)This command must only be called outside of a render pass instance
VUID-vkCmdBindInvocationMaskHUAWEI-videocodingNNoneimplicitvkCmdBindInvocationMaskHUAWEI(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_HUAWEI_invocation_mask)This command must only be called outside of a video coding scope
VUID-vkCmdBindInvocationMaskHUAWEI-width-04981NNoneexplicitvkCmdBindInvocationMaskHUAWEI(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_HUAWEI_invocation_mask)Thread mask image resolution must match the width and height in vkCmdTraceRaysKHR
VUID-vkCmdBindInvocationMaskHUAWEI-width-04983NNoneexplicitvkCmdBindInvocationMaskHUAWEI(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_HUAWEI_invocation_mask)width in vkCmdTraceRaysKHR should be 1
VUID-vkCmdBindPipeline-None-02323YBindPipelineDuringTransformFeedbackexplicitvkCmdBindPipeline(VK_EXT_transform_feedback)This command must not be recorded when transform feedback is active
VUID-vkCmdBindPipeline-commandBuffer-04808YViewportInheritanceexplicitvkCmdBindPipeline(VK_NV_inherited_viewport_scissor)If 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-04809YPipelineMissingDynamicStateDiscardRectangleexplicitvkCmdBindPipeline(VK_NV_inherited_viewport_scissor,VK_EXT_discard_rectangles)If 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, then the pipeline must have been created with VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT enabled
VUID-vkCmdBindPipeline-commandBuffer-cmdpoolYNoneimplicitvkCmdBindPipelinecoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBindPipeline-commandBuffer-parameterYNoneimplicitvkCmdBindPipelinecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindPipeline-commandBuffer-recordingYNoneimplicitvkCmdBindPipelinecorecommandBuffer must be in the recording state
VUID-vkCmdBindPipeline-commonparentYNoneimplicitvkCmdBindPipelinecoreBoth of commandBuffer, and pipeline must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindPipeline-pipeline-00781NNoneexplicitvkCmdBindPipelinecoreIf the variableMultisampleRate feature is not supported, pipeline is a graphics pipeline, the current subpass uses no attachments, and this is not the first call to this function with a graphics pipeline after transitioning to the current subpass, then the sample count specified by this pipeline must match that set in the previous pipeline
VUID-vkCmdBindPipeline-pipeline-03382YBindLibraryPipelineexplicitvkCmdBindPipeline(VK_KHR_pipeline_library)pipeline must not have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR set
VUID-vkCmdBindPipeline-pipeline-06856YMultisampledRenderToSingleSampledexplicitvkCmdBindPipeline(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_multisampled_render_to_single_sampled)If pipeline is a graphics pipeline, 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 VkGraphicsPipelineCreateInfo::pMultisampleState::rasterizationSamples must be equal to VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamples
VUID-vkCmdBindPipeline-pipeline-parameterYRayTracingPipelineDeferredOp, InvalidPipeline, PipelineNotBoundimplicitvkCmdBindPipelinecorepipeline must be a valid VkPipeline handle
VUID-vkCmdBindPipeline-pipelineBindPoint-00777YNoneexplicitvkCmdBindPipelinecoreIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE, the VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBindPipeline-pipelineBindPoint-00778YNoneexplicitvkCmdBindPipelinecoreIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS, the VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindPipeline-pipelineBindPoint-00779YPipelineWrongBindPointGraphicsexplicitvkCmdBindPipelinecoreIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE, pipeline must be a compute pipeline
VUID-vkCmdBindPipeline-pipelineBindPoint-00780YPipelineWrongBindPointComputeexplicitvkCmdBindPipelinecoreIf pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline must be a graphics pipeline
VUID-vkCmdBindPipeline-pipelineBindPoint-02391YNoneexplicitvkCmdBindPipeline(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)If pipelineBindPoint is VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, the VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBindPipeline-pipelineBindPoint-02392YRayTracingPipelineWrongBindPointexplicitvkCmdBindPipeline(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)If pipelineBindPoint is VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, pipeline must be a ray tracing pipeline
VUID-vkCmdBindPipeline-pipelineBindPoint-04881YNotSupportProvokingVertexModePerPipelineexplicitvkCmdBindPipeline(VK_EXT_provoking_vertex)If 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-04949NNoneexplicitvkCmdBindPipeline(VK_HUAWEI_subpass_shading)If pipelineBindPoint is VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI, the VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBindPipeline-pipelineBindPoint-04950NNoneexplicitvkCmdBindPipeline(VK_HUAWEI_subpass_shading)If pipelineBindPoint is VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI, pipeline must be a subpass shading pipeline
VUID-vkCmdBindPipeline-pipelineBindPoint-06653NNoneexplicitvkCmdBindPipeline(VK_EXT_graphics_pipeline_library)If pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline must have been created without VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-vkCmdBindPipeline-pipelineBindPoint-06721NNoneexplicitvkCmdBindPipeline(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)If pipelineBindPoint is VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, commandBuffer must not be a protected command buffer
VUID-vkCmdBindPipeline-pipelineBindPoint-parameterYNoneimplicitvkCmdBindPipelinecorepipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-vkCmdBindPipeline-pipelineProtectedAccess-07408YPipelineProtectedAccessexplicitvkCmdBindPipeline(VK_EXT_pipeline_protected_access)If 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-07409YPipelineProtectedAccessexplicitvkCmdBindPipeline(VK_EXT_pipeline_protected_access)If 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-01525YValidateVariableSampleLocationsexplicitvkCmdBindPipeline(VK_EXT_sample_locations)If 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-videocodingNNoneimplicitvkCmdBindPipelinecoreThis command must only be called outside of a video coding scope
VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-cmdpoolYNoneimplicitvkCmdBindPipelineShaderGroupNV(VK_NV_device_generated_commands)The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-parameterYNoneimplicitvkCmdBindPipelineShaderGroupNV(VK_NV_device_generated_commands)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-recordingYNoneimplicitvkCmdBindPipelineShaderGroupNV(VK_NV_device_generated_commands)commandBuffer must be in the recording state
VUID-vkCmdBindPipelineShaderGroupNV-commonparentYNoneimplicitvkCmdBindPipelineShaderGroupNV(VK_NV_device_generated_commands)Both of commandBuffer, and pipeline must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindPipelineShaderGroupNV-deviceGeneratedCommands-02896NNoneexplicitvkCmdBindPipelineShaderGroupNV(VK_NV_device_generated_commands)The deviceGeneratedCommands feature must be enabled
VUID-vkCmdBindPipelineShaderGroupNV-groupIndex-02893NNoneexplicitvkCmdBindPipelineShaderGroupNV(VK_NV_device_generated_commands)groupIndex must be 0 or less than the effective VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCount including the referenced pipelines
VUID-vkCmdBindPipelineShaderGroupNV-groupIndex-02895NNoneexplicitvkCmdBindPipelineShaderGroupNV(VK_NV_device_generated_commands)The same restrictions as vkCmdBindPipeline apply as if the bound pipeline was created only with the Shader Group from the groupIndex information
VUID-vkCmdBindPipelineShaderGroupNV-pipeline-parameterYNoneimplicitvkCmdBindPipelineShaderGroupNV(VK_NV_device_generated_commands)pipeline must be a valid VkPipeline handle
VUID-vkCmdBindPipelineShaderGroupNV-pipelineBindPoint-02894NNoneexplicitvkCmdBindPipelineShaderGroupNV(VK_NV_device_generated_commands)The pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdBindPipelineShaderGroupNV-pipelineBindPoint-parameterYNoneimplicitvkCmdBindPipelineShaderGroupNV(VK_NV_device_generated_commands)pipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-vkCmdBindPipelineShaderGroupNV-videocodingNNoneimplicitvkCmdBindPipelineShaderGroupNV(VK_NV_device_generated_commands)This command must only be called outside of a video coding scope
VUID-vkCmdBindShadingRateImageNV-None-02058YNoneexplicitvkCmdBindShadingRateImageNV(VK_NV_shading_rate_image)The shadingRateImage feature must be enabled
VUID-vkCmdBindShadingRateImageNV-commandBuffer-cmdpoolYNoneimplicitvkCmdBindShadingRateImageNV(VK_NV_shading_rate_image)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindShadingRateImageNV-commandBuffer-parameterYNoneimplicitvkCmdBindShadingRateImageNV(VK_NV_shading_rate_image)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindShadingRateImageNV-commandBuffer-recordingYNoneimplicitvkCmdBindShadingRateImageNV(VK_NV_shading_rate_image)commandBuffer must be in the recording state
VUID-vkCmdBindShadingRateImageNV-commonparentYNoneimplicitvkCmdBindShadingRateImageNV(VK_NV_shading_rate_image)Both 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-02063YShadingRateImageNVexplicitvkCmdBindShadingRateImageNV(VK_NV_shading_rate_image)If imageView is not VK_NULL_HANDLE, imageLayout must be VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdBindShadingRateImageNV-imageLayout-parameterYNoneimplicitvkCmdBindShadingRateImageNV(VK_NV_shading_rate_image)imageLayout must be a valid VkImageLayout value
VUID-vkCmdBindShadingRateImageNV-imageView-02059YNoneexplicitvkCmdBindShadingRateImageNV(VK_NV_shading_rate_image)If 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-02060YShadingRateImageNVexplicitvkCmdBindShadingRateImageNV(VK_NV_shading_rate_image)If imageView is not VK_NULL_HANDLE, it must have a format of VK_FORMAT_R8_UINT
VUID-vkCmdBindShadingRateImageNV-imageView-02061YShadingRateImageNVexplicitvkCmdBindShadingRateImageNV(VK_NV_shading_rate_image)If 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-02062YShadingRateImageNVexplicitvkCmdBindShadingRateImageNV(VK_NV_shading_rate_image)If 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-parameterYNoneimplicitvkCmdBindShadingRateImageNV(VK_NV_shading_rate_image)If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle
VUID-vkCmdBindShadingRateImageNV-videocodingNNoneimplicitvkCmdBindShadingRateImageNV(VK_NV_shading_rate_image)This command must only be called outside of a video coding scope
VUID-vkCmdBindTransformFeedbackBuffersEXT-None-02365YTransformFeedbackCmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXT(VK_EXT_transform_feedback)Transform feedback must not be active when the vkCmdBindTransformFeedbackBuffersEXT command is recorded
VUID-vkCmdBindTransformFeedbackBuffersEXT-bindingCount-arraylengthYNoneimplicitvkCmdBindTransformFeedbackBuffersEXT(VK_EXT_transform_feedback)bindingCount must be greater than 0
VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBindTransformFeedbackBuffersEXT(VK_EXT_transform_feedback)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-parameterYNoneimplicitvkCmdBindTransformFeedbackBuffersEXT(VK_EXT_transform_feedback)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-recordingYNoneimplicitvkCmdBindTransformFeedbackBuffersEXT(VK_EXT_transform_feedback)commandBuffer must be in the recording state
VUID-vkCmdBindTransformFeedbackBuffersEXT-commonparentYNoneimplicitvkCmdBindTransformFeedbackBuffersEXT(VK_EXT_transform_feedback)Both of commandBuffer, and the elements of pBuffers must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindTransformFeedbackBuffersEXT-firstBinding-02356YTransformFeedbackCmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXT(VK_EXT_transform_feedback)firstBinding must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers
VUID-vkCmdBindTransformFeedbackBuffersEXT-firstBinding-02357YTransformFeedbackCmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXT(VK_EXT_transform_feedback)The sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers
VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-02360YTransformFeedbackCmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXT(VK_EXT_transform_feedback)All elements of pBuffers must have been created with the VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT flag
VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-02364YTransformFeedbackCmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXT(VK_EXT_transform_feedback)Each element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-parameterYNoneimplicitvkCmdBindTransformFeedbackBuffersEXT(VK_EXT_transform_feedback)pBuffers must be a valid pointer to an array of bindingCount valid VkBuffer handles
VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02358YTransformFeedbackCmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXT(VK_EXT_transform_feedback)All elements of pOffsets must be less than the size of the corresponding element in pBuffers
VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02359YTransformFeedbackCmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXT(VK_EXT_transform_feedback)All elements of pOffsets must be a multiple of 4
VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02363YTransformFeedbackCmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXT(VK_EXT_transform_feedback)All 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-parameterYNoneimplicitvkCmdBindTransformFeedbackBuffersEXT(VK_EXT_transform_feedback)pOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values
VUID-vkCmdBindTransformFeedbackBuffersEXT-pSize-02361YTransformFeedbackCmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXT(VK_EXT_transform_feedback)If 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-02362YTransformFeedbackCmdBindTransformFeedbackBuffersEXTexplicitvkCmdBindTransformFeedbackBuffersEXT(VK_EXT_transform_feedback)All 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-02355YTransformFeedbackFeatureEnabledexplicitvkCmdBindTransformFeedbackBuffersEXT(VK_EXT_transform_feedback)VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled
VUID-vkCmdBindTransformFeedbackBuffersEXT-videocodingNNoneimplicitvkCmdBindTransformFeedbackBuffersEXT(VK_EXT_transform_feedback)This command must only be called outside of a video coding scope
VUID-vkCmdBindVertexBuffers-bindingCount-arraylengthYNoneimplicitvkCmdBindVertexBufferscorebindingCount must be greater than 0
VUID-vkCmdBindVertexBuffers-commandBuffer-cmdpoolYNoneimplicitvkCmdBindVertexBufferscoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindVertexBuffers-commandBuffer-parameterYNoneimplicitvkCmdBindVertexBufferscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindVertexBuffers-commandBuffer-recordingYNoneimplicitvkCmdBindVertexBufferscorecommandBuffer must be in the recording state
VUID-vkCmdBindVertexBuffers-commonparentYNoneimplicitvkCmdBindVertexBufferscoreBoth of commandBuffer, and the elements of pBuffers that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindVertexBuffers-firstBinding-00624YBadVertexBufferOffsetexplicitvkCmdBindVertexBufferscorefirstBinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-vkCmdBindVertexBuffers-firstBinding-00625YBadVertexBufferOffsetexplicitvkCmdBindVertexBufferscoreThe sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-vkCmdBindVertexBuffers-pBuffers-00627YNoneexplicitvkCmdBindVertexBufferscoreAll elements of pBuffers must have been created with the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT flag
VUID-vkCmdBindVertexBuffers-pBuffers-00628YNoneexplicitvkCmdBindVertexBufferscoreEach element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBindVertexBuffers-pBuffers-04001YNullDescriptorsDisabledexplicitvkCmdBindVertexBufferscoreIf the nullDescriptor feature is not enabled, all elements of pBuffers must not be VK_NULL_HANDLE
VUID-vkCmdBindVertexBuffers-pBuffers-04002YNullDescriptorsEnabledexplicitvkCmdBindVertexBuffers(VK_EXT_robustness2)If an element of pBuffers is VK_NULL_HANDLE, then the corresponding element of pOffsets must be zero
VUID-vkCmdBindVertexBuffers-pBuffers-parameterYNoneimplicitvkCmdBindVertexBufferscorepBuffers must be a valid pointer to an array of bindingCount valid or VK_NULL_HANDLE VkBuffer handles
VUID-vkCmdBindVertexBuffers-pOffsets-00626YBadVertexBufferOffsetexplicitvkCmdBindVertexBufferscoreAll elements of pOffsets must be less than the size of the corresponding element in pBuffers
VUID-vkCmdBindVertexBuffers-pOffsets-parameterYNoneimplicitvkCmdBindVertexBufferscorepOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values
VUID-vkCmdBindVertexBuffers-videocodingNNoneimplicitvkCmdBindVertexBufferscoreThis command must only be called outside of a video coding scope
VUID-vkCmdBindVertexBuffers2-bindingCount-arraylengthYNoneimplicitvkCmdBindVertexBuffers2(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If any of pSizes, or pStrides are not NULL, bindingCount must be greater than 0
VUID-vkCmdBindVertexBuffers2-commandBuffer-cmdpoolYNoneimplicitvkCmdBindVertexBuffers2(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBindVertexBuffers2-commandBuffer-parameterYNoneimplicitvkCmdBindVertexBuffers2(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBindVertexBuffers2-commandBuffer-recordingYNoneimplicitvkCmdBindVertexBuffers2(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be in the recording state
VUID-vkCmdBindVertexBuffers2-commonparentYNoneimplicitvkCmdBindVertexBuffers2(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)Both of commandBuffer, and the elements of pBuffers that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBindVertexBuffers2-firstBinding-03355YValidateExtendedDynamicStateEnabledexplicitvkCmdBindVertexBuffers2(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)firstBinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-vkCmdBindVertexBuffers2-firstBinding-03356YValidateExtendedDynamicStateEnabledexplicitvkCmdBindVertexBuffers2(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)The sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-vkCmdBindVertexBuffers2-pBuffers-03359YValidateExtendedDynamicStateEnabledexplicitvkCmdBindVertexBuffers2(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)All elements of pBuffers must have been created with the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT flag
VUID-vkCmdBindVertexBuffers2-pBuffers-03360YNoneexplicitvkCmdBindVertexBuffers2(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)Each element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBindVertexBuffers2-pBuffers-04111YValidateExtendedDynamicStateEnabledexplicitvkCmdBindVertexBuffers2(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the nullDescriptor feature is not enabled, all elements of pBuffers must not be VK_NULL_HANDLE
VUID-vkCmdBindVertexBuffers2-pBuffers-04112YNoneexplicitvkCmdBindVertexBuffers2(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_robustness2)If an element of pBuffers is VK_NULL_HANDLE, then the corresponding element of pOffsets must be zero
VUID-vkCmdBindVertexBuffers2-pBuffers-parameterYValidateExtendedDynamicStateEnabledimplicitvkCmdBindVertexBuffers2(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)pBuffers must be a valid pointer to an array of bindingCount valid or VK_NULL_HANDLE VkBuffer handles
VUID-vkCmdBindVertexBuffers2-pOffsets-03357YValidateExtendedDynamicStateEnabledexplicitvkCmdBindVertexBuffers2(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)All elements of pOffsets must be less than the size of the corresponding element in pBuffers
VUID-vkCmdBindVertexBuffers2-pOffsets-parameterNNoneimplicitvkCmdBindVertexBuffers2(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)pOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values
VUID-vkCmdBindVertexBuffers2-pSizes-03358YValidateExtendedDynamicStateEnabledexplicitvkCmdBindVertexBuffers2(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If pSizes is not NULL, all elements of pOffsets plus pSizes must be less than or equal to the size of the corresponding element in pBuffers
VUID-vkCmdBindVertexBuffers2-pSizes-parameterNNoneimplicitvkCmdBindVertexBuffers2(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If pSizes is not NULL, pSizes must be a valid pointer to an array of bindingCount VkDeviceSize values
VUID-vkCmdBindVertexBuffers2-pStrides-03362YValidateExtendedDynamicStateEnabledexplicitvkCmdBindVertexBuffers2(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If pStrides is not NULL each element of pStrides must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride
VUID-vkCmdBindVertexBuffers2-pStrides-06209YValidateExtendedDynamicStateEnabledexplicitvkCmdBindVertexBuffers2(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-parameterNNoneimplicitvkCmdBindVertexBuffers2(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If pStrides is not NULL, pStrides must be a valid pointer to an array of bindingCount VkDeviceSize values
VUID-vkCmdBindVertexBuffers2-videocodingNNoneimplicitvkCmdBindVertexBuffers2(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)This command must only be called outside of a video coding scope
VUID-vkCmdBlitImage-aspectMask-00241YMiscBlitImageTestsexplicitvkCmdBlitImagecoreFor each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage
VUID-vkCmdBlitImage-aspectMask-00242YMiscBlitImageTestsexplicitvkCmdBlitImagecoreFor each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage
VUID-vkCmdBlitImage-commandBuffer-01834YInvalidMixingProtectedResourcesexplicitvkCmdBlitImage(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdBlitImage-commandBuffer-01835YInvalidMixingProtectedResourcesexplicitvkCmdBlitImage(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdBlitImage-commandBuffer-01836YInvalidMixingProtectedResourcesexplicitvkCmdBlitImage(VK_VERSION_1_1)If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdBlitImage-commandBuffer-cmdpoolYNoneimplicitvkCmdBlitImagecoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBlitImage-commandBuffer-parameterYNoneimplicitvkCmdBlitImagecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBlitImage-commandBuffer-recordingYNoneimplicitvkCmdBlitImagecorecommandBuffer must be in the recording state
VUID-vkCmdBlitImage-commonparentYNoneimplicitvkCmdBlitImagecoreEach of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdBlitImage-dstImage-00224YNoneexplicitvkCmdBlitImagecoredstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdBlitImage-dstImage-00225YNoneexplicitvkCmdBlitImagecoreIf dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBlitImage-dstImage-00234YMiscBlitImageTests, ImageSampleCountsexplicitvkCmdBlitImagecoredstImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT
VUID-vkCmdBlitImage-dstImage-00250YBlitImageOffsetsexplicitvkCmdBlitImagecoreIf 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-00252YBlitImageOffsetsexplicitvkCmdBlitImagecoreIf 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-02000YBlitImageFormatTypes, BlitToDepthImageTestsexplicitvkCmdBlitImagecoreThe format features of dstImage must contain VK_FORMAT_FEATURE_BLIT_DST_BIT
VUID-vkCmdBlitImage-dstImage-02545YNoneexplicitvkCmdBlitImage(VK_EXT_fragment_density_map)dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-vkCmdBlitImage-dstImage-06422YBlitImageFormatTypesexplicitvkCmdBlitImage(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)dstImage must not use a format that requires a sampler {YCbCr} conversion
VUID-vkCmdBlitImage-dstImage-parameterYNoneimplicitvkCmdBlitImagecoredstImage must be a valid VkImage handle
VUID-vkCmdBlitImage-dstImageLayout-00226YBlitImageLayoutexplicitvkCmdBlitImagecoredstImageLayout 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-00227YBlitImageLayoutexplicitvkCmdBlitImage!(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdBlitImage-dstImageLayout-01399YNoneexplicitvkCmdBlitImage(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdBlitImage-dstImageLayout-parameterYNoneimplicitvkCmdBlitImagecoredstImageLayout must be a valid VkImageLayout value
VUID-vkCmdBlitImage-dstOffset-00248YMiscBlitImageTests, BlitImageOffsetsexplicitvkCmdBlitImagecoreFor 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-00249YMiscBlitImageTests, BlitImageOffsetsexplicitvkCmdBlitImagecoreFor 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-00251YMiscBlitImageTests, BlitImageOffsetsexplicitvkCmdBlitImagecoreFor 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-01706YMiscBlitImageTestsexplicitvkCmdBlitImagecoreThe dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-vkCmdBlitImage-dstSubresource-01708YMiscBlitImageTestsexplicitvkCmdBlitImagecoreThe 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-00237YBlitImageFiltersexplicitvkCmdBlitImage(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If filter is VK_FILTER_CUBIC_EXT, srcImage must be of type VK_IMAGE_TYPE_2D
VUID-vkCmdBlitImage-filter-02001YBlitImageFiltersexplicitvkCmdBlitImagecoreIf filter is VK_FILTER_LINEAR, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdBlitImage-filter-02002YBlitImageFiltersexplicitvkCmdBlitImage(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If filter is VK_FILTER_CUBIC_EXT, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-vkCmdBlitImage-filter-parameterYNoneimplicitvkCmdBlitImagecorefilter must be a valid VkFilter value
VUID-vkCmdBlitImage-pRegions-00215YMiscBlitImageTests, BlitImageOffsetsexplicitvkCmdBlitImagecoreThe source region specified by each element of pRegions must be a region that is contained within srcImage
VUID-vkCmdBlitImage-pRegions-00216YMiscBlitImageTests, BlitImageOffsetsexplicitvkCmdBlitImagecoreThe destination region specified by each element of pRegions must be a region that is contained within dstImage
VUID-vkCmdBlitImage-pRegions-00217YBlitImageOverlapexplicitvkCmdBlitImagecoreThe union of all destination regions, specified by the elements of pRegions, must not overlap in memory with any texel that may be sampled during the blit operation
VUID-vkCmdBlitImage-pRegions-parameterYNoneimplicitvkCmdBlitImagecorepRegions must be a valid pointer to an array of regionCount valid VkImageBlit structures
VUID-vkCmdBlitImage-regionCount-arraylengthYNoneimplicitvkCmdBlitImagecoreregionCount must be greater than 0
VUID-vkCmdBlitImage-renderpassYNoneimplicitvkCmdBlitImagecoreThis command must only be called outside of a render pass instance
VUID-vkCmdBlitImage-srcImage-00219YNoneexplicitvkCmdBlitImagecoresrcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-vkCmdBlitImage-srcImage-00220YNoneexplicitvkCmdBlitImagecoreIf srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdBlitImage-srcImage-00229YBlitImageFormatTypesexplicitvkCmdBlitImagecoreIf 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-00230YBlitImageFormatTypesexplicitvkCmdBlitImagecoreIf 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-00231YBlitImageFormatTypesexplicitvkCmdBlitImagecoreIf either of srcImage or dstImage was created with a depth/stencil format, the other must have exactly the same format
VUID-vkCmdBlitImage-srcImage-00232YNoneexplicitvkCmdBlitImagecoreIf srcImage was created with a depth/stencil format, filter must be VK_FILTER_NEAREST
VUID-vkCmdBlitImage-srcImage-00233YMiscBlitImageTests, ImageSampleCountsexplicitvkCmdBlitImagecoresrcImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT
VUID-vkCmdBlitImage-srcImage-00240YMiscBlitImageTestsexplicitvkCmdBlitImagecoreIf 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-00245YBlitImageOffsetsexplicitvkCmdBlitImagecoreIf 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-00247YBlitImageOffsetsexplicitvkCmdBlitImagecoreIf 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-01999YBlitImageFormatTypesexplicitvkCmdBlitImagecoreThe format features of srcImage must contain VK_FORMAT_FEATURE_BLIT_SRC_BIT
VUID-vkCmdBlitImage-srcImage-06421YBlitImageFormatTypesexplicitvkCmdBlitImage(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)srcImage must not use a format that requires a sampler {YCbCr} conversion
VUID-vkCmdBlitImage-srcImage-parameterYNoneimplicitvkCmdBlitImagecoresrcImage must be a valid VkImage handle
VUID-vkCmdBlitImage-srcImageLayout-00221YBlitImageLayoutexplicitvkCmdBlitImagecoresrcImageLayout 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-00222YBlitImageLayoutexplicitvkCmdBlitImage!(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdBlitImage-srcImageLayout-01398YNoneexplicitvkCmdBlitImage(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdBlitImage-srcImageLayout-parameterYNoneimplicitvkCmdBlitImagecoresrcImageLayout must be a valid VkImageLayout value
VUID-vkCmdBlitImage-srcOffset-00243YMiscBlitImageTests, BlitImageOffsetsexplicitvkCmdBlitImagecoreFor 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-00244YMiscBlitImageTests, BlitImageOffsetsexplicitvkCmdBlitImagecoreFor 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-00246YMiscBlitImageTests, BlitImageOffsetsexplicitvkCmdBlitImagecoreFor 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-01705YMiscBlitImageTestsexplicitvkCmdBlitImagecoreThe srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-vkCmdBlitImage-srcSubresource-01707YMiscBlitImageTestsexplicitvkCmdBlitImagecoreThe 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-videocodingNNoneimplicitvkCmdBlitImagecoreThis command must only be called outside of a video coding scope
VUID-vkCmdBlitImage2-commandBuffer-01834YNoneexplicitvkCmdBlitImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdBlitImage2-commandBuffer-01835YNoneexplicitvkCmdBlitImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdBlitImage2-commandBuffer-01836YNoneexplicitvkCmdBlitImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdBlitImage2-commandBuffer-cmdpoolYNoneimplicitvkCmdBlitImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdBlitImage2-commandBuffer-parameterYNoneimplicitvkCmdBlitImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBlitImage2-commandBuffer-recordingYNoneimplicitvkCmdBlitImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)commandBuffer must be in the recording state
VUID-vkCmdBlitImage2-pBlitImageInfo-parameterYNoneimplicitvkCmdBlitImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)pBlitImageInfo must be a valid pointer to a valid VkBlitImageInfo2 structure
VUID-vkCmdBlitImage2-renderpassYNoneimplicitvkCmdBlitImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)This command must only be called outside of a render pass instance
VUID-vkCmdBlitImage2-videocodingNNoneimplicitvkCmdBlitImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)This command must only be called outside of a video coding scope
VUID-vkCmdBuildAccelerationStructureNV-accelerationStructureReference-03786NNoneexplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)Each VkAccelerationStructureInstanceKHR::accelerationStructureReference value in instanceData must be a valid device address containing a value obtained from vkGetAccelerationStructureHandleNV
VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-cmdpoolYNoneimplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)The VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-parameterYNoneimplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-recordingYNVRayTracingValidateCmdBuildAccelerationStructureimplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)commandBuffer must be in the recording state
VUID-vkCmdBuildAccelerationStructureNV-commonparentYNoneimplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)Each 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-02488YNVRayTracingValidateCmdBuildAccelerationStructureexplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)dst 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-parameterYNoneimplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)dst must be a valid VkAccelerationStructureNV handle
VUID-vkCmdBuildAccelerationStructureNV-geometryCount-02241YNoneexplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)geometryCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxGeometryCount
VUID-vkCmdBuildAccelerationStructureNV-instanceData-03523NNoneexplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If instanceData is not VK_NULL_HANDLE, instanceData must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag
VUID-vkCmdBuildAccelerationStructureNV-instanceData-parameterYNoneimplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If instanceData is not VK_NULL_HANDLE, instanceData must be a valid VkBuffer handle
VUID-vkCmdBuildAccelerationStructureNV-pInfo-parameterYNoneimplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)pInfo must be a valid pointer to a valid VkAccelerationStructureInfoNV structure
VUID-vkCmdBuildAccelerationStructureNV-renderpassYNVRayTracingValidateCmdBuildAccelerationStructureimplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)This command must only be called outside of a render pass instance
VUID-vkCmdBuildAccelerationStructureNV-scratch-03522NNoneexplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)scratch must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag
VUID-vkCmdBuildAccelerationStructureNV-scratch-parameterYNoneimplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)scratch must be a valid VkBuffer handle
VUID-vkCmdBuildAccelerationStructureNV-src-parameterYNoneimplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If src is not VK_NULL_HANDLE, src must be a valid VkAccelerationStructureNV handle
VUID-vkCmdBuildAccelerationStructureNV-update-02489YNVRayTracingValidateCmdBuildAccelerationStructureexplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If update is VK_TRUE, src must not be VK_NULL_HANDLE
VUID-vkCmdBuildAccelerationStructureNV-update-02490YNVRayTracingValidateCmdBuildAccelerationStructureexplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If 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-02491YNVRayTracingValidateCmdBuildAccelerationStructureexplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If 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-02492YNoneexplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If 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-03524NNoneexplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If update is VK_TRUE, then objects that were previously active must not be made inactive as per Inactive Primitives and Instances
VUID-vkCmdBuildAccelerationStructureNV-update-03525NNoneexplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If update is VK_TRUE, then objects that were previously inactive must not be made active as per Inactive Primitives and Instances
VUID-vkCmdBuildAccelerationStructureNV-update-03526NNoneexplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If update is VK_TRUE, the src and dst objects must either be the same object or not have any memory aliasing
VUID-vkCmdBuildAccelerationStructureNV-videocodingNNoneimplicitvkCmdBuildAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)This command must only be called outside of a video coding scope
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-None-03407NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The 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-03650YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureIndirectBuild feature must be enabled
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-03649NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)commandBuffer must not be a protected command buffer
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-parameterNNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-recordingYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)commandBuffer must be in the recording state
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03698NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The 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-03701NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The 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-03702NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The 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-03703NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The 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-03706NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The 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-03800YRayTracingValidateCmdBuildAccelerationStructuresKHRexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The dstAccelerationStructure member of any element of pInfos must be a valid VkAccelerationStructureKHR handle
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-firstVertex-03770NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, if the corresponding geometry uses indices, its firstVertex member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-geometry-03673NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The 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-arraylengthYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)infoCount must be greater than 0
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-mode-04628NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The mode member of each element of pInfos must be a valid VkBuildAccelerationStructureModeKHR value
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03645NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03646NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For any element of pIndirectDeviceAddresses[i], all device addresses between pIndirectDeviceAddresses[i] and pIndirectDeviceAddresses[i] + (pInfos[i].geometryCount {times} pIndirectStrides[i]) - 1 must be in the buffer device address range of the same buffer
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03647NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03648NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)Each element of pIndirectDeviceAddresses must be a multiple of 4
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03651NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)Each VkAccelerationStructureBuildRangeInfoKHR structure referenced by any element of pIndirectDeviceAddresses must be a valid VkAccelerationStructureBuildRangeInfoKHR structure
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-parameterYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)pIndirectDeviceAddresses must be a valid pointer to an array of infoCount VkDeviceAddress values
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectStrides-03787NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)Each element of pIndirectStrides must be a multiple of 4
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectStrides-parameterYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)pIndirectStrides must be a valid pointer to an array of infoCount uint32_t values
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03403YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The 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-03652NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)pInfos[i].dstAccelerationStructure must have been created with a value of VkAccelerationStructureCreateInfoKHR::size greater than or equal to the memory size required by the build operation, as returned by vkGetAccelerationStructureBuildSizesKHR with pBuildInfo = pInfos[i] and pMaxPrimitiveCounts = ppMaxPrimitiveCounts[i]
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03663NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03664NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03667YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03668NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03671NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If 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-03672NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If 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-03674NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)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-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03699YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03700YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03707YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to device memory
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03708YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03709NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03710YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For each element of pInfos, its scratchData.deviceAddress member must be a multiple of VkPhysicalDeviceAccelerationStructurePropertiesKHR::minAccelerationStructureScratchOffsetAlignment
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03711NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03712NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03714YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03715YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03716YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03717NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03758YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03759YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03760YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03761NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03762NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03763NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03764NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03765NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03766NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03767NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03768NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03801NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For each element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, the corresponding pname:ppMaxPrimitiveCounts[i][j] must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03802NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For each element of pInfos, its scratchData.deviceAddress member must be a valid device address obtained from vkGetBufferDeviceAddress
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03803NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03804NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03805NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03806NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03807NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03808NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03809NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03810YNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03811NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03812NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03813NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03814NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-04630NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-06707NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-parameterYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)pInfos must be a valid pointer to an array of infoCount valid VkAccelerationStructureBuildGeometryInfoKHR structures
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-ppMaxPrimitiveCounts-03653NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)Each ppMaxPrimitiveCounts[i][j] must be greater than or equal to the the primitiveCount value specified by the VkAccelerationStructureBuildRangeInfoKHR structure located at pIndirectDeviceAddresses[i] + (j {times} pIndirectStrides[i])
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-ppMaxPrimitiveCounts-parameterYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)ppMaxPrimitiveCounts must be a valid pointer to an array of infoCount uint32_t values
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-primitiveCount-03769NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, its primitiveCount member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-renderpassYNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)This command must only be called outside of a render pass instance
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-scratchData-03704NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The 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-03705NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The 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-04629NNoneexplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If the srcAccelerationStructure member of any element of pInfos is not VK_NULL_HANDLE, the srcAccelerationStructure member must be a valid VkAccelerationStructureKHR handle
VUID-vkCmdBuildAccelerationStructuresIndirectKHR-videocodingNNoneimplicitvkCmdBuildAccelerationStructuresIndirectKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)This command must only be called outside of a video coding scope
VUID-vkCmdBuildAccelerationStructuresKHR-None-03407NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The 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-commandBuffer-cmdpoolYNoneimplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-parameterYNoneimplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-recordingYRayTracingValidateCmdBuildAccelerationStructuresKHRimplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)commandBuffer must be in the recording state
VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03698YNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The 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-03701NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The 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-03702NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The 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-03703NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The 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-03706NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The 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-03800YRayTracingValidateCmdBuildAccelerationStructuresKHRexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The dstAccelerationStructure member of any element of pInfos must be a valid VkAccelerationStructureKHR handle
VUID-vkCmdBuildAccelerationStructuresKHR-firstVertex-03770NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, if the corresponding geometry uses indices, its firstVertex member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresKHR-geometry-03673YRayTracingValidateCmdBuildAccelerationStructuresKHRexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The 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-arraylengthYRayTracingValidateCmdBuildAccelerationStructuresKHRimplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)infoCount must be greater than 0
VUID-vkCmdBuildAccelerationStructuresKHR-mode-04628NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The mode member of each element of pInfos must be a valid VkBuildAccelerationStructureModeKHR value
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03403YNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The 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-03663NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03664NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03667YNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03668NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03671NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If 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-03672NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If 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-03674YRayTracingValidateCmdBuildAccelerationStructuresKHRexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)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-vkCmdBuildAccelerationStructuresKHR-pInfos-03675NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For each pInfos[i], dstAccelerationStructure must have been created with a value of VkAccelerationStructureCreateInfoKHR::size greater than or equal to the memory size required by the build operation, as returned by vkGetAccelerationStructureBuildSizesKHR with pBuildInfo = pInfos[i] and with each element of the pMaxPrimitiveCounts array greater than or equal to the equivalent ppBuildRangeInfos[i][j].primitiveCount values for j in [0,pInfos[i].geometryCount)
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03699YNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03700YNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03707YRayTracingValidateCmdBuildAccelerationStructuresKHRexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to device memory
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03708YNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03709NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03710YNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For each element of pInfos, its scratchData.deviceAddress member must be a multiple of VkPhysicalDeviceAccelerationStructurePropertiesKHR::minAccelerationStructureScratchOffsetAlignment
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03711NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03712NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03714YNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03715YNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03716YNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03717NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03758YNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03759YNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03760YNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03761NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03762NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03763NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03764NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03765NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03766NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03767NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03768NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03801NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For each element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, the corresponding pname:ppBuildRangeInfos[i][j].pname:primitiveCount must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03802YRayTracingValidateCmdBuildAccelerationStructuresKHRexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For each element of pInfos, its scratchData.deviceAddress member must be a valid device address obtained from vkGetBufferDeviceAddress
VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03803NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03804NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03805NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03806NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03807NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03808NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03809NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03810YNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03811NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03812NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03813NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-03814NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-04630YRayTracingUpdateAccelerationStructureKHRexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-06707NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For 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-parameterYRayTracingValidateCmdBuildAccelerationStructuresKHRimplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)pInfos must be a valid pointer to an array of infoCount valid VkAccelerationStructureBuildGeometryInfoKHR structures
VUID-vkCmdBuildAccelerationStructuresKHR-ppBuildRangeInfos-03676NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)Each element of ppBuildRangeInfos[i] must be a valid pointer to an array of pInfos[i].geometryCount VkAccelerationStructureBuildRangeInfoKHR structures
VUID-vkCmdBuildAccelerationStructuresKHR-ppBuildRangeInfos-parameterYRayTracingValidateCmdBuildAccelerationStructuresKHRimplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)ppBuildRangeInfos must be a valid pointer to an array of infoCount VkAccelerationStructureBuildRangeInfoKHR structures
VUID-vkCmdBuildAccelerationStructuresKHR-primitiveCount-03769NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, its primitiveCount member must have the same value which was specified when srcAccelerationStructure was last built
VUID-vkCmdBuildAccelerationStructuresKHR-renderpassYRayTracingValidateCmdBuildAccelerationStructuresKHRimplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)This command must only be called outside of a render pass instance
VUID-vkCmdBuildAccelerationStructuresKHR-scratchData-03704NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The 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-03705NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The 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-04629NNoneexplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If the srcAccelerationStructure member of any element of pInfos is not VK_NULL_HANDLE, the srcAccelerationStructure member must be a valid VkAccelerationStructureKHR handle
VUID-vkCmdBuildAccelerationStructuresKHR-videocodingNNoneimplicitvkCmdBuildAccelerationStructuresKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)This command must only be called outside of a video coding scope
VUID-vkCmdBuildMicromapsEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdBuildMicromapsEXT(VK_EXT_opacity_micromap)The VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdBuildMicromapsEXT-commandBuffer-parameterYNoneimplicitvkCmdBuildMicromapsEXT(VK_EXT_opacity_micromap)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdBuildMicromapsEXT-commandBuffer-recordingYNoneimplicitvkCmdBuildMicromapsEXT(VK_EXT_opacity_micromap)commandBuffer must be in the recording state
VUID-vkCmdBuildMicromapsEXT-data-07510NNoneexplicitvkCmdBuildMicromapsEXT(VK_EXT_opacity_micromap)The 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-07463NNoneexplicitvkCmdBuildMicromapsEXT(VK_EXT_opacity_micromap)The dstMicromap member of any element of pInfos must be a valid VkMicromapEXT handle
VUID-vkCmdBuildMicromapsEXT-dstMicromap-07465NNoneexplicitvkCmdBuildMicromapsEXT(VK_EXT_opacity_micromap)The 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-07466NNoneexplicitvkCmdBuildMicromapsEXT(VK_EXT_opacity_micromap)The 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-arraylengthYNoneimplicitvkCmdBuildMicromapsEXT(VK_EXT_opacity_micromap)infoCount must be greater than 0
VUID-vkCmdBuildMicromapsEXT-mode-07462NNoneexplicitvkCmdBuildMicromapsEXT(VK_EXT_opacity_micromap)The mode member of each element of pInfos must be a valid VkBuildMicromapModeEXT value
VUID-vkCmdBuildMicromapsEXT-pInfos-07461NNoneexplicitvkCmdBuildMicromapsEXT(VK_EXT_opacity_micromap)For 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-07464NNoneexplicitvkCmdBuildMicromapsEXT(VK_EXT_opacity_micromap)For each element of pInfos its type member must match the value of VkMicromapCreateInfoEXT::type when its dstMicromap was created
VUID-vkCmdBuildMicromapsEXT-pInfos-07508NNoneexplicitvkCmdBuildMicromapsEXT(VK_EXT_opacity_micromap)For each element of pInfos, the buffer used to create its dstMicromap member must be bound to device memory
VUID-vkCmdBuildMicromapsEXT-pInfos-07509NNoneexplicitvkCmdBuildMicromapsEXT(VK_EXT_opacity_micromap)If 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-07511NNoneexplicitvkCmdBuildMicromapsEXT(VK_EXT_opacity_micromap)For 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-07512NNoneexplicitvkCmdBuildMicromapsEXT(VK_EXT_opacity_micromap)For each element of pInfos, its scratchData.deviceAddress, data.deviceAddress, and triangleArray.deviceAddress members must be valid device addresses obtained from vkGetBufferDeviceAddress
VUID-vkCmdBuildMicromapsEXT-pInfos-07513NNoneexplicitvkCmdBuildMicromapsEXT(VK_EXT_opacity_micromap)For 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-07514NNoneexplicitvkCmdBuildMicromapsEXT(VK_EXT_opacity_micromap)For each element of pInfos, its scratchData.deviceAddress member must be a multiple of VkPhysicalDeviceAccelerationStructurePropertiesKHR::minAccelerationStructureScratchOffsetAlignment
VUID-vkCmdBuildMicromapsEXT-pInfos-07515NNoneexplicitvkCmdBuildMicromapsEXT(VK_EXT_opacity_micromap)For each element of pInfos, its triangleArray.deviceAddress and data.deviceAddress members must be a multiple of 256
VUID-vkCmdBuildMicromapsEXT-pInfos-parameterYNoneimplicitvkCmdBuildMicromapsEXT(VK_EXT_opacity_micromap)pInfos must be a valid pointer to an array of infoCount valid VkMicromapBuildInfoEXT structures
VUID-vkCmdBuildMicromapsEXT-renderpassYNoneimplicitvkCmdBuildMicromapsEXT(VK_EXT_opacity_micromap)This command must only be called outside of a render pass instance
VUID-vkCmdBuildMicromapsEXT-scratchData-07467NNoneexplicitvkCmdBuildMicromapsEXT(VK_EXT_opacity_micromap)The 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-videocodingNNoneimplicitvkCmdBuildMicromapsEXT(VK_EXT_opacity_micromap)This command must only be called outside of a video coding scope
VUID-vkCmdClearAttachments-aspectMask-07271YMissingClearAttachment, DynamicRenderingClearAttachmentsexplicitvkCmdClearAttachmentscoreIf 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-attachmentCount-arraylengthYNoneimplicitvkCmdClearAttachmentscoreattachmentCount must be greater than 0
VUID-vkCmdClearAttachments-baseArrayLayer-00018YInvalidClearColorAttachmentsWithMultiviewexplicitvkCmdClearAttachments(VK_VERSION_1_1,VK_KHR_multiview)If the render pass instance this is recorded in uses multiview, then baseArrayLayer must be zero and layerCount must be one
VUID-vkCmdClearAttachments-commandBuffer-02504YInvalidMixingProtectedResourcesexplicitvkCmdClearAttachments(VK_VERSION_1_1)If 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-02505YInvalidMixingProtectedResourcesexplicitvkCmdClearAttachments(VK_VERSION_1_1)If commandBuffer is a protected command buffer and protectedNoFault is not supported, each attachment to be cleared must not be an unprotected image
VUID-vkCmdClearAttachments-commandBuffer-cmdpoolYNoneimplicitvkCmdClearAttachmentscoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdClearAttachments-commandBuffer-parameterYNoneimplicitvkCmdClearAttachmentscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdClearAttachments-commandBuffer-recordingYNoneimplicitvkCmdClearAttachmentscorecommandBuffer must be in the recording state
VUID-vkCmdClearAttachments-layerCount-01934YClearColorAttachmentsZeroLayercountexplicitvkCmdClearAttachmentscoreThe layerCount member of each element of pRects must not be 0
VUID-vkCmdClearAttachments-pAttachments-07270YClearColorAttachmentsDepthStencil, DynamicRenderingClearAttachmentsexplicitvkCmdClearAttachmentscoreFor each element of pAttachments, the corresponding attachment in the current render pass instance must either not be backed by an image view, or contain each of the aspects specified in aspectMask
VUID-vkCmdClearAttachments-pAttachments-parameterYNoneimplicitvkCmdClearAttachmentscorepAttachments must be a valid pointer to an array of attachmentCount valid VkClearAttachment structures
VUID-vkCmdClearAttachments-pRects-00016YCmdClearAttachmentTests, SecondaryCommandBufferClearColorAttachmentsRenderAreaexplicitvkCmdClearAttachmentscoreThe rectangular region specified by each element of pRects must be contained within the render area of the current render pass instance
VUID-vkCmdClearAttachments-pRects-06937YCmdClearAttachmentTests, DynamicRenderingCmdClearAttachmentTestsexplicitvkCmdClearAttachmentscoreThe layers specified by each element of pRects must be contained within every attachment that pAttachments refers to, i.e. for each element of pRects, VkClearRect::baseArrayLayer + VkClearRect::layerCount must be less than or equal to the number of layers rendered to in the current render pass instance
VUID-vkCmdClearAttachments-pRects-parameterYNoneimplicitvkCmdClearAttachmentscorepRects must be a valid pointer to an array of rectCount VkClearRect structures
VUID-vkCmdClearAttachments-rect-02682YClearColorAttachmentsZeroExtentexplicitvkCmdClearAttachmentscoreThe rect member of each element of pRects must have an extent.width greater than 0
VUID-vkCmdClearAttachments-rect-02683YClearColorAttachmentsZeroExtentexplicitvkCmdClearAttachmentscoreThe rect member of each element of pRects must have an extent.height greater than 0
VUID-vkCmdClearAttachments-rectCount-arraylengthYNoneimplicitvkCmdClearAttachmentscorerectCount must be greater than 0
VUID-vkCmdClearAttachments-renderpassYNoneimplicitvkCmdClearAttachmentscoreThis command must only be called inside of a render pass instance
VUID-vkCmdClearAttachments-videocodingNNoneimplicitvkCmdClearAttachmentscoreThis command must only be called outside of a video coding scope
VUID-vkCmdClearColorImage-aspectMask-02498YNoneexplicitvkCmdClearColorImagecoreThe VkImageSubresourceRange::aspectMask members of the elements of the pRanges array must each only include VK_IMAGE_ASPECT_COLOR_BIT
VUID-vkCmdClearColorImage-baseArrayLayer-01472YClearColorImageWithBadRangeexplicitvkCmdClearColorImagecoreThe 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-01470YClearColorImageWithBadRangeexplicitvkCmdClearColorImagecoreThe 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-01805YInvalidMixingProtectedResourcesexplicitvkCmdClearColorImage(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, image must not be a protected image
VUID-vkCmdClearColorImage-commandBuffer-01806YInvalidMixingProtectedResourcesexplicitvkCmdClearColorImage(VK_VERSION_1_1)If commandBuffer is a protected command buffer and protectedNoFault is not supported, must not be an unprotected image
VUID-vkCmdClearColorImage-commandBuffer-cmdpoolYNoneimplicitvkCmdClearColorImagecoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdClearColorImage-commandBuffer-parameterYNoneimplicitvkCmdClearColorImagecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdClearColorImage-commandBuffer-recordingYNoneimplicitvkCmdClearColorImagecorecommandBuffer must be in the recording state
VUID-vkCmdClearColorImage-commonparentYNoneimplicitvkCmdClearColorImagecoreBoth of commandBuffer, and image must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdClearColorImage-image-00002YClearImageErrorsexplicitvkCmdClearColorImagecoreimage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdClearColorImage-image-00003YNoneexplicitvkCmdClearColorImagecoreIf image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdClearColorImage-image-00007YClearImageErrorsexplicitvkCmdClearColorImagecoreimage must not have a compressed or depth/stencil format
VUID-vkCmdClearColorImage-image-01545YClearColorImageWithInvalidFormatexplicitvkCmdClearColorImage(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)image must not use any of the formats that require a sampler {YCbCr} conversion
VUID-vkCmdClearColorImage-image-01993YNoneexplicitvkCmdClearColorImage(VK_VERSION_1_1,VK_KHR_maintenance1)The format features of image must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-vkCmdClearColorImage-image-parameterYNoneimplicitvkCmdClearColorImagecoreimage must be a valid VkImage handle
VUID-vkCmdClearColorImage-imageLayout-00004YInvalidImageLayoutexplicitvkCmdClearColorImagecoreimageLayout 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-00005YInvalidImageLayoutexplicitvkCmdClearColorImage!(VK_KHR_shared_presentable_image)imageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdClearColorImage-imageLayout-01394YClearColorImageInvalidImageLayoutexplicitvkCmdClearColorImage(VK_KHR_shared_presentable_image)imageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
VUID-vkCmdClearColorImage-imageLayout-parameterYNoneimplicitvkCmdClearColorImagecoreimageLayout must be a valid VkImageLayout value
VUID-vkCmdClearColorImage-pColor-04961YCmdClearColorImageNullColorexplicitvkCmdClearColorImagecorepColor must be a valid pointer to a VkClearColorValue union
VUID-vkCmdClearColorImage-pRanges-01692YClearColorImageWithBadRangeexplicitvkCmdClearColorImagecoreFor 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-01693YClearColorImageWithBadRangeexplicitvkCmdClearColorImagecoreFor each VkImageSubresourceRange element of pRanges, if the layerCount member is not VK_REMAINING_ARRAY_LAYERS, then baseArrayLayer + layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created
VUID-vkCmdClearColorImage-pRanges-parameterYNoneimplicitvkCmdClearColorImagecorepRanges must be a valid pointer to an array of rangeCount valid VkImageSubresourceRange structures
VUID-vkCmdClearColorImage-rangeCount-arraylengthYNoneimplicitvkCmdClearColorImagecorerangeCount must be greater than 0
VUID-vkCmdClearColorImage-renderpassYClearColorImageWithinRenderPassimplicitvkCmdClearColorImagecoreThis command must only be called outside of a render pass instance
VUID-vkCmdClearColorImage-videocodingNNoneimplicitvkCmdClearColorImagecoreThis command must only be called outside of a video coding scope
VUID-vkCmdClearDepthStencilImage-aspectMask-02824YNoneexplicitvkCmdClearDepthStencilImagecoreThe 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-01476YClearDepthStencilWithBadRangeexplicitvkCmdClearDepthStencilImagecoreThe 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-01474YClearDepthStencilWithBadRangeexplicitvkCmdClearDepthStencilImagecoreThe 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-01807YNoneexplicitvkCmdClearDepthStencilImage(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, image must not be a protected image
VUID-vkCmdClearDepthStencilImage-commandBuffer-01808YNoneexplicitvkCmdClearDepthStencilImage(VK_VERSION_1_1)If commandBuffer is a protected command buffer and protectedNoFault is not supported, image must not be an unprotected image
VUID-vkCmdClearDepthStencilImage-commandBuffer-cmdpoolYNoneimplicitvkCmdClearDepthStencilImagecoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdClearDepthStencilImage-commandBuffer-parameterYNoneimplicitvkCmdClearDepthStencilImagecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdClearDepthStencilImage-commandBuffer-recordingYNoneimplicitvkCmdClearDepthStencilImagecorecommandBuffer must be in the recording state
VUID-vkCmdClearDepthStencilImage-commonparentYNoneimplicitvkCmdClearDepthStencilImagecoreBoth of commandBuffer, and image must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdClearDepthStencilImage-image-00009YClearDepthStencilWithBadAspect, ClearDepthStencilImageErrorsexplicitvkCmdClearDepthStencilImage!(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdClearDepthStencilImage-image-00010YNoneexplicitvkCmdClearDepthStencilImagecoreIf image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdClearDepthStencilImage-image-00014YClearImageErrorsexplicitvkCmdClearDepthStencilImagecoreimage must have a depth/stencil format
VUID-vkCmdClearDepthStencilImage-image-01994YNoneexplicitvkCmdClearDepthStencilImage(VK_VERSION_1_1,VK_KHR_maintenance1)The format features of image must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-vkCmdClearDepthStencilImage-image-02825YClearDepthStencilWithBadAspectexplicitvkCmdClearDepthStencilImagecoreIf 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-02826YClearImageErrorsexplicitvkCmdClearDepthStencilImagecoreIf the image's format does not have a depth component, then the VkImageSubresourceRange::aspectMask member of each element of the pRanges array must not include the VK_IMAGE_ASPECT_DEPTH_BIT bit
VUID-vkCmdClearDepthStencilImage-image-parameterYNoneimplicitvkCmdClearDepthStencilImagecoreimage must be a valid VkImage handle
VUID-vkCmdClearDepthStencilImage-imageLayout-00011YInvalidImageLayoutexplicitvkCmdClearDepthStencilImagecoreimageLayout 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-00012YInvalidImageLayoutexplicitvkCmdClearDepthStencilImagecoreimageLayout must be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdClearDepthStencilImage-imageLayout-parameterYNoneimplicitvkCmdClearDepthStencilImagecoreimageLayout must be a valid VkImageLayout value
VUID-vkCmdClearDepthStencilImage-pDepthStencil-parameterYNoneimplicitvkCmdClearDepthStencilImagecorepDepthStencil must be a valid pointer to a valid VkClearDepthStencilValue structure
VUID-vkCmdClearDepthStencilImage-pRanges-01694YClearDepthStencilWithBadRangeexplicitvkCmdClearDepthStencilImagecoreFor 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-01695YClearDepthStencilWithBadRangeexplicitvkCmdClearDepthStencilImagecoreFor 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-02658YClearDepthStencilWithBadAspectexplicitvkCmdClearDepthStencilImage(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If 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-02659YClearDepthStencilWithBadAspectexplicitvkCmdClearDepthStencilImage(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If 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-02660YClearDepthStencilWithBadAspect, ClearDepthStencilImageErrorsexplicitvkCmdClearDepthStencilImage(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If the aspect member of any element of pRanges includes VK_IMAGE_ASPECT_DEPTH_BIT, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageCreateInfo::usage used to create image
VUID-vkCmdClearDepthStencilImage-pRanges-parameterYNoneimplicitvkCmdClearDepthStencilImagecorepRanges must be a valid pointer to an array of rangeCount valid VkImageSubresourceRange structures
VUID-vkCmdClearDepthStencilImage-rangeCount-arraylengthYNoneimplicitvkCmdClearDepthStencilImagecorerangeCount must be greater than 0
VUID-vkCmdClearDepthStencilImage-renderpassYClearDepthStencilImageErrorsimplicitvkCmdClearDepthStencilImagecoreThis command must only be called outside of a render pass instance
VUID-vkCmdClearDepthStencilImage-videocodingNNoneimplicitvkCmdClearDepthStencilImagecoreThis command must only be called outside of a video coding scope
VUID-vkCmdControlVideoCodingKHR-bufferlevelYNoneimplicitvkCmdControlVideoCodingKHR(VK_KHR_video_queue)commandBuffer must be a primary VkCommandBuffer
VUID-vkCmdControlVideoCodingKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdControlVideoCodingKHR(VK_KHR_video_queue)The VkCommandPool that commandBuffer was allocated from must support decode, or encode operations
VUID-vkCmdControlVideoCodingKHR-commandBuffer-parameterYNoneimplicitvkCmdControlVideoCodingKHR(VK_KHR_video_queue)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdControlVideoCodingKHR-commandBuffer-recordingYNoneimplicitvkCmdControlVideoCodingKHR(VK_KHR_video_queue)commandBuffer must be in the recording state
VUID-vkCmdControlVideoCodingKHR-pCodingControlInfo-parameterYNoneimplicitvkCmdControlVideoCodingKHR(VK_KHR_video_queue)pCodingControlInfo must be a valid pointer to a valid VkVideoCodingControlInfoKHR structure
VUID-vkCmdControlVideoCodingKHR-renderpassYNoneimplicitvkCmdControlVideoCodingKHR(VK_KHR_video_queue)This command must only be called outside of a render pass instance
VUID-vkCmdControlVideoCodingKHR-videocodingNNoneimplicitvkCmdControlVideoCodingKHR(VK_KHR_video_queue)This command must only be called inside of a video coding scope
VUID-vkCmdCopyAccelerationStructureKHR-buffer-03737YRayTracingCopyUnboundAccelerationStructure, RayTracingCmdCopyUnboundAccelerationStructureexplicitvkCmdCopyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The buffer used to create pInfo->src must be bound to device memory
VUID-vkCmdCopyAccelerationStructureKHR-buffer-03738YRayTracingCopyUnboundAccelerationStructure, RayTracingCmdCopyUnboundAccelerationStructureexplicitvkCmdCopyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The buffer used to create pInfo->dst must be bound to device memory
VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-parameterYNoneimplicitvkCmdCopyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-recordingYNoneimplicitvkCmdCopyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)commandBuffer must be in the recording state
VUID-vkCmdCopyAccelerationStructureKHR-pInfo-parameterYNoneimplicitvkCmdCopyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)pInfo must be a valid pointer to a valid VkCopyAccelerationStructureInfoKHR structure
VUID-vkCmdCopyAccelerationStructureKHR-renderpassYNoneimplicitvkCmdCopyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)This command must only be called outside of a render pass instance
VUID-vkCmdCopyAccelerationStructureKHR-videocodingNNoneimplicitvkCmdCopyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)This command must only be called outside of a video coding scope
VUID-vkCmdCopyAccelerationStructureNV-buffer-03718NNoneexplicitvkCmdCopyAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)The buffer used to create src must be bound to device memory
VUID-vkCmdCopyAccelerationStructureNV-buffer-03719NNoneexplicitvkCmdCopyAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)The buffer used to create dst must be bound to device memory
VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)The VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-parameterYNoneimplicitvkCmdCopyAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-recordingYNVRayTracingValidateCmdCopyAccelerationStructureimplicitvkCmdCopyAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)commandBuffer must be in the recording state
VUID-vkCmdCopyAccelerationStructureNV-commonparentYNoneimplicitvkCmdCopyAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)Each of commandBuffer, dst, and src must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdCopyAccelerationStructureNV-dst-parameterYNoneimplicitvkCmdCopyAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)dst must be a valid VkAccelerationStructureNV handle
VUID-vkCmdCopyAccelerationStructureNV-mode-03410YNVRayTracingValidateCmdCopyAccelerationStructureexplicitvkCmdCopyAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR or VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR
VUID-vkCmdCopyAccelerationStructureNV-mode-parameterYNVRayTracingValidateCmdCopyAccelerationStructureimplicitvkCmdCopyAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)mode must be a valid VkCopyAccelerationStructureModeKHR value
VUID-vkCmdCopyAccelerationStructureNV-renderpassYNVRayTracingValidateCmdCopyAccelerationStructureimplicitvkCmdCopyAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)This command must only be called outside of a render pass instance
VUID-vkCmdCopyAccelerationStructureNV-src-03411YNVRayTracingValidateCmdCopyAccelerationStructureexplicitvkCmdCopyAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If 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-04963NNoneexplicitvkCmdCopyAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)The source acceleration structure src must have been constructed prior to the execution of this command
VUID-vkCmdCopyAccelerationStructureNV-src-parameterYNoneimplicitvkCmdCopyAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)src must be a valid VkAccelerationStructureNV handle
VUID-vkCmdCopyAccelerationStructureNV-videocodingNNoneimplicitvkCmdCopyAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)This command must only be called outside of a video coding scope
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-None-03559YRayTracingCmdCopyAccelerationStructureToMemoryKHRexplicitvkCmdCopyAccelerationStructureToMemoryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The buffer used to create pInfo->src must be bound to device memory
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyAccelerationStructureToMemoryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-parameterYNoneimplicitvkCmdCopyAccelerationStructureToMemoryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-recordingYNoneimplicitvkCmdCopyAccelerationStructureToMemoryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)commandBuffer must be in the recording state
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03739NNoneexplicitvkCmdCopyAccelerationStructureToMemoryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pInfo->dst.deviceAddress must be a valid device address for a buffer bound to device memory
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03740YNoneexplicitvkCmdCopyAccelerationStructureToMemoryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pInfo->dst.deviceAddress must be aligned to 256 bytes
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03741NNoneexplicitvkCmdCopyAccelerationStructureToMemoryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If 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-parameterYNoneimplicitvkCmdCopyAccelerationStructureToMemoryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pInfo must be a valid pointer to a valid VkCopyAccelerationStructureToMemoryInfoKHR structure
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-renderpassYNoneimplicitvkCmdCopyAccelerationStructureToMemoryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)This command must only be called outside of a render pass instance
VUID-vkCmdCopyAccelerationStructureToMemoryKHR-videocodingNNoneimplicitvkCmdCopyAccelerationStructureToMemoryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)This command must only be called outside of a video coding scope
VUID-vkCmdCopyBuffer-commandBuffer-01822YInvalidMixingProtectedResourcesexplicitvkCmdCopyBuffer(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer
VUID-vkCmdCopyBuffer-commandBuffer-01823YInvalidMixingProtectedResourcesexplicitvkCmdCopyBuffer(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer
VUID-vkCmdCopyBuffer-commandBuffer-01824YInvalidMixingProtectedResourcesexplicitvkCmdCopyBuffer(VK_VERSION_1_1)If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer
VUID-vkCmdCopyBuffer-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyBuffercoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyBuffer-commandBuffer-parameterYNoneimplicitvkCmdCopyBuffercorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyBuffer-commandBuffer-recordingYNoneimplicitvkCmdCopyBuffercorecommandBuffer must be in the recording state
VUID-vkCmdCopyBuffer-commonparentYNoneimplicitvkCmdCopyBuffercoreEach of commandBuffer, dstBuffer, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdCopyBuffer-dstBuffer-00120YNoneexplicitvkCmdCopyBuffercoredstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdCopyBuffer-dstBuffer-00121YNoneexplicitvkCmdCopyBuffercoreIf dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyBuffer-dstBuffer-parameterYNoneimplicitvkCmdCopyBuffercoredstBuffer must be a valid VkBuffer handle
VUID-vkCmdCopyBuffer-dstOffset-00114YBufferExtentsexplicitvkCmdCopyBuffercoreThe dstOffset member of each element of pRegions must be less than the size of dstBuffer
VUID-vkCmdCopyBuffer-pRegions-00117YTestCompletelyOverlappingBufferCopy, BufferExtents, TestCopyingInterleavedRegions, OverlappingSparseBufferCopyexplicitvkCmdCopyBuffercoreThe union of the source regions, and the union of the destination regions, specified by the elements of pRegions, must not overlap in memory
VUID-vkCmdCopyBuffer-pRegions-parameterYNoneimplicitvkCmdCopyBuffercorepRegions must be a valid pointer to an array of regionCount valid VkBufferCopy structures
VUID-vkCmdCopyBuffer-regionCount-arraylengthYNoneimplicitvkCmdCopyBuffercoreregionCount must be greater than 0
VUID-vkCmdCopyBuffer-renderpassYNoneimplicitvkCmdCopyBuffercoreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyBuffer-size-00115YBufferExtentsexplicitvkCmdCopyBuffercoreThe size member of each element of pRegions must be less than or equal to the size of srcBuffer minus srcOffset
VUID-vkCmdCopyBuffer-size-00116YBufferExtentsexplicitvkCmdCopyBuffercoreThe size member of each element of pRegions must be less than or equal to the size of dstBuffer minus dstOffset
VUID-vkCmdCopyBuffer-srcBuffer-00118YNoneexplicitvkCmdCopyBuffercoresrcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
VUID-vkCmdCopyBuffer-srcBuffer-00119YNoneexplicitvkCmdCopyBuffercoreIf srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyBuffer-srcBuffer-parameterYNoneimplicitvkCmdCopyBuffercoresrcBuffer must be a valid VkBuffer handle
VUID-vkCmdCopyBuffer-srcOffset-00113YBufferExtentsexplicitvkCmdCopyBuffercoreThe srcOffset member of each element of pRegions must be less than the size of srcBuffer
VUID-vkCmdCopyBuffer-videocodingNNoneimplicitvkCmdCopyBuffercoreThis command must only be called outside of a video coding scope
VUID-vkCmdCopyBuffer2-commandBuffer-01822YNoneexplicitvkCmdCopyBuffer2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer
VUID-vkCmdCopyBuffer2-commandBuffer-01823YNoneexplicitvkCmdCopyBuffer2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer
VUID-vkCmdCopyBuffer2-commandBuffer-01824YNoneexplicitvkCmdCopyBuffer2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer
VUID-vkCmdCopyBuffer2-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyBuffer2(VK_VERSION_1_3,VK_KHR_copy_commands2)The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyBuffer2-commandBuffer-parameterYNoneimplicitvkCmdCopyBuffer2(VK_VERSION_1_3,VK_KHR_copy_commands2)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyBuffer2-commandBuffer-recordingYNoneimplicitvkCmdCopyBuffer2(VK_VERSION_1_3,VK_KHR_copy_commands2)commandBuffer must be in the recording state
VUID-vkCmdCopyBuffer2-pCopyBufferInfo-parameterYNoneimplicitvkCmdCopyBuffer2(VK_VERSION_1_3,VK_KHR_copy_commands2)pCopyBufferInfo must be a valid pointer to a valid VkCopyBufferInfo2 structure
VUID-vkCmdCopyBuffer2-renderpassYNoneimplicitvkCmdCopyBuffer2(VK_VERSION_1_3,VK_KHR_copy_commands2)This command must only be called outside of a render pass instance
VUID-vkCmdCopyBuffer2-videocodingNNoneimplicitvkCmdCopyBuffer2(VK_VERSION_1_3,VK_KHR_copy_commands2)This command must only be called outside of a video coding scope
VUID-vkCmdCopyBufferToImage-None-00214NNoneexplicitvkCmdCopyBufferToImage!(VK_EXT_depth_range_unrestricted)For each element of pRegions whose imageSubresource contains a depth aspect, the data in srcBuffer must be in the range [0,1]
VUID-vkCmdCopyBufferToImage-aspectMask-00211YNoneexplicitvkCmdCopyBufferToImagecoreFor each element of pRegions, imageSubresource.aspectMask must specify aspects present in {imageparam}
VUID-vkCmdCopyBufferToImage-baseArrayLayer-00213YNoneexplicitvkCmdCopyBufferToImagecoreIf {imageparam} 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-bufferImageHeight-00204YNoneexplicitvkCmdCopyBufferToImagecoreFor each element of pRegions, bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of {imageparam}
VUID-vkCmdCopyBufferToImage-bufferOffset-00193YImageCopyTransferQueueFlags, MiscImageLayerTestsexplicitvkCmdCopyBufferToImage!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If {imageparam} does not have a depth/stencil format, then for each element of pRegions, bufferOffset must be a multiple of the format's texel block size
VUID-vkCmdCopyBufferToImage-bufferOffset-01558YNoneexplicitvkCmdCopyBufferToImage(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If {imageparam} does not have either a depth/stencil or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the format's texel block size
VUID-vkCmdCopyBufferToImage-bufferOffset-01559YImageBufferCopyTestsexplicitvkCmdCopyBufferToImage(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If {imageparam} 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-bufferRowLength-00203YNoneexplicitvkCmdCopyBufferToImagecoreFor each element of pRegions, bufferRowLength must be a multiple of the texel block extent width of the VkFormat of {imageparam}
VUID-vkCmdCopyBufferToImage-commandBuffer-01828YInvalidMixingProtectedResourcesexplicitvkCmdCopyBufferToImage(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer
VUID-vkCmdCopyBufferToImage-commandBuffer-01829YInvalidMixingProtectedResourcesexplicitvkCmdCopyBufferToImage(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdCopyBufferToImage-commandBuffer-01830YInvalidMixingProtectedResourcesexplicitvkCmdCopyBufferToImage(VK_VERSION_1_1)If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdCopyBufferToImage-commandBuffer-07737YImageCopyTransferQueueFlagsexplicitvkCmdCopyBufferToImagecoreIf 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 {regionsparam} must be a multiple of 4
VUID-vkCmdCopyBufferToImage-commandBuffer-07739YDepthStencilImageCopyNoGraphicsQueueFlagsexplicitvkCmdCopyBufferToImagecoreIf the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT, for each element of {regionsparam}, the aspectMask member of imageSubresource must not be VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT
VUID-vkCmdCopyBufferToImage-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyBufferToImagecoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyBufferToImage-commandBuffer-parameterYNoneimplicitvkCmdCopyBufferToImagecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyBufferToImage-commandBuffer-recordingYImageBufferCopyTestsimplicitvkCmdCopyBufferToImagecorecommandBuffer must be in the recording state
VUID-vkCmdCopyBufferToImage-commonparentYNoneimplicitvkCmdCopyBufferToImagecoreEach of commandBuffer, dstImage, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdCopyBufferToImage-dstImage-00177YInvalidUsageBitsexplicitvkCmdCopyBufferToImagecoredstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdCopyBufferToImage-dstImage-00178YNoneexplicitvkCmdCopyBufferToImagecoreIf dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyBufferToImage-dstImage-00179YNoneexplicitvkCmdCopyBufferToImagecoredstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-vkCmdCopyBufferToImage-dstImage-01997YNoneexplicitvkCmdCopyBufferToImage(VK_VERSION_1_1,VK_KHR_maintenance1)The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-vkCmdCopyBufferToImage-dstImage-02543YNoneexplicitvkCmdCopyBufferToImage(VK_EXT_fragment_density_map)dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-vkCmdCopyBufferToImage-dstImage-parameterYNoneimplicitvkCmdCopyBufferToImagecoredstImage must be a valid VkImage handle
VUID-vkCmdCopyBufferToImage-dstImageLayout-00180YImageBufferCopyTestsexplicitvkCmdCopyBufferToImagecoredstImageLayout 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-00181YNoneexplicitvkCmdCopyBufferToImage!(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdCopyBufferToImage-dstImageLayout-01396YNoneexplicitvkCmdCopyBufferToImage(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
VUID-vkCmdCopyBufferToImage-dstImageLayout-parameterYNoneimplicitvkCmdCopyBufferToImagecoredstImageLayout must be a valid VkImageLayout value
VUID-vkCmdCopyBufferToImage-imageExtent-00207YCompressedImageMipCopyTestsexplicitvkCmdCopyBufferToImagecoreFor each element of pRegions, if the sum of imageOffset.x and extent.width does not equal the width of the the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of {imageparam}
VUID-vkCmdCopyBufferToImage-imageExtent-00208YCompressedImageMipCopyTestsexplicitvkCmdCopyBufferToImagecoreFor each element of pRegions, if the sum of imageOffset.y and extent.height does not equal the height of the the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of {imageparam}
VUID-vkCmdCopyBufferToImage-imageExtent-00209YNoneexplicitvkCmdCopyBufferToImagecoreFor each element of pRegions, if the sum of imageOffset.z and extent.depth does not equal the depth of the the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of {imageparam}
VUID-vkCmdCopyBufferToImage-imageOffset-00200YImageBufferCopyTests, CopyBufferToCompressedImage, MiscImageLayerTestsexplicitvkCmdCopyBufferToImagecoreFor 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 {imageparam}
VUID-vkCmdCopyBufferToImage-imageOffset-07738YCompressedImageMipCopyTests, MinImageTransferGranularityexplicitvkCmdCopyBufferToImagecoreThe imageOffset and imageExtent members of each element of {regionsparam} must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties
VUID-vkCmdCopyBufferToImage-imageSubresource-01701YImageBufferCopyTestsexplicitvkCmdCopyBufferToImagecoreThe imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-vkCmdCopyBufferToImage-imageSubresource-01702YCopyImageRemainingLayers, ImageBufferCopyTestsexplicitvkCmdCopyBufferToImagecoreThe 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-pRegions-00171YCopyImageRemainingLayers, CompressedImageMipCopyTests, ImageBufferCopyTestsexplicitvkCmdCopyBufferToImagecoresrcBuffer 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-00173NNoneexplicitvkCmdCopyBufferToImagecoreThe 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-06217YImageBufferCopyTests, CopyBufferToCompressedImage, MiscImageLayerTestsexplicitvkCmdCopyBufferToImagecoreThe image region specified by each element of pRegions must be contained within the specified imageSubresource of dstImage
VUID-vkCmdCopyBufferToImage-pRegions-06218YImageBufferCopyTests, CopyBufferToCompressedImageexplicitvkCmdCopyBufferToImagecoreFor each element of pRegions, imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified imageSubresource of dstImage
VUID-vkCmdCopyBufferToImage-pRegions-06219YImageBufferCopyTestsexplicitvkCmdCopyBufferToImagecoreFor 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-pRegions-07273YImageBufferCopyTests, ImageCopyTransferQueueFlags, MiscImageLayerTestsexplicitvkCmdCopyBufferToImagecoreFor each element of pRegions, bufferOffset must be a multiple of the texel block size of the VkFormat of {imageparam}
VUID-vkCmdCopyBufferToImage-pRegions-07274YCompressedImageMipCopyTestsexplicitvkCmdCopyBufferToImagecoreFor each element of pRegions, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of {imageparam}
VUID-vkCmdCopyBufferToImage-pRegions-07275YCompressedImageMipCopyTestsexplicitvkCmdCopyBufferToImagecoreFor each element of pRegions, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of {imageparam}
VUID-vkCmdCopyBufferToImage-pRegions-07276YNoneexplicitvkCmdCopyBufferToImagecoreFor each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of {imageparam}
VUID-vkCmdCopyBufferToImage-pRegions-07277NNoneexplicitvkCmdCopyBufferToImagecoreFor each element of pRegions, bufferRowLength divided by the texel block extent width and then multiplied by the texel block size of {imageparam} must be less than or equal to 231-1
VUID-vkCmdCopyBufferToImage-pRegions-07740YImageBufferCopyTestsexplicitvkCmdCopyBufferToImage(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If {imageparam} has a VkFormat with two planes then for each element of pRegions, imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT
VUID-vkCmdCopyBufferToImage-pRegions-07741YImageBufferCopyTestsexplicitvkCmdCopyBufferToImage(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If {imageparam} has a VkFormat with three planes then for each element of pRegions, imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT
VUID-vkCmdCopyBufferToImage-pRegions-parameterYNoneimplicitvkCmdCopyBufferToImagecorepRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy structures
VUID-vkCmdCopyBufferToImage-regionCount-arraylengthYNoneimplicitvkCmdCopyBufferToImagecoreregionCount must be greater than 0
VUID-vkCmdCopyBufferToImage-renderpassYNoneimplicitvkCmdCopyBufferToImagecoreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyBufferToImage-srcBuffer-00174YInvalidUsageBitsexplicitvkCmdCopyBufferToImagecoresrcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
VUID-vkCmdCopyBufferToImage-srcBuffer-00176YNoneexplicitvkCmdCopyBufferToImagecoreIf srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyBufferToImage-srcBuffer-parameterYNoneimplicitvkCmdCopyBufferToImagecoresrcBuffer must be a valid VkBuffer handle
VUID-vkCmdCopyBufferToImage-srcImage-00199YNoneexplicitvkCmdCopyBufferToImagecoreIf {imageparam} 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-srcImage-00201YMiscImageLayerTestsexplicitvkCmdCopyBufferToImagecoreIf {imageparam} 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-srcImage-04053YNoneexplicitvkCmdCopyBufferToImagecoreIf {imageparam} has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4
VUID-vkCmdCopyBufferToImage-videocodingNNoneimplicitvkCmdCopyBufferToImagecoreThis command must only be called outside of a video coding scope
VUID-vkCmdCopyBufferToImage2-commandBuffer-01828YNoneexplicitvkCmdCopyBufferToImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcBuffer must not be a protected buffer
VUID-vkCmdCopyBufferToImage2-commandBuffer-01829YNoneexplicitvkCmdCopyBufferToImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdCopyBufferToImage2-commandBuffer-01830NNoneexplicitvkCmdCopyBufferToImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdCopyBufferToImage2-commandBuffer-07737YNoneexplicitvkCmdCopyBufferToImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)If 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 {regionsparam} must be a multiple of 4
VUID-vkCmdCopyBufferToImage2-commandBuffer-07739YNoneexplicitvkCmdCopyBufferToImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT, for each element of {regionsparam}, the aspectMask member of imageSubresource must not be VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT
VUID-vkCmdCopyBufferToImage2-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyBufferToImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyBufferToImage2-commandBuffer-parameterYNoneimplicitvkCmdCopyBufferToImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyBufferToImage2-commandBuffer-recordingYNoneimplicitvkCmdCopyBufferToImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)commandBuffer must be in the recording state
VUID-vkCmdCopyBufferToImage2-imageOffset-07738YCompressedImageMipCopyTestsexplicitvkCmdCopyBufferToImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)The imageOffset and imageExtent members of each element of {regionsparam} must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties
VUID-vkCmdCopyBufferToImage2-pCopyBufferToImageInfo-parameterYNoneimplicitvkCmdCopyBufferToImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)pCopyBufferToImageInfo must be a valid pointer to a valid VkCopyBufferToImageInfo2 structure
VUID-vkCmdCopyBufferToImage2-renderpassYNoneimplicitvkCmdCopyBufferToImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)This command must only be called outside of a render pass instance
VUID-vkCmdCopyBufferToImage2-videocodingNNoneimplicitvkCmdCopyBufferToImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)This command must only be called outside of a video coding scope
VUID-vkCmdCopyImage-None-01549YCopyImageFormatSizeMismatch, CopyImageMultiplaneAspectBitsexplicitvkCmdCopyImage(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)In 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-aspect-06662YTestImageCopyMissingUsageexplicitvkCmdCopyImage(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If 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-06663YTestImageCopyMissingUsage, CopyCommands2V13explicitvkCmdCopyImage(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If 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-06664YTestImageCopyMissingUsageexplicitvkCmdCopyImage(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If 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-06665YTestImageCopyMissingUsageexplicitvkCmdCopyImage(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If 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-00142YCopyImageAspectMismatchexplicitvkCmdCopyImagecoreFor each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage
VUID-vkCmdCopyImage-aspectMask-00143YCopyImageAspectMismatchexplicitvkCmdCopyImagecoreFor each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage
VUID-vkCmdCopyImage-commandBuffer-01825YInvalidMixingProtectedResourcesexplicitvkCmdCopyImage(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdCopyImage-commandBuffer-01826YInvalidMixingProtectedResourcesexplicitvkCmdCopyImage(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdCopyImage-commandBuffer-01827YInvalidMixingProtectedResourcesexplicitvkCmdCopyImage(VK_VERSION_1_1)If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdCopyImage-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyImagecoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyImage-commandBuffer-parameterYNoneimplicitvkCmdCopyImagecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyImage-commandBuffer-recordingYCopyImageAspectMismatchimplicitvkCmdCopyImagecorecommandBuffer must be in the recording state
VUID-vkCmdCopyImage-commonparentYNoneimplicitvkCmdCopyImagecoreEach of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdCopyImage-dstImage-00131YNoneexplicitvkCmdCopyImage!(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdCopyImage-dstImage-00132YCopyInvalidImageMemoryexplicitvkCmdCopyImage!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyImage-dstImage-00152YCopyImageTypeExtentMismatchexplicitvkCmdCopyImagecoreIf 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-01547YCopyInvalidImageMemoryexplicitvkCmdCopyImage(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If dstImage is non-sparse then the image or disjoint plane that is the destination of the copy must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyImage-dstImage-01554YCopyImageMultiplaneAspectBitsexplicitvkCmdCopyImage(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If dstImage has a VkFormat with two planes then for each element of pRegions, dstSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT
VUID-vkCmdCopyImage-dstImage-01555YCopyImageMultiplaneAspectBitsexplicitvkCmdCopyImage(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If dstImage has a VkFormat with three planes then for each element of pRegions, dstSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT
VUID-vkCmdCopyImage-dstImage-01557YCopyImageMultiplaneAspectBitsexplicitvkCmdCopyImage(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-01732YCopyImageCompressedBlockAlignmentexplicitvkCmdCopyImagecoreFor each element of pRegions, if the sum of dstOffset.x and extent.width does not equal the width of the 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-01733YCopyImageCompressedBlockAlignmentexplicitvkCmdCopyImagecoreFor each element of pRegions, if the sum of dstOffset.y and extent.height does not equal the height of the the subresource specified by dstSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-vkCmdCopyImage-dstImage-01734YNoneexplicitvkCmdCopyImagecoreFor each element of pRegions, if the sum of dstOffset.z and extent.depth does not equal the depth of the 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-01786YCopyImageTypeExtentMismatchexplicitvkCmdCopyImagecoreIf 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-01788YCopyImageTypeExtentMismatchexplicitvkCmdCopyImagecoreIf dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0
VUID-vkCmdCopyImage-dstImage-01792YCopyImageTypeExtentMismatchMaintenance1explicitvkCmdCopyImage(VK_VERSION_1_1,VK_KHR_maintenance1)If 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-01996YNoneexplicitvkCmdCopyImage(VK_VERSION_1_1,VK_KHR_maintenance1)The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-vkCmdCopyImage-dstImage-02542YNoneexplicitvkCmdCopyImage(VK_EXT_fragment_density_map)dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-vkCmdCopyImage-dstImage-04444YNoneexplicitvkCmdCopyImage(VK_VERSION_1_1,VK_KHR_maintenance1)If 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-parameterYNoneimplicitvkCmdCopyImagecoredstImage must be a valid VkImage handle
VUID-vkCmdCopyImage-dstImageLayout-00133YInvalidImageLayoutexplicitvkCmdCopyImagecoredstImageLayout 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-00134YInvalidImageLayoutexplicitvkCmdCopyImage!(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdCopyImage-dstImageLayout-01395YNoneexplicitvkCmdCopyImage(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
VUID-vkCmdCopyImage-dstImageLayout-parameterYNoneimplicitvkCmdCopyImagecoredstImageLayout must be a valid VkImageLayout value
VUID-vkCmdCopyImage-dstOffset-00150YCopyImageMultiPlaneSizeExceeded, CopyImageDstSizeExceeded, CopyImageSinglePlane422AlignmentexplicitvkCmdCopyImagecoreFor each element of pRegions, dstOffset.x and (extent.width + dstOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage
VUID-vkCmdCopyImage-dstOffset-00151YCopyImageMultiPlaneSizeExceeded, CopyImageTypeExtentMismatch, CopyImageDstSizeExceededexplicitvkCmdCopyImagecoreFor 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-00153YCopyImageTypeExtentMismatch, CopyImageDstSizeExceededexplicitvkCmdCopyImagecoreIf 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-01784YCopyImageCompressedBlockAlignment, MinImageTransferGranularity, CopyImageSinglePlane422AlignmentexplicitvkCmdCopyImagecoreThe dstOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties
VUID-vkCmdCopyImage-dstSubresource-01697YNoneexplicitvkCmdCopyImagecoreThe dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-vkCmdCopyImage-dstSubresource-01699YCopyImageRemainingLayers, CopyImageTypeExtentMismatchMaintenance1explicitvkCmdCopyImagecoreThe 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-00124YNoneexplicitvkCmdCopyImagecoreThe 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-07278YCopyImageCompressedBlockAlignment, CopyImageSinglePlane422AlignmentexplicitvkCmdCopyImagecoreFor each element of pRegions, srcOffset.x must be a multiple of the texel block extent width of the VkFormat of srcImage
VUID-vkCmdCopyImage-pRegions-07279YCopyImageCompressedBlockAlignmentexplicitvkCmdCopyImagecoreFor each element of pRegions, srcOffset.y must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-vkCmdCopyImage-pRegions-07280YNoneexplicitvkCmdCopyImagecoreFor each element of pRegions, srcOffset.z must be a multiple of the texel block extent depth of the VkFormat of srcImage
VUID-vkCmdCopyImage-pRegions-07281YCopyImageCompressedBlockAlignment, CopyImageSinglePlane422AlignmentexplicitvkCmdCopyImagecoreFor each element of pRegions, dstOffset.x must be a multiple of the texel block extent width of the VkFormat of dstImage
VUID-vkCmdCopyImage-pRegions-07282YCopyImageCompressedBlockAlignmentexplicitvkCmdCopyImagecoreFor each element of pRegions, dstOffset.y must be a multiple of the texel block extent height of the VkFormat of dstImage
VUID-vkCmdCopyImage-pRegions-07283YNoneexplicitvkCmdCopyImagecoreFor each element of pRegions, dstOffset.z must be a multiple of the texel block extent depth of the VkFormat of dstImage
VUID-vkCmdCopyImage-pRegions-parameterYNoneimplicitvkCmdCopyImagecorepRegions must be a valid pointer to an array of regionCount valid VkImageCopy structures
VUID-vkCmdCopyImage-regionCount-arraylengthYNoneimplicitvkCmdCopyImagecoreregionCount must be greater than 0
VUID-vkCmdCopyImage-renderpassYNoneimplicitvkCmdCopyImagecoreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyImage-srcImage-00126YNoneexplicitvkCmdCopyImage!(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-vkCmdCopyImage-srcImage-00127YCopyInvalidImageMemoryexplicitvkCmdCopyImage!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyImage-srcImage-00135YCopyImageAspectMismatch, CopyImageDepthStencilFormatMismatch, CopyImageFormatSizeMismatchexplicitvkCmdCopyImage!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)The VkFormat of each of srcImage and dstImage must be size-compatible
VUID-vkCmdCopyImage-srcImage-00136YCopyImageSampleCountMismatchexplicitvkCmdCopyImagecoreThe sample count of srcImage and dstImage must match
VUID-vkCmdCopyImage-srcImage-00139YCopyImageTypeExtentMismatchexplicitvkCmdCopyImage!(VK_VERSION_1_1,VK_KHR_maintenance1)If 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-vkCmdCopyImage-srcImage-00146YCopyImageTypeExtentMismatchexplicitvkCmdCopyImagecoreIf 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-01546YCopyInvalidImageMemoryexplicitvkCmdCopyImage(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If srcImage is non-sparse then the image or disjoint plane to be copied must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyImage-srcImage-01548YCopyImageAspectMismatch, CopyImageFormatSizeMismatchexplicitvkCmdCopyImage(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-01551YCopyImageAspectMismatchexplicitvkCmdCopyImage(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-01552YCopyImageMultiplaneAspectBitsexplicitvkCmdCopyImage(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If srcImage has a VkFormat with two planes then for each element of pRegions, srcSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT
VUID-vkCmdCopyImage-srcImage-01553YCopyImageMultiplaneAspectBitsexplicitvkCmdCopyImage(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If srcImage has a VkFormat with three planes then for each element of pRegions, srcSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT
VUID-vkCmdCopyImage-srcImage-01556YCopyImageMultiplaneAspectBitsexplicitvkCmdCopyImage(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If 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-01728YCopyImageCompressedBlockAlignment, CopyImageSinglePlane422AlignmentexplicitvkCmdCopyImagecoreFor each element of pRegions, if the sum of srcOffset.x and extent.width does not equal the width of the 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-01729YCopyImageCompressedBlockAlignmentexplicitvkCmdCopyImagecoreFor each element of pRegions, if the sum of srcOffset.y and extent.height does not equal the height of the the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of srcImage
VUID-vkCmdCopyImage-srcImage-01730YNoneexplicitvkCmdCopyImagecoreFor each element of pRegions, if the sum of srcOffset.z and extent.depth does not equal the depth of the 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-01785YCopyImageTypeExtentMismatchexplicitvkCmdCopyImagecoreIf 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-01787YCopyImageTypeExtentMismatchexplicitvkCmdCopyImagecoreIf srcImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0
VUID-vkCmdCopyImage-srcImage-01789YCopyImageTypeExtentMismatchexplicitvkCmdCopyImage!(VK_VERSION_1_1,VK_KHR_maintenance1)If srcImage or dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1
VUID-vkCmdCopyImage-srcImage-01790YCopyImageTypeExtentMismatchMaintenance1explicitvkCmdCopyImage(VK_VERSION_1_1,VK_KHR_maintenance1)If 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-01791YCopyImageTypeExtentMismatchMaintenance1explicitvkCmdCopyImage(VK_VERSION_1_1,VK_KHR_maintenance1)If 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-01995YNoneexplicitvkCmdCopyImage(VK_VERSION_1_1,VK_KHR_maintenance1)The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
VUID-vkCmdCopyImage-srcImage-04443YNoneexplicitvkCmdCopyImage(VK_VERSION_1_1,VK_KHR_maintenance1)If 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-07742NNoneexplicitvkCmdCopyImage!(VK_VERSION_1_1,VK_KHR_maintenance1)srcImage and dstImage must have the same VkImageType
VUID-vkCmdCopyImage-srcImage-07743NNoneexplicitvkCmdCopyImage(VK_VERSION_1_1,VK_KHR_maintenance1)If srcImage and dstImage have a different VkImageType, one must be VK_IMAGE_TYPE_3D and the other must be VK_IMAGE_TYPE_2D
VUID-vkCmdCopyImage-srcImage-07744NNoneexplicitvkCmdCopyImage(VK_VERSION_1_1,VK_KHR_maintenance1)If srcImage and dstImage have the same VkImageType, the layerCount member of srcSubresource and dstSubresource in each element of pRegions must match
VUID-vkCmdCopyImage-srcImage-07745NNoneexplicitvkCmdCopyImagecoresrcImage and dstImage must have the same sample count
VUID-vkCmdCopyImage-srcImage-parameterYNoneimplicitvkCmdCopyImagecoresrcImage must be a valid VkImage handle
VUID-vkCmdCopyImage-srcImageLayout-00128YInvalidImageLayoutexplicitvkCmdCopyImagecoresrcImageLayout 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-00129YInvalidImageLayoutexplicitvkCmdCopyImage!(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdCopyImage-srcImageLayout-01917YNoneexplicitvkCmdCopyImage(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
VUID-vkCmdCopyImage-srcImageLayout-parameterYNoneimplicitvkCmdCopyImagecoresrcImageLayout must be a valid VkImageLayout value
VUID-vkCmdCopyImage-srcOffset-00144YCopyImageMultiPlaneSizeExceeded, CopyImageSrcSizeExceededexplicitvkCmdCopyImagecoreFor each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage
VUID-vkCmdCopyImage-srcOffset-00145YCopyImageMultiPlaneSizeExceeded, CopyImageSrcSizeExceeded, CopyImageTypeExtentMismatchexplicitvkCmdCopyImagecoreFor each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage
VUID-vkCmdCopyImage-srcOffset-00147YCopyImageSrcSizeExceeded, CopyImageTypeExtentMismatchexplicitvkCmdCopyImagecoreIf srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage
VUID-vkCmdCopyImage-srcOffset-01783YCopyImageCompressedBlockAlignment, MinImageTransferGranularity, CopyImageSinglePlane422AlignmentexplicitvkCmdCopyImagecoreThe srcOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties
VUID-vkCmdCopyImage-srcSubresource-01696YNoneexplicitvkCmdCopyImagecoreThe srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-vkCmdCopyImage-srcSubresource-01698YCopyImageRemainingLayers, CopyImageTypeExtentMismatch, CopyImageTypeExtentMismatchMaintenance1explicitvkCmdCopyImagecoreThe 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-videocodingNNoneimplicitvkCmdCopyImagecoreThis command must only be called outside of a video coding scope
VUID-vkCmdCopyImage2-commandBuffer-01825YNoneexplicitvkCmdCopyImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdCopyImage2-commandBuffer-01826YNoneexplicitvkCmdCopyImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdCopyImage2-commandBuffer-01827YNoneexplicitvkCmdCopyImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdCopyImage2-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyImage2-commandBuffer-parameterYNoneimplicitvkCmdCopyImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyImage2-commandBuffer-recordingYNoneimplicitvkCmdCopyImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)commandBuffer must be in the recording state
VUID-vkCmdCopyImage2-pCopyImageInfo-parameterYNoneimplicitvkCmdCopyImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)pCopyImageInfo must be a valid pointer to a valid VkCopyImageInfo2 structure
VUID-vkCmdCopyImage2-renderpassYNoneimplicitvkCmdCopyImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)This command must only be called outside of a render pass instance
VUID-vkCmdCopyImage2-videocodingNNoneimplicitvkCmdCopyImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)This command must only be called outside of a video coding scope
VUID-vkCmdCopyImageToBuffer-aspectMask-00211YImageBufferCopyTestsexplicitvkCmdCopyImageToBuffercoreFor each element of pRegions, imageSubresource.aspectMask must specify aspects present in {imageparam}
VUID-vkCmdCopyImageToBuffer-baseArrayLayer-00213YNoneexplicitvkCmdCopyImageToBuffercoreIf {imageparam} 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-bufferImageHeight-00204YImageBufferCopyTestsexplicitvkCmdCopyImageToBuffercoreFor each element of pRegions, bufferImageHeight must be a multiple of the texel block extent height of the VkFormat of {imageparam}
VUID-vkCmdCopyImageToBuffer-bufferOffset-00193YImageBufferCopyTestsexplicitvkCmdCopyImageToBuffer!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If {imageparam} does not have a depth/stencil format, then for each element of pRegions, bufferOffset must be a multiple of the format's texel block size
VUID-vkCmdCopyImageToBuffer-bufferOffset-01558YImageBufferCopyTestsexplicitvkCmdCopyImageToBuffer(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If {imageparam} does not have either a depth/stencil or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the format's texel block size
VUID-vkCmdCopyImageToBuffer-bufferOffset-01559YNoneexplicitvkCmdCopyImageToBuffer(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If {imageparam} 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-bufferRowLength-00203YImageBufferCopyTestsexplicitvkCmdCopyImageToBuffercoreFor each element of pRegions, bufferRowLength must be a multiple of the texel block extent width of the VkFormat of {imageparam}
VUID-vkCmdCopyImageToBuffer-commandBuffer-01831YInvalidMixingProtectedResourcesexplicitvkCmdCopyImageToBuffer(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdCopyImageToBuffer-commandBuffer-01832YInvalidMixingProtectedResourcesexplicitvkCmdCopyImageToBuffer(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer
VUID-vkCmdCopyImageToBuffer-commandBuffer-01833YInvalidMixingProtectedResourcesexplicitvkCmdCopyImageToBuffer(VK_VERSION_1_1)If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer
VUID-vkCmdCopyImageToBuffer-commandBuffer-07746YNoneexplicitvkCmdCopyImageToBuffercoreIf the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of {regionsparam} must be a multiple of 4
VUID-vkCmdCopyImageToBuffer-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyImageToBuffercoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyImageToBuffer-commandBuffer-parameterYNoneimplicitvkCmdCopyImageToBuffercorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyImageToBuffer-commandBuffer-recordingYImageBufferCopyTestsimplicitvkCmdCopyImageToBuffercorecommandBuffer must be in the recording state
VUID-vkCmdCopyImageToBuffer-commonparentYNoneimplicitvkCmdCopyImageToBuffercoreEach of commandBuffer, dstBuffer, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdCopyImageToBuffer-dstBuffer-00191YNoneexplicitvkCmdCopyImageToBuffercoredstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdCopyImageToBuffer-dstBuffer-00192NNoneexplicitvkCmdCopyImageToBuffercoreIf dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyImageToBuffer-dstBuffer-parameterYNoneimplicitvkCmdCopyImageToBuffercoredstBuffer must be a valid VkBuffer handle
VUID-vkCmdCopyImageToBuffer-imageExtent-00207YCompressedImageMipCopyTests, ImageBufferCopyTestsexplicitvkCmdCopyImageToBuffercoreFor each element of pRegions, if the sum of imageOffset.x and extent.width does not equal the width of the the subresource specified by srcSubresource, extent.width must be a multiple of the texel block extent width of the VkFormat of {imageparam}
VUID-vkCmdCopyImageToBuffer-imageExtent-00208YCompressedImageMipCopyTests, ImageBufferCopyTestsexplicitvkCmdCopyImageToBuffercoreFor each element of pRegions, if the sum of imageOffset.y and extent.height does not equal the height of the the subresource specified by srcSubresource, extent.height must be a multiple of the texel block extent height of the VkFormat of {imageparam}
VUID-vkCmdCopyImageToBuffer-imageExtent-00209YNoneexplicitvkCmdCopyImageToBuffercoreFor each element of pRegions, if the sum of imageOffset.z and extent.depth does not equal the depth of the the subresource specified by srcSubresource, extent.depth must be a multiple of the texel block extent depth of the VkFormat of {imageparam}
VUID-vkCmdCopyImageToBuffer-imageOffset-00200YImageBufferCopyTestsexplicitvkCmdCopyImageToBuffercoreFor 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 {imageparam}
VUID-vkCmdCopyImageToBuffer-imageOffset-07747YCompressedImageMipCopyTests, ImageBufferCopyTests, MinImageTransferGranularityexplicitvkCmdCopyImageToBuffercoreThe imageOffset and imageExtent members of each element of {regionsparam} must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties
VUID-vkCmdCopyImageToBuffer-imageSubresource-01703YImageBufferCopyTestsexplicitvkCmdCopyImageToBuffercoreThe imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-vkCmdCopyImageToBuffer-imageSubresource-01704YImageBufferCopyTestsexplicitvkCmdCopyImageToBuffercoreThe 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-pRegions-00183YCompressedImageMipCopyTests, ImageBufferCopyTestsexplicitvkCmdCopyImageToBuffercoredstBuffer 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-00184NNoneexplicitvkCmdCopyImageToBuffercoreThe 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-06220YImageBufferCopyTestsexplicitvkCmdCopyImageToBuffercoreThe image region specified by each element of pRegions must be contained within the specified imageSubresource of srcImage
VUID-vkCmdCopyImageToBuffer-pRegions-06221YImageBufferCopyTestsexplicitvkCmdCopyImageToBuffercoreFor 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-pRegions-06222YImageBufferCopyTestsexplicitvkCmdCopyImageToBuffercoreFor 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-pRegions-07273YImageBufferCopyTestsexplicitvkCmdCopyImageToBuffercoreFor each element of pRegions, bufferOffset must be a multiple of the texel block size of the VkFormat of {imageparam}
VUID-vkCmdCopyImageToBuffer-pRegions-07274YCompressedImageMipCopyTestsexplicitvkCmdCopyImageToBuffercoreFor each element of pRegions, imageOffset.x must be a multiple of the texel block extent width of the VkFormat of {imageparam}
VUID-vkCmdCopyImageToBuffer-pRegions-07275YCompressedImageMipCopyTestsexplicitvkCmdCopyImageToBuffercoreFor each element of pRegions, imageOffset.y must be a multiple of the texel block extent height of the VkFormat of {imageparam}
VUID-vkCmdCopyImageToBuffer-pRegions-07276YNoneexplicitvkCmdCopyImageToBuffercoreFor each element of pRegions, imageOffset.z must be a multiple of the texel block extent depth of the VkFormat of {imageparam}
VUID-vkCmdCopyImageToBuffer-pRegions-07277NNoneexplicitvkCmdCopyImageToBuffercoreFor each element of pRegions, bufferRowLength divided by the texel block extent width and then multiplied by the texel block size of {imageparam} must be less than or equal to 231-1
VUID-vkCmdCopyImageToBuffer-pRegions-07740YNoneexplicitvkCmdCopyImageToBuffer(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If {imageparam} has a VkFormat with two planes then for each element of pRegions, imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT
VUID-vkCmdCopyImageToBuffer-pRegions-07741YNoneexplicitvkCmdCopyImageToBuffer(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If {imageparam} has a VkFormat with three planes then for each element of pRegions, imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT
VUID-vkCmdCopyImageToBuffer-pRegions-parameterYNoneimplicitvkCmdCopyImageToBuffercorepRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy structures
VUID-vkCmdCopyImageToBuffer-regionCount-arraylengthYNoneimplicitvkCmdCopyImageToBuffercoreregionCount must be greater than 0
VUID-vkCmdCopyImageToBuffer-renderpassYNoneimplicitvkCmdCopyImageToBuffercoreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyImageToBuffer-srcImage-00186YNoneexplicitvkCmdCopyImageToBuffercoresrcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-vkCmdCopyImageToBuffer-srcImage-00187YNoneexplicitvkCmdCopyImageToBuffercoreIf srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyImageToBuffer-srcImage-00188YNoneexplicitvkCmdCopyImageToBuffercoresrcImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-vkCmdCopyImageToBuffer-srcImage-00199YNoneexplicitvkCmdCopyImageToBuffercoreIf {imageparam} 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-00201YNoneexplicitvkCmdCopyImageToBuffercoreIf {imageparam} 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-01998YNoneexplicitvkCmdCopyImageToBuffer(VK_VERSION_1_1,VK_KHR_maintenance1)The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
VUID-vkCmdCopyImageToBuffer-srcImage-02544YNoneexplicitvkCmdCopyImageToBuffer(VK_EXT_fragment_density_map)srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-vkCmdCopyImageToBuffer-srcImage-04053YImageBufferCopyTestsexplicitvkCmdCopyImageToBuffercoreIf {imageparam} has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4
VUID-vkCmdCopyImageToBuffer-srcImage-parameterYNoneimplicitvkCmdCopyImageToBuffercoresrcImage must be a valid VkImage handle
VUID-vkCmdCopyImageToBuffer-srcImageLayout-00189YImageBufferCopyTestsexplicitvkCmdCopyImageToBuffercoresrcImageLayout 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-00190YNoneexplicitvkCmdCopyImageToBuffer!(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397YNoneexplicitvkCmdCopyImageToBuffer(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
VUID-vkCmdCopyImageToBuffer-srcImageLayout-parameterYNoneimplicitvkCmdCopyImageToBuffercoresrcImageLayout must be a valid VkImageLayout value
VUID-vkCmdCopyImageToBuffer-videocodingNNoneimplicitvkCmdCopyImageToBuffercoreThis command must only be called outside of a video coding scope
VUID-vkCmdCopyImageToBuffer2-commandBuffer-01831YNoneexplicitvkCmdCopyImageToBuffer2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdCopyImageToBuffer2-commandBuffer-01832YNoneexplicitvkCmdCopyImageToBuffer2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer
VUID-vkCmdCopyImageToBuffer2-commandBuffer-01833YNoneexplicitvkCmdCopyImageToBuffer2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer
VUID-vkCmdCopyImageToBuffer2-commandBuffer-07746YNoneexplicitvkCmdCopyImageToBuffer2(VK_VERSION_1_3,VK_KHR_copy_commands2)If 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 {regionsparam} must be a multiple of 4
VUID-vkCmdCopyImageToBuffer2-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyImageToBuffer2(VK_VERSION_1_3,VK_KHR_copy_commands2)The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyImageToBuffer2-commandBuffer-parameterYNoneimplicitvkCmdCopyImageToBuffer2(VK_VERSION_1_3,VK_KHR_copy_commands2)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyImageToBuffer2-commandBuffer-recordingYNoneimplicitvkCmdCopyImageToBuffer2(VK_VERSION_1_3,VK_KHR_copy_commands2)commandBuffer must be in the recording state
VUID-vkCmdCopyImageToBuffer2-imageOffset-07747YNoneexplicitvkCmdCopyImageToBuffer2(VK_VERSION_1_3,VK_KHR_copy_commands2)The imageOffset and imageExtent members of each element of {regionsparam} must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties
VUID-vkCmdCopyImageToBuffer2-pCopyImageToBufferInfo-parameterYNoneimplicitvkCmdCopyImageToBuffer2(VK_VERSION_1_3,VK_KHR_copy_commands2)pCopyImageToBufferInfo must be a valid pointer to a valid VkCopyImageToBufferInfo2 structure
VUID-vkCmdCopyImageToBuffer2-renderpassYNoneimplicitvkCmdCopyImageToBuffer2(VK_VERSION_1_3,VK_KHR_copy_commands2)This command must only be called outside of a render pass instance
VUID-vkCmdCopyImageToBuffer2-videocodingNNoneimplicitvkCmdCopyImageToBuffer2(VK_VERSION_1_3,VK_KHR_copy_commands2)This command must only be called outside of a video coding scope
VUID-vkCmdCopyMemoryIndirectNV-None-07653NNoneexplicitvkCmdCopyMemoryIndirectNV(VK_NV_copy_memory_indirect)The indirectCopy feature must be enabled
VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-07656NNoneexplicitvkCmdCopyMemoryIndirectNV(VK_NV_copy_memory_indirect)The VkCommandPool that commandBuffer was allocated from must support at least one of the VkPhysicalDeviceCopyMemoryIndirectPropertiesNV::supportedQueues
VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyMemoryIndirectNV(VK_NV_copy_memory_indirect)The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-parameterYNoneimplicitvkCmdCopyMemoryIndirectNV(VK_NV_copy_memory_indirect)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-recordingYNoneimplicitvkCmdCopyMemoryIndirectNV(VK_NV_copy_memory_indirect)commandBuffer must be in the recording state
VUID-vkCmdCopyMemoryIndirectNV-copyBufferAddress-07654NNoneexplicitvkCmdCopyMemoryIndirectNV(VK_NV_copy_memory_indirect)copyBufferAddress must be 4 byte aligned
VUID-vkCmdCopyMemoryIndirectNV-renderpassYNoneimplicitvkCmdCopyMemoryIndirectNV(VK_NV_copy_memory_indirect)This command must only be called outside of a render pass instance
VUID-vkCmdCopyMemoryIndirectNV-stride-07655NNoneexplicitvkCmdCopyMemoryIndirectNV(VK_NV_copy_memory_indirect)stride must be a multiple of 4 and must be greater than or equal to sizeof(VkCopyMemoryIndirectCommandNV)
VUID-vkCmdCopyMemoryIndirectNV-videocodingNNoneimplicitvkCmdCopyMemoryIndirectNV(VK_NV_copy_memory_indirect)This command must only be called outside of a video coding scope
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-buffer-03745YRayTracingTestCmdCopyMemoryToAccelerationStructureKHRexplicitvkCmdCopyMemoryToAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The buffer used to create pInfo->dst must be bound to device memory
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyMemoryToAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-parameterYNoneimplicitvkCmdCopyMemoryToAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-recordingYNoneimplicitvkCmdCopyMemoryToAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)commandBuffer must be in the recording state
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03742NNoneexplicitvkCmdCopyMemoryToAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pInfo->src.deviceAddress must be a valid device address for a buffer bound to device memory
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03743YNoneexplicitvkCmdCopyMemoryToAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pInfo->src.deviceAddress must be aligned to 256 bytes
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03744NNoneexplicitvkCmdCopyMemoryToAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If 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-parameterYNoneimplicitvkCmdCopyMemoryToAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pInfo must be a valid pointer to a valid VkCopyMemoryToAccelerationStructureInfoKHR structure
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-renderpassYNoneimplicitvkCmdCopyMemoryToAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)This command must only be called outside of a render pass instance
VUID-vkCmdCopyMemoryToAccelerationStructureKHR-videocodingNNoneimplicitvkCmdCopyMemoryToAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)This command must only be called outside of a video coding scope
VUID-vkCmdCopyMemoryToImageIndirectNV-None-07660NNoneexplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)The indirectCopy feature must be enabled
VUID-vkCmdCopyMemoryToImageIndirectNV-aspectMask-07662NNoneexplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)The aspectMask member for every subresource in pImageSubresources must only have a single bit set
VUID-vkCmdCopyMemoryToImageIndirectNV-baseArrayLayer-07671NNoneexplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)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-commandBuffer-07674NNoneexplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)If 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-cmdpoolYNoneimplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-parameterYNoneimplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-recordingYNoneimplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)commandBuffer must be in the recording state
VUID-vkCmdCopyMemoryToImageIndirectNV-commonparentYNoneimplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)Both of commandBuffer, and dstImage must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdCopyMemoryToImageIndirectNV-copyCount-arraylengthYNoneimplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)copyCount must be greater than 0
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07661NNoneexplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)dstImage must not be a protected image
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07663NNoneexplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)The image region specified by each element in copyBufferAddress must be a region that is contained within dstImage
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07664NNoneexplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07665NNoneexplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07666NNoneexplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07673NNoneexplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)+(VK_EXT_fragment_density_map)dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-parameterYNoneimplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)dstImage must be a valid VkImage handle
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-07667NNoneexplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)dstImageLayout must specify the layout of the image subresources of dstImage at the time this command is executed on a VkDevice
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-07668NNoneexplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)+!(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-07669NNoneexplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)+(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-parameterYNoneimplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)dstImageLayout must be a valid VkImageLayout value
VUID-vkCmdCopyMemoryToImageIndirectNV-imageOffset-07672NNoneexplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)The 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-07675NNoneexplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)For 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-mipLevel-07670NNoneexplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)The specified mipLevel of each region must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-vkCmdCopyMemoryToImageIndirectNV-offset-07676NNoneexplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)offset must be 4 byte aligned
VUID-vkCmdCopyMemoryToImageIndirectNV-pImageSubresources-parameterYNoneimplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)pImageSubresources must be a valid pointer to an array of copyCount valid VkImageSubresourceLayers structures
VUID-vkCmdCopyMemoryToImageIndirectNV-renderpassYNoneimplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)This command must only be called outside of a render pass instance
VUID-vkCmdCopyMemoryToImageIndirectNV-stride-07677NNoneexplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)stride must be a multiple of 4 and must be greater than or equal to sizeof(VkCopyMemoryToImageIndirectCommandNV)
VUID-vkCmdCopyMemoryToImageIndirectNV-videocodingNNoneimplicitvkCmdCopyMemoryToImageIndirectNV(VK_NV_copy_memory_indirect)This command must only be called outside of a video coding scope
VUID-vkCmdCopyMemoryToMicromapEXT-buffer-07546NNoneexplicitvkCmdCopyMemoryToMicromapEXT(VK_EXT_opacity_micromap)The buffer used to create pInfo->dst must be bound to device memory
VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyMemoryToMicromapEXT(VK_EXT_opacity_micromap)The VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-parameterYNoneimplicitvkCmdCopyMemoryToMicromapEXT(VK_EXT_opacity_micromap)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-recordingYNoneimplicitvkCmdCopyMemoryToMicromapEXT(VK_EXT_opacity_micromap)commandBuffer must be in the recording state
VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07543NNoneexplicitvkCmdCopyMemoryToMicromapEXT(VK_EXT_opacity_micromap)pInfo->src.deviceAddress must be a valid device address for a buffer bound to device memory
VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07544NNoneexplicitvkCmdCopyMemoryToMicromapEXT(VK_EXT_opacity_micromap)pInfo->src.deviceAddress must be aligned to 256 bytes
VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07545NNoneexplicitvkCmdCopyMemoryToMicromapEXT(VK_EXT_opacity_micromap)If 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-parameterYNoneimplicitvkCmdCopyMemoryToMicromapEXT(VK_EXT_opacity_micromap)pInfo must be a valid pointer to a valid VkCopyMemoryToMicromapInfoEXT structure
VUID-vkCmdCopyMemoryToMicromapEXT-renderpassYNoneimplicitvkCmdCopyMemoryToMicromapEXT(VK_EXT_opacity_micromap)This command must only be called outside of a render pass instance
VUID-vkCmdCopyMemoryToMicromapEXT-videocodingNNoneimplicitvkCmdCopyMemoryToMicromapEXT(VK_EXT_opacity_micromap)This command must only be called outside of a video coding scope
VUID-vkCmdCopyMicromapEXT-buffer-07529NNoneexplicitvkCmdCopyMicromapEXT(VK_EXT_opacity_micromap)The buffer used to create pInfo->src must be bound to device memory
VUID-vkCmdCopyMicromapEXT-buffer-07530NNoneexplicitvkCmdCopyMicromapEXT(VK_EXT_opacity_micromap)The buffer used to create pInfo->dst must be bound to device memory
VUID-vkCmdCopyMicromapEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyMicromapEXT(VK_EXT_opacity_micromap)The VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdCopyMicromapEXT-commandBuffer-parameterYNoneimplicitvkCmdCopyMicromapEXT(VK_EXT_opacity_micromap)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyMicromapEXT-commandBuffer-recordingYNoneimplicitvkCmdCopyMicromapEXT(VK_EXT_opacity_micromap)commandBuffer must be in the recording state
VUID-vkCmdCopyMicromapEXT-pInfo-parameterYNoneimplicitvkCmdCopyMicromapEXT(VK_EXT_opacity_micromap)pInfo must be a valid pointer to a valid VkCopyMicromapInfoEXT structure
VUID-vkCmdCopyMicromapEXT-renderpassYNoneimplicitvkCmdCopyMicromapEXT(VK_EXT_opacity_micromap)This command must only be called outside of a render pass instance
VUID-vkCmdCopyMicromapEXT-videocodingNNoneimplicitvkCmdCopyMicromapEXT(VK_EXT_opacity_micromap)This command must only be called outside of a video coding scope
VUID-vkCmdCopyMicromapToMemoryEXT-buffer-07539NNoneexplicitvkCmdCopyMicromapToMemoryEXT(VK_EXT_opacity_micromap)The buffer used to create pInfo->src must be bound to device memory
VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyMicromapToMemoryEXT(VK_EXT_opacity_micromap)The VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-parameterYNoneimplicitvkCmdCopyMicromapToMemoryEXT(VK_EXT_opacity_micromap)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-recordingYNoneimplicitvkCmdCopyMicromapToMemoryEXT(VK_EXT_opacity_micromap)commandBuffer must be in the recording state
VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07536NNoneexplicitvkCmdCopyMicromapToMemoryEXT(VK_EXT_opacity_micromap)pInfo->dst.deviceAddress must be a valid device address for a buffer bound to device memory
VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07537NNoneexplicitvkCmdCopyMicromapToMemoryEXT(VK_EXT_opacity_micromap)pInfo->dst.deviceAddress must be aligned to 256 bytes
VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07538NNoneexplicitvkCmdCopyMicromapToMemoryEXT(VK_EXT_opacity_micromap)If 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-parameterYNoneimplicitvkCmdCopyMicromapToMemoryEXT(VK_EXT_opacity_micromap)pInfo must be a valid pointer to a valid VkCopyMicromapToMemoryInfoEXT structure
VUID-vkCmdCopyMicromapToMemoryEXT-renderpassYNoneimplicitvkCmdCopyMicromapToMemoryEXT(VK_EXT_opacity_micromap)This command must only be called outside of a render pass instance
VUID-vkCmdCopyMicromapToMemoryEXT-videocodingNNoneimplicitvkCmdCopyMicromapToMemoryEXT(VK_EXT_opacity_micromap)This command must only be called outside of a video coding scope
VUID-vkCmdCopyQueryPoolResults-None-07429NNoneexplicitvkCmdCopyQueryPoolResultscoreAll queries used by the command must not be active
VUID-vkCmdCopyQueryPoolResults-commandBuffer-cmdpoolYNoneimplicitvkCmdCopyQueryPoolResultscoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdCopyQueryPoolResults-commandBuffer-parameterYNoneimplicitvkCmdCopyQueryPoolResultscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCopyQueryPoolResults-commandBuffer-recordingYNoneimplicitvkCmdCopyQueryPoolResultscorecommandBuffer must be in the recording state
VUID-vkCmdCopyQueryPoolResults-commonparentYNoneimplicitvkCmdCopyQueryPoolResultscoreEach of commandBuffer, dstBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdCopyQueryPoolResults-dstBuffer-00824YInvalidQuerySizesexplicitvkCmdCopyQueryPoolResultscoredstBuffer must have enough storage, from dstOffset, to contain the result of each query, as described here
VUID-vkCmdCopyQueryPoolResults-dstBuffer-00825YNoneexplicitvkCmdCopyQueryPoolResultscoredstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdCopyQueryPoolResults-dstBuffer-00826YNoneexplicitvkCmdCopyQueryPoolResultscoreIf dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdCopyQueryPoolResults-dstBuffer-parameterYNoneimplicitvkCmdCopyQueryPoolResultscoredstBuffer must be a valid VkBuffer handle
VUID-vkCmdCopyQueryPoolResults-dstOffset-00819YInvalidQuerySizesexplicitvkCmdCopyQueryPoolResultscoredstOffset must be less than the size of dstBuffer
VUID-vkCmdCopyQueryPoolResults-firstQuery-00820YInvalidQuerySizesexplicitvkCmdCopyQueryPoolResultscorefirstQuery must be less than the number of queries in queryPool
VUID-vkCmdCopyQueryPoolResults-firstQuery-00821YInvalidQuerySizesexplicitvkCmdCopyQueryPoolResultscoreThe sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool
VUID-vkCmdCopyQueryPoolResults-flags-00822YValidateStrideexplicitvkCmdCopyQueryPoolResultscoreIf VK_QUERY_RESULT_64_BIT is not set in flags then dstOffset and stride must be multiples of 4
VUID-vkCmdCopyQueryPoolResults-flags-00823YValidateStrideexplicitvkCmdCopyQueryPoolResultscoreIf VK_QUERY_RESULT_64_BIT is set in flags then dstOffset and stride must be multiples of 8
VUID-vkCmdCopyQueryPoolResults-flags-06902NNoneexplicitvkCmdCopyQueryPoolResults(VK_KHR_video_queue)If flags includes VK_QUERY_RESULT_WITH_STATUS_BIT_KHR, it must not include VK_QUERY_RESULT_WITH_AVAILABILITY_BIT
VUID-vkCmdCopyQueryPoolResults-flags-parameterYNoneimplicitvkCmdCopyQueryPoolResultscoreflags must be a valid combination of VkQueryResultFlagBits values
VUID-vkCmdCopyQueryPoolResults-queryPool-parameterYNoneimplicitvkCmdCopyQueryPoolResultscorequeryPool must be a valid VkQueryPool handle
VUID-vkCmdCopyQueryPoolResults-queryType-00827YQueryPoolPartialTimestampexplicitvkCmdCopyQueryPoolResultscoreIf the queryType used to create queryPool was VK_QUERY_TYPE_TIMESTAMP, flags must not contain VK_QUERY_RESULT_PARTIAL_BIT
VUID-vkCmdCopyQueryPoolResults-queryType-02734YPerformanceQueryIntelexplicitvkCmdCopyQueryPoolResults(VK_INTEL_performance_query)vkCmdCopyQueryPoolResults must not be called if the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL
VUID-vkCmdCopyQueryPoolResults-queryType-03232YNoneexplicitvkCmdCopyQueryPoolResults(VK_KHR_performance_query)If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, VkPhysicalDevicePerformanceQueryPropertiesKHR::allowCommandBufferQueryCopies must be VK_TRUE
VUID-vkCmdCopyQueryPoolResults-queryType-03233YNoneexplicitvkCmdCopyQueryPoolResults(VK_KHR_performance_query)If 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_PARTIAL_BIT or VK_QUERY_RESULT_64_BIT
VUID-vkCmdCopyQueryPoolResults-queryType-03234NNoneexplicitvkCmdCopyQueryPoolResults(VK_KHR_performance_query)If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the queryPool must have been submitted once for each pass as retrieved via a call to vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR
VUID-vkCmdCopyQueryPoolResults-queryType-06901NNoneexplicitvkCmdCopyQueryPoolResults(VK_KHR_video_queue)If the queryType used to create queryPool was VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR, flags must include VK_QUERY_RESULT_WITH_STATUS_BIT_KHR
VUID-vkCmdCopyQueryPoolResults-queryType-06903NNoneexplicitvkCmdCopyQueryPoolResults(VK_KHR_video_queue)If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, flags must not contain VK_QUERY_RESULT_WITH_STATUS_BIT_KHR
VUID-vkCmdCopyQueryPoolResults-renderpassYNoneimplicitvkCmdCopyQueryPoolResultscoreThis command must only be called outside of a render pass instance
VUID-vkCmdCopyQueryPoolResults-videocodingNNoneimplicitvkCmdCopyQueryPoolResultscoreThis command must only be called outside of a video coding scope
VUID-vkCmdCuLaunchKernelNVX-commandBuffer-cmdpoolYNoneimplicitvkCmdCuLaunchKernelNVX(VK_NVX_binary_import)The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdCuLaunchKernelNVX-commandBuffer-parameterYNoneimplicitvkCmdCuLaunchKernelNVX(VK_NVX_binary_import)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdCuLaunchKernelNVX-commandBuffer-recordingYNoneimplicitvkCmdCuLaunchKernelNVX(VK_NVX_binary_import)commandBuffer must be in the recording state
VUID-vkCmdCuLaunchKernelNVX-pLaunchInfo-parameterYNoneimplicitvkCmdCuLaunchKernelNVX(VK_NVX_binary_import)pLaunchInfo must be a valid pointer to a valid VkCuLaunchInfoNVX structure
VUID-vkCmdCuLaunchKernelNVX-videocodingNNoneimplicitvkCmdCuLaunchKernelNVX(VK_NVX_binary_import)This command must only be called outside of a video coding scope
VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdDebugMarkerBeginEXT(VK_EXT_debug_marker)The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-parameterYNoneimplicitvkCmdDebugMarkerBeginEXT(VK_EXT_debug_marker)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-recordingYNoneimplicitvkCmdDebugMarkerBeginEXT(VK_EXT_debug_marker)commandBuffer must be in the recording state
VUID-vkCmdDebugMarkerBeginEXT-pMarkerInfo-parameterYNoneimplicitvkCmdDebugMarkerBeginEXT(VK_EXT_debug_marker)pMarkerInfo must be a valid pointer to a valid VkDebugMarkerMarkerInfoEXT structure
VUID-vkCmdDebugMarkerBeginEXT-videocodingNNoneimplicitvkCmdDebugMarkerBeginEXT(VK_EXT_debug_marker)This command must only be called outside of a video coding scope
VUID-vkCmdDebugMarkerEndEXT-commandBuffer-01239NNoneexplicitvkCmdDebugMarkerEndEXT(VK_EXT_debug_marker)There must be an outstanding vkCmdDebugMarkerBeginEXT command prior to the vkCmdDebugMarkerEndEXT on the queue that commandBuffer is submitted to
VUID-vkCmdDebugMarkerEndEXT-commandBuffer-01240NNoneexplicitvkCmdDebugMarkerEndEXT(VK_EXT_debug_marker)If 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-cmdpoolYNoneimplicitvkCmdDebugMarkerEndEXT(VK_EXT_debug_marker)The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdDebugMarkerEndEXT-commandBuffer-parameterYNoneimplicitvkCmdDebugMarkerEndEXT(VK_EXT_debug_marker)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDebugMarkerEndEXT-commandBuffer-recordingYNoneimplicitvkCmdDebugMarkerEndEXT(VK_EXT_debug_marker)commandBuffer must be in the recording state
VUID-vkCmdDebugMarkerEndEXT-videocodingNNoneimplicitvkCmdDebugMarkerEndEXT(VK_EXT_debug_marker)This command must only be called outside of a video coding scope
VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdDebugMarkerInsertEXT(VK_EXT_debug_marker)The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-parameterYNoneimplicitvkCmdDebugMarkerInsertEXT(VK_EXT_debug_marker)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-recordingYNoneimplicitvkCmdDebugMarkerInsertEXT(VK_EXT_debug_marker)commandBuffer must be in the recording state
VUID-vkCmdDebugMarkerInsertEXT-pMarkerInfo-parameterYNoneimplicitvkCmdDebugMarkerInsertEXT(VK_EXT_debug_marker)pMarkerInfo must be a valid pointer to a valid VkDebugMarkerMarkerInfoEXT structure
VUID-vkCmdDebugMarkerInsertEXT-videocodingNNoneimplicitvkCmdDebugMarkerInsertEXT(VK_EXT_debug_marker)This command must only be called outside of a video coding scope
VUID-vkCmdDecodeVideoKHR-None-07011NNoneexplicitvkCmdDecodeVideoKHR(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)The bound video session object must not be in uninitialized state
VUID-vkCmdDecodeVideoKHR-bufferlevelYNoneimplicitvkCmdDecodeVideoKHR(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)commandBuffer must be a primary VkCommandBuffer
VUID-vkCmdDecodeVideoKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdDecodeVideoKHR(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)The VkCommandPool that commandBuffer was allocated from must support decode operations
VUID-vkCmdDecodeVideoKHR-commandBuffer-parameterYNoneimplicitvkCmdDecodeVideoKHR(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDecodeVideoKHR-commandBuffer-recordingYNoneimplicitvkCmdDecodeVideoKHR(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)commandBuffer must be in the recording state
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-parameterYNoneimplicitvkCmdDecodeVideoKHR(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)pDecodeInfo must be a valid pointer to a valid VkVideoDecodeInfoKHR structure
VUID-vkCmdDecodeVideoKHR-renderpassYNoneimplicitvkCmdDecodeVideoKHR(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)This command must only be called outside of a render pass instance
VUID-vkCmdDecodeVideoKHR-videocodingNNoneimplicitvkCmdDecodeVideoKHR(VK_KHR_video_queue)+(VK_KHR_video_decode_queue)This command must only be called inside of a video coding scope
VUID-vkCmdDecompressMemoryIndirectCountNV-None-07692NNoneexplicitvkCmdDecompressMemoryIndirectCountNV(VK_NV_memory_decompression)The memoryDecompression feature must be enabled
VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-cmdpoolYNoneimplicitvkCmdDecompressMemoryIndirectCountNV(VK_NV_memory_decompression)The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-parameterYNoneimplicitvkCmdDecompressMemoryIndirectCountNV(VK_NV_memory_decompression)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-recordingYNoneimplicitvkCmdDecompressMemoryIndirectCountNV(VK_NV_memory_decompression)commandBuffer must be in the recording state
VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsAddress-07693NNoneexplicitvkCmdDecompressMemoryIndirectCountNV(VK_NV_memory_decompression)If indirectCommandsAddress comes from a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsAddress-07694NNoneexplicitvkCmdDecompressMemoryIndirectCountNV(VK_NV_memory_decompression)The VkBuffer that indirectCommandsAddress comes from must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07696NNoneexplicitvkCmdDecompressMemoryIndirectCountNV(VK_NV_memory_decompression)If indirectCommandsCountAddress comes from a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07697NNoneexplicitvkCmdDecompressMemoryIndirectCountNV(VK_NV_memory_decompression)The VkBuffer that indirectCommandsCountAddress comes from must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07698NNoneexplicitvkCmdDecompressMemoryIndirectCountNV(VK_NV_memory_decompression)indirectCommandsCountAddress must be a multiple of 4
VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07699NNoneexplicitvkCmdDecompressMemoryIndirectCountNV(VK_NV_memory_decompression)The count stored in indirectCommandsCountAddress must be less than or equal to VkPhysicalDeviceMemoryDecompressionPropertiesNV::maxDecompressionIndirectCount
VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07701NNoneexplicitvkCmdDecompressMemoryIndirectCountNV(VK_NV_memory_decompression)If 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-07702NNoneexplicitvkCmdDecompressMemoryIndirectCountNV(VK_NV_memory_decompression)If the count stored in indirectCommandsCountAddress is greater than 1, indirectCommandsAddress + sizeof(VkDecompressMemoryRegionNV) + (stride {times} (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-07695NNoneexplicitvkCmdDecompressMemoryIndirectCountNV(VK_NV_memory_decompression)offset must be a multiple of 4
VUID-vkCmdDecompressMemoryIndirectCountNV-renderpassYNoneimplicitvkCmdDecompressMemoryIndirectCountNV(VK_NV_memory_decompression)This command must only be called outside of a render pass instance
VUID-vkCmdDecompressMemoryIndirectCountNV-stride-07700NNoneexplicitvkCmdDecompressMemoryIndirectCountNV(VK_NV_memory_decompression)stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDecompressMemoryRegionNV)
VUID-vkCmdDecompressMemoryIndirectCountNV-videocodingNNoneimplicitvkCmdDecompressMemoryIndirectCountNV(VK_NV_memory_decompression)This command must only be called outside of a video coding scope
VUID-vkCmdDecompressMemoryNV-None-07684NNoneexplicitvkCmdDecompressMemoryNV(VK_NV_memory_decompression)The memoryDecompression feature must be enabled
VUID-vkCmdDecompressMemoryNV-commandBuffer-cmdpoolYNoneimplicitvkCmdDecompressMemoryNV(VK_NV_memory_decompression)The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdDecompressMemoryNV-commandBuffer-parameterYNoneimplicitvkCmdDecompressMemoryNV(VK_NV_memory_decompression)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDecompressMemoryNV-commandBuffer-recordingYNoneimplicitvkCmdDecompressMemoryNV(VK_NV_memory_decompression)commandBuffer must be in the recording state
VUID-vkCmdDecompressMemoryNV-decompressRegionCount-arraylengthYNoneimplicitvkCmdDecompressMemoryNV(VK_NV_memory_decompression)decompressRegionCount must be greater than 0
VUID-vkCmdDecompressMemoryNV-pDecompressMemoryRegions-parameterYNoneimplicitvkCmdDecompressMemoryNV(VK_NV_memory_decompression)pDecompressMemoryRegions must be a valid pointer to an array of decompressRegionCount valid VkDecompressMemoryRegionNV structures
VUID-vkCmdDecompressMemoryNV-renderpassYNoneimplicitvkCmdDecompressMemoryNV(VK_NV_memory_decompression)This command must only be called outside of a render pass instance
VUID-vkCmdDecompressMemoryNV-videocodingNNoneimplicitvkCmdDecompressMemoryNV(VK_NV_memory_decompression)This command must only be called outside of a video coding scope
VUID-vkCmdDispatch-ConstOffset-06551NNoneexplicitvkCmdDispatch(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDispatch-None-02691YNoneexplicitvkCmdDispatchcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDispatch-None-02692YNoneexplicitvkCmdDispatch(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693YNoneexplicitvkCmdDispatch(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697YNotCompatibleForSetexplicitvkCmdDispatchcoreFor each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDispatch-None-02698NNoneexplicitvkCmdDispatch!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDispatch-None-02699YNoneexplicitvkCmdDispatch!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdDispatch-None-02700YInvalidPipelineexplicitvkCmdDispatchcoreA valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDispatch-None-02702YNoneexplicitvkCmdDispatchcoreIf the VkPipeline object bound 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-02703YNoneexplicitvkCmdDispatchcoreIf the VkPipeline object bound 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-02704YNoneexplicitvkCmdDispatchcoreIf the VkPipeline object bound 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-02705YNoneexplicitvkCmdDispatch!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706YNoneexplicitvkCmdDispatch!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02859YNoneexplicitvkCmdDispatchcoreThere must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDispatch-None-04115YStorageImageUnknownWriteLessComponentexplicitvkCmdDispatchcoreIf a VkImageView is accessed using OpImageWrite as 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-None-06479YNoneexplicitvkCmdDispatch(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-06550NNoneexplicitvkCmdDispatch(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDispatch-None-07288NNoneexplicitvkCmdDispatchcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDispatch-None-08114YNoneexplicitvkCmdDispatch(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115YDescriptorBufferInconsistentBufferexplicitvkCmdDispatch(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdDispatch(VK_EXT_descriptor_buffer)Descriptors 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-08117YDescriptorBufferInconsistentSetexplicitvkCmdDispatch(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdDispatch(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDispatch(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdDispatch(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDispatch-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDispatch(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDispatch(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdDispatch(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdDispatch(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdDispatch(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdDispatch(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-04469YStorageTexelBufferUnkownWriteLessComponentexplicitvkCmdDispatchcoreIf 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-OpTypeImage-07027YMissingStorageImageFormatWriteForFormatexplicitvkCmdDispatch(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028YMissingStorageImageFormatReadForFormatexplicitvkCmdDispatch(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029YMissingStorageTexelBufferFormatWriteForFormatexplicitvkCmdDispatch(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030YNoneexplicitvkCmdDispatch(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any 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-04470NNoneexplicitvkCmdDispatch(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdDispatch(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdDispatch(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdDispatch(VK_EXT_shader_image_atomic_int64)If 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-aspectMask-06478NNoneexplicitvkCmdDispatch!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdDispatch-commandBuffer-02701YNoneexplicitvkCmdDispatchcoreIf the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdDispatch-commandBuffer-02707YNoneexplicitvkCmdDispatch(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdDispatch-commandBuffer-02712YNoneexplicitvkCmdDispatch(VK_VERSION_1_1)If 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-02713NNoneexplicitvkCmdDispatch(VK_VERSION_1_1)If 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-04617NNoneexplicitvkCmdDispatch(VK_VERSION_1_1)+(VK_KHR_ray_query)If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer
VUID-vkCmdDispatch-commandBuffer-cmdpoolYNoneimplicitvkCmdDispatchcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdDispatch-commandBuffer-parameterYNoneimplicitvkCmdDispatchcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDispatch-commandBuffer-recordingYNoneimplicitvkCmdDispatchcorecommandBuffer must be in the recording state
VUID-vkCmdDispatch-filterCubic-02694YNoneexplicitvkCmdDispatch(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695YNoneexplicitvkCmdDispatch(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02696YNoneexplicitvkCmdDispatch(VK_NV_corner_sampled_image)Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDispatch-format-07753YNoneexplicitvkCmdDispatchcoreIf a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdDispatch-groupCountX-00386YCmdDispatchExceedLimitsexplicitvkCmdDispatchcoregroupCountX must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]
VUID-vkCmdDispatch-groupCountY-00387YCmdDispatchExceedLimitsexplicitvkCmdDispatchcoregroupCountY must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]
VUID-vkCmdDispatch-groupCountZ-00388YCmdDispatchExceedLimitsexplicitvkCmdDispatchcoregroupCountZ must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]
VUID-vkCmdDispatch-magFilter-04553YNoneexplicitvkCmdDispatchcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDispatch-maintenance4-06425YNoneexplicitvkCmdDispatch(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDispatch-mipmapMode-04770YNoneexplicitvkCmdDispatchcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDispatch-renderpassYNoneimplicitvkCmdDispatchcoreThis command must only be called outside of a render pass instance
VUID-vkCmdDispatch-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDispatch(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdDispatch(VK_EXT_shader_image_atomic_int64)If 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-06936NNoneexplicitvkCmdDispatch(VK_EXT_pipeline_robustness)If 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-06935NNoneexplicitvkCmdDispatch(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdDispatchcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDispatch-viewType-07752YNoneexplicitvkCmdDispatchcoreIf a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdDispatchBase-ConstOffset-06551NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDispatchBase-None-02691YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)If 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-02692YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDispatchBase-None-02698NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDispatchBase-None-02699YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdDispatchBase-None-02700YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)A valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDispatchBase-None-02702YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)If the VkPipeline object bound 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-02703YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)If the VkPipeline object bound 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-02704YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)If the VkPipeline object bound 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-02705YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02859YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDispatchBase-None-04115YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)If a VkImageView is accessed using OpImageWrite as 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-None-06479YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-06550NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDispatchBase-None-07288NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)Any shader invocation executed by this command must terminate
VUID-vkCmdDispatchBase-None-08114YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_descriptor_buffer)Descriptors 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-08117YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDispatchBase-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-04469YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)If 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-OpTypeImage-07027YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any 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-04470NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_shader_image_atomic_int64)If 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-aspectMask-06478NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdDispatchBase-baseGroupX-00421YCmdDispatchExceedLimitsexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)baseGroupX must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]
VUID-vkCmdDispatchBase-baseGroupX-00422YCmdDispatchExceedLimitsexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)baseGroupY must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]
VUID-vkCmdDispatchBase-baseGroupX-00427YCmdDispatchExceedLimitsexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)If any of baseGroupX, baseGroupY, or baseGroupZ are not zero, then the bound compute pipeline must have been created with the VK_PIPELINE_CREATE_DISPATCH_BASE flag
VUID-vkCmdDispatchBase-baseGroupZ-00423YCmdDispatchExceedLimitsexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)baseGroupZ must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]
VUID-vkCmdDispatchBase-commandBuffer-02701YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdDispatchBase-commandBuffer-02707YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdDispatchBase-commandBuffer-02712YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_1)If 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-02713NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_1)If 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-04617NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_1)+(VK_KHR_ray_query)If 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-cmdpoolYNoneimplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)The VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdDispatchBase-commandBuffer-parameterYNoneimplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDispatchBase-commandBuffer-recordingYNoneimplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)commandBuffer must be in the recording state
VUID-vkCmdDispatchBase-filterCubic-02694YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02696YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_NV_corner_sampled_image)Any 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-07753YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)If a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdDispatchBase-groupCountX-00424YCmdDispatchExceedLimitsexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)groupCountX must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] minus baseGroupX
VUID-vkCmdDispatchBase-groupCountY-00425YCmdDispatchExceedLimitsexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)groupCountY must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] minus baseGroupY
VUID-vkCmdDispatchBase-groupCountZ-00426YCmdDispatchExceedLimitsexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)groupCountZ must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] minus baseGroupZ
VUID-vkCmdDispatchBase-magFilter-04553YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDispatchBase-maintenance4-06425YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDispatchBase-mipmapMode-04770YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDispatchBase-renderpassYNoneimplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)This command must only be called outside of a render pass instance
VUID-vkCmdDispatchBase-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_shader_image_atomic_int64)If 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-06936NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_pipeline_robustness)If 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-06935NNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)This command must only be called outside of a video coding scope
VUID-vkCmdDispatchBase-viewType-07752YNoneexplicitvkCmdDispatchBase(VK_VERSION_1_1,VK_KHR_device_group)If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdDispatchIndirect-ConstOffset-06551NNoneexplicitvkCmdDispatchIndirect(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDispatchIndirect-None-02691YNoneexplicitvkCmdDispatchIndirectcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDispatchIndirect-None-02692YNoneexplicitvkCmdDispatchIndirect(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693YNoneexplicitvkCmdDispatchIndirect(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697YNoneexplicitvkCmdDispatchIndirectcoreFor each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDispatchIndirect-None-02698NNoneexplicitvkCmdDispatchIndirect!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDispatchIndirect-None-02699YNoneexplicitvkCmdDispatchIndirect!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdDispatchIndirect-None-02700YInvalidPipelineexplicitvkCmdDispatchIndirectcoreA valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDispatchIndirect-None-02702YNoneexplicitvkCmdDispatchIndirectcoreIf the VkPipeline object bound 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-02703YNoneexplicitvkCmdDispatchIndirectcoreIf the VkPipeline object bound 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-02704YNoneexplicitvkCmdDispatchIndirectcoreIf the VkPipeline object bound 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-02705YNoneexplicitvkCmdDispatchIndirect!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706YNoneexplicitvkCmdDispatchIndirect!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02859YNoneexplicitvkCmdDispatchIndirectcoreThere must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDispatchIndirect-None-04115YNoneexplicitvkCmdDispatchIndirectcoreIf a VkImageView is accessed using OpImageWrite as 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-None-06479YNoneexplicitvkCmdDispatchIndirect(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-06550NNoneexplicitvkCmdDispatchIndirect(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDispatchIndirect-None-07288NNoneexplicitvkCmdDispatchIndirectcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDispatchIndirect-None-08114YNoneexplicitvkCmdDispatchIndirect(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115YNoneexplicitvkCmdDispatchIndirect(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdDispatchIndirect(VK_EXT_descriptor_buffer)Descriptors 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-08117YNoneexplicitvkCmdDispatchIndirect(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdDispatchIndirect(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDispatchIndirect(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdDispatchIndirect(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDispatchIndirect-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDispatchIndirect(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDispatchIndirect(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdDispatchIndirect(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdDispatchIndirect(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdDispatchIndirect(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdDispatchIndirect(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDispatchIndirect-OpImageWrite-04469YNoneexplicitvkCmdDispatchIndirectcoreIf a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view's format
VUID-vkCmdDispatchIndirect-OpTypeImage-07027YNoneexplicitvkCmdDispatchIndirect(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028YNoneexplicitvkCmdDispatchIndirect(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029YNoneexplicitvkCmdDispatchIndirect(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030YNoneexplicitvkCmdDispatchIndirect(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any 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-04470NNoneexplicitvkCmdDispatchIndirect(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdDispatchIndirect(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdDispatchIndirect(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdDispatchIndirect(VK_EXT_shader_image_atomic_int64)If 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-aspectMask-06478NNoneexplicitvkCmdDispatchIndirect!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdDispatchIndirect-buffer-02708YNoneexplicitvkCmdDispatchIndirectcoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDispatchIndirect-buffer-02709YNoneexplicitvkCmdDispatchIndirectcorebuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDispatchIndirect-buffer-parameterYNoneimplicitvkCmdDispatchIndirectcorebuffer must be a valid VkBuffer handle
VUID-vkCmdDispatchIndirect-commandBuffer-02701YNoneexplicitvkCmdDispatchIndirectcoreIf the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdDispatchIndirect-commandBuffer-02707YNoneexplicitvkCmdDispatchIndirect(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdDispatchIndirect-commandBuffer-02711YNoneexplicitvkCmdDispatchIndirect(VK_VERSION_1_1)commandBuffer must not be a protected command buffer
VUID-vkCmdDispatchIndirect-commandBuffer-cmdpoolYNoneimplicitvkCmdDispatchIndirectcoreThe VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdDispatchIndirect-commandBuffer-parameterYNoneimplicitvkCmdDispatchIndirectcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDispatchIndirect-commandBuffer-recordingYNoneimplicitvkCmdDispatchIndirectcorecommandBuffer must be in the recording state
VUID-vkCmdDispatchIndirect-commonparentYNoneimplicitvkCmdDispatchIndirectcoreBoth of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDispatchIndirect-filterCubic-02694YNoneexplicitvkCmdDispatchIndirect(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695YNoneexplicitvkCmdDispatchIndirect(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02696YNoneexplicitvkCmdDispatchIndirect(VK_NV_corner_sampled_image)Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDispatchIndirect-format-07753YNoneexplicitvkCmdDispatchIndirectcoreIf a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdDispatchIndirect-magFilter-04553YNoneexplicitvkCmdDispatchIndirectcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDispatchIndirect-maintenance4-06425YNoneexplicitvkCmdDispatchIndirect(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDispatchIndirect-mipmapMode-04770YNoneexplicitvkCmdDispatchIndirectcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDispatchIndirect-offset-00407YInvalidPipelineexplicitvkCmdDispatchIndirectcoreThe sum of offset and the size of VkDispatchIndirectCommand must be less than or equal to the size of buffer
VUID-vkCmdDispatchIndirect-offset-02710YNoneexplicitvkCmdDispatchIndirectcoreoffset must be a multiple of 4
VUID-vkCmdDispatchIndirect-renderpassYNoneimplicitvkCmdDispatchIndirectcoreThis command must only be called outside of a render pass instance
VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDispatchIndirect(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdDispatchIndirect(VK_EXT_shader_image_atomic_int64)If 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-06936NNoneexplicitvkCmdDispatchIndirect(VK_EXT_pipeline_robustness)If 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-06935NNoneexplicitvkCmdDispatchIndirect(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdDispatchIndirectcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDispatchIndirect-viewType-07752YNoneexplicitvkCmdDispatchIndirectcoreIf a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdDraw-ConstOffset-06551NNoneexplicitvkCmdDraw(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDraw-None-02691YInvalidStorageAtomicOperationexplicitvkCmdDrawcoreIf 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-02692YSamplerImageViewFormatUnsupportedFilterexplicitvkCmdDraw(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693YVerifyImgFilterCubicSamplerInCmdDrawexplicitvkCmdDraw(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697YValidateMultiviewUnboundResourcesAfterBeginRenderPassAndNextSubpass, DescriptorSetCompatibilityexplicitvkCmdDrawcoreFor each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDraw-None-02698NNoneexplicitvkCmdDraw!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDraw-None-02699YImageDescriptorLayoutMismatch, DynamicOffsetWithNullBuffer, InvalidPushDescriptorImageLayout, DescriptorIndexingUpdateAfterBindexplicitvkCmdDraw!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdDraw-None-02700YValidateMultiviewUnboundResourcesAfterBeginRenderPassAndNextSubpass, InvalidPipelineexplicitvkCmdDrawcoreA valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDraw-None-02702YUnnormalizedCoordinatesSeparateSampler, UnnormalizedCoordinatesCombinedSamplerexplicitvkCmdDrawcoreIf the VkPipeline object bound 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-02703YUnnormalizedCoordinatesSeparateSampler, UnnormalizedCoordinatesCombinedSamplerexplicitvkCmdDrawcoreIf the VkPipeline object bound 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-02704YUnnormalizedCoordinatesInBoundsAccess, UnnormalizedCoordinatesSeparateSampler, UnnormalizedCoordinatesCombinedSamplerexplicitvkCmdDrawcoreIf the VkPipeline object bound 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-02705YNoneexplicitvkCmdDraw!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706YNoneexplicitvkCmdDraw!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02721YValidateExtendedDynamicStateEnabled, VerifyVertextBinding, InvalidVertexAttributeAlignment, ValidateMultiviewUnboundResourcesAfterBeginRenderPassAndNextSubpassexplicitvkCmdDrawcoreFor 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-02859YVerifyDynamicStateSettingCommandsexplicitvkCmdDrawcoreThere must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDraw-None-04007YValidateMultiviewUnboundResourcesAfterBeginRenderPassAndNextSubpass, VerifyVertextBindingexplicitvkCmdDrawcoreAll 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-04008YVerifyVertextBindingexplicitvkCmdDrawcoreIf 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-04115YNoneexplicitvkCmdDrawcoreIf a VkImageView is accessed using OpImageWrite as 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-None-04875YValidateExtendedDynamicState2PatchControlPointsEnabledexplicitvkCmdDraw(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-04876YValidateExtendedDynamicState2EnabledexplicitvkCmdDraw(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-04877YValidateExtendedDynamicState2EnabledexplicitvkCmdDraw(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-04879YValidateExtendedDynamicState2EnabledexplicitvkCmdDraw(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-04912NNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDraw-None-04914YNoneexplicitvkCmdDraw(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDraw-None-06479YMissingSampledImageDepthComparisonForFormatexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-06537YImageSubresourceOverlapBetweenRenderPassAndDescriptorSetsexplicitvkCmdDrawcoreMemory 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-06538YImageSubresourceOverlapBetweenAttachmentsAndDescriptorSets, TestDescriptorReadFromWriteAttachmentexplicitvkCmdDrawcoreIf any recorded command in the current subpass will write to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment
VUID-vkCmdDraw-None-06539YTestDescriptorWriteFromReadAttachmentexplicitvkCmdDrawcoreIf any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDraw-None-06550NNoneexplicitvkCmdDraw(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDraw-None-06666YDynamicSampleLocationsexplicitvkCmdDraw(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-06886YInvalidDepthStencilStateForReadOnlyLayoutexplicitvkCmdDrawcoreIf 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-06887YInvalidDepthStencilStateForReadOnlyLayoutexplicitvkCmdDrawcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDraw-None-07288NNoneexplicitvkCmdDrawcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDraw-None-07469NNoneexplicitvkCmdDrawcoreInput attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility
VUID-vkCmdDraw-None-07619YValidateExtendedDynamicState3EnabledexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07620YValidateExtendedDynamicState3EnabledexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07621YValidateExtendedDynamicState3EnabledexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07622YNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07623YNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07624YNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07625YValidateExtendedDynamicState3EnabledexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07626YValidateExtendedDynamicState3EnabledexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07627YNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07628YValidateExtendedDynamicState3EnabledexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07629YNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07630YValidateExtendedDynamicState3EnabledexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07631YNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07632YValidateExtendedDynamicState3EnabledexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07633YNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07634YNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07635YValidateExtendedDynamicState3EnabledexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07636YValidateExtendedDynamicState3EnabledexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07637YValidateExtendedDynamicState3EnabledexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07638YNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07639YNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07640YNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07641YNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07642YNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07643YNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07644YNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07645YNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07646YNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07647YNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07648YNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07649YNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07748NNoneexplicitvkCmdDrawcoreIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDraw-None-07749YValidateColorWriteDynamicStateNotSetexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-07751YValidateDiscardRectanglesDynamicStateNotSetexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDraw-None-08114YNoneexplicitvkCmdDraw(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115YNoneexplicitvkCmdDraw(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdDraw(VK_EXT_descriptor_buffer)Descriptors 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-08117YNoneexplicitvkCmdDraw(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdDraw(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDraw(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdDraw(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDraw-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDraw(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDraw(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdDraw(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdDraw(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdDraw(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdDraw(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDraw-OpImageWrite-04469YNoneexplicitvkCmdDrawcoreIf a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view's format
VUID-vkCmdDraw-OpTypeImage-07027YNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028YNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029YNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030YNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDraw-OpTypeImage-07468NNoneexplicitvkCmdDrawcoreIf any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDraw-SampledType-04470NNoneexplicitvkCmdDraw(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdDraw(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdDraw(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdDraw(VK_EXT_shader_image_atomic_int64)If 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-04141NNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)If 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-04142NNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)If 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-07480NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-aspectMask-06478NNoneexplicitvkCmdDraw!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdDraw-attachmentCount-07750YValidateColorWriteDynamicStateNotSetexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If 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-04727YDrawBlendEnabledFormatFeaturesexplicitvkCmdDrawcoreIf 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-06179YDynamicRenderingWithMistmatchingAttachmentsexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06180YDynamicRenderingWithMistmatchingAttachmentsexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDraw-colorAttachmentCount-06185YDynamicRenderingWithMismatchingMixedAttachmentSamplesexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06188YDynamicRenderingWithMistmatchingAttachmentSamplesexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the currently bound pipeline was created without 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 value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDraw-colorAttachmentCount-07616NNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDraw-commandBuffer-02701YValidateMultiviewUnboundResourcesAfterBeginRenderPassAndNextSubpass, DynamicStencilReadNotBound, DynamicStencilWriteNotBound, DynamicLineWidthNotBound, DynamicStencilRefNotBound, ViewportInheritance, DynamicBlendConstantsNotBound, DynamicDepthBoundsNotBound, DynViewportAndScissorUndefinedDrawState, DynamicDepthBiasNotBound, DynamicLineStippleNotBound, ViewportInheritanceMultiViewportexplicitvkCmdDrawcoreIf the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdDraw-commandBuffer-02707YNoneexplicitvkCmdDraw(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdDraw-commandBuffer-02712YNoneexplicitvkCmdDraw(VK_VERSION_1_1)If 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-02713NNoneexplicitvkCmdDraw(VK_VERSION_1_1)If 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-04617NNoneexplicitvkCmdDraw(VK_VERSION_1_1)+(VK_KHR_ray_query)If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer
VUID-vkCmdDraw-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDraw-commandBuffer-parameterYNoneimplicitvkCmdDrawcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDraw-commandBuffer-recordingYNoneimplicitvkCmdDrawcorecommandBuffer must be in the recording state
VUID-vkCmdDraw-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If 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-07488NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If 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-07491NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)If 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-07490NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If 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-dynamicPrimitiveTopologyUnrestricted-07500NNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter in the last call to vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDraw-filterCubic-02694YVerifyFilterCubicSamplerInCmdDrawexplicitvkCmdDraw(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695YVerifyFilterCubicSamplerInCmdDrawexplicitvkCmdDraw(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-07476NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)If 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-07477NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)If 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-07478NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)If 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-07479NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-02696YIllegalAddressModeWithCornerSampledNVexplicitvkCmdDraw(VK_NV_corner_sampled_image)Any 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-07753YDrawTimeImageComponentTypeMismatchWithPipelineexplicitvkCmdDrawcoreIf a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdDraw-imageView-06172NNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06173NNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06174NNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06175NNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06176NNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06177NNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06183YDynamicRenderingPipelineMissingFlagsexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-06184YDynamicRenderingPipelineMissingFlagsexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If 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-04878YValidateExtendedDynamicState2LogicOpEnabledexplicitvkCmdDraw(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDraw-magFilter-04553YSamplerImageViewFormatUnsupportedFilter, SampledInvalidImageViewsexplicitvkCmdDrawcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDraw-maintenance4-06425YValidateMultiviewUnboundResourcesAfterBeginRenderPassAndNextSubpass, DrawWithoutUpdatePushConstantsexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDraw-maxMultiviewInstanceIndex-02688YVerifyMaxMultiviewInstanceIndexexplicitvkCmdDraw(VK_VERSION_1_1,VK_KHR_multiview)If 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-04770YSampledInvalidImageViewsexplicitvkCmdDrawcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDraw-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDraw(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDraw-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDraw-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDraw-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDraw-multisampledRenderToSingleSampled-07475NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is 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-pColorBlendEnables-07470NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)If 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-06181YDynamicRenderingWithMistmatchingAttachmentsexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pDepthAttachment-06186YDynamicRenderingWithMismatchingMixedAttachmentSamplesexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06189YDynamicRenderingCommandDraw, DynamicRenderingWithMistmatchingAttachmentSamplesexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDraw-pDepthAttachment-07617NNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06182YDynamicRenderingWithMistmatchingAttachmentsexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06187YDynamicRenderingWithMismatchingMixedAttachmentSamplesexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06190YDynamicRenderingCommandDraw, DynamicRenderingWithMistmatchingAttachmentSamplesexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDraw-pStencilAttachment-07618NNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStrides-04884YNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this drawing command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDraw-pStrides-04913NNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-04552YInvalidPrimitiveFragmentShadingRateWriteMultiViewportLimitDynamicexplicitvkCmdDraw(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-primitiveTopology-03420YValidateExtendedDynamicStateEnabledexplicitvkCmdDraw(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-06709YPrimitivesGeneratedQueryStreamsexplicitvkCmdDraw(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)If 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-07481NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If 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-06708YPrimitivesGeneratedQueryAndDiscardEnabledexplicitvkCmdDraw(VK_EXT_primitives_generated_query)If 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-04740YNumSamplesMismatchexplicitvkCmdDraw!(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDraw-rasterizationSamples-07471NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)If 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-07474NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)If 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-07489NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDraw-rasterizationSamples-07494NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDraw-renderPass-02684YDrawWithPipelineIncompatibleWithRenderPassFragmentDensityMap, DrawWithPipelineIncompatibleWithRenderPass, DrawWithPipelineIncompatibleWithRenderPassMultiviewexplicitvkCmdDrawcoreThe 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-06198YDynamicRenderingPipelineexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-renderpassYNoneimplicitvkCmdDrawcoreThis command must only be called inside of a render pass instance
VUID-vkCmdDraw-sampleLocationsEnable-02689YInvalidSampleLocationsexplicitvkCmdDraw(VK_EXT_sample_locations)If 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-07484NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07485NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07486NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07487NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-sampleLocationsPerPixel-07482NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDraw-sampleLocationsPerPixel-07483NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDraw-samples-07472NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)If 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-07473NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)If 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-03418YValidateExtendedDynamicStateEnabledexplicitvkCmdDraw(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDraw(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdDraw(VK_EXT_shader_image_atomic_int64)If 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-06481YMeshShaderEXTDrawCmdsexplicitvkCmdDraw(VK_NV_mesh_shader,VK_EXT_mesh_shader)The 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-07073NNoneexplicitvkCmdDraw(VK_EXT_mesh_shader)If 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-07495NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDraw-stippledLineEnable-07496NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDraw-stippledLineEnable-07497NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDraw-stippledLineEnable-07498NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDraw-storageBuffers-06936NNoneexplicitvkCmdDraw(VK_EXT_pipeline_robustness)If 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-02685YTestPipelineSubpassIndexexplicitvkCmdDrawcoreThe 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-06935NNoneexplicitvkCmdDraw(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdDrawcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDraw-viewMask-06178YDynamicRenderingWithMismatchingViewMaskexplicitvkCmdDraw(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-07752YDrawTimeImageViewTypeMismatchWithPipelineexplicitvkCmdDrawcoreIf a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdDraw-viewportCount-03417YValidateExtendedDynamicStateEnabledexplicitvkCmdDraw(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-03419YValidateExtendedDynamicStateEnabledexplicitvkCmdDraw(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-04137NNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If 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-04138NNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDraw-viewportCount-04139NNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If 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-04140NNoneexplicitvkCmdDraw(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDraw-viewportCount-07492NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-07493NNoneexplicitvkCmdDraw(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-ConstOffset-06551NNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawIndexed-None-02691YNoneexplicitvkCmdDrawIndexedcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDrawIndexed-None-02692YNoneexplicitvkCmdDrawIndexed(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693YNoneexplicitvkCmdDrawIndexed(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697YNoneexplicitvkCmdDrawIndexedcoreFor each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndexed-None-02698NNoneexplicitvkCmdDrawIndexed!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndexed-None-02699YNoneexplicitvkCmdDrawIndexed!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdDrawIndexed-None-02700YInvalidPipelineexplicitvkCmdDrawIndexedcoreA valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawIndexed-None-02702YNoneexplicitvkCmdDrawIndexedcoreIf the VkPipeline object bound 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-02703YNoneexplicitvkCmdDrawIndexedcoreIf the VkPipeline object bound 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-02704YNoneexplicitvkCmdDrawIndexedcoreIf the VkPipeline object bound 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-02705YNoneexplicitvkCmdDrawIndexed!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706YNoneexplicitvkCmdDrawIndexed!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02721YNoneexplicitvkCmdDrawIndexedcoreFor a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdDrawIndexed-None-02859YNoneexplicitvkCmdDrawIndexedcoreThere must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawIndexed-None-04007YNoneexplicitvkCmdDrawIndexedcoreAll vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound
VUID-vkCmdDrawIndexed-None-04008YNoneexplicitvkCmdDrawIndexedcoreIf the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must not be VK_NULL_HANDLE
VUID-vkCmdDrawIndexed-None-04115YNoneexplicitvkCmdDrawIndexedcoreIf a VkImageView is accessed using OpImageWrite as 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-None-04875YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-04876YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-04877YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-04879YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-04912NNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndexed-None-04914YNoneexplicitvkCmdDrawIndexed(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndexed-None-06479YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDrawIndexed-None-06537YNoneexplicitvkCmdDrawIndexedcoreMemory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawIndexed-None-06538YNoneexplicitvkCmdDrawIndexedcoreIf any recorded command in the current subpass will write to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment
VUID-vkCmdDrawIndexed-None-06539YNoneexplicitvkCmdDrawIndexedcoreIf any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawIndexed-None-06550NNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawIndexed-None-06666YNoneexplicitvkCmdDrawIndexed(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-06886YNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
VUID-vkCmdDrawIndexed-None-06887YNoneexplicitvkCmdDrawIndexedcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawIndexed-None-07288NNoneexplicitvkCmdDrawIndexedcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDrawIndexed-None-07312YValidateMultiviewUnboundResourcesAfterBeginRenderPassAndNextSubpass, IndexBufferNotBoundexplicitvkCmdDrawIndexedcoreAn index buffer must be bound
VUID-vkCmdDrawIndexed-None-07469NNoneexplicitvkCmdDrawIndexedcoreInput attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility
VUID-vkCmdDrawIndexed-None-07619YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07620YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07621YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07622YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07623YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07624YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07625YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07626YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07627YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07628YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07629YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07630YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07631YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07632YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07633YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07634YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07635YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07636YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07637YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07638YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07639YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07640YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07641YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07642YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07643YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07644YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07645YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07646YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07647YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07648YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07649YNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07748NNoneexplicitvkCmdDrawIndexedcoreIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawIndexed-None-07749YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-07751YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexed-None-08114YNoneexplicitvkCmdDrawIndexed(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115YNoneexplicitvkCmdDrawIndexed(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdDrawIndexed(VK_EXT_descriptor_buffer)Descriptors 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-08117YNoneexplicitvkCmdDrawIndexed(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdDrawIndexed(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawIndexed(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdDrawIndexed(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawIndexed-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawIndexed(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawIndexed(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdDrawIndexed(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdDrawIndexed(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdDrawIndexed(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdDrawIndexed(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawIndexed-OpImageWrite-04469YNoneexplicitvkCmdDrawIndexedcoreIf a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view's format
VUID-vkCmdDrawIndexed-OpTypeImage-07027YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndexed-OpTypeImage-07468NNoneexplicitvkCmdDrawIndexedcoreIf any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawIndexed-SampledType-04470NNoneexplicitvkCmdDrawIndexed(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdDrawIndexed(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdDrawIndexed(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdDrawIndexed(VK_EXT_shader_image_atomic_int64)If 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-04141NNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)If 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-04142NNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)If 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-07480NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-aspectMask-06478NNoneexplicitvkCmdDrawIndexed!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdDrawIndexed-attachmentCount-07750YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline
VUID-vkCmdDrawIndexed-blendEnable-04727YNoneexplicitvkCmdDrawIndexedcoreIf rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-vkCmdDrawIndexed-colorAttachmentCount-06179YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06180YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndexed-colorAttachmentCount-06185YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06188YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the currently bound pipeline was created without 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 value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndexed-colorAttachmentCount-07616NNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexed-commandBuffer-02701YNoneexplicitvkCmdDrawIndexedcoreIf the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdDrawIndexed-commandBuffer-02707YInvalidMixingProtectedResourcesexplicitvkCmdDrawIndexed(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdDrawIndexed-commandBuffer-02712YInvalidMixingProtectedResourcesexplicitvkCmdDrawIndexed(VK_VERSION_1_1)If 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-02713NNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_1)If 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-04617NNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_1)+(VK_KHR_ray_query)If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer
VUID-vkCmdDrawIndexed-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawIndexedcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawIndexed-commandBuffer-parameterYNoneimplicitvkCmdDrawIndexedcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawIndexed-commandBuffer-recordingYNoneimplicitvkCmdDrawIndexedcorecommandBuffer must be in the recording state
VUID-vkCmdDrawIndexed-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If 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-07488NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If 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-07491NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)If 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-07490NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If 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-dynamicPrimitiveTopologyUnrestricted-07500NNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter in the last call to vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawIndexed-filterCubic-02694YNoneexplicitvkCmdDrawIndexed(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695YNoneexplicitvkCmdDrawIndexed(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-07476NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)If 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-07477NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)If 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-07478NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)If 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-07479NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-firstIndex-04932YNoneexplicitvkCmdDrawIndexedcore(indexSize {times} (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer
VUID-vkCmdDrawIndexed-flags-02696YNoneexplicitvkCmdDrawIndexed(VK_NV_corner_sampled_image)Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDrawIndexed-format-07753YNoneexplicitvkCmdDrawIndexedcoreIf a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdDrawIndexed-imageView-06172NNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06173NNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06174NNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06175NNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06176NNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06177NNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06183YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-06184YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If 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-04878YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawIndexed-magFilter-04553YNoneexplicitvkCmdDrawIndexedcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndexed-maintenance4-06425YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndexed-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_1,VK_KHR_multiview)If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
VUID-vkCmdDrawIndexed-mipmapMode-04770YNoneexplicitvkCmdDrawIndexedcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawIndexed(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07475NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is 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-pColorBlendEnables-07470NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)If 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-06181YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pDepthAttachment-06186YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06189YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndexed-pDepthAttachment-07617NNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06182YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06187YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06190YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndexed-pStencilAttachment-07618NNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStrides-04884YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this drawing command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawIndexed-pStrides-04913NNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawIndexed(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-primitiveTopology-03420YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawIndexed(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)If 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-07481NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If 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-06708YNoneexplicitvkCmdDrawIndexed(VK_EXT_primitives_generated_query)If 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-04740YNoneexplicitvkCmdDrawIndexed!(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndexed-rasterizationSamples-07471NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)If 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-07474NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)If 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-07489NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawIndexed-rasterizationSamples-07494NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawIndexed-renderPass-02684YNoneexplicitvkCmdDrawIndexedcoreThe current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawIndexed-renderPass-06198YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE
VUID-vkCmdDrawIndexed-renderpassYNoneimplicitvkCmdDrawIndexedcoreThis command must only be called inside of a render pass instance
VUID-vkCmdDrawIndexed-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawIndexed(VK_EXT_sample_locations)If 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-07484NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07485NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07486NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07487NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-sampleLocationsPerPixel-07482NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07483NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndexed-samples-07472NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)If 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-07473NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)If 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-03418YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDrawIndexed(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdDrawIndexed(VK_EXT_shader_image_atomic_int64)If 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-06481YNoneexplicitvkCmdDrawIndexed(VK_NV_mesh_shader,VK_EXT_mesh_shader)The 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-07073NNoneexplicitvkCmdDrawIndexed(VK_EXT_mesh_shader)If 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-07495NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawIndexed-stippledLineEnable-07496NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawIndexed-stippledLineEnable-07497NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawIndexed-stippledLineEnable-07498NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawIndexed-storageBuffers-06936NNoneexplicitvkCmdDrawIndexed(VK_EXT_pipeline_robustness)If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawIndexed-subpass-02685YNoneexplicitvkCmdDrawIndexedcoreThe subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawIndexed-uniformBuffers-06935NNoneexplicitvkCmdDrawIndexed(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdDrawIndexedcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDrawIndexed-viewMask-06178YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask
VUID-vkCmdDrawIndexed-viewType-07752YNoneexplicitvkCmdDrawIndexedcoreIf a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdDrawIndexed-viewportCount-03417YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-03419YNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-04137NNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If 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-04138NNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexed-viewportCount-04139NNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If 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-04140NNoneexplicitvkCmdDrawIndexed(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexed-viewportCount-07492NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-07493NNoneexplicitvkCmdDrawIndexed(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-ConstOffset-06551NNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawIndexedIndirect-None-02691YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDrawIndexedIndirect-None-02692YNoneexplicitvkCmdDrawIndexedIndirect(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693YNoneexplicitvkCmdDrawIndexedIndirect(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697YNoneexplicitvkCmdDrawIndexedIndirectcoreFor each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndexedIndirect-None-02698NNoneexplicitvkCmdDrawIndexedIndirect!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndexedIndirect-None-02699YNoneexplicitvkCmdDrawIndexedIndirect!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdDrawIndexedIndirect-None-02700YInvalidPipelineexplicitvkCmdDrawIndexedIndirectcoreA valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawIndexedIndirect-None-02702YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VkPipeline object bound 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-02703YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VkPipeline object bound 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-02704YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VkPipeline object bound 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-02705YNoneexplicitvkCmdDrawIndexedIndirect!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706YNoneexplicitvkCmdDrawIndexedIndirect!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02721YNoneexplicitvkCmdDrawIndexedIndirectcoreFor a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdDrawIndexedIndirect-None-02859YNoneexplicitvkCmdDrawIndexedIndirectcoreThere must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawIndexedIndirect-None-04007YNoneexplicitvkCmdDrawIndexedIndirectcoreAll vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound
VUID-vkCmdDrawIndexedIndirect-None-04008YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must not be VK_NULL_HANDLE
VUID-vkCmdDrawIndexedIndirect-None-04115YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a VkImageView is accessed using OpImageWrite as 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-None-04875YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-04876YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-04877YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-04879YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-04912NNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndexedIndirect-None-04914YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndexedIndirect-None-06479YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDrawIndexedIndirect-None-06537YNoneexplicitvkCmdDrawIndexedIndirectcoreMemory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawIndexedIndirect-None-06538YNoneexplicitvkCmdDrawIndexedIndirectcoreIf any recorded command in the current subpass will write to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment
VUID-vkCmdDrawIndexedIndirect-None-06539YNoneexplicitvkCmdDrawIndexedIndirectcoreIf any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawIndexedIndirect-None-06550NNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawIndexedIndirect-None-06666YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-06886YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
VUID-vkCmdDrawIndexedIndirect-None-06887YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawIndexedIndirect-None-07288NNoneexplicitvkCmdDrawIndexedIndirectcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDrawIndexedIndirect-None-07312YIndirectDrawTestsexplicitvkCmdDrawIndexedIndirectcoreAn index buffer must be bound
VUID-vkCmdDrawIndexedIndirect-None-07469NNoneexplicitvkCmdDrawIndexedIndirectcoreInput attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility
VUID-vkCmdDrawIndexedIndirect-None-07619YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07620YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07621YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07622YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07623YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07624YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07625YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07626YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07627YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07628YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07629YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07630YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07631YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07632YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07633YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07634YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07635YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07636YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07637YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07638YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07639YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07640YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07641YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07642YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07643YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07644YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07645YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07646YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07647YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07648YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07649YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07748NNoneexplicitvkCmdDrawIndexedIndirectcoreIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawIndexedIndirect-None-07749YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-07751YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirect-None-08114YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_descriptor_buffer)Descriptors 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-08117YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawIndexedIndirect(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdDrawIndexedIndirect(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawIndexedIndirect(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawIndexedIndirect(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdDrawIndexedIndirect(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdDrawIndexedIndirect(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdDrawIndexedIndirect(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdDrawIndexedIndirect(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawIndexedIndirect-OpImageWrite-04469YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view's format
VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07027YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07468NNoneexplicitvkCmdDrawIndexedIndirectcoreIf any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawIndexedIndirect-SampledType-04470NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_shader_image_atomic_int64)If 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-04141NNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)If 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-04142NNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)If 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-07480NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-aspectMask-06478NNoneexplicitvkCmdDrawIndexedIndirect!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdDrawIndexedIndirect-attachmentCount-07750YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline
VUID-vkCmdDrawIndexedIndirect-blendEnable-04727YNoneexplicitvkCmdDrawIndexedIndirectcoreIf rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-vkCmdDrawIndexedIndirect-buffer-02708YNoneexplicitvkCmdDrawIndexedIndirectcoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawIndexedIndirect-buffer-02709YNoneexplicitvkCmdDrawIndexedIndirectcorebuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawIndexedIndirect-buffer-parameterYNoneimplicitvkCmdDrawIndexedIndirectcorebuffer must be a valid VkBuffer handle
VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06179YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06180YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06185YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06188YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the currently bound pipeline was created without 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 value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-07616NNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexedIndirect-commandBuffer-02701YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711YInvalidUnprotectedCommandsexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_1)commandBuffer must not be a protected command buffer
VUID-vkCmdDrawIndexedIndirect-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawIndexedIndirectcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameterYNoneimplicitvkCmdDrawIndexedIndirectcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawIndexedIndirect-commandBuffer-recordingYNoneimplicitvkCmdDrawIndexedIndirectcorecommandBuffer must be in the recording state
VUID-vkCmdDrawIndexedIndirect-commonparentYNoneimplicitvkCmdDrawIndexedIndirectcoreBoth of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawIndexedIndirect-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If 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-07488NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If 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-07491NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)If 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-07490NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If 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-drawCount-00528YValidateStrideexplicitvkCmdDrawIndexedIndirectcoreIf 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-00539YValidateStrideexplicitvkCmdDrawIndexedIndirectcoreIf drawCount is equal to 1, (offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer
VUID-vkCmdDrawIndexedIndirect-drawCount-00540YValidateStride, IndirectDrawTestsexplicitvkCmdDrawIndexedIndirectcoreIf drawCount is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer
VUID-vkCmdDrawIndexedIndirect-drawCount-02718YNoneexplicitvkCmdDrawIndexedIndirectcoreIf the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1
VUID-vkCmdDrawIndexedIndirect-drawCount-02719YNoneexplicitvkCmdDrawIndexedIndirectcoredrawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawIndexedIndirect-dynamicPrimitiveTopologyUnrestricted-07500NNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter in the last call to vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawIndexedIndirect-filterCubic-02694YNoneexplicitvkCmdDrawIndexedIndirect(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695YNoneexplicitvkCmdDrawIndexedIndirect(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-07476NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)If 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-07477NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)If 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-07478NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)If 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-07479NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-02696YNoneexplicitvkCmdDrawIndexedIndirect(VK_NV_corner_sampled_image)Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDrawIndexedIndirect-format-07753YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdDrawIndexedIndirect-imageView-06172NNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06173NNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06174NNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06175NNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06176NNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06177NNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06183YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-06184YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If 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-04878YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawIndexedIndirect-magFilter-04553YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndexedIndirect-maintenance4-06425YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndexedIndirect-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_1,VK_KHR_multiview)If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
VUID-vkCmdDrawIndexedIndirect-mipmapMode-04770YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07475NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is 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-offset-02710YIndirectDrawTestsexplicitvkCmdDrawIndexedIndirectcoreoffset must be a multiple of 4
VUID-vkCmdDrawIndexedIndirect-pColorBlendEnables-07470NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)If 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-06181YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pDepthAttachment-06186YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06189YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-07617NNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06182YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06187YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06190YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-07618NNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStrides-04884YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this drawing command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawIndexedIndirect-pStrides-04913NNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawIndexedIndirect(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-primitiveTopology-03420YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)If 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-07481NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If 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-06708YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_primitives_generated_query)If 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-04740YNoneexplicitvkCmdDrawIndexedIndirect!(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07471NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)If 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-07474NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)If 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-07489NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07494NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawIndexedIndirect-renderPass-02684YNoneexplicitvkCmdDrawIndexedIndirectcoreThe current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawIndexedIndirect-renderPass-06198YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE
VUID-vkCmdDrawIndexedIndirect-renderpassYNoneimplicitvkCmdDrawIndexedIndirectcoreThis command must only be called inside of a render pass instance
VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_sample_locations)If 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-07484NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07485NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07486NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07487NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-sampleLocationsPerPixel-07482NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07483NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndexedIndirect-samples-07472NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)If 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-07473NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)If 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-03418YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_shader_image_atomic_int64)If 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-06481YNoneexplicitvkCmdDrawIndexedIndirect(VK_NV_mesh_shader,VK_EXT_mesh_shader)The 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-07073NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_mesh_shader)If 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-07495NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07496NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07497NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07498NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawIndexedIndirect-storageBuffers-06936NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_pipeline_robustness)If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawIndexedIndirect-subpass-02685YNoneexplicitvkCmdDrawIndexedIndirectcoreThe subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawIndexedIndirect-uniformBuffers-06935NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdDrawIndexedIndirectcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDrawIndexedIndirect-viewMask-06178YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask
VUID-vkCmdDrawIndexedIndirect-viewType-07752YNoneexplicitvkCmdDrawIndexedIndirectcoreIf a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdDrawIndexedIndirect-viewportCount-03417YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-03419YNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-04137NNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If 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-04138NNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirect-viewportCount-04139NNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If 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-04140NNoneexplicitvkCmdDrawIndexedIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirect-viewportCount-07492NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-07493NNoneexplicitvkCmdDrawIndexedIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-ConstOffset-06551NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawIndexedIndirectCount-None-02691YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If 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-02692YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndexedIndirectCount-None-02698NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndexedIndirectCount-None-02699YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdDrawIndexedIndirectCount-None-02700YInvalidPipelineexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)A valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawIndexedIndirectCount-None-02702YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If the VkPipeline object bound 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-02703YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If the VkPipeline object bound 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-02704YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If the VkPipeline object bound 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-02705YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02721YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)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-02859YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawIndexedIndirectCount-None-04007YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)All 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-04008YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If 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-04115YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If a VkImageView is accessed using OpImageWrite as 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-None-04445YDrawIndirectCountFeatureexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_2)If drawIndirectCount is not enabled this function must not be used
VUID-vkCmdDrawIndexedIndirectCount-None-04875YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-04876YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-04877YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-04879YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-04912NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndexedIndirectCount-None-04914YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndexedIndirectCount-None-06479YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-06537YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawIndexedIndirectCount-None-06538YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If any recorded command in the current subpass will write to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment
VUID-vkCmdDrawIndexedIndirectCount-None-06539YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawIndexedIndirectCount-None-06550NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawIndexedIndirectCount-None-06666YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-06886YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If 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-06887YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawIndexedIndirectCount-None-07288NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)Any shader invocation executed by this command must terminate
VUID-vkCmdDrawIndexedIndirectCount-None-07312YDrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)An index buffer must be bound
VUID-vkCmdDrawIndexedIndirectCount-None-07469NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)Input 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-07619YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07620YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07621YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07622YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07623YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07624YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07625YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07626YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07627YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07628YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07629YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07630YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07631YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07632YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07633YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07634YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07635YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07636YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07637YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07638YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07639YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07640YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07641YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07642YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07643YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07644YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07645YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07646YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07647YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07648YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07649YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07748NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawIndexedIndirectCount-None-07749YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-07751YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndexedIndirectCount-None-08114YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_descriptor_buffer)Descriptors 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-08117YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-04469YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If 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-OpTypeImage-07027YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any 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-07468NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawIndexedIndirectCount-SampledType-04470NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_shader_image_atomic_int64)If 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-04141NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)If 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-04142NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)If 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-07480NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-aspectMask-06478NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdDrawIndexedIndirectCount-attachmentCount-07750YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If 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-04727YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If 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-02708YDrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawIndexedIndirectCount-buffer-02709YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawIndexedIndirectCount-buffer-parameterYNoneimplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)buffer must be a valid VkBuffer handle
VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06179YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06180YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06185YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06188YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the currently bound pipeline was created without 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 value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-07616NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02701YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1)commandBuffer must not be a protected command buffer
VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-parameterYNoneimplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-recordingYNoneimplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)commandBuffer must be in the recording state
VUID-vkCmdDrawIndexedIndirectCount-commonparentYNoneimplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawIndexedIndirectCount-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If 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-02714YDrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02715YDrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02717YNVRayTracingValidateCmdCopyAccelerationStructureexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)The count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawIndexedIndirectCount-countBuffer-03153YNVRayTracingValidateCmdCopyAccelerationStructureexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If 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-03154YNVRayTracingValidateCmdCopyAccelerationStructureexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If count stored in countBuffer is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer
VUID-vkCmdDrawIndexedIndirectCount-countBuffer-parameterYNoneimplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)countBuffer must be a valid VkBuffer handle
VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-02716YDrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)countBufferOffset must be a multiple of 4
VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-04129YDrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)(countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer
VUID-vkCmdDrawIndexedIndirectCount-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If 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-07491NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)If 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-07490NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If 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-dynamicPrimitiveTopologyUnrestricted-07500NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter in the last call to vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawIndexedIndirectCount-filterCubic-02694YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-07476NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If 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-07477NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If 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-07478NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If 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-07479NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-02696YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_NV_corner_sampled_image)Any 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-07753YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdDrawIndexedIndirectCount-imageView-06172NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06173NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06174NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06175NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06176NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06177NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06183YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-06184YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If 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-04878YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawIndexedIndirectCount-magFilter-04553YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndexedIndirectCount-maintenance4-06425YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndexedIndirectCount-maxDrawCount-03143YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer
VUID-vkCmdDrawIndexedIndirectCount-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_multiview)If 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-04770YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07475NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is 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-offset-02710YDrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)offset must be a multiple of 4
VUID-vkCmdDrawIndexedIndirectCount-pColorBlendEnables-07470NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If 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-06181YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pDepthAttachment-06186YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06189YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-07617NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06182YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06187YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06190YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-07618NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStrides-04884YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this drawing command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawIndexedIndirectCount-pStrides-04913NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-primitiveTopology-03420YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)If 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-07481NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If 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-06708YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_primitives_generated_query)If 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-04740YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07471NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If 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-07474NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)If 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-07489NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07494NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawIndexedIndirectCount-renderPass-02684YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)The 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-06198YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-renderpassYNoneimplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)This command must only be called inside of a render pass instance
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_sample_locations)If 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-07484NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07485NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07486NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07487NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-sampleLocationsPerPixel-07482NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07483NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndexedIndirectCount-samples-07472NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If 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-07473NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If 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-03418YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_shader_image_atomic_int64)If 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-06481YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)The 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-07073NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_mesh_shader)If 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-07495NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07496NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07497NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07498NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawIndexedIndirectCount-storageBuffers-06936NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_pipeline_robustness)If 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-03142YDrawIndexedIndirectCountKHRexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndexedIndirectCommand)
VUID-vkCmdDrawIndexedIndirectCount-subpass-02685YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)The 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-06935NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)This command must only be called outside of a video coding scope
VUID-vkCmdDrawIndexedIndirectCount-viewMask-06178YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-07752YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03417YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-03419YNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-04137NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If 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-04138NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04139NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If 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-04140NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndexedIndirectCount-viewportCount-07492NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-07493NNoneexplicitvkCmdDrawIndexedIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-ConstOffset-06551NNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawIndirect-None-02691YNoneexplicitvkCmdDrawIndirectcoreIf a VkImageView is accessed using atomic operations as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VUID-vkCmdDrawIndirect-None-02692YNoneexplicitvkCmdDrawIndirect(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693YNoneexplicitvkCmdDrawIndirect(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697YNoneexplicitvkCmdDrawIndirectcoreFor each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndirect-None-02698NNoneexplicitvkCmdDrawIndirect!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndirect-None-02699YNoneexplicitvkCmdDrawIndirect!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdDrawIndirect-None-02700YInvalidPipelineexplicitvkCmdDrawIndirectcoreA valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawIndirect-None-02702YNoneexplicitvkCmdDrawIndirectcoreIf the VkPipeline object bound 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-02703YNoneexplicitvkCmdDrawIndirectcoreIf the VkPipeline object bound 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-02704YNoneexplicitvkCmdDrawIndirectcoreIf the VkPipeline object bound 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-02705YNoneexplicitvkCmdDrawIndirect!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706YNoneexplicitvkCmdDrawIndirect!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02721YNoneexplicitvkCmdDrawIndirectcoreFor a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-vkCmdDrawIndirect-None-02859YNoneexplicitvkCmdDrawIndirectcoreThere must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawIndirect-None-04007YNoneexplicitvkCmdDrawIndirectcoreAll vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must have either valid or VK_NULL_HANDLE buffers bound
VUID-vkCmdDrawIndirect-None-04008YNoneexplicitvkCmdDrawIndirectcoreIf the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must not be VK_NULL_HANDLE
VUID-vkCmdDrawIndirect-None-04115YNoneexplicitvkCmdDrawIndirectcoreIf a VkImageView is accessed using OpImageWrite as 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-None-04875YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-04876YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-04877YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-04879YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-04912NNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndirect-None-04914YNoneexplicitvkCmdDrawIndirect(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndirect-None-06479YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view's format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
VUID-vkCmdDrawIndirect-None-06537YNoneexplicitvkCmdDrawIndirectcoreMemory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawIndirect-None-06538YNoneexplicitvkCmdDrawIndirectcoreIf any recorded command in the current subpass will write to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment
VUID-vkCmdDrawIndirect-None-06539YNoneexplicitvkCmdDrawIndirectcoreIf any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawIndirect-None-06550NNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawIndirect-None-06666YNoneexplicitvkCmdDrawIndirect(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-06886YNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the depth aspect, depth writes must be disabled
VUID-vkCmdDrawIndirect-None-06887YNoneexplicitvkCmdDrawIndirectcoreIf the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawIndirect-None-07288NNoneexplicitvkCmdDrawIndirectcoreAny shader invocation executed by this command must terminate
VUID-vkCmdDrawIndirect-None-07469NNoneexplicitvkCmdDrawIndirectcoreInput attachment views accessed in a subpass must be created with the same VkFormat as the corresponding subpass definition, and be created with a VkImageView that is compatible with the attachment referenced by the subpass' pInputAttachments[InputAttachmentIndex] in the currently bound VkFramebuffer as specified by Fragment Input Attachment Compatibility
VUID-vkCmdDrawIndirect-None-07619YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07620YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07621YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07622YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07623YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07624YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07625YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07626YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07627YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07628YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07629YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07630YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07631YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07632YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07633YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07634YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07635YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07636YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07637YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07638YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07639YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07640YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07641YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07642YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07643YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07644YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07645YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07646YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07647YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07648YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07649YNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07748NNoneexplicitvkCmdDrawIndirectcoreIf any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawIndirect-None-07749YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-07751YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirect-None-08114YNoneexplicitvkCmdDrawIndirect(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115YNoneexplicitvkCmdDrawIndirect(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdDrawIndirect(VK_EXT_descriptor_buffer)Descriptors 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-08117YNoneexplicitvkCmdDrawIndirect(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdDrawIndirect(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawIndirect(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdDrawIndirect(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawIndirect-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawIndirect(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawIndirect(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdDrawIndirect(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdDrawIndirect(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdDrawIndirect(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdDrawIndirect(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM
VUID-vkCmdDrawIndirect-OpImageWrite-04469YNoneexplicitvkCmdDrawIndirectcoreIf a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view's format
VUID-vkCmdDrawIndirect-OpTypeImage-07027YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view's buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
VUID-vkCmdDrawIndirect-OpTypeImage-07468NNoneexplicitvkCmdDrawIndirectcoreIf any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawIndirect-SampledType-04470NNoneexplicitvkCmdDrawIndirect(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdDrawIndirect(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdDrawIndirect(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdDrawIndirect(VK_EXT_shader_image_atomic_int64)If 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-04141NNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)If 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-04142NNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)If 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-07480NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-aspectMask-06478NNoneexplicitvkCmdDrawIndirect!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdDrawIndirect-attachmentCount-07750YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then the attachmentCount parameter of vkCmdSetColorWriteEnableEXT must be greater than or equal to the VkPipelineColorBlendStateCreateInfo::attachmentCount of the currently bound graphics pipeline
VUID-vkCmdDrawIndirect-blendEnable-04727YNoneexplicitvkCmdDrawIndirectcoreIf rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-vkCmdDrawIndirect-buffer-02708YNoneexplicitvkCmdDrawIndirectcoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawIndirect-buffer-02709YIndirectDrawTestsexplicitvkCmdDrawIndirectcorebuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawIndirect-buffer-parameterYNoneimplicitvkCmdDrawIndirectcorebuffer must be a valid VkBuffer handle
VUID-vkCmdDrawIndirect-colorAttachmentCount-06179YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06180YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndirect-colorAttachmentCount-06185YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06188YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the currently bound pipeline was created without 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 value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndirect-colorAttachmentCount-07616NNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirect-commandBuffer-02701YNoneexplicitvkCmdDrawIndirectcoreIf the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdDrawIndirect-commandBuffer-02707YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdDrawIndirect-commandBuffer-02711YInvalidUnprotectedCommandsexplicitvkCmdDrawIndirect(VK_VERSION_1_1)commandBuffer must not be a protected command buffer
VUID-vkCmdDrawIndirect-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawIndirectcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawIndirect-commandBuffer-parameterYNoneimplicitvkCmdDrawIndirectcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawIndirect-commandBuffer-recordingYNoneimplicitvkCmdDrawIndirectcorecommandBuffer must be in the recording state
VUID-vkCmdDrawIndirect-commonparentYNoneimplicitvkCmdDrawIndirectcoreBoth of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawIndirect-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If 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-07488NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If 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-07491NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)If 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-07490NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If 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-drawCount-00476YValidateStrideexplicitvkCmdDrawIndirectcoreIf 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-00487YValidateStrideexplicitvkCmdDrawIndirectcoreIf drawCount is equal to 1, (offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer
VUID-vkCmdDrawIndirect-drawCount-00488YValidateStride, IndirectDrawTestsexplicitvkCmdDrawIndirectcoreIf drawCount is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer
VUID-vkCmdDrawIndirect-drawCount-02718YNoneexplicitvkCmdDrawIndirectcoreIf the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1
VUID-vkCmdDrawIndirect-drawCount-02719YValidateStrideexplicitvkCmdDrawIndirectcoredrawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawIndirect-dynamicPrimitiveTopologyUnrestricted-07500NNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter in the last call to vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawIndirect-filterCubic-02694YNoneexplicitvkCmdDrawIndirect(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695YNoneexplicitvkCmdDrawIndirect(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-07476NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)If 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-07477NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)If 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-07478NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)If 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-07479NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-02696YNoneexplicitvkCmdDrawIndirect(VK_NV_corner_sampled_image)Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
VUID-vkCmdDrawIndirect-format-07753YNoneexplicitvkCmdDrawIndirectcoreIf a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdDrawIndirect-imageView-06172NNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06173NNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06174NNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06175NNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06176NNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06177NNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06183YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-06184YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If 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-04878YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawIndirect-magFilter-04553YNoneexplicitvkCmdDrawIndirectcoreIf a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndirect-maintenance4-06425YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndirect-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_1,VK_KHR_multiview)If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex
VUID-vkCmdDrawIndirect-mipmapMode-04770YNoneexplicitvkCmdDrawIndirectcoreIf a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawIndirect(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07475NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is 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-offset-02710YNoneexplicitvkCmdDrawIndirectcoreoffset must be a multiple of 4
VUID-vkCmdDrawIndirect-pColorBlendEnables-07470NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)If 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-06181YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pDepthAttachment-06186YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06189YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndirect-pDepthAttachment-07617NNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06182YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06187YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06190YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndirect-pStencilAttachment-07618NNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStrides-04884YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this drawing command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawIndirect-pStrides-04913NNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawIndirect(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-primitiveTopology-03420YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawIndirect(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)If 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-07481NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If 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-06708YNoneexplicitvkCmdDrawIndirect(VK_EXT_primitives_generated_query)If 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-04740YNoneexplicitvkCmdDrawIndirect!(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndirect-rasterizationSamples-07471NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)If 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-07474NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)If 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-07489NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawIndirect-rasterizationSamples-07494NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawIndirect-renderPass-02684YNoneexplicitvkCmdDrawIndirectcoreThe current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawIndirect-renderPass-06198YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline must have been created with a VkGraphicsPipelineCreateInfo::renderPass equal to VK_NULL_HANDLE
VUID-vkCmdDrawIndirect-renderpassYNoneimplicitvkCmdDrawIndirectcoreThis command must only be called inside of a render pass instance
VUID-vkCmdDrawIndirect-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawIndirect(VK_EXT_sample_locations)If 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-07484NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07485NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07486NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07487NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-sampleLocationsPerPixel-07482NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07483NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirect-samples-07472NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)If 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-07473NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)If 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-03418YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDrawIndirect(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdDrawIndirect(VK_EXT_shader_image_atomic_int64)If 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-06481YNoneexplicitvkCmdDrawIndirect(VK_NV_mesh_shader,VK_EXT_mesh_shader)The 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-07073NNoneexplicitvkCmdDrawIndirect(VK_EXT_mesh_shader)If 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-07495NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawIndirect-stippledLineEnable-07496NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawIndirect-stippledLineEnable-07497NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawIndirect-stippledLineEnable-07498NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawIndirect-storageBuffers-06936NNoneexplicitvkCmdDrawIndirect(VK_EXT_pipeline_robustness)If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawIndirect-subpass-02685YNoneexplicitvkCmdDrawIndirectcoreThe subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS
VUID-vkCmdDrawIndirect-uniformBuffers-06935NNoneexplicitvkCmdDrawIndirect(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdDrawIndirectcoreThis command must only be called outside of a video coding scope
VUID-vkCmdDrawIndirect-viewMask-06178YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound graphics pipeline must have been created with a VkPipelineRenderingCreateInfo::viewMask equal to VkRenderingInfo::viewMask
VUID-vkCmdDrawIndirect-viewType-07752YNoneexplicitvkCmdDrawIndirectcoreIf a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdDrawIndirect-viewportCount-03417YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-03419YNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-04137NNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If 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-04138NNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirect-viewportCount-04139NNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If 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-04140NNoneexplicitvkCmdDrawIndirect(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirect-viewportCount-07492NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-07493NNoneexplicitvkCmdDrawIndirect(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-ConstOffset-06551NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawIndirectByteCountEXT-None-02691YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)If 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-02692YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndirectByteCountEXT-None-02698NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndirectByteCountEXT-None-02699YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdDrawIndirectByteCountEXT-None-02700YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)A valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawIndirectByteCountEXT-None-02702YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)If the VkPipeline object bound 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-02703YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)If the VkPipeline object bound 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-02704YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)If the VkPipeline object bound 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-02705YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02721YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)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-02859YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawIndirectByteCountEXT-None-04007YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)All 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-04008YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)If 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-04115YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)If a VkImageView is accessed using OpImageWrite as 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-None-04875YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-04876YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-04877YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-04879YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-04912NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndirectByteCountEXT-None-04914YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndirectByteCountEXT-None-06479YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-06537YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawIndirectByteCountEXT-None-06538YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)If any recorded command in the current subpass will write to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment
VUID-vkCmdDrawIndirectByteCountEXT-None-06539YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawIndirectByteCountEXT-None-06550NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawIndirectByteCountEXT-None-06666YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-06886YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)If 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-06887YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawIndirectByteCountEXT-None-07288NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)Any shader invocation executed by this command must terminate
VUID-vkCmdDrawIndirectByteCountEXT-None-07469NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)Input 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-07619YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07620YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07621YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07622YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07623YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07624YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07625YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07626YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07627YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07628YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07629YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07630YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07631YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07632YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07633YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07634YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07635YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07636YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07637YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07638YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07639YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07640YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07641YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07642YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07643YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07644YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07645YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07646YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07647YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07648YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07649YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07748NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawIndirectByteCountEXT-None-07749YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-07751YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectByteCountEXT-None-08114YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_descriptor_buffer)Descriptors 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-08117YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-04469YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)If 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-OpTypeImage-07027YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any 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-07468NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04470NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_shader_image_atomic_int64)If 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-04141NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)If 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-04142NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)If 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-07480NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-aspectMask-06478NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdDrawIndirectByteCountEXT-attachmentCount-07750YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If 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-04727YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)If 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-06179YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06180YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06185YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06188YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the currently bound pipeline was created without 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 value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-07616NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_1)commandBuffer must not be a protected command buffer
VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02701YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameterYNoneimplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-recordingYNoneimplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)commandBuffer must be in the recording state
VUID-vkCmdDrawIndirectByteCountEXT-commonparentYNoneimplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)Both of commandBuffer, and counterBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawIndirectByteCountEXT-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If 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-02290YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)counterBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-04567YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)If counterBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-parameterYNoneimplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)counterBuffer must be a valid VkBuffer handle
VUID-vkCmdDrawIndirectByteCountEXT-counterBufferOffset-04568YDrawIndirectByteCountEXTexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)counterBufferOffset must be a multiple of 4
VUID-vkCmdDrawIndirectByteCountEXT-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If 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-07491NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)If 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-07490NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If 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-dynamicPrimitiveTopologyUnrestricted-07500NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter in the last call to vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawIndirectByteCountEXT-filterCubic-02694YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-07476NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)If 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-07477NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)If 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-07478NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)If 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-07479NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-02696YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_NV_corner_sampled_image)Any 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-07753YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)If a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdDrawIndirectByteCountEXT-imageView-06172NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06173NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06174NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06175NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06176NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06177NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06183YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-06184YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If 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-04878YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawIndirectByteCountEXT-magFilter-04553YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-06425YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndirectByteCountEXT-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_multiview)If 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-04770YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07475NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is 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-pColorBlendEnables-07470NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)If 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-06181YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pDepthAttachment-06186YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06189YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-07617NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06182YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06187YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06190YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-07618NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStrides-04884YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this drawing command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04913NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-primitiveTopology-03420YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)If 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-07481NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If 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-06708YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_primitives_generated_query)If 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-04740YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+!(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07471NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)If 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-07474NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)If 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-07489NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07494NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawIndirectByteCountEXT-renderPass-02684YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)The 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-06198YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-renderpassYNoneimplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)This command must only be called inside of a render pass instance
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_sample_locations)If 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-07484NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07485NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07486NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07487NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-sampleLocationsPerPixel-07482NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07483NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirectByteCountEXT-samples-07472NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)If 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-07473NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)If 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-03418YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_shader_image_atomic_int64)If 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-06481YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)The 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-07073NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_mesh_shader)If 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-07495NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07496NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07497NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07498NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawIndirectByteCountEXT-storageBuffers-06936NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_pipeline_robustness)If 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-02685YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)The 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-02287YDrawIndirectByteCountEXTexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled
VUID-vkCmdDrawIndirectByteCountEXT-transformFeedbackDraw-02288YDrawIndirectByteCountEXTexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)The implementation must support VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackDraw
VUID-vkCmdDrawIndirectByteCountEXT-uniformBuffers-06935NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_pipeline_robustness)If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawIndirectByteCountEXT-vertexStride-02289YDrawIndirectByteCountEXTexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)vertexStride must be greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxTransformFeedbackBufferDataStride
VUID-vkCmdDrawIndirectByteCountEXT-videocodingNNoneimplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)This command must only be called outside of a video coding scope
VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-07752YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03417YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-03419YNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-04137NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If 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-04138NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04139NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If 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-04140NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-07492NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-07493NNoneexplicitvkCmdDrawIndirectByteCountEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-ConstOffset-06551NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawIndirectCount-None-02691YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If 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-02692YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndirectCount-None-02698NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndirectCount-None-02699YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdDrawIndirectCount-None-02700YInvalidPipelineexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)A valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawIndirectCount-None-02702YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If the VkPipeline object bound 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-02703YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If the VkPipeline object bound 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-02704YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If the VkPipeline object bound 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-02705YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02721YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)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-02859YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawIndirectCount-None-04007YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)All 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-04008YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If 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-04115YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If a VkImageView is accessed using OpImageWrite as 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-None-04445YDrawIndirectCountFeatureexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_2)If drawIndirectCount is not enabled this function must not be used
VUID-vkCmdDrawIndirectCount-None-04875YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-04876YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-04877YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-04879YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-04912NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndirectCount-None-04914YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawIndirectCount-None-06479YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-06537YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawIndirectCount-None-06538YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If any recorded command in the current subpass will write to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment
VUID-vkCmdDrawIndirectCount-None-06539YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawIndirectCount-None-06550NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawIndirectCount-None-06666YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-06886YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If 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-06887YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawIndirectCount-None-07288NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)Any shader invocation executed by this command must terminate
VUID-vkCmdDrawIndirectCount-None-07469NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)Input 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-07619YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07620YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07621YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07622YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07623YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07624YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07625YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07626YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07627YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07628YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07629YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07630YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07631YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07632YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07633YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07634YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07635YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07636YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07637YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07638YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07639YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07640YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07641YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07642YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07643YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07644YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07645YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07646YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07647YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07648YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07649YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07748NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawIndirectCount-None-07749YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-07751YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawIndirectCount-None-08114YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_descriptor_buffer)Descriptors 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-08117YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawIndirectCount-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-04469YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If 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-OpTypeImage-07027YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any 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-07468NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawIndirectCount-SampledType-04470NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_shader_image_atomic_int64)If 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-04141NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)If 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-04142NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)If 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-07480NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-aspectMask-06478NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdDrawIndirectCount-attachmentCount-07750YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If 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-04727YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If 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-02708YDrawIndirectCountKHRexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawIndirectCount-buffer-02709YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawIndirectCount-buffer-parameterYNoneimplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)buffer must be a valid VkBuffer handle
VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06179YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06180YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06185YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06188YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the currently bound pipeline was created without 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 value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndirectCount-colorAttachmentCount-07616NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawIndirectCount-commandBuffer-02701YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdDrawIndirectCount-commandBuffer-02707YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdDrawIndirectCount-commandBuffer-02711YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1)commandBuffer must not be a protected command buffer
VUID-vkCmdDrawIndirectCount-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawIndirectCount-commandBuffer-parameterYNoneimplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawIndirectCount-commandBuffer-recordingYNoneimplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)commandBuffer must be in the recording state
VUID-vkCmdDrawIndirectCount-commonparentYNoneimplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawIndirectCount-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If 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-02714YDrawIndirectCountKHRexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawIndirectCount-countBuffer-02715YDrawIndirectCountKHRexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawIndirectCount-countBuffer-02717YNVRayTracingValidateCmdCopyAccelerationStructureexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)The count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawIndirectCount-countBuffer-03121YNVRayTracingValidateCmdCopyAccelerationStructureexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If 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-03122YNVRayTracingValidateCmdCopyAccelerationStructureexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If the count stored in countBuffer is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer
VUID-vkCmdDrawIndirectCount-countBuffer-parameterYNoneimplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)countBuffer must be a valid VkBuffer handle
VUID-vkCmdDrawIndirectCount-countBufferOffset-02716YDrawIndirectCountKHRexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)countBufferOffset must be a multiple of 4
VUID-vkCmdDrawIndirectCount-countBufferOffset-04129YDrawIndirectCountKHRexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)(countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer
VUID-vkCmdDrawIndirectCount-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If 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-07491NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)If 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-07490NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If 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-dynamicPrimitiveTopologyUnrestricted-07500NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter in the last call to vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawIndirectCount-filterCubic-02694YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-07476NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If 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-07477NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If 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-07478NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If 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-07479NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-02696YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_NV_corner_sampled_image)Any 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-07753YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdDrawIndirectCount-imageView-06172NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06173NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06174NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06175NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06176NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06177NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06183YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-06184YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If 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-04878YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawIndirectCount-magFilter-04553YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndirectCount-maintenance4-06425YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawIndirectCount-maxDrawCount-03111YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer
VUID-vkCmdDrawIndirectCount-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_1,VK_KHR_multiview)If 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-04770YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07475NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is 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-offset-02710YDrawIndirectCountKHRexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)offset must be a multiple of 4
VUID-vkCmdDrawIndirectCount-pColorBlendEnables-07470NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If 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-06181YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pDepthAttachment-06186YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06189YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawIndirectCount-pDepthAttachment-07617NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06182YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06187YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06190YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawIndirectCount-pStencilAttachment-07618NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStrides-04884YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this drawing command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawIndirectCount-pStrides-04913NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-primitiveTopology-03420YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)If 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-07481NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If 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-06708YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_primitives_generated_query)If 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-04740YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawIndirectCount-rasterizationSamples-07471NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If 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-07474NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)If 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-07489NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawIndirectCount-rasterizationSamples-07494NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawIndirectCount-renderPass-02684YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)The 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-06198YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-renderpassYNoneimplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)This command must only be called inside of a render pass instance
VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_sample_locations)If 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-07484NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07485NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07486NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07487NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-sampleLocationsPerPixel-07482NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07483NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawIndirectCount-samples-07472NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If 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-07473NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)If 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-03418YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_shader_image_atomic_int64)If 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-06481YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)The 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-07073NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_mesh_shader)If 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-07495NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawIndirectCount-stippledLineEnable-07496NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawIndirectCount-stippledLineEnable-07497NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawIndirectCount-stippledLineEnable-07498NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawIndirectCount-storageBuffers-06936NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_pipeline_robustness)If 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-03110YDrawIndirectCountKHRexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndirectCommand)
VUID-vkCmdDrawIndirectCount-subpass-02685YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)The 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-06935NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)This command must only be called outside of a video coding scope
VUID-vkCmdDrawIndirectCount-viewMask-06178YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-07752YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdDrawIndirectCount-viewportCount-03417YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-03419YNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-04137NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If 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-04138NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectCount-viewportCount-04139NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If 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-04140NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawIndirectCount-viewportCount-07492NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-07493NNoneexplicitvkCmdDrawIndirectCount(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-ConstOffset-06551NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawMeshTasksEXT-MeshEXT-07087YMeshShaderEXTDrawCmdsexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshEXT {ExecutionModel}
VUID-vkCmdDrawMeshTasksEXT-None-02691NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If 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-02692NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksEXT-None-02698NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksEXT-None-02699NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdDrawMeshTasksEXT-None-02700NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)A valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksEXT-None-02702NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the VkPipeline object bound 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-02703NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the VkPipeline object bound 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-02704NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the VkPipeline object bound 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-02705NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02859NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMeshTasksEXT-None-04115NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If a VkImageView is accessed using OpImageWrite as 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-None-04876NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-04877NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-06479NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-06537NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksEXT-None-06538NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If any recorded command in the current subpass will write to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment
VUID-vkCmdDrawMeshTasksEXT-None-06539NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawMeshTasksEXT-None-06550NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawMeshTasksEXT-None-06666NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-06886NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If 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-06887NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawMeshTasksEXT-None-07288NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)Any shader invocation executed by this command must terminate
VUID-vkCmdDrawMeshTasksEXT-None-07469NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)Input 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-07619NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07620NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07621NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07622NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07623NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07624NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07625NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07626NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07627NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07628NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07629NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07630NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07631NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07632NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07633NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07634NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07635NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07636NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07637NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07638NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07639NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07640NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07641NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07642NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07643NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07644NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07645NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07646NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07647NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07648NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07649NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07748NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMeshTasksEXT-None-07749NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-07751NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksEXT-None-08114YNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115YNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)Descriptors 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-08117YNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-04469NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If 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-OpTypeImage-07027NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any 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-07468NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawMeshTasksEXT-SampledType-04470NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-07322YMeshShaderEXTDrawCmdsexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT {ExecutionModel}, groupCountX must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[0]
VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07323YMeshShaderEXTDrawCmdsexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT {ExecutionModel}, groupCountY must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[1]
VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07324YMeshShaderEXTDrawCmdsexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT {ExecutionModel}, groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupCount[2]
VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07325YMeshShaderEXTDrawCmdsexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS contains a shader using the TaskEXT {ExecutionModel}, The product of groupCountX, groupCountY and groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupTotalCount
VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07326NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT {ExecutionModel}, groupCountX must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[0]
VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07327NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT {ExecutionModel}, groupCountY must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[1]
VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07328NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT {ExecutionModel}, groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[2]
VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07329NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS does not contain a shader using the TaskEXT {ExecutionModel}, The product of groupCountX, groupCountY and groupCountZ must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupTotalCount
VUID-vkCmdDrawMeshTasksEXT-VkPipelineVieportCreateInfo-04141NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)If 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-04142NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)If 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-07480NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-aspectMask-06478NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdDrawMeshTasksEXT-attachmentCount-07750NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If 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-04727NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If 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-06179NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06180NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-06185NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06188NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the currently bound pipeline was created without 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 value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-07616NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksEXT-commandBuffer-02701NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdDrawMeshTasksEXT-commandBuffer-02707NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdDrawMeshTasksEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMeshTasksEXT-commandBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMeshTasksEXT-commandBuffer-recordingYNoneimplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)commandBuffer must be in the recording state
VUID-vkCmdDrawMeshTasksEXT-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If 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-07488NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If 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-07491NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)If 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-07490NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If 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-filterCubic-02694NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-07476NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07477NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07478NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07479NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-02696NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_NV_corner_sampled_image)Any 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-07753YNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdDrawMeshTasksEXT-imageView-06172NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06173NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06174NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06175NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06176NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06177NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06183NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-06184NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If 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-04878NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMeshTasksEXT-magFilter-04553NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksEXT-maintenance4-06425NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksEXT-maxMultiviewInstanceIndex-02688NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_multiview)If 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-04770NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07284NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07285NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07286NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07287NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07475NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is 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-pColorBlendEnables-07470NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-06181NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pDepthAttachment-06186NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06189NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksEXT-pDepthAttachment-07617NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06182NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06187NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06190NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksEXT-pStencilAttachment-07618NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-primitiveFragmentShadingRateWithMultipleViewports-04552NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-primitivesGeneratedQueryWithNonZeroStreams-06709NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)If 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-07481NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If 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-06708NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_primitives_generated_query)If 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-04740NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-07471NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07474NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)If 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-07489NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-07494NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawMeshTasksEXT-renderPass-02684NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)The 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-06198NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-renderpassYNoneimplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)This command must only be called inside of a render pass instance
VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-02689NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_sample_locations)If 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-07484NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07485NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07486NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07487NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-sampleLocationsPerPixel-07482NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawMeshTasksEXT-sampleLocationsPerPixel-07483NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksEXT-samples-07472NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07473NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-03418NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-07073NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If 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-07495NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07496NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07497NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07498NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMeshTasksEXT-storageBuffers-06936NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_pipeline_robustness)If 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-02685NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)The 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-06935NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)This command must only be called outside of a video coding scope
VUID-vkCmdDrawMeshTasksEXT-viewMask-06178NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-07752YNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdDrawMeshTasksEXT-viewportCount-03417NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-03419NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-04137NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If 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-04138NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksEXT-viewportCount-04139NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If 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-04140NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksEXT-viewportCount-07492NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-07493NNoneexplicitvkCmdDrawMeshTasksEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-ConstOffset-06551NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawMeshTasksIndirectCountEXT-MeshEXT-07100YMeshShaderEXTDrawCmdsexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshEXT {ExecutionModel}
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02691NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If 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-02692NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02698NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02699NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02700NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)A valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02702NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the VkPipeline object bound 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-02703NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the VkPipeline object bound 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-02704NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the VkPipeline object bound 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-02705NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02859NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04115NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If a VkImageView is accessed using OpImageWrite as 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-None-04445NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_2)If drawIndirectCount is not enabled this function must not be used
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04876NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04877NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06479NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-06537NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06538NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If any recorded command in the current subpass will write to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06539NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06550NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06666NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06886NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If 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-06887NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07288NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)Any shader invocation executed by this command must terminate
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07469NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)Input 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-07619NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07620NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07621NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07622NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07623NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07624NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07625NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07626NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07627NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07628NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07629NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07630NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07631NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07632NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07633NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07634NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07635NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07636NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07637NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07638NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07639NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07640NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07641NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07642NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07643NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07644NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07645NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07646NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07647NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07648NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07649NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07748NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07749NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07751NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08114YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)Descriptors 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-08117YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-04469NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If 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-OpTypeImage-07027NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any 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-07468NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawMeshTasksIndirectCountEXT-SampledType-04470NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04141NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)If 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-04142NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)If 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-07480NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-aspectMask-06478NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-attachmentCount-07750NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If 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-04727NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If 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-02708NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-02709NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)buffer must be a valid VkBuffer handle
VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06179NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06180NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06185NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06188NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the currently bound pipeline was created without 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 value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-07616NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02701NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02707NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02711NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1)commandBuffer must not be a protected command buffer
VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-recordingYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)commandBuffer must be in the recording state
VUID-vkCmdDrawMeshTasksIndirectCountEXT-commonparentYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawMeshTasksIndirectCountEXT-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If 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-02714YMeshShaderEXTMultiDrawIndirectexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02715YMeshShaderEXTMultiDrawIndirectexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02717NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)The count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07098NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If 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-07099NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the count stored in countBuffer is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of buffer
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)countBuffer must be a valid VkBuffer handle
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-02716NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)countBufferOffset must be a multiple of 4
VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-04129NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)(countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer
VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If 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-07491NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)If 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-07490NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If 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-filterCubic-02694NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-07476NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07477NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07478NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07479NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-02696NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_NV_corner_sampled_image)Any 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-07753YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06172NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06173NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06174NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06175NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06176NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06177NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06183NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-06184NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If 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-04878NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMeshTasksIndirectCountEXT-magFilter-04553NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-maintenance4-06425NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxDrawCount-07097YMeshShaderEXTMultiDrawIndirectexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of buffer
VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxMultiviewInstanceIndex-02688NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_multiview)If 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-04770NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07284NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07285NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07286NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07287NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07475NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is 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-offset-02710NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)offset must be a multiple of 4
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pColorBlendEnables-07470NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-06181NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pDepthAttachment-06186NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06189NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-07617NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06182NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06187NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06190NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectCountEXT-pStencilAttachment-07618NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-primitiveFragmentShadingRateWithMultipleViewports-04552NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-primitivesGeneratedQueryWithNonZeroStreams-06709NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)If 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-07481NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If 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-06708NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_primitives_generated_query)If 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-04740NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07471NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07474NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)If 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-07489NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07494NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderPass-02684NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)The 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-06198NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-renderpassYNoneimplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)This command must only be called inside of a render pass instance
VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-02689NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_sample_locations)If 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-07484NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07485NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07486NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07487NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-sampleLocationsPerPixel-07482NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07483NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectCountEXT-samples-07472NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07473NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-03418NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-07073NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If 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-07495NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07496NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07497NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07498NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMeshTasksIndirectCountEXT-storageBuffers-06936NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_pipeline_robustness)If 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-07096YMeshShaderEXTMultiDrawIndirectexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawMeshTasksIndirectCommandEXT)
VUID-vkCmdDrawMeshTasksIndirectCountEXT-subpass-02685NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)The 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-06935NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)This command must only be called outside of a video coding scope
VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewMask-06178NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-07752YNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-03417NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-03419NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-04137NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If 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-04138NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-04139NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If 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-04140NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-07492NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-07493NNoneexplicitvkCmdDrawMeshTasksIndirectCountEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-ConstOffset-06551NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawMeshTasksIndirectCountNV-MeshNV-07082YMeshShaderNVDrawCmdsexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshNV {ExecutionModel}
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If 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-02692YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02698NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02699YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02700YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)A valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02702YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If the VkPipeline object bound 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-02703YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If the VkPipeline object bound 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-02704YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If the VkPipeline object bound 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-02705YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02859YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04115YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If a VkImageView is accessed using OpImageWrite as 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-None-04445NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_2)If drawIndirectCount is not enabled this function must not be used
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04876YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04877YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06479YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-06537YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06538YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If any recorded command in the current subpass will write to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06539YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06550NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06666YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06886YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If 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-06887YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07074NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_transform_feedback)Transform Feedback Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07075NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_primitives_generated_query)Primitives Generated Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07288NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)Any shader invocation executed by this command must terminate
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07469NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)Input 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-07619YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07620YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07621YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07622YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07623YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07624YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07625YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07626YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07627YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07628YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07629YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07630YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07631YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07632YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07633YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07634YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07635YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07636YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07637YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07638YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07639YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07640YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07641YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07642YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07643YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07644YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07645YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07646YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07647YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07648YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07649YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07748NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07749YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07751YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08114YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)Descriptors 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-08117YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-04469YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If 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-OpTypeImage-07027YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any 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-07468NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04470NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04141NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)If 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-04142NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)If 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-07480NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-aspectMask-06478NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdDrawMeshTasksIndirectCountNV-attachmentCount-07750YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If 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-04727YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If 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-02708YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02709YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)buffer must be a valid VkBuffer handle
VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06180YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06185YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06188YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the currently bound pipeline was created without 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 value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-07616NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02701YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1)commandBuffer must not be a protected command buffer
VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-recordingYNoneimplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)commandBuffer must be in the recording state
VUID-vkCmdDrawMeshTasksIndirectCountNV-commonparentYNoneimplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawMeshTasksIndirectCountNV-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If 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-02191NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If 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-02192NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If the count stored in countBuffer is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer
VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02714YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02715YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02717NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)The count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)countBuffer must be a valid VkBuffer handle
VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-02716YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)countBufferOffset must be a multiple of 4
VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-04129YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)(countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer
VUID-vkCmdDrawMeshTasksIndirectCountNV-coverageModulationTableEnable-07488NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If 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-07491NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)If 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-07490NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If 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-filterCubic-02694YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-07476NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07477NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07478NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07479NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-02696YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_corner_sampled_image)Any 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-07753YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06172NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06173NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06174NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06175NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06176NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06177NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06183YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-06184YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If 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-04878YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMeshTasksIndirectCountNV-magFilter-04553YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-06425YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer
VUID-vkCmdDrawMeshTasksIndirectCountNV-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_multiview)If 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-04770YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07475NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is 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-offset-02710YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)offset must be a multiple of 4
VUID-vkCmdDrawMeshTasksIndirectCountNV-pColorBlendEnables-07470NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-06181YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pDepthAttachment-06186YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06189YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-07617NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06182YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06187YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06190YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-07618NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pipelineStatistics-07076NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)The 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-04552YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)If 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-07481NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If 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-06708YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_primitives_generated_query)If 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-04740YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07471NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07474NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)If 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-07489NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07494NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-02684YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)The 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-06198YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-renderpassYNoneimplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)This command must only be called inside of a render pass instance
VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_sample_locations)If 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-07484NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07485NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07486NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07487NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-sampleLocationsPerPixel-07482NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsPerPixel-07483NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectCountNV-samples-07472NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07473NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-03418YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-06480YMeshShaderNVDrawCmdsexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)The 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-07073NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_mesh_shader)If 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-07495NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07496NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07497NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07498NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMeshTasksIndirectCountNV-storageBuffers-06936NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_pipeline_robustness)If 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-02182YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawMeshTasksIndirectCommandNV)
VUID-vkCmdDrawMeshTasksIndirectCountNV-subpass-02685YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)The 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-06935NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)This command must only be called outside of a video coding scope
VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-07752YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03417YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-03419YNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-04137NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If 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-04138NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04139NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If 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-04140NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-07492NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-07493NNoneexplicitvkCmdDrawMeshTasksIndirectCountNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-ConstOffset-06551NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawMeshTasksIndirectEXT-MeshEXT-07091YMeshShaderEXTDrawCmdsexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshEXT {ExecutionModel}
VUID-vkCmdDrawMeshTasksIndirectEXT-None-02691NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If 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-02692NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectEXT-None-02698NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectEXT-None-02699NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdDrawMeshTasksIndirectEXT-None-02700NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)A valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-02702NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the VkPipeline object bound 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-02703NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the VkPipeline object bound 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-02704NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the VkPipeline object bound 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-02705NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02859NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMeshTasksIndirectEXT-None-04115NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If a VkImageView is accessed using OpImageWrite as 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-None-04876NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-04877NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-06479NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-06537NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-06538NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If any recorded command in the current subpass will write to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment
VUID-vkCmdDrawMeshTasksIndirectEXT-None-06539NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawMeshTasksIndirectEXT-None-06550NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawMeshTasksIndirectEXT-None-06666NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-06886NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If 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-06887NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07288NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)Any shader invocation executed by this command must terminate
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07469NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)Input 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-07619NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07620NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07621NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07622NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07623NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07624NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07625NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07626NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07627NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07628NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07629NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07630NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07631NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07632NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07633NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07634NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07635NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07636NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07637NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07638NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07639NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07640NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07641NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07642NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07643NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07644NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07645NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07646NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07647NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07648NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07649NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07748NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07749NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-07751NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectEXT-None-08114YNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115YNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)Descriptors 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-08117YNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-04469NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If 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-OpTypeImage-07027NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any 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-07468NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawMeshTasksIndirectEXT-SampledType-04470NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04141NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)If 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-04142NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)If 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-07480NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-aspectMask-06478NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdDrawMeshTasksIndirectEXT-attachmentCount-07750NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If 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-04727NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If 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-02708NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-02709NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)buffer must be a valid VkBuffer handle
VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-06179NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06180NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-06185NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06188NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the currently bound pipeline was created without 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 value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-07616NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02701NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02707NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02711NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1)commandBuffer must not be a protected command buffer
VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-recordingYNoneimplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)commandBuffer must be in the recording state
VUID-vkCmdDrawMeshTasksIndirectEXT-commonparentYNoneimplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawMeshTasksIndirectEXT-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If 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-07488NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If 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-07491NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)If 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-07490NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If 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-drawCount-02718YMeshShaderEXTDrawCmdsexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1
VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-02719YMeshShaderEXTDrawCmdsexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07088YMeshShaderEXTMultiDrawIndirectexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If 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-07089YMeshShaderEXTDrawCmdsexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If drawCount is equal to 1, (offset + sizeof(VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of buffer
VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07090YMeshShaderEXTMultiDrawIndirectexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If drawCount is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandEXT)) must be less than or equal to the size of buffer
VUID-vkCmdDrawMeshTasksIndirectEXT-filterCubic-02694NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-07476NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07477NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07478NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07479NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-02696NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_NV_corner_sampled_image)Any 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-07753YNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06172NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06173NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06174NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06175NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06176NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06177NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06183NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-06184NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If 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-04878NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMeshTasksIndirectEXT-magFilter-04553NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksIndirectEXT-maintenance4-06425NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectEXT-maxMultiviewInstanceIndex-02688NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_1,VK_KHR_multiview)If 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-04770NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07284NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07285NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07286NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07287NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07475NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is 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-offset-02710NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)offset must be a multiple of 4
VUID-vkCmdDrawMeshTasksIndirectEXT-pColorBlendEnables-07470NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-06181NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pDepthAttachment-06186NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06189NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthAttachment-07617NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06182NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06187NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06190NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectEXT-pStencilAttachment-07618NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-primitiveFragmentShadingRateWithMultipleViewports-04552NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-primitivesGeneratedQueryWithNonZeroStreams-06709NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)If 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-07481NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If 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-06708NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_primitives_generated_query)If 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-04740NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+!(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07471NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07474NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)If 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-07489NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07494NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectEXT-renderPass-02684NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)The 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-06198NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-renderpassYNoneimplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)This command must only be called inside of a render pass instance
VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-02689NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_sample_locations)If 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-07484NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07485NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07486NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07487NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-sampleLocationsPerPixel-07482NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07483NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectEXT-samples-07472NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07473NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-03418NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-07073NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If 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-07495NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07496NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07497NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07498NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMeshTasksIndirectEXT-storageBuffers-06936NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_pipeline_robustness)If 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-02685NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)The 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-06935NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)This command must only be called outside of a video coding scope
VUID-vkCmdDrawMeshTasksIndirectEXT-viewMask-06178NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-07752YNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-03417NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-03419NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-04137NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If 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-04138NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-04139NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If 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-04140NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-07492NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-07493NNoneexplicitvkCmdDrawMeshTasksIndirectEXT(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-ConstOffset-06551NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawMeshTasksIndirectNV-MeshNV-07081YMeshShaderNVDrawCmdsexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshNV {ExecutionModel}
VUID-vkCmdDrawMeshTasksIndirectNV-None-02691YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If 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-02692YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectNV-None-02698NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectNV-None-02699YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdDrawMeshTasksIndirectNV-None-02700YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)A valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksIndirectNV-None-02702YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If the VkPipeline object bound 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-02703YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If the VkPipeline object bound 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-02704YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If the VkPipeline object bound 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-02705YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02859YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMeshTasksIndirectNV-None-04115YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If a VkImageView is accessed using OpImageWrite as 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-None-04876YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-04877YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-06479YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-06537YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksIndirectNV-None-06538YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If any recorded command in the current subpass will write to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment
VUID-vkCmdDrawMeshTasksIndirectNV-None-06539YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawMeshTasksIndirectNV-None-06550NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawMeshTasksIndirectNV-None-06666YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-06886YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If 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-06887YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawMeshTasksIndirectNV-None-07074NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_transform_feedback)Transform Feedback Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectNV-None-07075NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_primitives_generated_query)Primitives Generated Queries must not be active
VUID-vkCmdDrawMeshTasksIndirectNV-None-07288NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)Any shader invocation executed by this command must terminate
VUID-vkCmdDrawMeshTasksIndirectNV-None-07469NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)Input 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-07619YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07620YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07621YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07622YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07623YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07624YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07625YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07626YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07627YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07628YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07629YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07630YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07631YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07632YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07633YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07634YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07635YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07636YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07637YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07638YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07639YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07640YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07641YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07642YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07643YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07644YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07645YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07646YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07647YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07648YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07649YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07748NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMeshTasksIndirectNV-None-07749YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-07751YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksIndirectNV-None-08114YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)Descriptors 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-08117YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-04469YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If 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-OpTypeImage-07027YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any 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-07468NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04470NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04141NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)If 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-04142NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)If 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-07480NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-aspectMask-06478NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdDrawMeshTasksIndirectNV-attachmentCount-07750YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If 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-04727YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If 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-02708YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02709YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdDrawMeshTasksIndirectNV-buffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)buffer must be a valid VkBuffer handle
VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06179YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06180YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06185YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06188YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the currently bound pipeline was created without 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 value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-07616NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02701YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02707YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1)commandBuffer must not be a protected command buffer
VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-recordingYNoneimplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)commandBuffer must be in the recording state
VUID-vkCmdDrawMeshTasksIndirectNV-commonparentYNoneimplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdDrawMeshTasksIndirectNV-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If 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-07488NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If 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-07491NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)If 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-07490NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If 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-drawCount-02146YMeshShaderNVexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If 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-02156YMeshShaderNVDrawCmdsexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If drawCount is equal to 1, (offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer
VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If drawCount is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer
VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02718YMeshShaderNVexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If the multiDrawIndirect feature is not enabled, drawCount must be 0 or 1
VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02719YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount
VUID-vkCmdDrawMeshTasksIndirectNV-filterCubic-02694YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-07476NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07477NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07478NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07479NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-02696YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_corner_sampled_image)Any 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-07753YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06172NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06173NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06174NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06175NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06176NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06177NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06183YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-06184YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If 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-04878YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMeshTasksIndirectNV-magFilter-04553YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-06425YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksIndirectNV-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_multiview)If 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-04770YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07475NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is 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-offset-02710YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)offset must be a multiple of 4
VUID-vkCmdDrawMeshTasksIndirectNV-pColorBlendEnables-07470NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-06181YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pDepthAttachment-06186YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06189YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-07617NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06182YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06187YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06190YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-07618NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pipelineStatistics-07076NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)The 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-04552YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)If 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-07481NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If 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-06708YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_primitives_generated_query)If 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-04740YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-07471NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07474NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)If 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-07489NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-07494NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-02684YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)The 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-06198YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-renderpassYNoneimplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)This command must only be called inside of a render pass instance
VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_sample_locations)If 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-07484NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07485NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07486NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07487NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-sampleLocationsPerPixel-07482NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsPerPixel-07483NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksIndirectNV-samples-07472NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07473NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-03418YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-06480YMeshShaderNVDrawCmdsexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)The 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-07073NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_mesh_shader)If 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-07495NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07496NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07497NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07498NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMeshTasksIndirectNV-storageBuffers-06936NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_pipeline_robustness)If 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-02685YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)The 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-06935NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)This command must only be called outside of a video coding scope
VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-07752YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03417YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-03419YNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-04137NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If 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-04138NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04139NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If 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-04140NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-07492NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-07493NNoneexplicitvkCmdDrawMeshTasksIndirectNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-ConstOffset-06551NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawMeshTasksNV-MeshNV-07080YMeshShaderNVDrawCmdsexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)The current pipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS must contain a shader stage using the MeshNV {ExecutionModel}
VUID-vkCmdDrawMeshTasksNV-None-02691YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If 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-02692YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksNV-None-02698NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksNV-None-02699YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdDrawMeshTasksNV-None-02700YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)A valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMeshTasksNV-None-02702YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If the VkPipeline object bound 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-02703YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If the VkPipeline object bound 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-02704YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If the VkPipeline object bound 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-02705YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02859YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMeshTasksNV-None-04115YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If a VkImageView is accessed using OpImageWrite as 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-None-04876YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-04877YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-06479YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-06537YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawMeshTasksNV-None-06538YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If any recorded command in the current subpass will write to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment
VUID-vkCmdDrawMeshTasksNV-None-06539YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawMeshTasksNV-None-06550NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawMeshTasksNV-None-06666YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-06886YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If 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-06887YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawMeshTasksNV-None-07074NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_transform_feedback)Transform Feedback Queries must not be active
VUID-vkCmdDrawMeshTasksNV-None-07075NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_EXT_primitives_generated_query)Primitives Generated Queries must not be active
VUID-vkCmdDrawMeshTasksNV-None-07288NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)Any shader invocation executed by this command must terminate
VUID-vkCmdDrawMeshTasksNV-None-07469NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)Input 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-07619YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07620YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07621YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07622YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07623YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07624YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07625YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07626YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07627YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07628YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07629YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07630YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07631YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07632YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07633YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07634YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07635YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07636YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07637YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07638YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07639YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07640YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07641YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07642YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07643YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07644YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07645YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07646YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07647YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07648YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07649YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07748NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMeshTasksNV-None-07749YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-07751YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMeshTasksNV-None-08114YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)Descriptors 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-08117YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-04469YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If 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-OpTypeImage-07027YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any 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-07468NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawMeshTasksNV-SampledType-04470NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04141NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)If 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-04142NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)If 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-07480NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-aspectMask-06478NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdDrawMeshTasksNV-attachmentCount-07750YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If 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-04727YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If 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-06179YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06180YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06185YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06188YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the currently bound pipeline was created without 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 value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-07616NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMeshTasksNV-commandBuffer-02701YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdDrawMeshTasksNV-commandBuffer-02707YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdDrawMeshTasksNV-commandBuffer-cmdpoolYNoneimplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameterYNoneimplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMeshTasksNV-commandBuffer-recordingYNoneimplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)commandBuffer must be in the recording state
VUID-vkCmdDrawMeshTasksNV-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If 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-07488NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If 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-07491NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)If 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-07490NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If 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-filterCubic-02694YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-07476NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07477NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07478NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07479NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-02696YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_corner_sampled_image)Any 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-07753YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdDrawMeshTasksNV-imageView-06172NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06173NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06174NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06175NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06176NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06177NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06183YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-06184YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If 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-04878YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMeshTasksNV-magFilter-04553YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksNV-maintenance4-06425YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMeshTasksNV-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_1,VK_KHR_multiview)If 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-04770YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07475NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is 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-pColorBlendEnables-07470NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-06181YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pDepthAttachment-06186YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06189YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-07617NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06182YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06187YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06190YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-07618NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pipelineStatistics-07076NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)The 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-04552YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)If 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-07481NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If 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-06708YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_primitives_generated_query)If 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-04740YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+!(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07471NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07474NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)If 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-07489NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07494NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawMeshTasksNV-renderPass-02684YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)The 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-06198YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-renderpassYNoneimplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)This command must only be called inside of a render pass instance
VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_sample_locations)If 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-07484NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07485NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07486NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07487NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-sampleLocationsPerPixel-07482NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07483NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMeshTasksNV-samples-07472NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-07473NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)If 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-03418YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_shader_image_atomic_int64)If 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-06480YMeshShaderNVDrawCmdsexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)The 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-07073NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_mesh_shader)If 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-07495NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07496NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07497NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07498NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMeshTasksNV-storageBuffers-06936NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_pipeline_robustness)If 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-02685YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)The 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-02119YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)taskCount must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxDrawMeshTasksCount
VUID-vkCmdDrawMeshTasksNV-uniformBuffers-06935NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)This command must only be called outside of a video coding scope
VUID-vkCmdDrawMeshTasksNV-viewMask-06178YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-07752YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdDrawMeshTasksNV-viewportCount-03417YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-03419YNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-04137NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If 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-04138NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksNV-viewportCount-04139NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If 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-04140NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMeshTasksNV-viewportCount-07492NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-07493NNoneexplicitvkCmdDrawMeshTasksNV(VK_NV_mesh_shader,VK_EXT_mesh_shader)+(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-ConstOffset-06551NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawMultiEXT-None-02691YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)If 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-02692YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMultiEXT-None-02698NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMultiEXT-None-02699YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdDrawMultiEXT-None-02700YMultiDrawTestsexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)A valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMultiEXT-None-02702YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)If the VkPipeline object bound 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-02703YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)If the VkPipeline object bound 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-02704YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)If the VkPipeline object bound 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-02705YNVRayTracingValidateCmdCopyAccelerationStructureexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02721YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)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-02859YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMultiEXT-None-04007YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)All 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-04008YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)If 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-04115YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)If a VkImageView is accessed using OpImageWrite as 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-None-04875YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-04876YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-04877YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-04879YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-04912NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawMultiEXT-None-04914YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawMultiEXT-None-04933YMultiDrawFeaturesexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)The multiDraw feature must be enabled
VUID-vkCmdDrawMultiEXT-None-06479YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-06537YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawMultiEXT-None-06538YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)If any recorded command in the current subpass will write to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment
VUID-vkCmdDrawMultiEXT-None-06539YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawMultiEXT-None-06550NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawMultiEXT-None-06666YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-06886YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)If 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-06887YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawMultiEXT-None-07288NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)Any shader invocation executed by this command must terminate
VUID-vkCmdDrawMultiEXT-None-07469NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)Input 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-07619YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07620YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07621YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07622YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07623YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07624YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07625YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07626YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07627YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07628YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07629YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07630YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07631YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07632YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07633YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07634YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07635YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07636YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07637YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07638YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07639YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07640YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07641YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07642YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07643YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07644YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07645YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07646YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07647YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07648YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07649YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07748NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMultiEXT-None-07749YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-07751YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiEXT-None-08114YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_descriptor_buffer)Descriptors 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-08117YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMultiEXT-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-04469YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)If 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-OpTypeImage-07027YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any 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-07468NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawMultiEXT-SampledType-04470NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_shader_image_atomic_int64)If 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-04141NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)If 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-04142NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)If 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-07480NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-aspectMask-06478NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdDrawMultiEXT-attachmentCount-07750YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If 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-04727YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)If 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-06179YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06180YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06185YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06188YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the currently bound pipeline was created without 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 value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawMultiEXT-colorAttachmentCount-07616NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMultiEXT-commandBuffer-02701YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdDrawMultiEXT-commandBuffer-02707YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdDrawMultiEXT-commandBuffer-02712YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_1)If 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-02713NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_1)If 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-04617NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_1)+(VK_KHR_ray_query)If 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-cmdpoolYNoneimplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMultiEXT-commandBuffer-parameterYNoneimplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMultiEXT-commandBuffer-recordingYNoneimplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)commandBuffer must be in the recording state
VUID-vkCmdDrawMultiEXT-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If 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-07488NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If 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-07491NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)If 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-07490NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If 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-drawCount-04934YMultiDrawTestsexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)drawCount must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount
VUID-vkCmdDrawMultiEXT-drawCount-04935YMultiDrawTestsexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)If drawCount is greater than zero, pVertexInfo must be a valid pointer to memory containing one or more valid instances of VkMultiDrawInfoEXT structures
VUID-vkCmdDrawMultiEXT-dynamicPrimitiveTopologyUnrestricted-07500NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter in the last call to vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawMultiEXT-filterCubic-02694YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-07476NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If 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-07477NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If 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-07478NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If 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-07479NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-02696YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_NV_corner_sampled_image)Any 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-07753YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)If a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdDrawMultiEXT-imageView-06172NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06173NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06174NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06175NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06176NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06177NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06183YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-06184YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If 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-04878YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMultiEXT-magFilter-04553YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMultiEXT-maintenance4-06425YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMultiEXT-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_1,VK_KHR_multiview)If 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-04770YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07475NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is 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-pColorBlendEnables-07470NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If 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-06181YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pDepthAttachment-06186YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06189YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMultiEXT-pDepthAttachment-07617NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06182YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06187YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06190YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMultiEXT-pStencilAttachment-07618NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStrides-04884YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this drawing command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawMultiEXT-pStrides-04913NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawMultiEXT-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-primitiveTopology-03420YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)If 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-07481NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If 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-06708YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_primitives_generated_query)If 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-04740YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+!(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMultiEXT-rasterizationSamples-07471NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If 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-07474NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)If 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-07489NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawMultiEXT-rasterizationSamples-07494NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawMultiEXT-renderPass-02684YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)The 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-06198YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-renderpassYNoneimplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)This command must only be called inside of a render pass instance
VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_sample_locations)If 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-07484NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07485NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07486NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07487NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-sampleLocationsPerPixel-07482NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07483NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMultiEXT-samples-07472NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If 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-07473NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If 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-03418YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_shader_image_atomic_int64)If 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-06481YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)The 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-07073NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_mesh_shader)If 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-07495NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMultiEXT-stippledLineEnable-07496NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMultiEXT-stippledLineEnable-07497NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMultiEXT-stippledLineEnable-07498NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMultiEXT-storageBuffers-06936NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_pipeline_robustness)If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMultiEXT-stride-04936YMultiDrawTestsexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)stride must be a multiple of 4
VUID-vkCmdDrawMultiEXT-subpass-02685YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)The 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-06935NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)This command must only be called outside of a video coding scope
VUID-vkCmdDrawMultiEXT-viewMask-06178YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-07752YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdDrawMultiEXT-viewportCount-03417YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-03419YNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-04137NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If 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-04138NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiEXT-viewportCount-04139NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If 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-04140NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiEXT-viewportCount-07492NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-07493NNoneexplicitvkCmdDrawMultiEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-ConstOffset-06551NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdDrawMultiIndexedEXT-None-02691YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)If 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-02692YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMultiIndexedEXT-None-02698NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMultiIndexedEXT-None-02699YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdDrawMultiIndexedEXT-None-02700YMultiDrawTestsexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)A valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdDrawMultiIndexedEXT-None-02702YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)If the VkPipeline object bound 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-02703YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)If the VkPipeline object bound 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-02704YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)If the VkPipeline object bound 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-02705YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706YNVRayTracingValidateCmdCopyAccelerationStructureexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02721YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)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-02859YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdDrawMultiIndexedEXT-None-04007YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)All 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-04008YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)If 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-04115YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)If a VkImageView is accessed using OpImageWrite as 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-None-04875YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-04876YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-04877YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-04879YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-04912NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawMultiIndexedEXT-None-04914YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdDrawMultiIndexedEXT-None-04937YMultiDrawFeaturesexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)The multiDraw feature must be enabled
VUID-vkCmdDrawMultiIndexedEXT-None-06479YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-06537YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdDrawMultiIndexedEXT-None-06538YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)If any recorded command in the current subpass will write to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment
VUID-vkCmdDrawMultiIndexedEXT-None-06539YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdDrawMultiIndexedEXT-None-06550NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdDrawMultiIndexedEXT-None-06666YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-06886YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)If 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-06887YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdDrawMultiIndexedEXT-None-07288NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)Any shader invocation executed by this command must terminate
VUID-vkCmdDrawMultiIndexedEXT-None-07312YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)An index buffer must be bound
VUID-vkCmdDrawMultiIndexedEXT-None-07469NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)Input 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-07619YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07620YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07621YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07622YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07623YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07624YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07625YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07626YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07627YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07628YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07629YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07630YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07631YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07632YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07633YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07634YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07635YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07636YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07637YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07638YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07639YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07640YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07641YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07642YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07643YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07644YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07645YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07646YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07647YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07648YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07649YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07748NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdDrawMultiIndexedEXT-None-07749YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-07751YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdDrawMultiIndexedEXT-None-08114YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_descriptor_buffer)Descriptors 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-08117YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-04469YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)If 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-OpTypeImage-07027YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any 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-07468NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdDrawMultiIndexedEXT-SampledType-04470NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_shader_image_atomic_int64)If 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-04141NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)If 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-04142NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)If 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-07480NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-aspectMask-06478NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdDrawMultiIndexedEXT-attachmentCount-07750YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If 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-04727YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)If 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-06179YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06180YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06185YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06188YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the currently bound pipeline was created without 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 value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-07616NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02701YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02707YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02712YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_1)If 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-02713NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_1)If 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-04617NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_1)+(VK_KHR_ray_query)If 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-cmdpoolYNoneimplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-parameterYNoneimplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-recordingYNoneimplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)commandBuffer must be in the recording state
VUID-vkCmdDrawMultiIndexedEXT-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If 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-07488NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If 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-07491NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)If 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-07490NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If 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-drawCount-04939YMultiDrawTestsexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)drawCount must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount
VUID-vkCmdDrawMultiIndexedEXT-drawCount-04940YMultiDrawTestsexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)If drawCount is greater than zero, pIndexInfo must be a valid pointer to memory containing one or more valid instances of VkMultiDrawIndexedInfoEXT structures
VUID-vkCmdDrawMultiIndexedEXT-dynamicPrimitiveTopologyUnrestricted-07500NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter in the last call to vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawMultiIndexedEXT-filterCubic-02694YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-07476NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If 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-07477NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If 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-07478NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If 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-07479NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-firstIndex-04938YMultiDrawTestsexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)(indexSize {times} (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer
VUID-vkCmdDrawMultiIndexedEXT-flags-02696YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_NV_corner_sampled_image)Any 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-07753YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)If a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdDrawMultiIndexedEXT-imageView-06172NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06173NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06174NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06175NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06176NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06177NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06183YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-06184YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If 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-04878YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdDrawMultiIndexedEXT-magFilter-04553YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMultiIndexedEXT-maintenance4-06425YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdDrawMultiIndexedEXT-maxMultiviewInstanceIndex-02688YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_1,VK_KHR_multiview)If 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-04770YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07284YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07285YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07286YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07287YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07475NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is 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-pColorBlendEnables-07470NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If 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-06181YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pDepthAttachment-06186YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06189YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-07617NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06182YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06187YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06190YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-07618NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStrides-04884YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this drawing command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawMultiIndexedEXT-pStrides-04913NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdDrawMultiIndexedEXT-pVertexOffset-parameterNNoneimplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)If pVertexOffset is not NULL, pVertexOffset must be a valid pointer to a valid int32_t value
VUID-vkCmdDrawMultiIndexedEXT-primitiveFragmentShadingRateWithMultipleViewports-04552YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-primitiveTopology-03420YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithNonZeroStreams-06709YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)If 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-07481NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If 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-06708YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_primitives_generated_query)If 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-04740YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+!(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07471NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If 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-07474NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)If 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-07489NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07494NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdDrawMultiIndexedEXT-renderPass-02684YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)The 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-06198YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-renderpassYNoneimplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)This command must only be called inside of a render pass instance
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-02689YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_sample_locations)If 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-07484NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07485NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07486NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07487NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-sampleLocationsPerPixel-07482NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07483NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdDrawMultiIndexedEXT-samples-07472NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If 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-07473NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)If 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-03418YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-sparseImageInt64Atomics-04474NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_shader_image_atomic_int64)If 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-06481YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)The 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-07073NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_mesh_shader)If 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-07495NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07496NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07497NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07498NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdDrawMultiIndexedEXT-storageBuffers-06936NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_pipeline_robustness)If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point
VUID-vkCmdDrawMultiIndexedEXT-stride-04941YMultiDrawTestsexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)stride must be a multiple of 4
VUID-vkCmdDrawMultiIndexedEXT-subpass-02685YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)The 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-06935NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)This command must only be called outside of a video coding scope
VUID-vkCmdDrawMultiIndexedEXT-viewMask-06178YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-07752YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03417YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-03419YNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-04137NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If 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-04138NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04139NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If 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-04140NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdDrawMultiIndexedEXT-viewportCount-07492NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-07493NNoneexplicitvkCmdDrawMultiIndexedEXT(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-vkCmdEncodeVideoKHR-bufferlevelYNoneimplicitvkCmdEncodeVideoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)commandBuffer must be a primary VkCommandBuffer
VUID-vkCmdEncodeVideoKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdEncodeVideoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)The VkCommandPool that commandBuffer was allocated from must support encode operations
VUID-vkCmdEncodeVideoKHR-commandBuffer-parameterYNoneimplicitvkCmdEncodeVideoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEncodeVideoKHR-commandBuffer-recordingYNoneimplicitvkCmdEncodeVideoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)commandBuffer must be in the recording state
VUID-vkCmdEncodeVideoKHR-pEncodeInfo-parameterYNoneimplicitvkCmdEncodeVideoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)pEncodeInfo must be a valid pointer to a valid VkVideoEncodeInfoKHR structure
VUID-vkCmdEncodeVideoKHR-renderpassYNoneimplicitvkCmdEncodeVideoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)This command must only be called outside of a render pass instance
VUID-vkCmdEncodeVideoKHR-videocodingNNoneimplicitvkCmdEncodeVideoKHR(VK_KHR_video_queue)+(VK_KHR_video_encode_queue)This command must only be called inside of a video coding scope
VUID-vkCmdEndConditionalRenderingEXT-None-01985YInvalidEndConditionalRenderingexplicitvkCmdEndConditionalRenderingEXT(VK_EXT_conditional_rendering)Conditional rendering must be active
VUID-vkCmdEndConditionalRenderingEXT-None-01986YInvalidEndConditionalRenderingexplicitvkCmdEndConditionalRenderingEXT(VK_EXT_conditional_rendering)If conditional rendering was made active outside of a render pass instance, it must not be ended inside a render pass instance
VUID-vkCmdEndConditionalRenderingEXT-None-01987YInvalidEndConditionalRenderingexplicitvkCmdEndConditionalRenderingEXT(VK_EXT_conditional_rendering)If conditional rendering was made active within a subpass it must be ended in the same subpass
VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdEndConditionalRenderingEXT(VK_EXT_conditional_rendering)The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-parameterYNoneimplicitvkCmdEndConditionalRenderingEXT(VK_EXT_conditional_rendering)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-recordingYNoneimplicitvkCmdEndConditionalRenderingEXT(VK_EXT_conditional_rendering)commandBuffer must be in the recording state
VUID-vkCmdEndConditionalRenderingEXT-videocodingNNoneimplicitvkCmdEndConditionalRenderingEXT(VK_EXT_conditional_rendering)This command must only be called outside of a video coding scope
VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912NNoneexplicitvkCmdEndDebugUtilsLabelEXT(VK_EXT_debug_utils)There must be an outstanding vkCmdBeginDebugUtilsLabelEXT command prior to the vkCmdEndDebugUtilsLabelEXT on the queue that commandBuffer is submitted to
VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01913NNoneexplicitvkCmdEndDebugUtilsLabelEXT(VK_EXT_debug_utils)If 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-cmdpoolYNoneimplicitvkCmdEndDebugUtilsLabelEXT(VK_EXT_debug_utils)The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-parameterYNoneimplicitvkCmdEndDebugUtilsLabelEXT(VK_EXT_debug_utils)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-recordingYNoneimplicitvkCmdEndDebugUtilsLabelEXT(VK_EXT_debug_utils)commandBuffer must be in the recording state
VUID-vkCmdEndDebugUtilsLabelEXT-videocodingNNoneimplicitvkCmdEndDebugUtilsLabelEXT(VK_EXT_debug_utils)This command must only be called outside of a video coding scope
VUID-vkCmdEndQuery-None-01923YInvalidUnprotectedCommandsexplicitvkCmdEndQuerycoreAll queries used by the command must be active
VUID-vkCmdEndQuery-None-07007NNoneexplicitvkCmdEndQuerycoreIf called within a subpass of a render pass instance, the corresponding vkCmdBeginQuery* command must have been called previously within the same subpass
VUID-vkCmdEndQuery-None-07008NNoneexplicitvkCmdEndQuerycoreIf called outside of a render pass instance, the corresponding vkCmdBeginQuery* command must have been called outside of a render pass instance
VUID-vkCmdEndQuery-commandBuffer-01886YInvalidUnprotectedCommandsexplicitvkCmdEndQuery(VK_VERSION_1_1)commandBuffer must not be a protected command buffer
VUID-vkCmdEndQuery-commandBuffer-cmdpoolYNoneimplicitvkCmdEndQuerycoreThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdEndQuery-commandBuffer-parameterYNoneimplicitvkCmdEndQuerycorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndQuery-commandBuffer-recordingYNoneimplicitvkCmdEndQuerycorecommandBuffer must be in the recording state
VUID-vkCmdEndQuery-commonparentYNoneimplicitvkCmdEndQuerycoreBoth of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdEndQuery-query-00810YInvalidQuerySizesexplicitvkCmdEndQuerycorequery must be less than the number of queries in queryPool
VUID-vkCmdEndQuery-query-00812NNoneexplicitvkCmdEndQuery(VK_VERSION_1_1,VK_KHR_multiview)If 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-03227YNoneexplicitvkCmdEndQuery(VK_KHR_performance_query)If 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-03228YNoneexplicitvkCmdEndQuery(VK_KHR_performance_query)If 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-parameterYNoneimplicitvkCmdEndQuerycorequeryPool must be a valid VkQueryPool handle
VUID-vkCmdEndQueryIndexedEXT-None-02342YInvalidCmdEndQueryIndexedEXTIndexexplicitvkCmdEndQueryIndexedEXT(VK_EXT_transform_feedback)All queries used by the command must be active
VUID-vkCmdEndQueryIndexedEXT-None-07007NNoneexplicitvkCmdEndQueryIndexedEXT(VK_EXT_transform_feedback)If called within a subpass of a render pass instance, the corresponding vkCmdBeginQuery* command must have been called previously within the same subpass
VUID-vkCmdEndQueryIndexedEXT-None-07008NNoneexplicitvkCmdEndQueryIndexedEXT(VK_EXT_transform_feedback)If called outside of a render pass instance, the corresponding vkCmdBeginQuery* command must have been called outside of a render pass instance
VUID-vkCmdEndQueryIndexedEXT-commandBuffer-02344YNoneexplicitvkCmdEndQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_1)commandBuffer must not be a protected command buffer
VUID-vkCmdEndQueryIndexedEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdEndQueryIndexedEXT(VK_EXT_transform_feedback)The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdEndQueryIndexedEXT-commandBuffer-parameterYNoneimplicitvkCmdEndQueryIndexedEXT(VK_EXT_transform_feedback)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndQueryIndexedEXT-commandBuffer-recordingYNoneimplicitvkCmdEndQueryIndexedEXT(VK_EXT_transform_feedback)commandBuffer must be in the recording state
VUID-vkCmdEndQueryIndexedEXT-commonparentYNoneimplicitvkCmdEndQueryIndexedEXT(VK_EXT_transform_feedback)Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdEndQueryIndexedEXT-query-02343YInvalidCmdEndQueryIndexedEXTIndexexplicitvkCmdEndQueryIndexedEXT(VK_EXT_transform_feedback)query must be less than the number of queries in queryPool
VUID-vkCmdEndQueryIndexedEXT-query-02345NNoneexplicitvkCmdEndQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_multiview)If 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-parameterYNoneimplicitvkCmdEndQueryIndexedEXT(VK_EXT_transform_feedback)queryPool must be a valid VkQueryPool handle
VUID-vkCmdEndQueryIndexedEXT-queryType-02346YInvalidCmdEndQueryIndexedEXTIndexexplicitvkCmdEndQueryIndexedEXT(VK_EXT_transform_feedback)+!(VK_EXT_primitives_generated_query)If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the index parameter must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams
VUID-vkCmdEndQueryIndexedEXT-queryType-02347YInvalidCmdEndQueryIndexedEXTIndexexplicitvkCmdEndQueryIndexedEXT(VK_EXT_transform_feedback)+!(VK_EXT_primitives_generated_query)If the queryType used to create queryPool was not VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the index must be zero
VUID-vkCmdEndQueryIndexedEXT-queryType-02723NNoneexplicitvkCmdEndQueryIndexedEXT(VK_EXT_transform_feedback)+!(VK_EXT_primitives_generated_query)If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT index must equal the index used to begin the query
VUID-vkCmdEndQueryIndexedEXT-queryType-06694YInvalidCmdEndQueryIndexedEXTPrimitiveGeneratedexplicitvkCmdEndQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_EXT_primitives_generated_query)If 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-06695YInvalidCmdEndQueryIndexedEXTPrimitiveGeneratedexplicitvkCmdEndQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_EXT_primitives_generated_query)If 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-06696YPrimitivesGeneratedQueryexplicitvkCmdEndQueryIndexedEXT(VK_EXT_transform_feedback)+(VK_EXT_primitives_generated_query)If 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-videocodingNNoneimplicitvkCmdEndQueryIndexedEXT(VK_EXT_transform_feedback)This command must only be called outside of a video coding scope
VUID-vkCmdEndRenderPass-None-00910YRenderPassEndBeforeFinalSubpassexplicitvkCmdEndRenderPasscoreThe current subpass index must be equal to the number of subpasses in the render pass minus one
VUID-vkCmdEndRenderPass-None-02351YEndRenderPassWithActiveTransformFeedbackexplicitvkCmdEndRenderPass(VK_EXT_transform_feedback)This command must not be recorded when transform feedback is active
VUID-vkCmdEndRenderPass-None-06170YDynamicRenderingEndRenderpassWithBeginRenderingRenderpassInstanceexplicitvkCmdEndRenderPass(VK_VERSION_1_3,VK_KHR_dynamic_rendering)The current render pass instance must not have been begun with vkCmdBeginRendering
VUID-vkCmdEndRenderPass-None-07004NNoneexplicitvkCmdEndRenderPasscoreIf vkCmdBeginQuery* was called within a subpass of the render pass, the corresponding vkCmdEndQuery* must have been called subsequently within the same subpass
VUID-vkCmdEndRenderPass-bufferlevelYNoneimplicitvkCmdEndRenderPasscorecommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdEndRenderPass-commandBuffer-cmdpoolYNoneimplicitvkCmdEndRenderPasscoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdEndRenderPass-commandBuffer-parameterYNoneimplicitvkCmdEndRenderPasscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndRenderPass-commandBuffer-recordingYNoneimplicitvkCmdEndRenderPasscorecommandBuffer must be in the recording state
VUID-vkCmdEndRenderPass-renderpassYNoneimplicitvkCmdEndRenderPasscoreThis command must only be called inside of a render pass instance
VUID-vkCmdEndRenderPass-videocodingNNoneimplicitvkCmdEndRenderPasscoreThis command must only be called outside of a video coding scope
VUID-vkCmdEndRenderPass2-None-02352YNoneexplicitvkCmdEndRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_transform_feedback)This command must not be recorded when transform feedback is active
VUID-vkCmdEndRenderPass2-None-03103YRenderPassEndBeforeFinalSubpassexplicitvkCmdEndRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)The current subpass index must be equal to the number of subpasses in the render pass minus one
VUID-vkCmdEndRenderPass2-None-06171YDynamicRenderingEndRenderpassWithBeginRenderingRenderpassInstanceexplicitvkCmdEndRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)The current render pass instance must not have been begun with vkCmdBeginRendering
VUID-vkCmdEndRenderPass2-None-07005NNoneexplicitvkCmdEndRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If vkCmdBeginQuery* was called within a subpass of the render pass, the corresponding vkCmdEndQuery* must have been called subsequently within the same subpass
VUID-vkCmdEndRenderPass2-bufferlevelYNoneimplicitvkCmdEndRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)commandBuffer must be a primary VkCommandBuffer
VUID-vkCmdEndRenderPass2-commandBuffer-cmdpoolYNoneimplicitvkCmdEndRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdEndRenderPass2-commandBuffer-parameterYNoneimplicitvkCmdEndRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndRenderPass2-commandBuffer-recordingYNoneimplicitvkCmdEndRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)commandBuffer must be in the recording state
VUID-vkCmdEndRenderPass2-pSubpassEndInfo-parameterYNoneimplicitvkCmdEndRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)pSubpassEndInfo must be a valid pointer to a valid VkSubpassEndInfo structure
VUID-vkCmdEndRenderPass2-renderpassYNoneimplicitvkCmdEndRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)This command must only be called inside of a render pass instance
VUID-vkCmdEndRenderPass2-videocodingNNoneimplicitvkCmdEndRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)This command must only be called outside of a video coding scope
VUID-vkCmdEndRendering-None-06161YDynamicRenderingBeginRenderingDisabled, DynamicRenderingEndRenderingWithIncorrectlyStartedRenderpassInstanceexplicitvkCmdEndRendering(VK_VERSION_1_3,VK_KHR_dynamic_rendering)The current render pass instance must have been begun with vkCmdBeginRendering
VUID-vkCmdEndRendering-None-06781NNoneexplicitvkCmdEndRendering(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_transform_feedback)This command must not be recorded when transform feedback is active
VUID-vkCmdEndRendering-None-06999NNoneexplicitvkCmdEndRendering(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If vkCmdBeginQuery* was called within the render pass, the corresponding vkCmdEndQuery* must have been called subsequently within the same subpass
VUID-vkCmdEndRendering-commandBuffer-06162YDynamicRenderingEndRenderingWithIncorrectlyStartedRenderpassInstanceexplicitvkCmdEndRendering(VK_VERSION_1_3,VK_KHR_dynamic_rendering)The current render pass instance must have been begun in commandBuffer
VUID-vkCmdEndRendering-commandBuffer-cmdpoolYNoneimplicitvkCmdEndRendering(VK_VERSION_1_3,VK_KHR_dynamic_rendering)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdEndRendering-commandBuffer-parameterYNoneimplicitvkCmdEndRendering(VK_VERSION_1_3,VK_KHR_dynamic_rendering)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndRendering-commandBuffer-recordingYNoneimplicitvkCmdEndRendering(VK_VERSION_1_3,VK_KHR_dynamic_rendering)commandBuffer must be in the recording state
VUID-vkCmdEndRendering-renderpassYNoneimplicitvkCmdEndRendering(VK_VERSION_1_3,VK_KHR_dynamic_rendering)This command must only be called inside of a render pass instance
VUID-vkCmdEndRendering-videocodingNNoneimplicitvkCmdEndRendering(VK_VERSION_1_3,VK_KHR_dynamic_rendering)This command must only be called outside of a video coding scope
VUID-vkCmdEndTransformFeedbackEXT-None-02375YTransformFeedbackFeatureEnabled, TransformFeedbackCmdEndTransformFeedbackEXTexplicitvkCmdEndTransformFeedbackEXT(VK_EXT_transform_feedback)Transform feedback must be active
VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdEndTransformFeedbackEXT(VK_EXT_transform_feedback)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-parameterYNoneimplicitvkCmdEndTransformFeedbackEXT(VK_EXT_transform_feedback)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-recordingYNoneimplicitvkCmdEndTransformFeedbackEXT(VK_EXT_transform_feedback)commandBuffer must be in the recording state
VUID-vkCmdEndTransformFeedbackEXT-commonparentYNoneimplicitvkCmdEndTransformFeedbackEXT(VK_EXT_transform_feedback)Both of commandBuffer, and the elements of pCounterBuffers that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdEndTransformFeedbackEXT-counterBufferCount-02608NNoneexplicitvkCmdEndTransformFeedbackEXT(VK_EXT_transform_feedback)If 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-02376YTransformFeedbackCmdEndTransformFeedbackEXTexplicitvkCmdEndTransformFeedbackEXT(VK_EXT_transform_feedback)firstCounterBuffer must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers
VUID-vkCmdEndTransformFeedbackEXT-firstCounterBuffer-02377YTransformFeedbackCmdEndTransformFeedbackEXTexplicitvkCmdEndTransformFeedbackEXT(VK_EXT_transform_feedback)The sum of firstCounterBuffer and counterBufferCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers
VUID-vkCmdEndTransformFeedbackEXT-pCounterBuffer-02379YTransformFeedbackCmdEndTransformFeedbackEXTexplicitvkCmdEndTransformFeedbackEXT(VK_EXT_transform_feedback)If pCounterBuffer is NULL, then pCounterBufferOffsets must also be NULL
VUID-vkCmdEndTransformFeedbackEXT-pCounterBufferOffsets-02378YTransformFeedbackCmdEndTransformFeedbackEXTexplicitvkCmdEndTransformFeedbackEXT(VK_EXT_transform_feedback)For 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-parameterNNoneimplicitvkCmdEndTransformFeedbackEXT(VK_EXT_transform_feedback)If 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-02380YTransformFeedbackCmdEndTransformFeedbackEXTexplicitvkCmdEndTransformFeedbackEXT(VK_EXT_transform_feedback)For 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-renderpassYNoneimplicitvkCmdEndTransformFeedbackEXT(VK_EXT_transform_feedback)This command must only be called inside of a render pass instance
VUID-vkCmdEndTransformFeedbackEXT-transformFeedback-02374YTransformFeedbackFeatureEnabledexplicitvkCmdEndTransformFeedbackEXT(VK_EXT_transform_feedback)VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled
VUID-vkCmdEndTransformFeedbackEXT-videocodingNNoneimplicitvkCmdEndTransformFeedbackEXT(VK_EXT_transform_feedback)This command must only be called outside of a video coding scope
VUID-vkCmdEndVideoCodingKHR-bufferlevelYNoneimplicitvkCmdEndVideoCodingKHR(VK_KHR_video_queue)commandBuffer must be a primary VkCommandBuffer
VUID-vkCmdEndVideoCodingKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdEndVideoCodingKHR(VK_KHR_video_queue)The VkCommandPool that commandBuffer was allocated from must support decode, or encode operations
VUID-vkCmdEndVideoCodingKHR-commandBuffer-parameterYNoneimplicitvkCmdEndVideoCodingKHR(VK_KHR_video_queue)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdEndVideoCodingKHR-commandBuffer-recordingYNoneimplicitvkCmdEndVideoCodingKHR(VK_KHR_video_queue)commandBuffer must be in the recording state
VUID-vkCmdEndVideoCodingKHR-pEndCodingInfo-parameterYNoneimplicitvkCmdEndVideoCodingKHR(VK_KHR_video_queue)pEndCodingInfo must be a valid pointer to a valid VkVideoEndCodingInfoKHR structure
VUID-vkCmdEndVideoCodingKHR-renderpassYNoneimplicitvkCmdEndVideoCodingKHR(VK_KHR_video_queue)This command must only be called outside of a render pass instance
VUID-vkCmdEndVideoCodingKHR-videocodingNNoneimplicitvkCmdEndVideoCodingKHR(VK_KHR_video_queue)This command must only be called inside of a video coding scope
VUID-vkCmdExecuteCommands-None-02286YExecuteSecondaryCommandBuffersDuringTransformFeedbackexplicitvkCmdExecuteCommands(VK_EXT_transform_feedback)This command must not be recorded when transform feedback is active
VUID-vkCmdExecuteCommands-bufferlevelYExecuteCommandsToSecondaryCBimplicitvkCmdExecuteCommandscorecommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdExecuteCommands-colorAttachmentCount-06027YDynamicRenderingAndExecuteCommandsWithMismatchingColorAttachmentCountexplicitvkCmdExecuteCommands(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, the colorAttachmentCount member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the VkRenderingInfo::colorAttachmentCount parameter to vkCmdBeginRendering
VUID-vkCmdExecuteCommands-commandBuffer-00101YNoneexplicitvkCmdExecuteCommandscoreIf the inheritedQueries feature is not enabled, commandBuffer must not have any queries active
VUID-vkCmdExecuteCommands-commandBuffer-00102YCommandBufferMissingOcclusionQueryEnabledexplicitvkCmdExecuteCommandscoreIf 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-00103NNoneexplicitvkCmdExecuteCommandscoreIf 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-00104YNoneexplicitvkCmdExecuteCommandscoreIf 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-01820YNoneexplicitvkCmdExecuteCommands(VK_VERSION_1_1)If commandBuffer is a protected command buffer and protectedNoFault is not supported, each element of pCommandBuffers must be a protected command buffer
VUID-vkCmdExecuteCommands-commandBuffer-01821YNoneexplicitvkCmdExecuteCommands(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, each element of pCommandBuffers must be an unprotected command buffer
VUID-vkCmdExecuteCommands-commandBuffer-06533NNoneexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance and any recorded command in commandBuffer in the current subpass will write to an image subresource as an attachment, commands recorded in elements of pCommandBuffers must not read from the memory backing that image subresource in any other way
VUID-vkCmdExecuteCommands-commandBuffer-06534NNoneexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance and any recorded command in commandBuffer in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, commands recorded in elements of pCommandBuffers must not write to that image subresource as an attachment
VUID-vkCmdExecuteCommands-commandBuffer-07594NNoneexplicitvkCmdExecuteCommandscorecommandBuffer must not have any queries other than VK_QUERY_TYPE_OCCLUSION and VK_QUERY_TYPE_PIPELINE_STATISTICS active
VUID-vkCmdExecuteCommands-commandBuffer-cmdpoolYNoneimplicitvkCmdExecuteCommandscoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdExecuteCommands-commandBuffer-parameterYNoneimplicitvkCmdExecuteCommandscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdExecuteCommands-commandBuffer-recordingYNoneimplicitvkCmdExecuteCommandscorecommandBuffer must be in the recording state
VUID-vkCmdExecuteCommands-commandBufferCount-arraylengthYValidateArrayLengthimplicitvkCmdExecuteCommandscorecommandBufferCount must be greater than 0
VUID-vkCmdExecuteCommands-commonparentYNoneimplicitvkCmdExecuteCommandscoreBoth of commandBuffer, and the elements of pCommandBuffers must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdExecuteCommands-contents-00095YBadRenderPassContentsWhenCallingCmdExecuteCommandsWithBeginRenderPass, DynamicRenderingSecondaryCommandBufferInvalidContentsexplicitvkCmdExecuteCommands!(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If vkCmdExecuteCommands is being called within a render pass instance, that render pass instance must have been begun with the contents parameter of vkCmdBeginRenderPass set to VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
VUID-vkCmdExecuteCommands-contents-06018YBadRenderPassContentsWhenCallingCmdExecuteCommandsWithBeginRenderPass, DynamicRenderingSecondaryCommandBufferInvalidContentsexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRenderPass, its contents parameter must have been set to VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
VUID-vkCmdExecuteCommands-flags-06024YDynamicRenderingBadRenderPassContentsWhenCallingCmdExecuteCommandsexplicitvkCmdExecuteCommands(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06026YDynamicRenderingAndExecuteCommandsWithMismatchingFlagsexplicitvkCmdExecuteCommands(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06028YDynamicRenderingAndExecuteCommandsWithMismatchingColorImageViewFormatexplicitvkCmdExecuteCommands(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-07606NNoneexplicitvkCmdExecuteCommands(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-pBeginInfo-06020YIncompatibleRenderPassesInExecuteCommands, DynamicRenderingSecondaryCommandBufferIncompatibleRenderPass, IncompatibleFragmentRateShadingAttachmentInExecuteCommandsexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRenderPass, the render passes specified in the pBeginInfo->pInheritanceInfo->renderPass members of the vkBeginCommandBuffer commands used to begin recording each element of pCommandBuffers must be compatible with the current render pass
VUID-vkCmdExecuteCommands-pBeginInfo-06025YDynamicRenderingAndExecuteCommandsWithNonNullRenderPassexplicitvkCmdExecuteCommands(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-00088YExecuteCommandsPrimaryCBexplicitvkCmdExecuteCommandscoreEach element of pCommandBuffers must have been allocated with a level of VK_COMMAND_BUFFER_LEVEL_SECONDARY
VUID-vkCmdExecuteCommands-pCommandBuffers-00089YExecuteUnrecordedSecondaryCBexplicitvkCmdExecuteCommandscoreEach element of pCommandBuffers must be in the pending or executable state
VUID-vkCmdExecuteCommands-pCommandBuffers-00091YNoneexplicitvkCmdExecuteCommandscoreIf any element of pCommandBuffers was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag, it must not be in the pending state
VUID-vkCmdExecuteCommands-pCommandBuffers-00092YSimultaneousUseSecondaryTwoExecutesexplicitvkCmdExecuteCommandscoreIf 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-00093YSimultaneousUseSecondarySingleExecuteexplicitvkCmdExecuteCommandscoreIf 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-00094YExecuteDiffertQueueFlagsSecondaryCBexplicitvkCmdExecuteCommandscoreEach 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-00096YBadRenderPassScopeSecondaryCmdBufferexplicitvkCmdExecuteCommandscoreIf 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-00097YBadExecuteCommandsSubpassIndices, DynamicRenderingSecondaryCommandBufferIncompatibleSubpassexplicitvkCmdExecuteCommands!(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If vkCmdExecuteCommands is being called within a render pass instance, 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-00099YFramebufferIncompatibleexplicitvkCmdExecuteCommandscoreIf 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-00100YBadRenderPassScopeSecondaryCmdBufferexplicitvkCmdExecuteCommandscoreIf 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-00105NNoneexplicitvkCmdExecuteCommandscoreEach element of pCommandBuffers must not begin any query types that are active in commandBuffer
VUID-vkCmdExecuteCommands-pCommandBuffers-06019YBadExecuteCommandsSubpassIndices, DynamicRenderingSecondaryCommandBufferIncompatibleSubpassexplicitvkCmdExecuteCommandscoreIf 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-06021NNoneexplicitvkCmdExecuteCommands(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06022NNoneexplicitvkCmdExecuteCommands(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If pCommandBuffers contains any suspended render pass instances, there must be no render pass instances between that render pass instance and any render pass instance that resumes it
VUID-vkCmdExecuteCommands-pCommandBuffers-06535NNoneexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance and any recorded command in a given element of pCommandBuffers will write to an image subresource as an attachment, commands recorded in elements of pCommandBuffers at a higher index must not read from the memory backing that image subresource in any other way
VUID-vkCmdExecuteCommands-pCommandBuffers-06536NNoneexplicitvkCmdExecuteCommandscoreIf vkCmdExecuteCommands is being called within a render pass instance and any recorded command in a given element of pCommandBuffers will read from an image subresource used as an attachment in any way other than as an attachment, commands recorded in elements of pCommandBuffers at a higher index must not write to that image subresource as an attachment
VUID-vkCmdExecuteCommands-pCommandBuffers-parameterYNoneimplicitvkCmdExecuteCommandscorepCommandBuffers must be a valid pointer to an array of commandBufferCount valid VkCommandBuffer handles
VUID-vkCmdExecuteCommands-pDepthAttachment-06029YDynamicRenderingAndExecuteCommandsWithMismatchingDepthStencilImageViewFormatexplicitvkCmdExecuteCommands(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06774YDynamicRenderingNullDepthStencilExecuteCommandsexplicitvkCmdExecuteCommands(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-pInheritanceInfo-00098YIncompatibleRenderPassesInExecuteCommands, DynamicRenderingSecondaryCommandBufferIncompatibleRenderPass, IncompatibleFragmentRateShadingAttachmentInExecuteCommandsexplicitvkCmdExecuteCommands!(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If vkCmdExecuteCommands is being called within a render pass instance, 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-pNext-02865NNoneexplicitvkCmdExecuteCommands(VK_QCOM_render_pass_transform)If 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-02866NNoneexplicitvkCmdExecuteCommands(VK_QCOM_render_pass_transform)If 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-02867NNoneexplicitvkCmdExecuteCommands(VK_QCOM_render_pass_transform)If 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-06032YDynamicRenderingAndExecuteCommandsWithMismatchingImageViewAttachmentSamplesexplicitvkCmdExecuteCommands(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06033YDynamicRenderingAndExecuteCommandsWithMismatchingImageViewAttachmentSamplesexplicitvkCmdExecuteCommands(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06034YDynamicRenderingAndExecuteCommandsWithMismatchingImageViewAttachmentSamplesexplicitvkCmdExecuteCommands(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06035YDynamicRenderingAndExecuteCommandsWithMismatchingImageViewRasterizationSamplesexplicitvkCmdExecuteCommands(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06036YDynamicRenderingAndExecuteCommandsWithMismatchingImageViewRasterizationSamplesexplicitvkCmdExecuteCommands(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06037YDynamicRenderingAndExecuteCommandsWithMismatchingImageViewRasterizationSamplesexplicitvkCmdExecuteCommands(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-pStencilAttachment-06030YDynamicRenderingAndExecuteCommandsWithMismatchingDepthStencilImageViewFormatexplicitvkCmdExecuteCommands(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06775YDynamicRenderingNullDepthStencilExecuteCommandsexplicitvkCmdExecuteCommands(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06023NNoneexplicitvkCmdExecuteCommands(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_sample_locations)If 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-videocodingNNoneimplicitvkCmdExecuteCommandscoreThis command must only be called outside of a video coding scope
VUID-vkCmdExecuteCommands-viewMask-06031YDynamicRenderingAndExecuteCommandsWithMismatchingViewMaskexplicitvkCmdExecuteCommands(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_multiview,VK_VERSION_1_1)If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, the viewMask member of the VkCommandBufferInheritanceRenderingInfo structure included in the pNext chain of VkCommandBufferBeginInfo::pInheritanceInfo used to begin recording each element of pCommandBuffers must be equal to the VkRenderingInfo::viewMask parameter to vkCmdBeginRendering
VUID-vkCmdExecuteGeneratedCommandsNV-ConstOffset-06551NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdExecuteGeneratedCommandsNV-None-02691NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)If 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-02692NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdExecuteGeneratedCommandsNV-None-02698NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdExecuteGeneratedCommandsNV-None-02699NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdExecuteGeneratedCommandsNV-None-02700NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)A valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdExecuteGeneratedCommandsNV-None-02702NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)If the VkPipeline object bound 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-02703NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)If the VkPipeline object bound 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-02704NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)If the VkPipeline object bound 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-02705NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02721NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)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-02859NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdExecuteGeneratedCommandsNV-None-02910NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_transform_feedback)Transform feedback must not be active
VUID-vkCmdExecuteGeneratedCommandsNV-None-04007NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)All 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-04008NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)If 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-04115NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)If a VkImageView is accessed using OpImageWrite as 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-None-04875NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT dynamic state enabled then vkCmdSetPatchControlPointsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-04876NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled then vkCmdSetRasterizerDiscardEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-04877NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then vkCmdSetDepthBiasEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-04879NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-04912NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with both the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT and VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic states enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdExecuteGeneratedCommandsNV-None-04914NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdSetVertexInputEXT must have been called in the current command buffer prior to this draw command
VUID-vkCmdExecuteGeneratedCommandsNV-None-06479NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-06537NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)Memory backing image subresources used as attachments in the current render pass must not be written in any way other than as an attachment by this command
VUID-vkCmdExecuteGeneratedCommandsNV-None-06538NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)If any recorded command in the current subpass will write to an image subresource as an attachment, this command must not read from the memory backing that image subresource in any other way than as an attachment
VUID-vkCmdExecuteGeneratedCommandsNV-None-06539NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)If any recorded command in the current subpass will read from an image subresource used as an attachment in any way other than as an attachment, this command must not write to that image subresource as an attachment
VUID-vkCmdExecuteGeneratedCommandsNV-None-06550NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdExecuteGeneratedCommandsNV-None-06666NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then vkCmdSetSampleLocationsEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-06886NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)If 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-06887NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)If the current render pass instance uses a depth/stencil attachment with a read-only layout for the stencil aspect and stencil test is enabled, all stencil ops must be VK_STENCIL_OP_KEEP
VUID-vkCmdExecuteGeneratedCommandsNV-None-07288NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)Any shader invocation executed by this command must terminate
VUID-vkCmdExecuteGeneratedCommandsNV-None-07469NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)Input 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-07619NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state enabled then vkCmdSetTessellationDomainOriginEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07620NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClampEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07621NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then vkCmdSetPolygonModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07622NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled then vkCmdSetRasterizationSamplesEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07623NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then vkCmdSetSampleMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07624NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToCoverageEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07625NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled then vkCmdSetAlphaToOneEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07626NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then vkCmdSetLogicOpEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07627NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then vkCmdSetColorBlendEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07628NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled then vkCmdSetColorBlendEquationEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07629NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then vkCmdSetColorWriteMaskEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07630NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled then vkCmdSetRasterizationStreamEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07631NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetConservativeRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07632NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic state enabled then vkCmdSetExtraPrimitiveOverestimationSizeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07633NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then vkCmdSetDepthClipEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07634NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled then vkCmdSetSampleLocationsEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07635NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled then vkCmdSetColorBlendAdvancedEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07636NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_provoking_vertex)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled then vkCmdSetProvokingVertexModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07637NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07638NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07639NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_control)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state enabled then vkCmdSetDepthClipNegativeOneToOneEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07640NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state enabled then vkCmdSetViewportWScalingEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07641NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then vkCmdSetViewportSwizzleNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07642NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled then vkCmdSetCoverageToColorEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07643NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state enabled then vkCmdSetCoverageToColorLocationNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07644NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled then vkCmdSetCoverageModulationModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07645NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07646NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state enabled then vkCmdSetCoverageModulationTableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07647NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state enabled then vkCmdSetShadingRateImageEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07648NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_representative_fragment_test)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic state enabled then vkCmdSetRepresentativeFragmentTestEnableNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07649NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_coverage_reduction_mode)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled then vkCmdSetCoverageReductionModeNV must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07748NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)If any shader statically accesses an input attachment, a valid descriptor must be bound to the pipeline via a descriptor set
VUID-vkCmdExecuteGeneratedCommandsNV-None-07749NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then vkCmdSetColorWriteEnableEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-07751NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_discard_rectangles)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then vkCmdSetDiscardRectangleEXT must have been called in the current command buffer prior to this drawing command
VUID-vkCmdExecuteGeneratedCommandsNV-None-08114NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_descriptor_buffer)Descriptors 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-08117NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-04469NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)If 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-OpTypeImage-07027NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any 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-07468NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)If any shader executed by this pipeline accesses an OpTypeImage variable with a Dim operand of SubpassData, it must be decorated with an InputAttachmentIndex that corresponds to a valid input attachment in the current subpass
VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04470NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_shader_image_atomic_int64)If 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-04141NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)If 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-04142NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)If 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-07480NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-aspectMask-06478NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdExecuteGeneratedCommandsNV-attachmentCount-07750NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_color_write_enable)If 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-04727NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)If 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-06179NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06180NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with a VkFormat equal to the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound graphics pipeline
VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06185NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06188NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the currently bound pipeline was created without 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 value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-07616NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering and VkRenderingInfo::colorAttachmentCount greater than 0, then each element of the VkRenderingInfo::pColorAttachments array with a imageView equal to VK_NULL_HANDLE must have the corresponding element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats used to create the currently bound pipeline equal to VK_FORMAT_UNDEFINED
VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02701NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02707NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02970NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_1)commandBuffer must not be a protected command buffer
VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-cmdpoolYNoneimplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-parameterYNoneimplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-recordingYNoneimplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)commandBuffer must be in the recording state
VUID-vkCmdExecuteGeneratedCommandsNV-conservativePointAndLineRasterization-07499NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_conservative_rasterization)If 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-07488NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If 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-07491NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)+(VK_NV_coverage_reduction_mode)If 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-07490NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_fragment_coverage_to_color)If 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-deviceGeneratedCommands-02911NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled
VUID-vkCmdExecuteGeneratedCommandsNV-dynamicPrimitiveTopologyUnrestricted-07500NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled and the dynamicPrimitiveTopologyUnrestricted is VK_FALSE, then the primitiveTopology parameter in the last call to vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdExecuteGeneratedCommandsNV-filterCubic-02694NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-07476NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)If 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-07477NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)If 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-07478NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)If 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-07479NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_blend_operation_advanced)If 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-02696NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_NV_corner_sampled_image)Any 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-07753NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)If a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06172NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06173NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-06174NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06175NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_maintenance2)If 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-06176NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06177NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-06183NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_fragment_shading_rate)If 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-06184NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)If 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-02908NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)If 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-04878NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+(VK_EXT_extended_dynamic_state2)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then vkCmdSetLogicOpEXT must have been called in the current command buffer prior to this drawing command and the logicOp must be a valid VkLogicOp value
VUID-vkCmdExecuteGeneratedCommandsNV-magFilter-04553NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdExecuteGeneratedCommandsNV-maintenance4-06425NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdExecuteGeneratedCommandsNV-maxMultiviewInstanceIndex-02688NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_1,VK_KHR_multiview)If 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-04770NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07284NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and none of the VK_AMD_mixed_attachment_samples extension, the VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07285NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline
VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07286NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07287NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, 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 VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07475NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_multisampled_render_to_single_sampled)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and none of the VK_AMD_mixed_attachment_samples extension, VK_NV_framebuffer_mixed_samples extension, or the multisampledRenderToSingleSampled feature is 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-pColorBlendEnables-07470NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)If 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-06181NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pDepthAttachment-06186NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06189NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pDepthAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pDepthAttachment->imageView
VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-07617NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pGeneratedCommandsInfo-parameterYNoneimplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)pGeneratedCommandsInfo must be a valid pointer to a valid VkGeneratedCommandsInfoNV structure
VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-06182NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStencilAttachment-06187NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-06190NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)+!(VK_EXT_multisampled_render_to_single_sampled)If the current render pass instance was begun with vkCmdBeginRendering, the currently bound pipeline was created without a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, and VkRenderingInfo::pStencilAttachment->imageView was not VK_NULL_HANDLE, the value of VkPipelineMultisampleStateCreateInfo::rasterizationSamples used to create the currently bound graphics pipeline must be equal to the sample count used to create VkRenderingInfo::pStencilAttachment->imageView
VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-07618NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the current render pass instance was begun with vkCmdBeginRendering 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-pStrides-04884NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this drawing command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdExecuteGeneratedCommandsNV-pStrides-04913NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)If the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VERTEX_INPUT_EXT dynamic state enabled, then vkCmdBindVertexBuffers2EXT must have been called in the current command buffer prior to this draw command, and the pStrides parameter of vkCmdBindVertexBuffers2EXT must not be NULL
VUID-vkCmdExecuteGeneratedCommandsNV-pipeline-02909NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)VkGeneratedCommandsInfoNV::pipeline must match the current bound pipeline at VkGeneratedCommandsInfoNV::pipelineBindPoint
VUID-vkCmdExecuteGeneratedCommandsNV-primitiveFragmentShadingRateWithMultipleViewports-04552NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-primitiveTopology-03420NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_EXT_extended_dynamic_state3)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopology must have been called in the current command buffer prior to this drawing command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopology must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state
VUID-vkCmdExecuteGeneratedCommandsNV-primitivesGeneratedQueryWithNonZeroStreams-06709NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_primitives_generated_query)+(VK_EXT_transform_feedback)If 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-07481NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_transform_feedback)If 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-06708NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_primitives_generated_query)If 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-04740NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+!(VK_EXT_multisampled_render_to_single_sampled)If rasterization is not disabled in the bound graphics pipeline, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, then VkPipelineMultisampleStateCreateInfo::rasterizationSamples must be the same as the current subpass color and/or depth/stencil attachments
VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07471NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)If 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-07474NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+!(VK_EXT_multisampled_render_to_single_sampled)If 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-07489NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if current subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled in the currently bound pipeline state, then the current rasterizationSamples must be the same as the sample count of the depth/stencil attachment
VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07494NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_framebuffer_mixed_samples)If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the current subpass has any color attachments and rasterizationSamples of the last call to vkCmdSetRasterizationSamplesEXT is greater than the number of color samples, then the pipeline sampleShadingEnable must be VK_FALSE
VUID-vkCmdExecuteGeneratedCommandsNV-renderPass-02684NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)The 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-06198NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If 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-renderpassYNoneimplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)This command must only be called inside of a render pass instance
VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-02689NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_sample_locations)If 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-07484NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07485NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07486NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-07487NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If 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-sampleLocationsPerPixel-07482NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07483NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_sample_locations)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the sampleLocationsPerPixel member of pSampleLocationsInfo in the last call to vkCmdSetSampleLocationsEXT must equal the rasterizationSamples parameter of the last call to vkCmdSetRasterizationSamplesEXT
VUID-vkCmdExecuteGeneratedCommandsNV-samples-07472NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)If 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-07473NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)If 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-03418NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-sparseImageInt64Atomics-04474NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_shader_image_atomic_int64)If 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-06481NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)The 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-07073NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_mesh_shader)If 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-07495NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled
VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07496NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled
VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07497NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled
VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07498NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_EXT_line_rasterization)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states enabled, and if the current stippledLineEnable state is VK_TRUE and the current lineRasterizationMode state is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE
VUID-vkCmdExecuteGeneratedCommandsNV-storageBuffers-06936NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_pipeline_robustness)If 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-02685NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)The 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-06935NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)This command must only be called outside of a video coding scope
VUID-vkCmdExecuteGeneratedCommandsNV-viewMask-06178NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If 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-07752NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-03417NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-03419NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If 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-04137NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If 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-04138NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04139NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If 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-04140NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCount
VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-07492NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-07493NNoneexplicitvkCmdExecuteGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state3)+(VK_NV_viewport_swizzle)If 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-vkCmdFillBuffer-commandBuffer-00030YFillBufferCmdPoolUnsupportedexplicitvkCmdFillBuffer!(VK_VERSION_1_1,VK_KHR_maintenance1)The VkCommandPool that commandBuffer was allocated from must support graphics or compute operations
VUID-vkCmdFillBuffer-commandBuffer-01811YInvalidMixingProtectedResourcesexplicitvkCmdFillBuffer(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer
VUID-vkCmdFillBuffer-commandBuffer-01812YInvalidMixingProtectedResourcesexplicitvkCmdFillBuffer(VK_VERSION_1_1)If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer
VUID-vkCmdFillBuffer-commandBuffer-cmdpoolYNoneimplicitvkCmdFillBuffercoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics or compute operations
VUID-vkCmdFillBuffer-commandBuffer-parameterYNoneimplicitvkCmdFillBuffercorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdFillBuffer-commandBuffer-recordingYNoneimplicitvkCmdFillBuffercorecommandBuffer must be in the recording state
VUID-vkCmdFillBuffer-commonparentYNoneimplicitvkCmdFillBuffercoreBoth of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdFillBuffer-dstBuffer-00029YNoneexplicitvkCmdFillBuffercoredstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdFillBuffer-dstBuffer-00031YNoneexplicitvkCmdFillBuffercoreIf dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdFillBuffer-dstBuffer-parameterYNoneimplicitvkCmdFillBuffercoredstBuffer must be a valid VkBuffer handle
VUID-vkCmdFillBuffer-dstOffset-00024YFillBufferAlignmentAndSizeexplicitvkCmdFillBuffercoredstOffset must be less than the size of dstBuffer
VUID-vkCmdFillBuffer-dstOffset-00025YNoneexplicitvkCmdFillBuffercoredstOffset must be a multiple of 4
VUID-vkCmdFillBuffer-renderpassYFillBufferWithinRenderPassimplicitvkCmdFillBuffercoreThis command must only be called outside of a render pass instance
VUID-vkCmdFillBuffer-size-00026YNoneexplicitvkCmdFillBuffercoreIf size is not equal to VK_WHOLE_SIZE, size must be greater than 0
VUID-vkCmdFillBuffer-size-00027YFillBufferAlignmentAndSizeexplicitvkCmdFillBuffercoreIf size is not equal to VK_WHOLE_SIZE, size must be less than or equal to the size of dstBuffer minus dstOffset
VUID-vkCmdFillBuffer-size-00028YNoneexplicitvkCmdFillBuffercoreIf size is not equal to VK_WHOLE_SIZE, size must be a multiple of 4
VUID-vkCmdFillBuffer-videocodingNNoneimplicitvkCmdFillBuffercoreThis command must only be called outside of a video coding scope
VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdInsertDebugUtilsLabelEXT(VK_EXT_debug_utils)The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-parameterYNoneimplicitvkCmdInsertDebugUtilsLabelEXT(VK_EXT_debug_utils)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-recordingYNoneimplicitvkCmdInsertDebugUtilsLabelEXT(VK_EXT_debug_utils)commandBuffer must be in the recording state
VUID-vkCmdInsertDebugUtilsLabelEXT-pLabelInfo-parameterYNoneimplicitvkCmdInsertDebugUtilsLabelEXT(VK_EXT_debug_utils)pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure
VUID-vkCmdInsertDebugUtilsLabelEXT-videocodingNNoneimplicitvkCmdInsertDebugUtilsLabelEXT(VK_EXT_debug_utils)This command must only be called outside of a video coding scope
VUID-vkCmdNextSubpass-None-00909YRenderPassNextSubpassExcessiveexplicitvkCmdNextSubpasscoreThe current subpass index must be less than the number of subpasses in the render pass minus one
VUID-vkCmdNextSubpass-None-02349YInvalidCmdNextSubpassDuringTransformFeedbackexplicitvkCmdNextSubpass(VK_EXT_transform_feedback)This command must not be recorded when transform feedback is active
VUID-vkCmdNextSubpass-bufferlevelYNoneimplicitvkCmdNextSubpasscorecommandBuffer must be a primary VkCommandBuffer
VUID-vkCmdNextSubpass-commandBuffer-cmdpoolYNoneimplicitvkCmdNextSubpasscoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdNextSubpass-commandBuffer-parameterYNoneimplicitvkCmdNextSubpasscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdNextSubpass-commandBuffer-recordingYNoneimplicitvkCmdNextSubpasscorecommandBuffer must be in the recording state
VUID-vkCmdNextSubpass-contents-parameterYNoneimplicitvkCmdNextSubpasscorecontents must be a valid VkSubpassContents value
VUID-vkCmdNextSubpass-renderpassYNoneimplicitvkCmdNextSubpasscoreThis command must only be called inside of a render pass instance
VUID-vkCmdNextSubpass-videocodingNNoneimplicitvkCmdNextSubpasscoreThis command must only be called outside of a video coding scope
VUID-vkCmdNextSubpass2-None-02350YNoneexplicitvkCmdNextSubpass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_transform_feedback)This command must not be recorded when transform feedback is active
VUID-vkCmdNextSubpass2-None-03102YRenderPassNextSubpassExcessiveexplicitvkCmdNextSubpass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)The current subpass index must be less than the number of subpasses in the render pass minus one
VUID-vkCmdNextSubpass2-bufferlevelYNoneimplicitvkCmdNextSubpass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)commandBuffer must be a primary VkCommandBuffer
VUID-vkCmdNextSubpass2-commandBuffer-cmdpoolYNoneimplicitvkCmdNextSubpass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdNextSubpass2-commandBuffer-parameterYNoneimplicitvkCmdNextSubpass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdNextSubpass2-commandBuffer-recordingYNoneimplicitvkCmdNextSubpass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)commandBuffer must be in the recording state
VUID-vkCmdNextSubpass2-pSubpassBeginInfo-parameterYNoneimplicitvkCmdNextSubpass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)pSubpassBeginInfo must be a valid pointer to a valid VkSubpassBeginInfo structure
VUID-vkCmdNextSubpass2-pSubpassEndInfo-parameterYNoneimplicitvkCmdNextSubpass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)pSubpassEndInfo must be a valid pointer to a valid VkSubpassEndInfo structure
VUID-vkCmdNextSubpass2-renderpassYNoneimplicitvkCmdNextSubpass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)This command must only be called inside of a render pass instance
VUID-vkCmdNextSubpass2-videocodingNNoneimplicitvkCmdNextSubpass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)This command must only be called outside of a video coding scope
VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-cmdpoolYNoneimplicitvkCmdOpticalFlowExecuteNV(VK_NV_optical_flow)The VkCommandPool that commandBuffer was allocated from must support opticalflow operations
VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-parameterYNoneimplicitvkCmdOpticalFlowExecuteNV(VK_NV_optical_flow)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-recordingYNoneimplicitvkCmdOpticalFlowExecuteNV(VK_NV_optical_flow)commandBuffer must be in the recording state
VUID-vkCmdOpticalFlowExecuteNV-commonparentYNoneimplicitvkCmdOpticalFlowExecuteNV(VK_NV_optical_flow)Both of commandBuffer, and session must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdOpticalFlowExecuteNV-pExecuteInfo-parameterYNoneimplicitvkCmdOpticalFlowExecuteNV(VK_NV_optical_flow)pExecuteInfo must be a valid pointer to a valid VkOpticalFlowExecuteInfoNV structure
VUID-vkCmdOpticalFlowExecuteNV-renderpassYNoneimplicitvkCmdOpticalFlowExecuteNV(VK_NV_optical_flow)This command must only be called outside of a render pass instance
VUID-vkCmdOpticalFlowExecuteNV-session-parameterYNoneimplicitvkCmdOpticalFlowExecuteNV(VK_NV_optical_flow)session must be a valid VkOpticalFlowSessionNV handle
VUID-vkCmdOpticalFlowExecuteNV-videocodingNNoneimplicitvkCmdOpticalFlowExecuteNV(VK_NV_optical_flow)This command must only be called outside of a video coding scope
VUID-vkCmdPipelineBarrier-None-06191YDynamicRenderingWithBarrierexplicitvkCmdPipelineBarrier(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If fname:vkCmdPipelineBarrier is called within a render pass instance, the render pass must not have been started with vkCmdBeginRendering
VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178YImageBarrierSubpassConflictsexplicitvkCmdPipelineBarriercoreIf fname:vkCmdPipelineBarrier is called within a render pass instance, it must not include any buffer memory barriers
VUID-vkCmdPipelineBarrier-commandBuffer-cmdpoolYNoneimplicitvkCmdPipelineBarriercoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, compute, decode, or encode operations
VUID-vkCmdPipelineBarrier-commandBuffer-parameterYNoneimplicitvkCmdPipelineBarriercorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPipelineBarrier-commandBuffer-recordingYNoneimplicitvkCmdPipelineBarriercorecommandBuffer must be in the recording state
VUID-vkCmdPipelineBarrier-dependencyFlags-01186YNoneexplicitvkCmdPipelineBarrier(VK_VERSION_1_1,VK_KHR_multiview)If fname:vkCmdPipelineBarrier is called outside of a render pass instance, VK_DEPENDENCY_VIEW_LOCAL_BIT must not be included in the dependency flags
VUID-vkCmdPipelineBarrier-dependencyFlags-parameterYNoneimplicitvkCmdPipelineBarriercoredependencyFlags must be a valid combination of VkDependencyFlagBits values
VUID-vkCmdPipelineBarrier-dstAccessMask-02816YInvalidBarriersexplicitvkCmdPipelineBarriercoreThe 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-dstStageMask-03937YNoneexplicitvkCmdPipelineBarrier(VK_VERSION_1_3,VK_KHR_synchronization2)If the synchronization2 feature is not enabled, pname:dstStageMask must not be 0
VUID-vkCmdPipelineBarrier-dstStageMask-04090YNoneexplicitvkCmdPipelineBarriercoreIf the geometryShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdPipelineBarrier-dstStageMask-04091YNoneexplicitvkCmdPipelineBarriercoreIf the tessellationShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-vkCmdPipelineBarrier-dstStageMask-04092YNoneexplicitvkCmdPipelineBarrier(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdPipelineBarrier-dstStageMask-04093YNoneexplicitvkCmdPipelineBarrier(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdPipelineBarrier-dstStageMask-04094YNoneexplicitvkCmdPipelineBarrier(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdPipelineBarrier-dstStageMask-04095YMeshShaderDisabledNVexplicitvkCmdPipelineBarrier(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdPipelineBarrier-dstStageMask-04096YMeshShaderDisabledNVexplicitvkCmdPipelineBarrier(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdPipelineBarrier-dstStageMask-04097YNoneexplicitvkCmdPipelineBarrier(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV
VUID-vkCmdPipelineBarrier-dstStageMask-04996NNoneexplicitvkCmdPipelineBarrier!(VK_VERSION_1_3,VK_KHR_synchronization2)pname:dstStageMask must not be 0
VUID-vkCmdPipelineBarrier-dstStageMask-06462YPipelineStageConditionalRenderingWithWrongQueueexplicitvkCmdPipelineBarriercoreAny 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-07318NNoneexplicitvkCmdPipelineBarrier(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdPipelineBarrier-dstStageMask-07319NNoneexplicitvkCmdPipelineBarrier(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdPipelineBarrier-dstStageMask-parameterYNoneimplicitvkCmdPipelineBarriercoredstStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-vkCmdPipelineBarrier-image-04073YInvalidSecondaryCommandBufferBarrier, ImageBarrierSubpassConflicts, ImageBarrierSubpassConflictexplicitvkCmdPipelineBarriercoreIf fname:vkCmdPipelineBarrier is called within a render pass instance, 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 or depth/stencil attachment
VUID-vkCmdPipelineBarrier-oldLayout-01181YImageBarrierSubpassConflictsexplicitvkCmdPipelineBarriercoreIf fname:vkCmdPipelineBarrier is called within a render pass instance, the oldLayout and newLayout members of any image memory barrier included in this command must be equal
VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02817NNoneexplicitvkCmdPipelineBarriercoreFor any element of pBufferMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its srcQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its srcAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types
VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02818NNoneexplicitvkCmdPipelineBarriercoreFor any element of pBufferMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its dstQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its dstAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types
VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-parameterYNoneimplicitvkCmdPipelineBarriercoreIf bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier structures
VUID-vkCmdPipelineBarrier-pDependencies-02285YImageBarrierSubpassConflictsexplicitvkCmdPipelineBarriercoreIf fname:vkCmdPipelineBarrier is called within a render pass instance, the render pass must have been created with at least one VkSubpassDependency instance in VkRenderPassCreateInfo::pDependencies that expresses a dependency from the current subpass to itself, with synchronization scopes and access scopes that are all supersets of the scopes defined in this command
VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02819NNoneexplicitvkCmdPipelineBarriercoreFor any element of pImageMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its srcQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its srcAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types
VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02820NNoneexplicitvkCmdPipelineBarriercoreFor any element of pImageMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its dstQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its dstAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types
VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-parameterYNoneimplicitvkCmdPipelineBarriercoreIf imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier structures
VUID-vkCmdPipelineBarrier-pMemoryBarriers-parameterYNoneimplicitvkCmdPipelineBarriercoreIf memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier structures
VUID-vkCmdPipelineBarrier-srcAccessMask-02815YInvalidBarriersexplicitvkCmdPipelineBarriercoreThe 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-srcQueueFamilyIndex-01182YImageBarrierSubpassConflictsexplicitvkCmdPipelineBarriercoreIf fname:vkCmdPipelineBarrier is called within a render pass instance, the srcQueueFamilyIndex and dstQueueFamilyIndex members of any image memory barrier included in this command must be equal
VUID-vkCmdPipelineBarrier-srcStageMask-03937YNoneexplicitvkCmdPipelineBarrier(VK_VERSION_1_3,VK_KHR_synchronization2)If the synchronization2 feature is not enabled, pname:srcStageMask must not be 0
VUID-vkCmdPipelineBarrier-srcStageMask-04090YNoneexplicitvkCmdPipelineBarriercoreIf the geometryShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdPipelineBarrier-srcStageMask-04091YNoneexplicitvkCmdPipelineBarriercoreIf the tessellationShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-vkCmdPipelineBarrier-srcStageMask-04092YNoneexplicitvkCmdPipelineBarrier(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdPipelineBarrier-srcStageMask-04093YNoneexplicitvkCmdPipelineBarrier(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdPipelineBarrier-srcStageMask-04094YNoneexplicitvkCmdPipelineBarrier(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdPipelineBarrier-srcStageMask-04095YMeshShaderDisabledNVexplicitvkCmdPipelineBarrier(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdPipelineBarrier-srcStageMask-04096YMeshShaderDisabledNVexplicitvkCmdPipelineBarrier(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdPipelineBarrier-srcStageMask-04097YNoneexplicitvkCmdPipelineBarrier(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV
VUID-vkCmdPipelineBarrier-srcStageMask-04996NNoneexplicitvkCmdPipelineBarrier!(VK_VERSION_1_3,VK_KHR_synchronization2)pname:srcStageMask must not be 0
VUID-vkCmdPipelineBarrier-srcStageMask-06461YPipelineStageConditionalRenderingWithWrongQueue, InvalidBarriersexplicitvkCmdPipelineBarriercoreAny 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-07318NNoneexplicitvkCmdPipelineBarrier(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdPipelineBarrier-srcStageMask-07319NNoneexplicitvkCmdPipelineBarrier(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdPipelineBarrier-srcStageMask-parameterYNoneimplicitvkCmdPipelineBarriercoresrcStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-vkCmdPipelineBarrier2-None-06191YDynamicRenderingWithBarrierexplicitvkCmdPipelineBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If fname:vkCmdPipelineBarrier2 is called within a render pass instance, the render pass must not have been started with vkCmdBeginRendering
VUID-vkCmdPipelineBarrier2-bufferMemoryBarrierCount-01178YNoneexplicitvkCmdPipelineBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If fname:vkCmdPipelineBarrier2 is called within a render pass instance, it must not include any buffer memory barriers
VUID-vkCmdPipelineBarrier2-commandBuffer-cmdpoolYNoneimplicitvkCmdPipelineBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, compute, decode, or encode operations
VUID-vkCmdPipelineBarrier2-commandBuffer-parameterYNoneimplicitvkCmdPipelineBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPipelineBarrier2-commandBuffer-recordingYNoneimplicitvkCmdPipelineBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)commandBuffer must be in the recording state
VUID-vkCmdPipelineBarrier2-dependencyFlags-01186YNoneexplicitvkCmdPipelineBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_multiview)If fname:vkCmdPipelineBarrier2 is called outside of a render pass instance, VK_DEPENDENCY_VIEW_LOCAL_BIT must not be included in the dependency flags
VUID-vkCmdPipelineBarrier2-dstStageMask-03850YNoneexplicitvkCmdPipelineBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)The dstStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfo must only include pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from
VUID-vkCmdPipelineBarrier2-image-04073YNoneexplicitvkCmdPipelineBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If fname:vkCmdPipelineBarrier2 is called within a render pass instance, 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 or depth/stencil attachment
VUID-vkCmdPipelineBarrier2-oldLayout-01181YNoneexplicitvkCmdPipelineBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If fname: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-pDependencies-02285YNoneexplicitvkCmdPipelineBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If fname:vkCmdPipelineBarrier2 is called within a render pass instance, the render pass must have been created with at least one VkSubpassDependency instance in VkRenderPassCreateInfo::pDependencies that expresses a dependency from the current subpass to itself, with synchronization scopes and access scopes that are all supersets of the scopes defined in this command
VUID-vkCmdPipelineBarrier2-pDependencyInfo-parameterYNoneimplicitvkCmdPipelineBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)pDependencyInfo must be a valid pointer to a valid VkDependencyInfo structure
VUID-vkCmdPipelineBarrier2-srcQueueFamilyIndex-01182YNoneexplicitvkCmdPipelineBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If fname:vkCmdPipelineBarrier2 is called within a render pass instance, the srcQueueFamilyIndex and dstQueueFamilyIndex members of any image memory barrier included in this command must be equal
VUID-vkCmdPipelineBarrier2-srcStageMask-03849YSync2InvalidBarriersexplicitvkCmdPipelineBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)The srcStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfo must only include pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from
VUID-vkCmdPipelineBarrier2-synchronization2-03848YSync2FeatureDisabledexplicitvkCmdPipelineBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)The synchronization2 feature must be enabled
VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-02974NNoneexplicitvkCmdPreprocessGeneratedCommandsNV(VK_NV_device_generated_commands)+(VK_VERSION_1_1)commandBuffer must not be a protected command buffer
VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-cmdpoolYNoneimplicitvkCmdPreprocessGeneratedCommandsNV(VK_NV_device_generated_commands)The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-parameterYNoneimplicitvkCmdPreprocessGeneratedCommandsNV(VK_NV_device_generated_commands)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-recordingYNoneimplicitvkCmdPreprocessGeneratedCommandsNV(VK_NV_device_generated_commands)commandBuffer must be in the recording state
VUID-vkCmdPreprocessGeneratedCommandsNV-deviceGeneratedCommands-02928NNoneexplicitvkCmdPreprocessGeneratedCommandsNV(VK_NV_device_generated_commands)The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled
VUID-vkCmdPreprocessGeneratedCommandsNV-pGeneratedCommandsInfo-02927NNoneexplicitvkCmdPreprocessGeneratedCommandsNV(VK_NV_device_generated_commands)pGeneratedCommandsInfo`s indirectCommandsLayout must have been created with the VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV bit set
VUID-vkCmdPreprocessGeneratedCommandsNV-pGeneratedCommandsInfo-parameterYNoneimplicitvkCmdPreprocessGeneratedCommandsNV(VK_NV_device_generated_commands)pGeneratedCommandsInfo must be a valid pointer to a valid VkGeneratedCommandsInfoNV structure
VUID-vkCmdPreprocessGeneratedCommandsNV-renderpassYNoneimplicitvkCmdPreprocessGeneratedCommandsNV(VK_NV_device_generated_commands)This command must only be called outside of a render pass instance
VUID-vkCmdPreprocessGeneratedCommandsNV-videocodingNNoneimplicitvkCmdPreprocessGeneratedCommandsNV(VK_NV_device_generated_commands)This command must only be called outside of a video coding scope
VUID-vkCmdPushConstants-commandBuffer-cmdpoolYNoneimplicitvkCmdPushConstantscoreThe VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdPushConstants-commandBuffer-parameterYNoneimplicitvkCmdPushConstantscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPushConstants-commandBuffer-recordingYNoneimplicitvkCmdPushConstantscorecommandBuffer must be in the recording state
VUID-vkCmdPushConstants-commonparentYNoneimplicitvkCmdPushConstantscoreBoth of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdPushConstants-layout-parameterYNoneimplicitvkCmdPushConstantscorelayout must be a valid VkPipelineLayout handle
VUID-vkCmdPushConstants-offset-00368YInvalidCmdPushConstantRangeexplicitvkCmdPushConstantscoreoffset must be a multiple of 4
VUID-vkCmdPushConstants-offset-00370YInvalidCmdPushConstantRangeexplicitvkCmdPushConstantscoreoffset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize
VUID-vkCmdPushConstants-offset-01795YInvalidPushConstantsexplicitvkCmdPushConstantscoreFor 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-01796YInvalidPushConstantsexplicitvkCmdPushConstantscoreFor each byte in the range specified by offset and size and for each push constant range that overlaps that byte, stageFlags must include all stages in that push constant range's VkPushConstantRange::stageFlags
VUID-vkCmdPushConstants-pValues-parameterYNoneimplicitvkCmdPushConstantscorepValues must be a valid pointer to an array of size bytes
VUID-vkCmdPushConstants-size-00369YInvalidCmdPushConstantRangeexplicitvkCmdPushConstantscoresize must be a multiple of 4
VUID-vkCmdPushConstants-size-00371YInvalidCmdPushConstantRangeexplicitvkCmdPushConstantscoresize must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus offset
VUID-vkCmdPushConstants-size-arraylengthYInvalidCmdPushConstantRangeimplicitvkCmdPushConstantscoresize must be greater than 0
VUID-vkCmdPushConstants-stageFlags-parameterYNoneimplicitvkCmdPushConstantscorestageFlags must be a valid combination of VkShaderStageFlagBits values
VUID-vkCmdPushConstants-stageFlags-requiredbitmaskYInvalidPushConstantsimplicitvkCmdPushConstantscorestageFlags must not be 0
VUID-vkCmdPushConstants-videocodingNNoneimplicitvkCmdPushConstantscoreThis command must only be called outside of a video coding scope
VUID-vkCmdPushDescriptorSetKHR-commandBuffer-cmdpoolYPushDescriptorSetCmdPushBadArgsimplicitvkCmdPushDescriptorSetKHR(VK_KHR_push_descriptor)The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdPushDescriptorSetKHR-commandBuffer-parameterYNoneimplicitvkCmdPushDescriptorSetKHR(VK_KHR_push_descriptor)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPushDescriptorSetKHR-commandBuffer-recordingYNoneimplicitvkCmdPushDescriptorSetKHR(VK_KHR_push_descriptor)commandBuffer must be in the recording state
VUID-vkCmdPushDescriptorSetKHR-commonparentYNoneimplicitvkCmdPushDescriptorSetKHR(VK_KHR_push_descriptor)Both of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdPushDescriptorSetKHR-descriptorWriteCount-arraylengthYNoneimplicitvkCmdPushDescriptorSetKHR(VK_KHR_push_descriptor)descriptorWriteCount must be greater than 0
VUID-vkCmdPushDescriptorSetKHR-layout-parameterYNoneimplicitvkCmdPushDescriptorSetKHR(VK_KHR_push_descriptor)layout must be a valid VkPipelineLayout handle
VUID-vkCmdPushDescriptorSetKHR-pDescriptorWrites-06494YNoneexplicitvkCmdPushDescriptorSetKHR(VK_KHR_push_descriptor)For each element i where pDescriptorWrites[i].descriptorType is 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-parameterYNoneimplicitvkCmdPushDescriptorSetKHR(VK_KHR_push_descriptor)pDescriptorWrites must be a valid pointer to an array of descriptorWriteCount valid VkWriteDescriptorSet structures
VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-00363YPushDescriptorSetCmdPushBadArgsexplicitvkCmdPushDescriptorSetKHR(VK_KHR_push_descriptor)pipelineBindPoint must be supported by the commandBuffer's parent VkCommandPool's queue family
VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-parameterYNoneimplicitvkCmdPushDescriptorSetKHR(VK_KHR_push_descriptor)pipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-vkCmdPushDescriptorSetKHR-set-00364YPushDescriptorSetCmdPushBadArgsexplicitvkCmdPushDescriptorSetKHR(VK_KHR_push_descriptor)set must be less than VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-vkCmdPushDescriptorSetKHR-set-00365YPushDescriptorSetCmdPushBadArgsexplicitvkCmdPushDescriptorSetKHR(VK_KHR_push_descriptor)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-vkCmdPushDescriptorSetKHR-videocodingNNoneimplicitvkCmdPushDescriptorSetKHR(VK_KHR_push_descriptor)This command must only be called outside of a video coding scope
VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-00366YNoneexplicitvkCmdPushDescriptorSetWithTemplateKHR(VK_KHR_push_descriptor)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)The 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-cmdpoolYNoneimplicitvkCmdPushDescriptorSetWithTemplateKHR(VK_KHR_push_descriptor)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-parameterYNoneimplicitvkCmdPushDescriptorSetWithTemplateKHR(VK_KHR_push_descriptor)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-recordingYNoneimplicitvkCmdPushDescriptorSetWithTemplateKHR(VK_KHR_push_descriptor)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)commandBuffer must be in the recording state
VUID-vkCmdPushDescriptorSetWithTemplateKHR-commonparentYNoneimplicitvkCmdPushDescriptorSetWithTemplateKHR(VK_KHR_push_descriptor)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)Each of commandBuffer, descriptorUpdateTemplate, and layout must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdPushDescriptorSetWithTemplateKHR-descriptorUpdateTemplate-parameterYNoneimplicitvkCmdPushDescriptorSetWithTemplateKHR(VK_KHR_push_descriptor)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)descriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle
VUID-vkCmdPushDescriptorSetWithTemplateKHR-layout-parameterYNoneimplicitvkCmdPushDescriptorSetWithTemplateKHR(VK_KHR_push_descriptor)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)layout must be a valid VkPipelineLayout handle
VUID-vkCmdPushDescriptorSetWithTemplateKHR-pData-01686NNoneexplicitvkCmdPushDescriptorSetWithTemplateKHR(VK_KHR_push_descriptor)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)pData 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-07304NNoneexplicitvkCmdPushDescriptorSetWithTemplateKHR(VK_KHR_push_descriptor)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)set must be less than VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-vkCmdPushDescriptorSetWithTemplateKHR-set-07305NNoneexplicitvkCmdPushDescriptorSetWithTemplateKHR(VK_KHR_push_descriptor)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)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-vkCmdPushDescriptorSetWithTemplateKHR-videocodingNNoneimplicitvkCmdPushDescriptorSetWithTemplateKHR(VK_KHR_push_descriptor)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)This command must only be called outside of a video coding scope
VUID-vkCmdResetEvent-commandBuffer-01157NNoneexplicitvkCmdResetEvent(VK_VERSION_1_1,VK_KHR_device_group)commandBuffer's current device mask must include exactly one physical device
VUID-vkCmdResetEvent-commandBuffer-cmdpoolYNoneimplicitvkCmdResetEventcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdResetEvent-commandBuffer-parameterYNoneimplicitvkCmdResetEventcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdResetEvent-commandBuffer-recordingYNoneimplicitvkCmdResetEventcorecommandBuffer must be in the recording state
VUID-vkCmdResetEvent-commonparentYNoneimplicitvkCmdResetEventcoreBoth of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdResetEvent-event-03834YImageMemoryBarrierAccessLayoutCombinationsexplicitvkCmdResetEventcoreThere must be an execution dependency between vkCmdResetEvent and the execution of any vkCmdWaitEvents that includes event in its pEvents parameter
VUID-vkCmdResetEvent-event-03835YNoneexplicitvkCmdResetEvent(VK_VERSION_1_3,VK_KHR_synchronization2)There must be an execution dependency between vkCmdResetEvent and the execution of any vkCmdWaitEvents2 that includes event in its pEvents parameter
VUID-vkCmdResetEvent-event-parameterYNoneimplicitvkCmdResetEventcoreevent must be a valid VkEvent handle
VUID-vkCmdResetEvent-renderpassYNoneimplicitvkCmdResetEventcoreThis command must only be called outside of a render pass instance
VUID-vkCmdResetEvent-stageMask-01153YStageMaskHostexplicitvkCmdResetEventcorestageMask must not include VK_PIPELINE_STAGE_HOST_BIT
VUID-vkCmdResetEvent-stageMask-03937YNoneexplicitvkCmdResetEvent(VK_VERSION_1_3,VK_KHR_synchronization2)If the synchronization2 feature is not enabled, pname:stageMask must not be 0
VUID-vkCmdResetEvent-stageMask-04090YNoneexplicitvkCmdResetEventcoreIf the geometryShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdResetEvent-stageMask-04091YNoneexplicitvkCmdResetEventcoreIf the tessellationShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-vkCmdResetEvent-stageMask-04092YNoneexplicitvkCmdResetEvent(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdResetEvent-stageMask-04093YNoneexplicitvkCmdResetEvent(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdResetEvent-stageMask-04094YNoneexplicitvkCmdResetEvent(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdResetEvent-stageMask-04095YMeshShaderDisabledNVexplicitvkCmdResetEvent(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdResetEvent-stageMask-04096YMeshShaderDisabledNVexplicitvkCmdResetEvent(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdResetEvent-stageMask-04097YNoneexplicitvkCmdResetEvent(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV
VUID-vkCmdResetEvent-stageMask-04996NNoneexplicitvkCmdResetEvent!(VK_VERSION_1_3,VK_KHR_synchronization2)pname:stageMask must not be 0
VUID-vkCmdResetEvent-stageMask-06458YNoneexplicitvkCmdResetEventcoreAny pipeline stage included in stageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages
VUID-vkCmdResetEvent-stageMask-07318NNoneexplicitvkCmdResetEvent(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdResetEvent-stageMask-07319NNoneexplicitvkCmdResetEvent(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdResetEvent-stageMask-parameterYNoneimplicitvkCmdResetEventcorestageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-vkCmdResetEvent2-commandBuffer-03833NNoneexplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_device_group)commandBuffer's current device mask must include exactly one physical device
VUID-vkCmdResetEvent2-commandBuffer-cmdpoolYNoneimplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdResetEvent2-commandBuffer-parameterYNoneimplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdResetEvent2-commandBuffer-recordingYNoneimplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)commandBuffer must be in the recording state
VUID-vkCmdResetEvent2-commonparentYNoneimplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdResetEvent2-event-03831YNoneexplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)There must be an execution dependency between vkCmdResetEvent2 and the execution of any vkCmdWaitEvents that includes event in its pEvents parameter
VUID-vkCmdResetEvent2-event-03832YNoneexplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)There must be an execution dependency between vkCmdResetEvent2 and the execution of any vkCmdWaitEvents2 that includes event in its pEvents parameter
VUID-vkCmdResetEvent2-event-parameterYNoneimplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)event must be a valid VkEvent handle
VUID-vkCmdResetEvent2-renderpassYNoneimplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)This command must only be called outside of a render pass instance
VUID-vkCmdResetEvent2-stageMask-03830YNoneexplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)stageMask must not include VK_PIPELINE_STAGE_2_HOST_BIT
VUID-vkCmdResetEvent2-stageMask-03929YNoneexplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)If the geometryShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-vkCmdResetEvent2-stageMask-03930YNoneexplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)If the tessellationShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
VUID-vkCmdResetEvent2-stageMask-03931YNoneexplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdResetEvent2-stageMask-03932YNoneexplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdResetEvent2-stageMask-03933YNoneexplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdResetEvent2-stageMask-03934YNoneexplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-vkCmdResetEvent2-stageMask-03935YNoneexplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-vkCmdResetEvent2-stageMask-04956YNoneexplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV
VUID-vkCmdResetEvent2-stageMask-04957NNoneexplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)If the subpassShading feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
VUID-vkCmdResetEvent2-stageMask-04995NNoneexplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)If the invocationMask feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-vkCmdResetEvent2-stageMask-07316NNoneexplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdResetEvent2-stageMask-07317NNoneexplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdResetEvent2-stageMask-parameterYNoneimplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)stageMask must be a valid combination of VkPipelineStageFlagBits2 values
VUID-vkCmdResetEvent2-synchronization2-03829YSync2FeatureDisabledexplicitvkCmdResetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)The synchronization2 feature must be enabled
VUID-vkCmdResetQueryPool-None-02841NNoneexplicitvkCmdResetQueryPoolcoreAll queries used by the command must not be active
VUID-vkCmdResetQueryPool-commandBuffer-cmdpoolYNoneimplicitvkCmdResetQueryPoolcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, encode, or opticalflow operations
VUID-vkCmdResetQueryPool-commandBuffer-parameterYNoneimplicitvkCmdResetQueryPoolcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdResetQueryPool-commandBuffer-recordingYNoneimplicitvkCmdResetQueryPoolcorecommandBuffer must be in the recording state
VUID-vkCmdResetQueryPool-commonparentYNoneimplicitvkCmdResetQueryPoolcoreBoth of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdResetQueryPool-firstQuery-00796YInvalidQuerySizesexplicitvkCmdResetQueryPoolcorefirstQuery must be less than the number of queries in queryPool
VUID-vkCmdResetQueryPool-firstQuery-00797YInvalidQuerySizesexplicitvkCmdResetQueryPoolcoreThe sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool
VUID-vkCmdResetQueryPool-firstQuery-02862NNoneexplicitvkCmdResetQueryPool(VK_KHR_performance_query)If 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-queryPool-parameterYNoneimplicitvkCmdResetQueryPoolcorequeryPool must be a valid VkQueryPool handle
VUID-vkCmdResetQueryPool-renderpassYNoneimplicitvkCmdResetQueryPoolcoreThis command must only be called outside of a render pass instance
VUID-vkCmdResetQueryPool-videocodingNNoneimplicitvkCmdResetQueryPoolcoreThis command must only be called outside of a video coding scope
VUID-vkCmdResolveImage-commandBuffer-01837YNoneexplicitvkCmdResolveImage(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdResolveImage-commandBuffer-01838YNoneexplicitvkCmdResolveImage(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdResolveImage-commandBuffer-01839YNoneexplicitvkCmdResolveImage(VK_VERSION_1_1)If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdResolveImage-commandBuffer-cmdpoolYNoneimplicitvkCmdResolveImagecoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdResolveImage-commandBuffer-parameterYNoneimplicitvkCmdResolveImagecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdResolveImage-commandBuffer-recordingYNoneimplicitvkCmdResolveImagecorecommandBuffer must be in the recording state
VUID-vkCmdResolveImage-commonparentYNoneimplicitvkCmdResolveImagecoreEach of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdResolveImage-dstImage-00258YNoneexplicitvkCmdResolveImagecoreIf dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdResolveImage-dstImage-00259YResolveImageHighSampleCountexplicitvkCmdResolveImagecoredstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-vkCmdResolveImage-dstImage-00276YResolveImageImageTypeexplicitvkCmdResolveImagecoreIf 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-00278YResolveImageImageType, ResolveImageSizeExceededexplicitvkCmdResolveImagecoreIf dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1
VUID-vkCmdResolveImage-dstImage-02003YNoneexplicitvkCmdResolveImagecoreThe format features of dstImage must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VUID-vkCmdResolveImage-dstImage-02546YNoneexplicitvkCmdResolveImage(VK_EXT_fragment_density_map)dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-vkCmdResolveImage-dstImage-06764YResolveInvalidUsageexplicitvkCmdResolveImagecoredstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdResolveImage-dstImage-06765YResolveInvalidUsageexplicitvkCmdResolveImage(VK_VERSION_1_1,VK_KHR_maintenance1)The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-vkCmdResolveImage-dstImage-parameterYNoneimplicitvkCmdResolveImagecoredstImage must be a valid VkImage handle
VUID-vkCmdResolveImage-dstImageLayout-00262YResolveImageLayoutMismatchexplicitvkCmdResolveImagecoredstImageLayout 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-00263YNoneexplicitvkCmdResolveImage!(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdResolveImage-dstImageLayout-01401YNoneexplicitvkCmdResolveImage(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdResolveImage-dstImageLayout-parameterYNoneimplicitvkCmdResolveImagecoredstImageLayout must be a valid VkImageLayout value
VUID-vkCmdResolveImage-dstOffset-00274YResolveImageSizeExceededexplicitvkCmdResolveImagecoreFor 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-00275YResolveImageImageType, ResolveImageSizeExceededexplicitvkCmdResolveImagecoreFor each element of pRegions, dstOffset.y and (extent.height + dstOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage
VUID-vkCmdResolveImage-dstOffset-00277YResolveImageSizeExceededexplicitvkCmdResolveImagecoreFor 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-01710YResolveInvalidSubresourceexplicitvkCmdResolveImagecoreThe dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-vkCmdResolveImage-dstSubresource-01712YResolveInvalidSubresourceexplicitvkCmdResolveImagecoreThe 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-06519NNoneexplicitvkCmdResolveImage(VK_NV_linear_color_attachment)If the linearColorAttachment feature is enabled and the image is created with VK_IMAGE_TILING_LINEAR, the format features of dstImage must contain VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
VUID-vkCmdResolveImage-pRegions-00255NNoneexplicitvkCmdResolveImagecoreThe union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory
VUID-vkCmdResolveImage-pRegions-parameterYNoneimplicitvkCmdResolveImagecorepRegions must be a valid pointer to an array of regionCount valid VkImageResolve structures
VUID-vkCmdResolveImage-regionCount-arraylengthYNoneimplicitvkCmdResolveImagecoreregionCount must be greater than 0
VUID-vkCmdResolveImage-renderpassYNoneimplicitvkCmdResolveImagecoreThis command must only be called outside of a render pass instance
VUID-vkCmdResolveImage-srcImage-00256YNoneexplicitvkCmdResolveImagecoreIf srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdResolveImage-srcImage-00257YResolveImageLowSampleCountexplicitvkCmdResolveImagecoresrcImage must have a sample count equal to any valid sample count value other than VK_SAMPLE_COUNT_1_BIT
VUID-vkCmdResolveImage-srcImage-00271YNoneexplicitvkCmdResolveImagecoreIf srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1
VUID-vkCmdResolveImage-srcImage-00273YResolveImageImageType, ResolveImageSizeExceededexplicitvkCmdResolveImagecoreIf srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1
VUID-vkCmdResolveImage-srcImage-01386YResolveImageFormatMismatchexplicitvkCmdResolveImagecoresrcImage and dstImage must have been created with the same image format
VUID-vkCmdResolveImage-srcImage-04446YResolveImageImageTypeexplicitvkCmdResolveImagecoreIf either srcImage or dstImage are of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and srcSubresource.layerCount must be 1
VUID-vkCmdResolveImage-srcImage-04447YNoneexplicitvkCmdResolveImagecoreIf either srcImage or dstImage are 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-06762YResolveInvalidUsageexplicitvkCmdResolveImagecoresrcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-vkCmdResolveImage-srcImage-06763YResolveInvalidUsageexplicitvkCmdResolveImage(VK_VERSION_1_1,VK_KHR_maintenance1)The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
VUID-vkCmdResolveImage-srcImage-parameterYNoneimplicitvkCmdResolveImagecoresrcImage must be a valid VkImage handle
VUID-vkCmdResolveImage-srcImageLayout-00260YResolveImageLayoutMismatchexplicitvkCmdResolveImagecoresrcImageLayout 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-00261YNoneexplicitvkCmdResolveImage!(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdResolveImage-srcImageLayout-01400YNoneexplicitvkCmdResolveImage(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-vkCmdResolveImage-srcImageLayout-parameterYNoneimplicitvkCmdResolveImagecoresrcImageLayout must be a valid VkImageLayout value
VUID-vkCmdResolveImage-srcOffset-00269YResolveImageSizeExceededexplicitvkCmdResolveImagecoreFor 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-00270YResolveImageImageType, ResolveImageSizeExceededexplicitvkCmdResolveImagecoreFor each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage
VUID-vkCmdResolveImage-srcOffset-00272YResolveImageSizeExceededexplicitvkCmdResolveImagecoreFor 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-01709YResolveInvalidSubresourceexplicitvkCmdResolveImagecoreThe srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-vkCmdResolveImage-srcSubresource-01711YResolveInvalidSubresourceexplicitvkCmdResolveImagecoreThe 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-videocodingNNoneimplicitvkCmdResolveImagecoreThis command must only be called outside of a video coding scope
VUID-vkCmdResolveImage2-commandBuffer-01837YNoneexplicitvkCmdResolveImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, srcImage must not be a protected image
VUID-vkCmdResolveImage2-commandBuffer-01838YNoneexplicitvkCmdResolveImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstImage must not be a protected image
VUID-vkCmdResolveImage2-commandBuffer-01839YNoneexplicitvkCmdResolveImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1)If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstImage must not be an unprotected image
VUID-vkCmdResolveImage2-commandBuffer-cmdpoolYNoneimplicitvkCmdResolveImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdResolveImage2-commandBuffer-parameterYNoneimplicitvkCmdResolveImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdResolveImage2-commandBuffer-recordingYNoneimplicitvkCmdResolveImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)commandBuffer must be in the recording state
VUID-vkCmdResolveImage2-pResolveImageInfo-parameterYNoneimplicitvkCmdResolveImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)pResolveImageInfo must be a valid pointer to a valid VkResolveImageInfo2 structure
VUID-vkCmdResolveImage2-renderpassYNoneimplicitvkCmdResolveImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)This command must only be called outside of a render pass instance
VUID-vkCmdResolveImage2-videocodingNNoneimplicitvkCmdResolveImage2(VK_VERSION_1_3,VK_KHR_copy_commands2)This command must only be called outside of a video coding scope
VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetAlphaToCoverageEnableEXT(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetAlphaToCoverageEnableEXT(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetAlphaToCoverageEnableEXT(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetAlphaToCoverageEnableEXT-extendedDynamicState3AlphaToCoverageEnable-07343YValidateExtendedDynamicState3DisabledexplicitvkCmdSetAlphaToCoverageEnableEXT(VK_EXT_extended_dynamic_state3)The extendedDynamicState3AlphaToCoverageEnable feature must be enabled
VUID-vkCmdSetAlphaToCoverageEnableEXT-videocodingNNoneimplicitvkCmdSetAlphaToCoverageEnableEXT(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetAlphaToOneEnableEXT-alphaToOne-07607YValidateExtendedDynamicState3EnabledexplicitvkCmdSetAlphaToOneEnableEXT(VK_EXT_extended_dynamic_state3)If the alphaToOne feature is not enabled, alphaToOneEnable must be VK_FALSE
VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetAlphaToOneEnableEXT(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetAlphaToOneEnableEXT(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetAlphaToOneEnableEXT(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetAlphaToOneEnableEXT-extendedDynamicState3AlphaToOneEnable-07345YValidateExtendedDynamicState3DisabledexplicitvkCmdSetAlphaToOneEnableEXT(VK_EXT_extended_dynamic_state3)The extendedDynamicState3AlphaToOneEnable feature must be enabled
VUID-vkCmdSetAlphaToOneEnableEXT-videocodingNNoneimplicitvkCmdSetAlphaToOneEnableEXT(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetBlendConstants-commandBuffer-cmdpoolYNoneimplicitvkCmdSetBlendConstantscoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetBlendConstants-commandBuffer-parameterYNoneimplicitvkCmdSetBlendConstantscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetBlendConstants-commandBuffer-recordingYNoneimplicitvkCmdSetBlendConstantscorecommandBuffer must be in the recording state
VUID-vkCmdSetBlendConstants-videocodingNNoneimplicitvkCmdSetBlendConstantscoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetCheckpointNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCheckpointNV(VK_NV_device_diagnostic_checkpoints)The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations
VUID-vkCmdSetCheckpointNV-commandBuffer-parameterYNoneimplicitvkCmdSetCheckpointNV(VK_NV_device_diagnostic_checkpoints)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCheckpointNV-commandBuffer-recordingYValidateNVDeviceDiagnosticCheckpointsimplicitvkCmdSetCheckpointNV(VK_NV_device_diagnostic_checkpoints)commandBuffer must be in the recording state
VUID-vkCmdSetCheckpointNV-videocodingNNoneimplicitvkCmdSetCheckpointNV(VK_NV_device_diagnostic_checkpoints)This command must only be called outside of a video coding scope
VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCoarseSampleOrderNV(VK_NV_shading_rate_image)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-parameterYNoneimplicitvkCmdSetCoarseSampleOrderNV(VK_NV_shading_rate_image)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-recordingYNoneimplicitvkCmdSetCoarseSampleOrderNV(VK_NV_shading_rate_image)commandBuffer must be in the recording state
VUID-vkCmdSetCoarseSampleOrderNV-pCustomSampleOrders-02235NNoneexplicitvkCmdSetCoarseSampleOrderNV(VK_NV_shading_rate_image)The array pCustomSampleOrders must not contain two structures with matching values for both the shadingRate and sampleCount members
VUID-vkCmdSetCoarseSampleOrderNV-pCustomSampleOrders-parameterYNoneimplicitvkCmdSetCoarseSampleOrderNV(VK_NV_shading_rate_image)If customSampleOrderCount is not 0, pCustomSampleOrders must be a valid pointer to an array of customSampleOrderCount valid VkCoarseSampleOrderCustomNV structures
VUID-vkCmdSetCoarseSampleOrderNV-sampleOrderType-02081YShadingRateImageNVexplicitvkCmdSetCoarseSampleOrderNV(VK_NV_shading_rate_image)If sampleOrderType is not VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, customSamplerOrderCount must be 0
VUID-vkCmdSetCoarseSampleOrderNV-sampleOrderType-parameterYNoneimplicitvkCmdSetCoarseSampleOrderNV(VK_NV_shading_rate_image)sampleOrderType must be a valid VkCoarseSampleOrderTypeNV value
VUID-vkCmdSetCoarseSampleOrderNV-videocodingNNoneimplicitvkCmdSetCoarseSampleOrderNV(VK_NV_shading_rate_image)This command must only be called outside of a video coding scope
VUID-vkCmdSetColorBlendAdvancedEXT-attachmentCount-arraylengthYNoneimplicitvkCmdSetColorBlendAdvancedEXT(VK_EXT_blend_operation_advanced)+(VK_EXT_extended_dynamic_state3)attachmentCount must be greater than 0
VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetColorBlendAdvancedEXT(VK_EXT_blend_operation_advanced)+(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-parameterYNoneimplicitvkCmdSetColorBlendAdvancedEXT(VK_EXT_blend_operation_advanced)+(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-recordingYNoneimplicitvkCmdSetColorBlendAdvancedEXT(VK_EXT_blend_operation_advanced)+(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetColorBlendAdvancedEXT-extendedDynamicState3ColorBlendAdvanced-07504YValidateExtendedDynamicState3DisabledexplicitvkCmdSetColorBlendAdvancedEXT(VK_EXT_blend_operation_advanced)+(VK_EXT_extended_dynamic_state3)The extendedDynamicState3ColorBlendAdvanced feature must be enabled
VUID-vkCmdSetColorBlendAdvancedEXT-pColorBlendAdvanced-parameterYNoneimplicitvkCmdSetColorBlendAdvancedEXT(VK_EXT_blend_operation_advanced)+(VK_EXT_extended_dynamic_state3)pColorBlendAdvanced must be a valid pointer to an array of attachmentCount valid VkColorBlendAdvancedEXT structures
VUID-vkCmdSetColorBlendAdvancedEXT-videocodingNNoneimplicitvkCmdSetColorBlendAdvancedEXT(VK_EXT_blend_operation_advanced)+(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetColorBlendEnableEXT-attachmentCount-arraylengthNNoneimplicitvkCmdSetColorBlendEnableEXT(VK_EXT_extended_dynamic_state3)attachmentCount must be greater than 0
VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetColorBlendEnableEXT(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetColorBlendEnableEXT(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetColorBlendEnableEXT(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetColorBlendEnableEXT-extendedDynamicState3ColorBlendEnable-07355YValidateExtendedDynamicState3DisabledexplicitvkCmdSetColorBlendEnableEXT(VK_EXT_extended_dynamic_state3)The extendedDynamicState3ColorBlendEnable feature must be enabled
VUID-vkCmdSetColorBlendEnableEXT-pColorBlendEnables-parameterNNoneimplicitvkCmdSetColorBlendEnableEXT(VK_EXT_extended_dynamic_state3)pColorBlendEnables must be a valid pointer to an array of attachmentCount VkBool32 values
VUID-vkCmdSetColorBlendEnableEXT-videocodingNNoneimplicitvkCmdSetColorBlendEnableEXT(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetColorBlendEquationEXT-attachmentCount-arraylengthYNoneimplicitvkCmdSetColorBlendEquationEXT(VK_EXT_extended_dynamic_state3)attachmentCount must be greater than 0
VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetColorBlendEquationEXT(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-parameterYNoneimplicitvkCmdSetColorBlendEquationEXT(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-recordingYNoneimplicitvkCmdSetColorBlendEquationEXT(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetColorBlendEquationEXT-extendedDynamicState3ColorBlendEquation-07356YValidateExtendedDynamicState3DisabledexplicitvkCmdSetColorBlendEquationEXT(VK_EXT_extended_dynamic_state3)The extendedDynamicState3ColorBlendEquation feature must be enabled
VUID-vkCmdSetColorBlendEquationEXT-pColorBlendEquations-parameterYNoneimplicitvkCmdSetColorBlendEquationEXT(VK_EXT_extended_dynamic_state3)pColorBlendEquations must be a valid pointer to an array of attachmentCount valid VkColorBlendEquationEXT structures
VUID-vkCmdSetColorBlendEquationEXT-videocodingNNoneimplicitvkCmdSetColorBlendEquationEXT(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetColorWriteEnableEXT-None-04803YInvalidColorWriteEnableFeatureexplicitvkCmdSetColorWriteEnableEXT(VK_EXT_color_write_enable)The colorWriteEnable feature must be enabled
VUID-vkCmdSetColorWriteEnableEXT-attachmentCount-06656YInvalidColorWriteEnableAttachmentCountexplicitvkCmdSetColorWriteEnableEXT(VK_EXT_color_write_enable)attachmentCount must be less than or equal to the maxColorAttachments member of VkPhysicalDeviceLimits
VUID-vkCmdSetColorWriteEnableEXT-attachmentCount-arraylengthNNoneimplicitvkCmdSetColorWriteEnableEXT(VK_EXT_color_write_enable)attachmentCount must be greater than 0
VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetColorWriteEnableEXT(VK_EXT_color_write_enable)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetColorWriteEnableEXT(VK_EXT_color_write_enable)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetColorWriteEnableEXT(VK_EXT_color_write_enable)commandBuffer must be in the recording state
VUID-vkCmdSetColorWriteEnableEXT-pColorWriteEnables-parameterNNoneimplicitvkCmdSetColorWriteEnableEXT(VK_EXT_color_write_enable)pColorWriteEnables must be a valid pointer to an array of attachmentCount VkBool32 values
VUID-vkCmdSetColorWriteEnableEXT-videocodingNNoneimplicitvkCmdSetColorWriteEnableEXT(VK_EXT_color_write_enable)This command must only be called outside of a video coding scope
VUID-vkCmdSetColorWriteMaskEXT-attachmentCount-arraylengthNNoneimplicitvkCmdSetColorWriteMaskEXT(VK_EXT_extended_dynamic_state3)attachmentCount must be greater than 0
VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetColorWriteMaskEXT(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-parameterYNoneimplicitvkCmdSetColorWriteMaskEXT(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-recordingYNoneimplicitvkCmdSetColorWriteMaskEXT(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetColorWriteMaskEXT-extendedDynamicState3ColorWriteMask-07364YValidateExtendedDynamicState3DisabledexplicitvkCmdSetColorWriteMaskEXT(VK_EXT_extended_dynamic_state3)The extendedDynamicState3ColorWriteMask feature must be enabled
VUID-vkCmdSetColorWriteMaskEXT-pColorWriteMasks-parameterNNoneimplicitvkCmdSetColorWriteMaskEXT(VK_EXT_extended_dynamic_state3)pColorWriteMasks must be a valid pointer to an array of attachmentCount valid combinations of VkColorComponentFlagBits values
VUID-vkCmdSetColorWriteMaskEXT-videocodingNNoneimplicitvkCmdSetColorWriteMaskEXT(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetConservativeRasterizationModeEXT(VK_EXT_conservative_rasterization)+(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-parameterYNoneimplicitvkCmdSetConservativeRasterizationModeEXT(VK_EXT_conservative_rasterization)+(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-recordingYNoneimplicitvkCmdSetConservativeRasterizationModeEXT(VK_EXT_conservative_rasterization)+(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetConservativeRasterizationModeEXT-conservativeRasterizationMode-parameterYNoneimplicitvkCmdSetConservativeRasterizationModeEXT(VK_EXT_conservative_rasterization)+(VK_EXT_extended_dynamic_state3)conservativeRasterizationMode must be a valid VkConservativeRasterizationModeEXT value
VUID-vkCmdSetConservativeRasterizationModeEXT-extendedDynamicState3ConservativeRasterizationMode-07426YValidateExtendedDynamicState3DisabledexplicitvkCmdSetConservativeRasterizationModeEXT(VK_EXT_conservative_rasterization)+(VK_EXT_extended_dynamic_state3)The extendedDynamicState3ConservativeRasterizationMode feature must be enabled
VUID-vkCmdSetConservativeRasterizationModeEXT-videocodingNNoneimplicitvkCmdSetConservativeRasterizationModeEXT(VK_EXT_conservative_rasterization)+(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCoverageModulationModeNV(VK_NV_framebuffer_mixed_samples)+(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-parameterYNoneimplicitvkCmdSetCoverageModulationModeNV(VK_NV_framebuffer_mixed_samples)+(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-recordingYNoneimplicitvkCmdSetCoverageModulationModeNV(VK_NV_framebuffer_mixed_samples)+(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetCoverageModulationModeNV-coverageModulationMode-parameterYNoneimplicitvkCmdSetCoverageModulationModeNV(VK_NV_framebuffer_mixed_samples)+(VK_EXT_extended_dynamic_state3)coverageModulationMode must be a valid VkCoverageModulationModeNV value
VUID-vkCmdSetCoverageModulationModeNV-extendedDynamicState3CoverageModulationMode-07350YValidateExtendedDynamicState3DisabledexplicitvkCmdSetCoverageModulationModeNV(VK_NV_framebuffer_mixed_samples)+(VK_EXT_extended_dynamic_state3)The extendedDynamicState3CoverageModulationMode feature must be enabled
VUID-vkCmdSetCoverageModulationModeNV-videocodingNNoneimplicitvkCmdSetCoverageModulationModeNV(VK_NV_framebuffer_mixed_samples)+(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCoverageModulationTableEnableNV(VK_NV_framebuffer_mixed_samples)+(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-parameterYNoneimplicitvkCmdSetCoverageModulationTableEnableNV(VK_NV_framebuffer_mixed_samples)+(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-recordingYNoneimplicitvkCmdSetCoverageModulationTableEnableNV(VK_NV_framebuffer_mixed_samples)+(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetCoverageModulationTableEnableNV-extendedDynamicState3CoverageModulationTableEnable-07351YValidateExtendedDynamicState3DisabledexplicitvkCmdSetCoverageModulationTableEnableNV(VK_NV_framebuffer_mixed_samples)+(VK_EXT_extended_dynamic_state3)The extendedDynamicState3CoverageModulationTableEnable feature must be enabled
VUID-vkCmdSetCoverageModulationTableEnableNV-videocodingNNoneimplicitvkCmdSetCoverageModulationTableEnableNV(VK_NV_framebuffer_mixed_samples)+(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCoverageModulationTableNV(VK_NV_framebuffer_mixed_samples)+(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-parameterYNoneimplicitvkCmdSetCoverageModulationTableNV(VK_NV_framebuffer_mixed_samples)+(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-recordingYNoneimplicitvkCmdSetCoverageModulationTableNV(VK_NV_framebuffer_mixed_samples)+(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetCoverageModulationTableNV-coverageModulationTableCount-arraylengthYNoneimplicitvkCmdSetCoverageModulationTableNV(VK_NV_framebuffer_mixed_samples)+(VK_EXT_extended_dynamic_state3)coverageModulationTableCount must be greater than 0
VUID-vkCmdSetCoverageModulationTableNV-extendedDynamicState3CoverageModulationTable-07352YValidateExtendedDynamicState3DisabledexplicitvkCmdSetCoverageModulationTableNV(VK_NV_framebuffer_mixed_samples)+(VK_EXT_extended_dynamic_state3)The extendedDynamicState3CoverageModulationTable feature must be enabled
VUID-vkCmdSetCoverageModulationTableNV-pCoverageModulationTable-parameterYNoneimplicitvkCmdSetCoverageModulationTableNV(VK_NV_framebuffer_mixed_samples)+(VK_EXT_extended_dynamic_state3)pCoverageModulationTable must be a valid pointer to an array of coverageModulationTableCount float values
VUID-vkCmdSetCoverageModulationTableNV-videocodingNNoneimplicitvkCmdSetCoverageModulationTableNV(VK_NV_framebuffer_mixed_samples)+(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCoverageReductionModeNV(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)+(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-parameterYNoneimplicitvkCmdSetCoverageReductionModeNV(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)+(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-recordingYNoneimplicitvkCmdSetCoverageReductionModeNV(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)+(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetCoverageReductionModeNV-coverageReductionMode-parameterYNoneimplicitvkCmdSetCoverageReductionModeNV(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)+(VK_EXT_extended_dynamic_state3)coverageReductionMode must be a valid VkCoverageReductionModeNV value
VUID-vkCmdSetCoverageReductionModeNV-extendedDynamicState3CoverageReductionMode-07349YValidateExtendedDynamicState3DisabledexplicitvkCmdSetCoverageReductionModeNV(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)+(VK_EXT_extended_dynamic_state3)The extendedDynamicState3CoverageReductionMode feature must be enabled
VUID-vkCmdSetCoverageReductionModeNV-videocodingNNoneimplicitvkCmdSetCoverageReductionModeNV(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)+(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCoverageToColorEnableNV(VK_NV_fragment_coverage_to_color)+(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-parameterYNoneimplicitvkCmdSetCoverageToColorEnableNV(VK_NV_fragment_coverage_to_color)+(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-recordingYNoneimplicitvkCmdSetCoverageToColorEnableNV(VK_NV_fragment_coverage_to_color)+(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetCoverageToColorEnableNV-extendedDynamicState3CoverageToColorEnable-07347YValidateExtendedDynamicState3DisabledexplicitvkCmdSetCoverageToColorEnableNV(VK_NV_fragment_coverage_to_color)+(VK_EXT_extended_dynamic_state3)The extendedDynamicState3CoverageToColorEnable feature must be enabled
VUID-vkCmdSetCoverageToColorEnableNV-videocodingNNoneimplicitvkCmdSetCoverageToColorEnableNV(VK_NV_fragment_coverage_to_color)+(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCoverageToColorLocationNV(VK_NV_fragment_coverage_to_color)+(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-parameterYNoneimplicitvkCmdSetCoverageToColorLocationNV(VK_NV_fragment_coverage_to_color)+(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-recordingYNoneimplicitvkCmdSetCoverageToColorLocationNV(VK_NV_fragment_coverage_to_color)+(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetCoverageToColorLocationNV-extendedDynamicState3CoverageToColorLocation-07348YValidateExtendedDynamicState3DisabledexplicitvkCmdSetCoverageToColorLocationNV(VK_NV_fragment_coverage_to_color)+(VK_EXT_extended_dynamic_state3)The extendedDynamicState3CoverageToColorLocation feature must be enabled
VUID-vkCmdSetCoverageToColorLocationNV-videocodingNNoneimplicitvkCmdSetCoverageToColorLocationNV(VK_NV_fragment_coverage_to_color)+(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetCullMode-None-03384YValidateExtendedDynamicStateDisabledexplicitvkCmdSetCullMode(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)The extendedDynamicState feature must be enabled
VUID-vkCmdSetCullMode-commandBuffer-cmdpoolYNoneimplicitvkCmdSetCullMode(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetCullMode-commandBuffer-parameterYNoneimplicitvkCmdSetCullMode(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetCullMode-commandBuffer-recordingYNoneimplicitvkCmdSetCullMode(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be in the recording state
VUID-vkCmdSetCullMode-cullMode-parameterYNoneimplicitvkCmdSetCullMode(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)cullMode must be a valid combination of VkCullModeFlagBits values
VUID-vkCmdSetCullMode-videocodingNNoneimplicitvkCmdSetCullMode(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)This command must only be called outside of a video coding scope
VUID-vkCmdSetDepthBias-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthBiascoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthBias-commandBuffer-parameterYNoneimplicitvkCmdSetDepthBiascorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthBias-commandBuffer-recordingYNoneimplicitvkCmdSetDepthBiascorecommandBuffer must be in the recording state
VUID-vkCmdSetDepthBias-depthBiasClamp-00790YNoneexplicitvkCmdSetDepthBiascoreIf the depthBiasClamp feature is not enabled, depthBiasClamp must be 0.0
VUID-vkCmdSetDepthBias-videocodingNNoneimplicitvkCmdSetDepthBiascoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthBiasEnable-None-04872YValidateExtendedDynamicState2DisabledexplicitvkCmdSetDepthBiasEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+!(VK_VERSION_1_3)The extendedDynamicState2 feature must be enabled
VUID-vkCmdSetDepthBiasEnable-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthBiasEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthBiasEnable-commandBuffer-parameterYNoneimplicitvkCmdSetDepthBiasEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthBiasEnable-commandBuffer-recordingYNoneimplicitvkCmdSetDepthBiasEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)commandBuffer must be in the recording state
VUID-vkCmdSetDepthBiasEnable-videocodingNNoneimplicitvkCmdSetDepthBiasEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)This command must only be called outside of a video coding scope
VUID-vkCmdSetDepthBounds-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthBoundscoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthBounds-commandBuffer-parameterYNoneimplicitvkCmdSetDepthBoundscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthBounds-commandBuffer-recordingYNoneimplicitvkCmdSetDepthBoundscorecommandBuffer must be in the recording state
VUID-vkCmdSetDepthBounds-maxDepthBounds-00601YNoneexplicitvkCmdSetDepthBounds(VK_EXT_depth_range_unrestricted)Unless the VK_EXT_depth_range_unrestricted extension is enabled maxDepthBounds must be between 0.0 and 1.0, inclusive
VUID-vkCmdSetDepthBounds-maxDepthBounds-02509YSetDepthRangeUnrestrictedexplicitvkCmdSetDepthBounds!(VK_EXT_depth_range_unrestricted)maxDepthBounds must be between 0.0 and 1.0, inclusive
VUID-vkCmdSetDepthBounds-minDepthBounds-00600YNoneexplicitvkCmdSetDepthBounds(VK_EXT_depth_range_unrestricted)Unless the VK_EXT_depth_range_unrestricted extension is enabled minDepthBounds must be between 0.0 and 1.0, inclusive
VUID-vkCmdSetDepthBounds-minDepthBounds-02508YSetDepthRangeUnrestrictedexplicitvkCmdSetDepthBounds!(VK_EXT_depth_range_unrestricted)minDepthBounds must be between 0.0 and 1.0, inclusive
VUID-vkCmdSetDepthBounds-videocodingNNoneimplicitvkCmdSetDepthBoundscoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetDepthBoundsTestEnable-None-03349YValidateExtendedDynamicStateDisabledexplicitvkCmdSetDepthBoundsTestEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)The extendedDynamicState feature must be enabled
VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthBoundsTestEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-parameterYNoneimplicitvkCmdSetDepthBoundsTestEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-recordingYNoneimplicitvkCmdSetDepthBoundsTestEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be in the recording state
VUID-vkCmdSetDepthBoundsTestEnable-videocodingNNoneimplicitvkCmdSetDepthBoundsTestEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)This command must only be called outside of a video coding scope
VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthClampEnableEXT(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetDepthClampEnableEXT(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetDepthClampEnableEXT(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetDepthClampEnableEXT-depthClamp-07449YValidateExtendedDynamicState3EnabledexplicitvkCmdSetDepthClampEnableEXT(VK_EXT_extended_dynamic_state3)If the depthClamp feature is not enabled, depthClampEnable must be VK_FALSE
VUID-vkCmdSetDepthClampEnableEXT-extendedDynamicState3DepthClampEnable-07448YValidateExtendedDynamicState3DisabledexplicitvkCmdSetDepthClampEnableEXT(VK_EXT_extended_dynamic_state3)The extendedDynamicState3DepthClampEnable feature must be enabled
VUID-vkCmdSetDepthClampEnableEXT-videocodingNNoneimplicitvkCmdSetDepthClampEnableEXT(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthClipEnableEXT(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetDepthClipEnableEXT(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetDepthClipEnableEXT(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)commandBuffer must be in the recording state
VUID-vkCmdSetDepthClipEnableEXT-depthClipEnable-07451YValidateExtendedDynamicState3DisabledexplicitvkCmdSetDepthClipEnableEXT(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)The depthClipEnable feature must be enabled
VUID-vkCmdSetDepthClipEnableEXT-extendedDynamicState3DepthClipEnable-07450YValidateExtendedDynamicState3DisabledexplicitvkCmdSetDepthClipEnableEXT(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)The extendedDynamicState3DepthClipEnable feature must be enabled
VUID-vkCmdSetDepthClipEnableEXT-videocodingNNoneimplicitvkCmdSetDepthClipEnableEXT(VK_EXT_extended_dynamic_state3)+(VK_EXT_depth_clip_enable)This command must only be called outside of a video coding scope
VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthClipNegativeOneToOneEXT(VK_EXT_depth_clip_control)+(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-parameterYNoneimplicitvkCmdSetDepthClipNegativeOneToOneEXT(VK_EXT_depth_clip_control)+(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-recordingYNoneimplicitvkCmdSetDepthClipNegativeOneToOneEXT(VK_EXT_depth_clip_control)+(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetDepthClipNegativeOneToOneEXT-depthClipControl-07453YValidateExtendedDynamicState3DisabledexplicitvkCmdSetDepthClipNegativeOneToOneEXT(VK_EXT_depth_clip_control)+(VK_EXT_extended_dynamic_state3)The depthClipControl feature must be enabled
VUID-vkCmdSetDepthClipNegativeOneToOneEXT-extendedDynamicState3DepthClipNegativeOneToOne-07452YValidateExtendedDynamicState3DisabledexplicitvkCmdSetDepthClipNegativeOneToOneEXT(VK_EXT_depth_clip_control)+(VK_EXT_extended_dynamic_state3)The extendedDynamicState3DepthClipNegativeOneToOne feature must be enabled
VUID-vkCmdSetDepthClipNegativeOneToOneEXT-videocodingNNoneimplicitvkCmdSetDepthClipNegativeOneToOneEXT(VK_EXT_depth_clip_control)+(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetDepthCompareOp-None-03353YValidateExtendedDynamicStateDisabledexplicitvkCmdSetDepthCompareOp(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)The extendedDynamicState feature must be enabled
VUID-vkCmdSetDepthCompareOp-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthCompareOp(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthCompareOp-commandBuffer-parameterYNoneimplicitvkCmdSetDepthCompareOp(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthCompareOp-commandBuffer-recordingYNoneimplicitvkCmdSetDepthCompareOp(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be in the recording state
VUID-vkCmdSetDepthCompareOp-depthCompareOp-parameterYNoneimplicitvkCmdSetDepthCompareOp(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)depthCompareOp must be a valid VkCompareOp value
VUID-vkCmdSetDepthCompareOp-videocodingNNoneimplicitvkCmdSetDepthCompareOp(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)This command must only be called outside of a video coding scope
VUID-vkCmdSetDepthTestEnable-None-03352YValidateExtendedDynamicStateDisabledexplicitvkCmdSetDepthTestEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)The extendedDynamicState feature must be enabled
VUID-vkCmdSetDepthTestEnable-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthTestEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthTestEnable-commandBuffer-parameterYNoneimplicitvkCmdSetDepthTestEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthTestEnable-commandBuffer-recordingYNoneimplicitvkCmdSetDepthTestEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be in the recording state
VUID-vkCmdSetDepthTestEnable-videocodingNNoneimplicitvkCmdSetDepthTestEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)This command must only be called outside of a video coding scope
VUID-vkCmdSetDepthWriteEnable-None-03354YValidateExtendedDynamicStateDisabledexplicitvkCmdSetDepthWriteEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)The extendedDynamicState feature must be enabled
VUID-vkCmdSetDepthWriteEnable-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDepthWriteEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDepthWriteEnable-commandBuffer-parameterYNoneimplicitvkCmdSetDepthWriteEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDepthWriteEnable-commandBuffer-recordingYNoneimplicitvkCmdSetDepthWriteEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be in the recording state
VUID-vkCmdSetDepthWriteEnable-videocodingNNoneimplicitvkCmdSetDepthWriteEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)This command must only be called outside of a video coding scope
VUID-vkCmdSetDescriptorBufferOffsetsEXT-None-08060YNoneexplicitvkCmdSetDescriptorBufferOffsetsEXT(VK_EXT_descriptor_buffer)The descriptorBuffer feature must be enabled
VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXT(VK_EXT_descriptor_buffer)The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations
VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-parameterYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXT(VK_EXT_descriptor_buffer)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-recordingYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXT(VK_EXT_descriptor_buffer)commandBuffer must be in the recording state
VUID-vkCmdSetDescriptorBufferOffsetsEXT-commonparentYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXT(VK_EXT_descriptor_buffer)Both of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdSetDescriptorBufferOffsetsEXT-firstSet-08066YDescriptorBufferBindingAndOffsetsexplicitvkCmdSetDescriptorBufferOffsetsEXT(VK_EXT_descriptor_buffer)The sum of firstSet and setCount must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created
VUID-vkCmdSetDescriptorBufferOffsetsEXT-layout-parameterYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXT(VK_EXT_descriptor_buffer)layout must be a valid VkPipelineLayout handle
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-08064YDescriptorBufferBindingAndOffsetsexplicitvkCmdSetDescriptorBufferOffsetsEXT(VK_EXT_descriptor_buffer)Each element of pBufferIndices must be less than VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxDescriptorBufferBindings
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-08065YDescriptorBufferBindingAndOffsetsexplicitvkCmdSetDescriptorBufferOffsetsEXT(VK_EXT_descriptor_buffer)Each element of pBufferIndices must reference a valid descriptor buffer binding set by a previous call to vkCmdBindDescriptorBuffersEXT in commandBuffer
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pBufferIndices-parameterYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXT(VK_EXT_descriptor_buffer)pBufferIndices must be a valid pointer to an array of setCount uint32_t values
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08061YDescriptorBufferBindingAndOffsetsexplicitvkCmdSetDescriptorBufferOffsetsEXT(VK_EXT_descriptor_buffer)The offsets in pOffsets must be aligned to VkPhysicalDeviceDescriptorBufferPropertiesEXT::descriptorBufferOffsetAlignment
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08062YNoneexplicitvkCmdSetDescriptorBufferOffsetsEXT(VK_EXT_descriptor_buffer)+!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The offsets in pOffsets must be small enough such that any descriptor binding referenced by layout computes a valid address inside the underlying VkBuffer
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pOffsets-08063YNoneexplicitvkCmdSetDescriptorBufferOffsetsEXT(VK_EXT_descriptor_buffer)+(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The 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-08126NNoneexplicitvkCmdSetDescriptorBufferOffsetsEXT(VK_EXT_descriptor_buffer)The 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-08127NNoneexplicitvkCmdSetDescriptorBufferOffsetsEXT(VK_EXT_descriptor_buffer)The 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-parameterYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXT(VK_EXT_descriptor_buffer)pOffsets must be a valid pointer to an array of setCount VkDeviceSize values
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pipelineBindPoint-08067YDescriptorBufferBindingAndOffsetsexplicitvkCmdSetDescriptorBufferOffsetsEXT(VK_EXT_descriptor_buffer)pipelineBindPoint must be supported by the commandBuffer's parent VkCommandPool's queue family
VUID-vkCmdSetDescriptorBufferOffsetsEXT-pipelineBindPoint-parameterYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXT(VK_EXT_descriptor_buffer)pipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-vkCmdSetDescriptorBufferOffsetsEXT-setCount-arraylengthYNoneimplicitvkCmdSetDescriptorBufferOffsetsEXT(VK_EXT_descriptor_buffer)setCount must be greater than 0
VUID-vkCmdSetDescriptorBufferOffsetsEXT-videocodingNNoneimplicitvkCmdSetDescriptorBufferOffsetsEXT(VK_EXT_descriptor_buffer)This command must only be called outside of a video coding scope
VUID-vkCmdSetDeviceMask-commandBuffer-cmdpoolYNoneimplicitvkCmdSetDeviceMask(VK_VERSION_1_1,VK_KHR_device_group)The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations
VUID-vkCmdSetDeviceMask-commandBuffer-parameterYNoneimplicitvkCmdSetDeviceMask(VK_VERSION_1_1,VK_KHR_device_group)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDeviceMask-commandBuffer-recordingYNoneimplicitvkCmdSetDeviceMask(VK_VERSION_1_1,VK_KHR_device_group)commandBuffer must be in the recording state
VUID-vkCmdSetDeviceMask-deviceMask-00108YInvalidDeviceMaskexplicitvkCmdSetDeviceMask(VK_VERSION_1_1,VK_KHR_device_group)deviceMask must be a valid device mask value
VUID-vkCmdSetDeviceMask-deviceMask-00109YInvalidDeviceMaskexplicitvkCmdSetDeviceMask(VK_VERSION_1_1,VK_KHR_device_group)deviceMask must not be zero
VUID-vkCmdSetDeviceMask-deviceMask-00110YInvalidDeviceMaskexplicitvkCmdSetDeviceMask(VK_VERSION_1_1,VK_KHR_device_group)deviceMask must not include any set bits that were not in the VkDeviceGroupCommandBufferBeginInfo::deviceMask value when the command buffer began recording
VUID-vkCmdSetDeviceMask-deviceMask-00111YInvalidDeviceMaskexplicitvkCmdSetDeviceMask(VK_VERSION_1_1,VK_KHR_device_group)If 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-cmdpoolYNoneimplicitvkCmdSetDiscardRectangleEXT(VK_EXT_discard_rectangles)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-parameterYNoneimplicitvkCmdSetDiscardRectangleEXT(VK_EXT_discard_rectangles)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-recordingYNoneimplicitvkCmdSetDiscardRectangleEXT(VK_EXT_discard_rectangles)commandBuffer must be in the recording state
VUID-vkCmdSetDiscardRectangleEXT-discardRectangleCount-arraylengthYNoneimplicitvkCmdSetDiscardRectangleEXT(VK_EXT_discard_rectangles)discardRectangleCount must be greater than 0
VUID-vkCmdSetDiscardRectangleEXT-firstDiscardRectangle-00585YInvalidCmdSetDiscardRectangleEXTRectangleCountexplicitvkCmdSetDiscardRectangleEXT(VK_EXT_discard_rectangles)The sum of firstDiscardRectangle and discardRectangleCount must be less than or equal to VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles
VUID-vkCmdSetDiscardRectangleEXT-offset-00588YCmdSetDiscardRectangleEXTRectangleCountOverflowexplicitvkCmdSetDiscardRectangleEXT(VK_EXT_discard_rectangles)Evaluation of (offset.x + extent.width) in each VkRect2D element of pDiscardRectangles must not cause a signed integer addition overflow
VUID-vkCmdSetDiscardRectangleEXT-offset-00589YCmdSetDiscardRectangleEXTRectangleCountOverflowexplicitvkCmdSetDiscardRectangleEXT(VK_EXT_discard_rectangles)Evaluation of (offset.y + extent.height) in each VkRect2D element of pDiscardRectangles must not cause a signed integer addition overflow
VUID-vkCmdSetDiscardRectangleEXT-pDiscardRectangles-parameterYNoneimplicitvkCmdSetDiscardRectangleEXT(VK_EXT_discard_rectangles)pDiscardRectangles must be a valid pointer to an array of discardRectangleCount VkRect2D structures
VUID-vkCmdSetDiscardRectangleEXT-videocodingNNoneimplicitvkCmdSetDiscardRectangleEXT(VK_EXT_discard_rectangles)This command must only be called outside of a video coding scope
VUID-vkCmdSetDiscardRectangleEXT-viewportScissor2D-04788YNoneexplicitvkCmdSetDiscardRectangleEXT(VK_EXT_discard_rectangles)+(VK_NV_inherited_viewport_scissor)If this command is recorded in a secondary command buffer with VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled, then this function must not be called
VUID-vkCmdSetDiscardRectangleEXT-x-00587YInvalidCmdSetDiscardRectangleEXTOffsetsexplicitvkCmdSetDiscardRectangleEXT(VK_EXT_discard_rectangles)The x and y member of offset in each VkRect2D element of pDiscardRectangles must be greater than or equal to 0
VUID-vkCmdSetEvent-commandBuffer-01152NNoneexplicitvkCmdSetEvent(VK_VERSION_1_1,VK_KHR_device_group)commandBuffer's current device mask must include exactly one physical device
VUID-vkCmdSetEvent-commandBuffer-cmdpoolYNoneimplicitvkCmdSetEventcoreThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdSetEvent-commandBuffer-parameterYNoneimplicitvkCmdSetEventcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetEvent-commandBuffer-recordingYNoneimplicitvkCmdSetEventcorecommandBuffer must be in the recording state
VUID-vkCmdSetEvent-commonparentYNoneimplicitvkCmdSetEventcoreBoth of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdSetEvent-event-parameterYNoneimplicitvkCmdSetEventcoreevent must be a valid VkEvent handle
VUID-vkCmdSetEvent-renderpassYNoneimplicitvkCmdSetEventcoreThis command must only be called outside of a render pass instance
VUID-vkCmdSetEvent-stageMask-01149YStageMaskHostexplicitvkCmdSetEventcorestageMask must not include VK_PIPELINE_STAGE_HOST_BIT
VUID-vkCmdSetEvent-stageMask-03937YNoneexplicitvkCmdSetEvent(VK_VERSION_1_3,VK_KHR_synchronization2)If the synchronization2 feature is not enabled, pname:stageMask must not be 0
VUID-vkCmdSetEvent-stageMask-04090YStageMaskGsTsEnabledexplicitvkCmdSetEventcoreIf the geometryShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdSetEvent-stageMask-04091YStageMaskGsTsEnabledexplicitvkCmdSetEventcoreIf the tessellationShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-vkCmdSetEvent-stageMask-04092YNoneexplicitvkCmdSetEvent(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdSetEvent-stageMask-04093YNoneexplicitvkCmdSetEvent(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdSetEvent-stageMask-04094YNoneexplicitvkCmdSetEvent(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdSetEvent-stageMask-04095YMeshShaderDisabledNVexplicitvkCmdSetEvent(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdSetEvent-stageMask-04096YMeshShaderDisabledNVexplicitvkCmdSetEvent(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdSetEvent-stageMask-04097YNoneexplicitvkCmdSetEvent(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV
VUID-vkCmdSetEvent-stageMask-04996NNoneexplicitvkCmdSetEvent!(VK_VERSION_1_3,VK_KHR_synchronization2)pname:stageMask must not be 0
VUID-vkCmdSetEvent-stageMask-06457YNoneexplicitvkCmdSetEventcoreAny pipeline stage included in stageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages
VUID-vkCmdSetEvent-stageMask-07318NNoneexplicitvkCmdSetEvent(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdSetEvent-stageMask-07319NNoneexplicitvkCmdSetEvent(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdSetEvent-stageMask-parameterYNoneimplicitvkCmdSetEventcorestageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-vkCmdSetEvent2-commandBuffer-03826NNoneexplicitvkCmdSetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_device_group)The current device mask of commandBuffer must include exactly one physical device
VUID-vkCmdSetEvent2-commandBuffer-cmdpoolYNoneimplicitvkCmdSetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdSetEvent2-commandBuffer-parameterYNoneimplicitvkCmdSetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetEvent2-commandBuffer-recordingYNoneimplicitvkCmdSetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)commandBuffer must be in the recording state
VUID-vkCmdSetEvent2-commonparentYNoneimplicitvkCmdSetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdSetEvent2-dependencyFlags-03825YNoneexplicitvkCmdSetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)The dependencyFlags member of pDependencyInfo must be 0
VUID-vkCmdSetEvent2-dstStageMask-03828YNoneexplicitvkCmdSetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)The 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-event-parameterYNoneimplicitvkCmdSetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)event must be a valid VkEvent handle
VUID-vkCmdSetEvent2-pDependencyInfo-parameterYNoneimplicitvkCmdSetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)pDependencyInfo must be a valid pointer to a valid VkDependencyInfo structure
VUID-vkCmdSetEvent2-renderpassYNoneimplicitvkCmdSetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)This command must only be called outside of a render pass instance
VUID-vkCmdSetEvent2-srcStageMask-03827YNoneexplicitvkCmdSetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)The 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-synchronization2-03824YSync2FeatureDisabledexplicitvkCmdSetEvent2(VK_VERSION_1_3,VK_KHR_synchronization2)The synchronization2 feature must be enabled
VUID-vkCmdSetExclusiveScissorNV-None-02031YNoneexplicitvkCmdSetExclusiveScissorNV(VK_NV_scissor_exclusive)The exclusiveScissor feature must be enabled
VUID-vkCmdSetExclusiveScissorNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetExclusiveScissorNV(VK_NV_scissor_exclusive)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetExclusiveScissorNV-commandBuffer-parameterYNoneimplicitvkCmdSetExclusiveScissorNV(VK_NV_scissor_exclusive)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetExclusiveScissorNV-commandBuffer-recordingYNoneimplicitvkCmdSetExclusiveScissorNV(VK_NV_scissor_exclusive)commandBuffer must be in the recording state
VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-02036YExclusiveScissorNVexplicitvkCmdSetExclusiveScissorNV(VK_NV_scissor_exclusive)If the multiViewport feature is not enabled, exclusiveScissorCount must be 1
VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-arraylengthYNoneimplicitvkCmdSetExclusiveScissorNV(VK_NV_scissor_exclusive)exclusiveScissorCount must be greater than 0
VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02034YNoneexplicitvkCmdSetExclusiveScissorNV(VK_NV_scissor_exclusive)The sum of firstExclusiveScissor and exclusiveScissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive
VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02035YExclusiveScissorNVexplicitvkCmdSetExclusiveScissorNV(VK_NV_scissor_exclusive)If the multiViewport feature is not enabled, firstExclusiveScissor must be 0
VUID-vkCmdSetExclusiveScissorNV-offset-02038YExclusiveScissorNVexplicitvkCmdSetExclusiveScissorNV(VK_NV_scissor_exclusive)Evaluation of (offset.x + extent.width) for each member of pExclusiveScissors must not cause a signed integer addition overflow
VUID-vkCmdSetExclusiveScissorNV-offset-02039YExclusiveScissorNVexplicitvkCmdSetExclusiveScissorNV(VK_NV_scissor_exclusive)Evaluation of (offset.y + extent.height) for each member of pExclusiveScissors must not cause a signed integer addition overflow
VUID-vkCmdSetExclusiveScissorNV-pExclusiveScissors-parameterYNoneimplicitvkCmdSetExclusiveScissorNV(VK_NV_scissor_exclusive)pExclusiveScissors must be a valid pointer to an array of exclusiveScissorCount VkRect2D structures
VUID-vkCmdSetExclusiveScissorNV-videocodingNNoneimplicitvkCmdSetExclusiveScissorNV(VK_NV_scissor_exclusive)This command must only be called outside of a video coding scope
VUID-vkCmdSetExclusiveScissorNV-x-02037YExclusiveScissorNVexplicitvkCmdSetExclusiveScissorNV(VK_NV_scissor_exclusive)The x and y members of offset in each member of pExclusiveScissors must be greater than or equal to 0
VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetExtraPrimitiveOverestimationSizeEXT(VK_EXT_conservative_rasterization)+(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-parameterYNoneimplicitvkCmdSetExtraPrimitiveOverestimationSizeEXT(VK_EXT_conservative_rasterization)+(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-recordingYNoneimplicitvkCmdSetExtraPrimitiveOverestimationSizeEXT(VK_EXT_conservative_rasterization)+(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-extendedDynamicState3ExtraPrimitiveOverestimationSize-07427YValidateExtendedDynamicState3DisabledexplicitvkCmdSetExtraPrimitiveOverestimationSizeEXT(VK_EXT_conservative_rasterization)+(VK_EXT_extended_dynamic_state3)The extendedDynamicState3ExtraPrimitiveOverestimationSize feature must be enabled
VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-extraPrimitiveOverestimationSize-07428YValidateExtendedDynamicState3EnabledexplicitvkCmdSetExtraPrimitiveOverestimationSizeEXT(VK_EXT_conservative_rasterization)+(VK_EXT_extended_dynamic_state3)extraPrimitiveOverestimationSize must be in the range of 0.0 to VkPhysicalDeviceConservativeRasterizationPropertiesEXT::maxExtraPrimitiveOverestimationSize inclusive
VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-videocodingNNoneimplicitvkCmdSetExtraPrimitiveOverestimationSizeEXT(VK_EXT_conservative_rasterization)+(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetFragmentShadingRateEnumNV-attachmentFragmentShadingRate-04582NNoneexplicitvkCmdSetFragmentShadingRateEnumNV(VK_NV_fragment_shading_rate_enums)If the attachmentFragmentShadingRate feature is not enabled, combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
VUID-vkCmdSetFragmentShadingRateEnumNV-combinerOps-parameterNNoneimplicitvkCmdSetFragmentShadingRateEnumNV(VK_NV_fragment_shading_rate_enums)Any given element of combinerOps must be a valid VkFragmentShadingRateCombinerOpKHR value
VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetFragmentShadingRateEnumNV(VK_NV_fragment_shading_rate_enums)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-parameterYNoneimplicitvkCmdSetFragmentShadingRateEnumNV(VK_NV_fragment_shading_rate_enums)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-recordingYNoneimplicitvkCmdSetFragmentShadingRateEnumNV(VK_NV_fragment_shading_rate_enums)commandBuffer must be in the recording state
VUID-vkCmdSetFragmentShadingRateEnumNV-fragmentShadingRateEnums-04579YNoneexplicitvkCmdSetFragmentShadingRateEnumNV(VK_NV_fragment_shading_rate_enums)The fragmentShadingRateEnums feature must be enabled
VUID-vkCmdSetFragmentShadingRateEnumNV-fragmentSizeNonTrivialCombinerOps-04583NNoneexplicitvkCmdSetFragmentShadingRateEnumNV(VK_NV_fragment_shading_rate_enums)If 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-04578NNoneexplicitvkCmdSetFragmentShadingRateEnumNV(VK_NV_fragment_shading_rate_enums)If noInvocationFragmentShadingRates is not enabled, shadingRate must not be VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV
VUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04576NNoneexplicitvkCmdSetFragmentShadingRateEnumNV(VK_NV_fragment_shading_rate_enums)If pipelineFragmentShadingRate is not enabled, shadingRate must be VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV
VUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04580NNoneexplicitvkCmdSetFragmentShadingRateEnumNV(VK_NV_fragment_shading_rate_enums)One of the pipelineFragmentShadingRate, primitiveFragmentShadingRate, or attachmentFragmentShadingRate features must be enabled
VUID-vkCmdSetFragmentShadingRateEnumNV-primitiveFragmentShadingRate-04581NNoneexplicitvkCmdSetFragmentShadingRateEnumNV(VK_NV_fragment_shading_rate_enums)If the primitiveFragmentShadingRate feature is not enabled, combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
VUID-vkCmdSetFragmentShadingRateEnumNV-shadingRate-parameterYNoneimplicitvkCmdSetFragmentShadingRateEnumNV(VK_NV_fragment_shading_rate_enums)shadingRate must be a valid VkFragmentShadingRateNV value
VUID-vkCmdSetFragmentShadingRateEnumNV-supersampleFragmentShadingRates-04577NNoneexplicitvkCmdSetFragmentShadingRateEnumNV(VK_NV_fragment_shading_rate_enums)If 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-videocodingNNoneimplicitvkCmdSetFragmentShadingRateEnumNV(VK_NV_fragment_shading_rate_enums)This command must only be called outside of a video coding scope
VUID-vkCmdSetFragmentShadingRateKHR-attachmentFragmentShadingRate-04511YInvalidSetFragmentShadingRateCombinerOpsNoFeaturesexplicitvkCmdSetFragmentShadingRateKHR(VK_KHR_fragment_shading_rate)If the attachmentFragmentShadingRate feature is not enabled, combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
VUID-vkCmdSetFragmentShadingRateKHR-combinerOps-parameterNNoneimplicitvkCmdSetFragmentShadingRateKHR(VK_KHR_fragment_shading_rate)Any given element of combinerOps must be a valid VkFragmentShadingRateCombinerOpKHR value
VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdSetFragmentShadingRateKHR(VK_KHR_fragment_shading_rate)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-parameterYNoneimplicitvkCmdSetFragmentShadingRateKHR(VK_KHR_fragment_shading_rate)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-recordingYNoneimplicitvkCmdSetFragmentShadingRateKHR(VK_KHR_fragment_shading_rate)commandBuffer must be in the recording state
VUID-vkCmdSetFragmentShadingRateKHR-fragmentSizeNonTrivialCombinerOps-04512YInvalidSetFragmentShadingRateCombinerOpsLimitexplicitvkCmdSetFragmentShadingRateKHR(VK_KHR_fragment_shading_rate)If 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-04513YInvalidSetFragmentShadingRateValuesexplicitvkCmdSetFragmentShadingRateKHR(VK_KHR_fragment_shading_rate)pFragmentSize->width must be greater than or equal to 1
VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04514YInvalidSetFragmentShadingRateValuesexplicitvkCmdSetFragmentShadingRateKHR(VK_KHR_fragment_shading_rate)pFragmentSize->height must be greater than or equal to 1
VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04515YInvalidSetFragmentShadingRateValuesexplicitvkCmdSetFragmentShadingRateKHR(VK_KHR_fragment_shading_rate)pFragmentSize->width must be a power-of-two value
VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04516YInvalidSetFragmentShadingRateValuesexplicitvkCmdSetFragmentShadingRateKHR(VK_KHR_fragment_shading_rate)pFragmentSize->height must be a power-of-two value
VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04517YInvalidSetFragmentShadingRateValuesexplicitvkCmdSetFragmentShadingRateKHR(VK_KHR_fragment_shading_rate)pFragmentSize->width must be less than or equal to 4
VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04518YInvalidSetFragmentShadingRateValuesexplicitvkCmdSetFragmentShadingRateKHR(VK_KHR_fragment_shading_rate)pFragmentSize->height must be less than or equal to 4
VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-parameterYNoneimplicitvkCmdSetFragmentShadingRateKHR(VK_KHR_fragment_shading_rate)pFragmentSize must be a valid pointer to a valid VkExtent2D structure
VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04507YInvalidSetFragmentShadingRateCombinerOpsNoPipelineRateexplicitvkCmdSetFragmentShadingRateKHR(VK_KHR_fragment_shading_rate)If pipelineFragmentShadingRate is not enabled, pFragmentSize->width must be 1
VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04508YInvalidSetFragmentShadingRateCombinerOpsNoPipelineRateexplicitvkCmdSetFragmentShadingRateKHR(VK_KHR_fragment_shading_rate)If pipelineFragmentShadingRate is not enabled, pFragmentSize->height must be 1
VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04509YInvalidSetFragmentShadingRateValuesNoFeaturesexplicitvkCmdSetFragmentShadingRateKHR(VK_KHR_fragment_shading_rate)One of pipelineFragmentShadingRate, primitiveFragmentShadingRate, or attachmentFragmentShadingRate must be enabled
VUID-vkCmdSetFragmentShadingRateKHR-primitiveFragmentShadingRate-04510YInvalidSetFragmentShadingRateCombinerOpsNoFeaturesexplicitvkCmdSetFragmentShadingRateKHR(VK_KHR_fragment_shading_rate)If the primitiveFragmentShadingRate feature is not enabled, combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
VUID-vkCmdSetFragmentShadingRateKHR-videocodingNNoneimplicitvkCmdSetFragmentShadingRateKHR(VK_KHR_fragment_shading_rate)This command must only be called outside of a video coding scope
VUID-vkCmdSetFrontFace-None-03383YValidateExtendedDynamicStateDisabledexplicitvkCmdSetFrontFace(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)The extendedDynamicState feature must be enabled
VUID-vkCmdSetFrontFace-commandBuffer-cmdpoolYNoneimplicitvkCmdSetFrontFace(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetFrontFace-commandBuffer-parameterYNoneimplicitvkCmdSetFrontFace(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetFrontFace-commandBuffer-recordingYNoneimplicitvkCmdSetFrontFace(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be in the recording state
VUID-vkCmdSetFrontFace-frontFace-parameterYNoneimplicitvkCmdSetFrontFace(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)frontFace must be a valid VkFrontFace value
VUID-vkCmdSetFrontFace-videocodingNNoneimplicitvkCmdSetFrontFace(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)This command must only be called outside of a video coding scope
VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetLineRasterizationModeEXT(VK_EXT_line_rasterization)+(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-parameterYNoneimplicitvkCmdSetLineRasterizationModeEXT(VK_EXT_line_rasterization)+(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-recordingYNoneimplicitvkCmdSetLineRasterizationModeEXT(VK_EXT_line_rasterization)+(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetLineRasterizationModeEXT-extendedDynamicState3LineRasterizationMode-07417YValidateExtendedDynamicState3DisabledexplicitvkCmdSetLineRasterizationModeEXT(VK_EXT_line_rasterization)+(VK_EXT_extended_dynamic_state3)The extendedDynamicState3LineRasterizationMode feature must be enabled
VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07418YValidateExtendedDynamicState3EnabledexplicitvkCmdSetLineRasterizationModeEXT(VK_EXT_line_rasterization)+(VK_EXT_extended_dynamic_state3)If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the rectangularLines feature must be enabled
VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07419YValidateExtendedDynamicState3EnabledexplicitvkCmdSetLineRasterizationModeEXT(VK_EXT_line_rasterization)+(VK_EXT_extended_dynamic_state3)If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the bresenhamLines feature must be enabled
VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07420YValidateExtendedDynamicState3EnabledexplicitvkCmdSetLineRasterizationModeEXT(VK_EXT_line_rasterization)+(VK_EXT_extended_dynamic_state3)If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the smoothLines feature must be enabled
VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-parameterYNoneimplicitvkCmdSetLineRasterizationModeEXT(VK_EXT_line_rasterization)+(VK_EXT_extended_dynamic_state3)lineRasterizationMode must be a valid VkLineRasterizationModeEXT value
VUID-vkCmdSetLineRasterizationModeEXT-videocodingNNoneimplicitvkCmdSetLineRasterizationModeEXT(VK_EXT_line_rasterization)+(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetLineStippleEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetLineStippleEXT(VK_EXT_line_rasterization)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetLineStippleEXT-commandBuffer-parameterYNoneimplicitvkCmdSetLineStippleEXT(VK_EXT_line_rasterization)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetLineStippleEXT-commandBuffer-recordingYNoneimplicitvkCmdSetLineStippleEXT(VK_EXT_line_rasterization)commandBuffer must be in the recording state
VUID-vkCmdSetLineStippleEXT-lineStippleFactor-02776YCreatePipelineCheckLineRasterizationexplicitvkCmdSetLineStippleEXT(VK_EXT_line_rasterization)lineStippleFactor must be in the range [1,256]
VUID-vkCmdSetLineStippleEXT-videocodingNNoneimplicitvkCmdSetLineStippleEXT(VK_EXT_line_rasterization)This command must only be called outside of a video coding scope
VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetLineStippleEnableEXT(VK_EXT_line_rasterization)+(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetLineStippleEnableEXT(VK_EXT_line_rasterization)+(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetLineStippleEnableEXT(VK_EXT_line_rasterization)+(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetLineStippleEnableEXT-extendedDynamicState3LineStippleEnable-07421YValidateExtendedDynamicState3DisabledexplicitvkCmdSetLineStippleEnableEXT(VK_EXT_line_rasterization)+(VK_EXT_extended_dynamic_state3)The extendedDynamicState3LineStippleEnable feature must be enabled
VUID-vkCmdSetLineStippleEnableEXT-videocodingNNoneimplicitvkCmdSetLineStippleEnableEXT(VK_EXT_line_rasterization)+(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetLineWidth-commandBuffer-cmdpoolYNoneimplicitvkCmdSetLineWidthcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetLineWidth-commandBuffer-parameterYNoneimplicitvkCmdSetLineWidthcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetLineWidth-commandBuffer-recordingYNoneimplicitvkCmdSetLineWidthcorecommandBuffer must be in the recording state
VUID-vkCmdSetLineWidth-lineWidth-00788YPSOLineWidthInvalidexplicitvkCmdSetLineWidthcoreIf the wideLines feature is not enabled, lineWidth must be 1.0
VUID-vkCmdSetLineWidth-videocodingNNoneimplicitvkCmdSetLineWidthcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetLogicOpEXT-None-04867YValidateExtendedDynamicState2LogicOpDisabledexplicitvkCmdSetLogicOpEXT(VK_EXT_extended_dynamic_state2)The extendedDynamicState2LogicOp feature must be enabled
VUID-vkCmdSetLogicOpEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetLogicOpEXT(VK_EXT_extended_dynamic_state2)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetLogicOpEXT-commandBuffer-parameterYNoneimplicitvkCmdSetLogicOpEXT(VK_EXT_extended_dynamic_state2)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetLogicOpEXT-commandBuffer-recordingYNoneimplicitvkCmdSetLogicOpEXT(VK_EXT_extended_dynamic_state2)commandBuffer must be in the recording state
VUID-vkCmdSetLogicOpEXT-logicOp-parameterYNoneimplicitvkCmdSetLogicOpEXT(VK_EXT_extended_dynamic_state2)logicOp must be a valid VkLogicOp value
VUID-vkCmdSetLogicOpEXT-videocodingNNoneimplicitvkCmdSetLogicOpEXT(VK_EXT_extended_dynamic_state2)This command must only be called outside of a video coding scope
VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetLogicOpEnableEXT(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetLogicOpEnableEXT(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetLogicOpEnableEXT(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetLogicOpEnableEXT-extendedDynamicState3LogicOpEnable-07365YValidateExtendedDynamicState3DisabledexplicitvkCmdSetLogicOpEnableEXT(VK_EXT_extended_dynamic_state3)The extendedDynamicState3LogicOpEnable feature must be enabled
VUID-vkCmdSetLogicOpEnableEXT-logicOp-07366YValidateExtendedDynamicState3EnabledexplicitvkCmdSetLogicOpEnableEXT(VK_EXT_extended_dynamic_state3)If the logicOp feature is not enabled, logicOpEnable must be VK_FALSE
VUID-vkCmdSetLogicOpEnableEXT-videocodingNNoneimplicitvkCmdSetLogicOpEnableEXT(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetPatchControlPointsEXT-None-04873YValidateExtendedDynamicState2PatchControlPointsDisabledexplicitvkCmdSetPatchControlPointsEXT(VK_EXT_extended_dynamic_state2)The extendedDynamicState2PatchControlPoints feature must be enabled
VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetPatchControlPointsEXT(VK_EXT_extended_dynamic_state2)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-parameterYNoneimplicitvkCmdSetPatchControlPointsEXT(VK_EXT_extended_dynamic_state2)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-recordingYNoneimplicitvkCmdSetPatchControlPointsEXT(VK_EXT_extended_dynamic_state2)commandBuffer must be in the recording state
VUID-vkCmdSetPatchControlPointsEXT-patchControlPoints-04874YValidateExtendedDynamicState2PatchControlPointsEnabledexplicitvkCmdSetPatchControlPointsEXT(VK_EXT_extended_dynamic_state2)patchControlPoints must be greater than zero and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize
VUID-vkCmdSetPatchControlPointsEXT-videocodingNNoneimplicitvkCmdSetPatchControlPointsEXT(VK_EXT_extended_dynamic_state2)This command must only be called outside of a video coding scope
VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-cmdpoolYNoneimplicitvkCmdSetPerformanceMarkerINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations
VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-parameterYNoneimplicitvkCmdSetPerformanceMarkerINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-recordingYNoneimplicitvkCmdSetPerformanceMarkerINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)commandBuffer must be in the recording state
VUID-vkCmdSetPerformanceMarkerINTEL-pMarkerInfo-parameterYNoneimplicitvkCmdSetPerformanceMarkerINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)pMarkerInfo must be a valid pointer to a valid VkPerformanceMarkerInfoINTEL structure
VUID-vkCmdSetPerformanceMarkerINTEL-videocodingNNoneimplicitvkCmdSetPerformanceMarkerINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)This command must only be called outside of a video coding scope
VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-cmdpoolYNoneimplicitvkCmdSetPerformanceOverrideINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations
VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-parameterYNoneimplicitvkCmdSetPerformanceOverrideINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-recordingYNoneimplicitvkCmdSetPerformanceOverrideINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)commandBuffer must be in the recording state
VUID-vkCmdSetPerformanceOverrideINTEL-pOverrideInfo-02736NNoneexplicitvkCmdSetPerformanceOverrideINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)pOverrideInfo must not be used with a VkPerformanceOverrideTypeINTEL that is not reported available by vkGetPerformanceParameterINTEL
VUID-vkCmdSetPerformanceOverrideINTEL-pOverrideInfo-parameterYNoneimplicitvkCmdSetPerformanceOverrideINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)pOverrideInfo must be a valid pointer to a valid VkPerformanceOverrideInfoINTEL structure
VUID-vkCmdSetPerformanceOverrideINTEL-videocodingNNoneimplicitvkCmdSetPerformanceOverrideINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)This command must only be called outside of a video coding scope
VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-cmdpoolYNoneimplicitvkCmdSetPerformanceStreamMarkerINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations
VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-parameterYNoneimplicitvkCmdSetPerformanceStreamMarkerINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-recordingYNoneimplicitvkCmdSetPerformanceStreamMarkerINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)commandBuffer must be in the recording state
VUID-vkCmdSetPerformanceStreamMarkerINTEL-pMarkerInfo-parameterYNoneimplicitvkCmdSetPerformanceStreamMarkerINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)pMarkerInfo must be a valid pointer to a valid VkPerformanceStreamMarkerInfoINTEL structure
VUID-vkCmdSetPerformanceStreamMarkerINTEL-videocodingNNoneimplicitvkCmdSetPerformanceStreamMarkerINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)This command must only be called outside of a video coding scope
VUID-vkCmdSetPolygonModeEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetPolygonModeEXT(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetPolygonModeEXT-commandBuffer-parameterYNoneimplicitvkCmdSetPolygonModeEXT(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetPolygonModeEXT-commandBuffer-recordingYNoneimplicitvkCmdSetPolygonModeEXT(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetPolygonModeEXT-extendedDynamicState3PolygonMode-07422YValidateExtendedDynamicState3DisabledexplicitvkCmdSetPolygonModeEXT(VK_EXT_extended_dynamic_state3)The extendedDynamicState3PolygonMode feature must be enabled
VUID-vkCmdSetPolygonModeEXT-fillModeNonSolid-07423NNoneexplicitvkCmdSetPolygonModeEXT(VK_EXT_extended_dynamic_state3)+!(VK_NV_fill_rectangle)If the fillModeNonSolid feature is not enabled, polygonMode must be VK_POLYGON_MODE_FILL
VUID-vkCmdSetPolygonModeEXT-fillModeNonSolid-07424YValidateExtendedDynamicState3EnabledexplicitvkCmdSetPolygonModeEXT(VK_EXT_extended_dynamic_state3)+(VK_NV_fill_rectangle)If the fillModeNonSolid feature is not enabled, polygonMode must be VK_POLYGON_MODE_FILL or VK_POLYGON_MODE_FILL_RECTANGLE_NV
VUID-vkCmdSetPolygonModeEXT-polygonMode-07425YValidateExtendedDynamicState3EnabledexplicitvkCmdSetPolygonModeEXT(VK_EXT_extended_dynamic_state3)+(VK_NV_fill_rectangle)If the VK_NV_fill_rectangle extension is not enabled, polygonMode must not be VK_POLYGON_MODE_FILL_RECTANGLE_NV
VUID-vkCmdSetPolygonModeEXT-polygonMode-parameterYNoneimplicitvkCmdSetPolygonModeEXT(VK_EXT_extended_dynamic_state3)polygonMode must be a valid VkPolygonMode value
VUID-vkCmdSetPolygonModeEXT-videocodingNNoneimplicitvkCmdSetPolygonModeEXT(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetPrimitiveRestartEnable-None-04866YValidateExtendedDynamicState2DisabledexplicitvkCmdSetPrimitiveRestartEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+!(VK_VERSION_1_3)The extendedDynamicState2 feature must be enabled
VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-cmdpoolYNoneimplicitvkCmdSetPrimitiveRestartEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-parameterYNoneimplicitvkCmdSetPrimitiveRestartEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-recordingYNoneimplicitvkCmdSetPrimitiveRestartEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)commandBuffer must be in the recording state
VUID-vkCmdSetPrimitiveRestartEnable-videocodingNNoneimplicitvkCmdSetPrimitiveRestartEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)This command must only be called outside of a video coding scope
VUID-vkCmdSetPrimitiveTopology-None-03347YValidateExtendedDynamicStateDisabledexplicitvkCmdSetPrimitiveTopology(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)The extendedDynamicState feature must be enabled
VUID-vkCmdSetPrimitiveTopology-commandBuffer-cmdpoolYNoneimplicitvkCmdSetPrimitiveTopology(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetPrimitiveTopology-commandBuffer-parameterYNoneimplicitvkCmdSetPrimitiveTopology(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetPrimitiveTopology-commandBuffer-recordingYNoneimplicitvkCmdSetPrimitiveTopology(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be in the recording state
VUID-vkCmdSetPrimitiveTopology-primitiveTopology-parameterYNoneimplicitvkCmdSetPrimitiveTopology(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)primitiveTopology must be a valid VkPrimitiveTopology value
VUID-vkCmdSetPrimitiveTopology-videocodingNNoneimplicitvkCmdSetPrimitiveTopology(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)This command must only be called outside of a video coding scope
VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetProvokingVertexModeEXT(VK_EXT_provoking_vertex)+(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-parameterYNoneimplicitvkCmdSetProvokingVertexModeEXT(VK_EXT_provoking_vertex)+(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-recordingYNoneimplicitvkCmdSetProvokingVertexModeEXT(VK_EXT_provoking_vertex)+(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetProvokingVertexModeEXT-extendedDynamicState3ProvokingVertexMode-07446YValidateExtendedDynamicState3DisabledexplicitvkCmdSetProvokingVertexModeEXT(VK_EXT_provoking_vertex)+(VK_EXT_extended_dynamic_state3)The extendedDynamicState3ProvokingVertexMode feature must be enabled
VUID-vkCmdSetProvokingVertexModeEXT-provokingVertexMode-07447YValidateExtendedDynamicState3EnabledexplicitvkCmdSetProvokingVertexModeEXT(VK_EXT_provoking_vertex)+(VK_EXT_extended_dynamic_state3)If provokingVertexMode is VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT, then the provokingVertexLast feature must be enabled
VUID-vkCmdSetProvokingVertexModeEXT-provokingVertexMode-parameterYNoneimplicitvkCmdSetProvokingVertexModeEXT(VK_EXT_provoking_vertex)+(VK_EXT_extended_dynamic_state3)provokingVertexMode must be a valid VkProvokingVertexModeEXT value
VUID-vkCmdSetProvokingVertexModeEXT-videocodingNNoneimplicitvkCmdSetProvokingVertexModeEXT(VK_EXT_provoking_vertex)+(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetRasterizationSamplesEXT(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-parameterYNoneimplicitvkCmdSetRasterizationSamplesEXT(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-recordingYNoneimplicitvkCmdSetRasterizationSamplesEXT(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetRasterizationSamplesEXT-extendedDynamicState3RasterizationSamples-07414YValidateExtendedDynamicState3DisabledexplicitvkCmdSetRasterizationSamplesEXT(VK_EXT_extended_dynamic_state3)The extendedDynamicState3RasterizationSamples feature must be enabled
VUID-vkCmdSetRasterizationSamplesEXT-rasterizationSamples-parameterYNoneimplicitvkCmdSetRasterizationSamplesEXT(VK_EXT_extended_dynamic_state3)rasterizationSamples must be a valid VkSampleCountFlagBits value
VUID-vkCmdSetRasterizationSamplesEXT-videocodingNNoneimplicitvkCmdSetRasterizationSamplesEXT(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetRasterizationStreamEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-parameterYNoneimplicitvkCmdSetRasterizationStreamEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-recordingYNoneimplicitvkCmdSetRasterizationStreamEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetRasterizationStreamEXT-extendedDynamicState3RasterizationStream-07410YValidateExtendedDynamicState3DisabledexplicitvkCmdSetRasterizationStreamEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)The extendedDynamicState3RasterizationStream feature must be enabled
VUID-vkCmdSetRasterizationStreamEXT-rasterizationStream-07412YValidateExtendedDynamicState3Enabled, ValidateExtendedDynamicState3DisabledexplicitvkCmdSetRasterizationStreamEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)rasterizationStream must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams
VUID-vkCmdSetRasterizationStreamEXT-rasterizationStream-07413YValidateExtendedDynamicState3EnabledexplicitvkCmdSetRasterizationStreamEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)rasterizationStream must be zero if VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackRasterizationStreamSelect is VK_FALSE
VUID-vkCmdSetRasterizationStreamEXT-transformFeedback-07411YValidateExtendedDynamicState3Enabled, ValidateExtendedDynamicState3DisabledexplicitvkCmdSetRasterizationStreamEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)The transformFeedback feature must be enabled
VUID-vkCmdSetRasterizationStreamEXT-videocodingNNoneimplicitvkCmdSetRasterizationStreamEXT(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetRasterizerDiscardEnable-None-04871YValidateExtendedDynamicState2DisabledexplicitvkCmdSetRasterizerDiscardEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+!(VK_VERSION_1_3)The extendedDynamicState2 feature must be enabled
VUID-vkCmdSetRasterizerDiscardEnable-commandBuffer-cmdpoolYNoneimplicitvkCmdSetRasterizerDiscardEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetRasterizerDiscardEnable-commandBuffer-parameterYNoneimplicitvkCmdSetRasterizerDiscardEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetRasterizerDiscardEnable-commandBuffer-recordingYNoneimplicitvkCmdSetRasterizerDiscardEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)commandBuffer must be in the recording state
VUID-vkCmdSetRasterizerDiscardEnable-videocodingNNoneimplicitvkCmdSetRasterizerDiscardEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)This command must only be called outside of a video coding scope
VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdSetRayTracingPipelineStackSizeKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-parameterYNoneimplicitvkCmdSetRayTracingPipelineStackSizeKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-recordingYNoneimplicitvkCmdSetRayTracingPipelineStackSizeKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)commandBuffer must be in the recording state
VUID-vkCmdSetRayTracingPipelineStackSizeKHR-pipelineStackSize-03610NNoneexplicitvkCmdSetRayTracingPipelineStackSizeKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pipelineStackSize must be large enough for any dynamic execution through the shaders in the ray tracing pipeline used by a subsequent trace call
VUID-vkCmdSetRayTracingPipelineStackSizeKHR-renderpassYNoneimplicitvkCmdSetRayTracingPipelineStackSizeKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)This command must only be called outside of a render pass instance
VUID-vkCmdSetRayTracingPipelineStackSizeKHR-videocodingNNoneimplicitvkCmdSetRayTracingPipelineStackSizeKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)This command must only be called outside of a video coding scope
VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetRepresentativeFragmentTestEnableNV(VK_NV_representative_fragment_test)+(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-parameterYNoneimplicitvkCmdSetRepresentativeFragmentTestEnableNV(VK_NV_representative_fragment_test)+(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-recordingYNoneimplicitvkCmdSetRepresentativeFragmentTestEnableNV(VK_NV_representative_fragment_test)+(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetRepresentativeFragmentTestEnableNV-extendedDynamicState3RepresentativeFragmentTestEnable-07346YValidateExtendedDynamicState3DisabledexplicitvkCmdSetRepresentativeFragmentTestEnableNV(VK_NV_representative_fragment_test)+(VK_EXT_extended_dynamic_state3)The extendedDynamicState3RepresentativeFragmentTestEnable feature must be enabled
VUID-vkCmdSetRepresentativeFragmentTestEnableNV-videocodingNNoneimplicitvkCmdSetRepresentativeFragmentTestEnableNV(VK_NV_representative_fragment_test)+(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetSampleLocationsEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetSampleLocationsEXT(VK_EXT_sample_locations)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetSampleLocationsEXT-commandBuffer-parameterYNoneimplicitvkCmdSetSampleLocationsEXT(VK_EXT_sample_locations)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetSampleLocationsEXT-commandBuffer-recordingYNoneimplicitvkCmdSetSampleLocationsEXT(VK_EXT_sample_locations)commandBuffer must be in the recording state
VUID-vkCmdSetSampleLocationsEXT-pSampleLocationsInfo-parameterYNoneimplicitvkCmdSetSampleLocationsEXT(VK_EXT_sample_locations)pSampleLocationsInfo must be a valid pointer to a valid VkSampleLocationsInfoEXT structure
VUID-vkCmdSetSampleLocationsEXT-sampleLocationsPerPixel-01529YInvalidSampleLocationsexplicitvkCmdSetSampleLocationsEXT(VK_EXT_sample_locations)+!(VK_EXT_extended_dynamic_state3)The sampleLocationsPerPixel member of pSampleLocationsInfo must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with
VUID-vkCmdSetSampleLocationsEXT-variableSampleLocations-01530NNoneexplicitvkCmdSetSampleLocationsEXT(VK_EXT_sample_locations)If 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-videocodingNNoneimplicitvkCmdSetSampleLocationsEXT(VK_EXT_sample_locations)This command must only be called outside of a video coding scope
VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetSampleLocationsEnableEXT(VK_EXT_sample_locations)+(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-parameterYNoneimplicitvkCmdSetSampleLocationsEnableEXT(VK_EXT_sample_locations)+(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-recordingYNoneimplicitvkCmdSetSampleLocationsEnableEXT(VK_EXT_sample_locations)+(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetSampleLocationsEnableEXT-extendedDynamicState3SampleLocationsEnable-07415YValidateExtendedDynamicState3DisabledexplicitvkCmdSetSampleLocationsEnableEXT(VK_EXT_sample_locations)+(VK_EXT_extended_dynamic_state3)The extendedDynamicState3SampleLocationsEnable feature must be enabled
VUID-vkCmdSetSampleLocationsEnableEXT-videocodingNNoneimplicitvkCmdSetSampleLocationsEnableEXT(VK_EXT_sample_locations)+(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetSampleMaskEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetSampleMaskEXT(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetSampleMaskEXT-commandBuffer-parameterYNoneimplicitvkCmdSetSampleMaskEXT(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetSampleMaskEXT-commandBuffer-recordingYNoneimplicitvkCmdSetSampleMaskEXT(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetSampleMaskEXT-extendedDynamicState3SampleMask-07342YValidateExtendedDynamicState3DisabledexplicitvkCmdSetSampleMaskEXT(VK_EXT_extended_dynamic_state3)The extendedDynamicState3SampleMask feature must be enabled
VUID-vkCmdSetSampleMaskEXT-pSampleMask-parameterYNoneimplicitvkCmdSetSampleMaskEXT(VK_EXT_extended_dynamic_state3)pSampleMask must be a valid pointer to an array of \(\lceil{\mathit{samples} \over 32}\rceil\) VkSampleMask values
VUID-vkCmdSetSampleMaskEXT-samples-parameterYNoneimplicitvkCmdSetSampleMaskEXT(VK_EXT_extended_dynamic_state3)samples must be a valid VkSampleCountFlagBits value
VUID-vkCmdSetSampleMaskEXT-videocodingNNoneimplicitvkCmdSetSampleMaskEXT(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetScissor-commandBuffer-cmdpoolYNoneimplicitvkCmdSetScissorcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetScissor-commandBuffer-parameterYNoneimplicitvkCmdSetScissorcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetScissor-commandBuffer-recordingYNoneimplicitvkCmdSetScissorcorecommandBuffer must be in the recording state
VUID-vkCmdSetScissor-firstScissor-00592YSetDynScissorParamMultiviewportTestsexplicitvkCmdSetScissorcoreThe sum of firstScissor and scissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive
VUID-vkCmdSetScissor-firstScissor-00593YSetDynScissorParamTestsexplicitvkCmdSetScissorcoreIf the multiViewport feature is not enabled, firstScissor must be 0
VUID-vkCmdSetScissor-offset-00596YSetDynScissorParamTestsexplicitvkCmdSetScissorcoreEvaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors
VUID-vkCmdSetScissor-offset-00597YSetDynScissorParamTestsexplicitvkCmdSetScissorcoreEvaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors
VUID-vkCmdSetScissor-pScissors-parameterYSetDynScissorParamTests, SetDynScissorParamMultiviewportTestsimplicitvkCmdSetScissorcorepScissors must be a valid pointer to an array of scissorCount VkRect2D structures
VUID-vkCmdSetScissor-scissorCount-00594YSetDynScissorParamTestsexplicitvkCmdSetScissorcoreIf the multiViewport feature is not enabled, scissorCount must be 1
VUID-vkCmdSetScissor-scissorCount-arraylengthYSetDynScissorParamTests, SetDynScissorParamMultiviewportTestsimplicitvkCmdSetScissorcorescissorCount must be greater than 0
VUID-vkCmdSetScissor-videocodingNNoneimplicitvkCmdSetScissorcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetScissor-viewportScissor2D-04789YViewportInheritanceexplicitvkCmdSetScissor(VK_NV_inherited_viewport_scissor)If this command is recorded in a secondary command buffer with VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled, then this function must not be called
VUID-vkCmdSetScissor-x-00595YSetDynScissorParamTestsexplicitvkCmdSetScissorcoreThe x and y members of offset member of any element of pScissors must be greater than or equal to 0
VUID-vkCmdSetScissorWithCount-None-03396YValidateExtendedDynamicStateDisabledexplicitvkCmdSetScissorWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)The extendedDynamicState feature must be enabled
VUID-vkCmdSetScissorWithCount-commandBuffer-04820YNoneexplicitvkCmdSetScissorWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_inherited_viewport_scissor)commandBuffer must not have VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled
VUID-vkCmdSetScissorWithCount-commandBuffer-cmdpoolYNoneimplicitvkCmdSetScissorWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetScissorWithCount-commandBuffer-parameterYNoneimplicitvkCmdSetScissorWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetScissorWithCount-commandBuffer-recordingYNoneimplicitvkCmdSetScissorWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be in the recording state
VUID-vkCmdSetScissorWithCount-offset-03400YValidateExtendedDynamicStateEnabledexplicitvkCmdSetScissorWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)Evaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors
VUID-vkCmdSetScissorWithCount-offset-03401YValidateExtendedDynamicStateEnabledexplicitvkCmdSetScissorWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)Evaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors
VUID-vkCmdSetScissorWithCount-pScissors-parameterYNoneimplicitvkCmdSetScissorWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)pScissors must be a valid pointer to an array of scissorCount VkRect2D structures
VUID-vkCmdSetScissorWithCount-scissorCount-03397YValidateExtendedDynamicStateEnabledexplicitvkCmdSetScissorWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)scissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive
VUID-vkCmdSetScissorWithCount-scissorCount-03398YValidateExtendedDynamicStateEnabledNoMultiviewexplicitvkCmdSetScissorWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the multiViewport feature is not enabled, scissorCount must be 1
VUID-vkCmdSetScissorWithCount-scissorCount-arraylengthYValidateExtendedDynamicStateEnabledimplicitvkCmdSetScissorWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)scissorCount must be greater than 0
VUID-vkCmdSetScissorWithCount-videocodingNNoneimplicitvkCmdSetScissorWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)This command must only be called outside of a video coding scope
VUID-vkCmdSetScissorWithCount-x-03399YValidateExtendedDynamicStateEnabledexplicitvkCmdSetScissorWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)The x and y members of offset member of any element of pScissors must be greater than or equal to 0
VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetShadingRateImageEnableNV(VK_NV_shading_rate_image)+(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-parameterYNoneimplicitvkCmdSetShadingRateImageEnableNV(VK_NV_shading_rate_image)+(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-recordingYNoneimplicitvkCmdSetShadingRateImageEnableNV(VK_NV_shading_rate_image)+(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetShadingRateImageEnableNV-extendedDynamicState3ShadingRateImageEnable-07416YValidateExtendedDynamicState3DisabledexplicitvkCmdSetShadingRateImageEnableNV(VK_NV_shading_rate_image)+(VK_EXT_extended_dynamic_state3)The extendedDynamicState3ShadingRateImageEnable feature must be enabled
VUID-vkCmdSetShadingRateImageEnableNV-videocodingNNoneimplicitvkCmdSetShadingRateImageEnableNV(VK_NV_shading_rate_image)+(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetStencilCompareMask-commandBuffer-cmdpoolYNoneimplicitvkCmdSetStencilCompareMaskcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetStencilCompareMask-commandBuffer-parameterYNoneimplicitvkCmdSetStencilCompareMaskcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetStencilCompareMask-commandBuffer-recordingYNoneimplicitvkCmdSetStencilCompareMaskcorecommandBuffer must be in the recording state
VUID-vkCmdSetStencilCompareMask-faceMask-parameterYNoneimplicitvkCmdSetStencilCompareMaskcorefaceMask must be a valid combination of VkStencilFaceFlagBits values
VUID-vkCmdSetStencilCompareMask-faceMask-requiredbitmaskYNoneimplicitvkCmdSetStencilCompareMaskcorefaceMask must not be 0
VUID-vkCmdSetStencilCompareMask-videocodingNNoneimplicitvkCmdSetStencilCompareMaskcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetStencilOp-None-03351YValidateExtendedDynamicStateDisabledexplicitvkCmdSetStencilOp(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)The extendedDynamicState feature must be enabled
VUID-vkCmdSetStencilOp-commandBuffer-cmdpoolYNoneimplicitvkCmdSetStencilOp(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetStencilOp-commandBuffer-parameterYNoneimplicitvkCmdSetStencilOp(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetStencilOp-commandBuffer-recordingYNoneimplicitvkCmdSetStencilOp(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be in the recording state
VUID-vkCmdSetStencilOp-compareOp-parameterYNoneimplicitvkCmdSetStencilOp(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)compareOp must be a valid VkCompareOp value
VUID-vkCmdSetStencilOp-depthFailOp-parameterYNoneimplicitvkCmdSetStencilOp(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)depthFailOp must be a valid VkStencilOp value
VUID-vkCmdSetStencilOp-faceMask-parameterYNoneimplicitvkCmdSetStencilOp(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)faceMask must be a valid combination of VkStencilFaceFlagBits values
VUID-vkCmdSetStencilOp-faceMask-requiredbitmaskYNoneimplicitvkCmdSetStencilOp(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)faceMask must not be 0
VUID-vkCmdSetStencilOp-failOp-parameterYNoneimplicitvkCmdSetStencilOp(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)failOp must be a valid VkStencilOp value
VUID-vkCmdSetStencilOp-passOp-parameterYNoneimplicitvkCmdSetStencilOp(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)passOp must be a valid VkStencilOp value
VUID-vkCmdSetStencilOp-videocodingNNoneimplicitvkCmdSetStencilOp(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)This command must only be called outside of a video coding scope
VUID-vkCmdSetStencilReference-commandBuffer-cmdpoolYNoneimplicitvkCmdSetStencilReferencecoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetStencilReference-commandBuffer-parameterYNoneimplicitvkCmdSetStencilReferencecorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetStencilReference-commandBuffer-recordingYNoneimplicitvkCmdSetStencilReferencecorecommandBuffer must be in the recording state
VUID-vkCmdSetStencilReference-faceMask-parameterYNoneimplicitvkCmdSetStencilReferencecorefaceMask must be a valid combination of VkStencilFaceFlagBits values
VUID-vkCmdSetStencilReference-faceMask-requiredbitmaskYNoneimplicitvkCmdSetStencilReferencecorefaceMask must not be 0
VUID-vkCmdSetStencilReference-videocodingNNoneimplicitvkCmdSetStencilReferencecoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetStencilTestEnable-None-03350YValidateExtendedDynamicStateDisabledexplicitvkCmdSetStencilTestEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)The extendedDynamicState feature must be enabled
VUID-vkCmdSetStencilTestEnable-commandBuffer-cmdpoolYNoneimplicitvkCmdSetStencilTestEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetStencilTestEnable-commandBuffer-parameterYNoneimplicitvkCmdSetStencilTestEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetStencilTestEnable-commandBuffer-recordingYNoneimplicitvkCmdSetStencilTestEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be in the recording state
VUID-vkCmdSetStencilTestEnable-videocodingNNoneimplicitvkCmdSetStencilTestEnable(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)This command must only be called outside of a video coding scope
VUID-vkCmdSetStencilWriteMask-commandBuffer-cmdpoolYNoneimplicitvkCmdSetStencilWriteMaskcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetStencilWriteMask-commandBuffer-parameterYNoneimplicitvkCmdSetStencilWriteMaskcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetStencilWriteMask-commandBuffer-recordingYNoneimplicitvkCmdSetStencilWriteMaskcorecommandBuffer must be in the recording state
VUID-vkCmdSetStencilWriteMask-faceMask-parameterYNoneimplicitvkCmdSetStencilWriteMaskcorefaceMask must be a valid combination of VkStencilFaceFlagBits values
VUID-vkCmdSetStencilWriteMask-faceMask-requiredbitmaskYNoneimplicitvkCmdSetStencilWriteMaskcorefaceMask must not be 0
VUID-vkCmdSetStencilWriteMask-videocodingNNoneimplicitvkCmdSetStencilWriteMaskcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetTessellationDomainOriginEXT(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-parameterYNoneimplicitvkCmdSetTessellationDomainOriginEXT(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-recordingYNoneimplicitvkCmdSetTessellationDomainOriginEXT(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetTessellationDomainOriginEXT-domainOrigin-parameterYNoneimplicitvkCmdSetTessellationDomainOriginEXT(VK_EXT_extended_dynamic_state3)domainOrigin must be a valid VkTessellationDomainOrigin value
VUID-vkCmdSetTessellationDomainOriginEXT-extendedDynamicState3TessellationDomainOrigin-07444YValidateExtendedDynamicState3DisabledexplicitvkCmdSetTessellationDomainOriginEXT(VK_EXT_extended_dynamic_state3)The extendedDynamicState3TessellationDomainOrigin feature must be enabled
VUID-vkCmdSetTessellationDomainOriginEXT-videocodingNNoneimplicitvkCmdSetTessellationDomainOriginEXT(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetVertexInputEXT-None-04790YValidateVertexInputDynamicStateDisabledexplicitvkCmdSetVertexInputEXT(VK_EXT_vertex_input_dynamic_state)The vertexInputDynamicState feature must be enabled
VUID-vkCmdSetVertexInputEXT-binding-04793YValidateVertexInputDynamicStateEnabledexplicitvkCmdSetVertexInputEXT(VK_EXT_vertex_input_dynamic_state)For every binding specified by each element of pVertexAttributeDescriptions, a VkVertexInputBindingDescription2EXT must exist in pVertexBindingDescriptions with the same value of binding
VUID-vkCmdSetVertexInputEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdSetVertexInputEXT(VK_EXT_vertex_input_dynamic_state)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetVertexInputEXT-commandBuffer-parameterYNoneimplicitvkCmdSetVertexInputEXT(VK_EXT_vertex_input_dynamic_state)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetVertexInputEXT-commandBuffer-recordingYNoneimplicitvkCmdSetVertexInputEXT(VK_EXT_vertex_input_dynamic_state)commandBuffer must be in the recording state
VUID-vkCmdSetVertexInputEXT-pVertexAttributeDescriptions-04795YValidateVertexInputDynamicStateEnabledexplicitvkCmdSetVertexInputEXT(VK_EXT_vertex_input_dynamic_state)All elements of pVertexAttributeDescriptions must describe distinct attribute locations
VUID-vkCmdSetVertexInputEXT-pVertexAttributeDescriptions-parameterYNoneimplicitvkCmdSetVertexInputEXT(VK_EXT_vertex_input_dynamic_state)If vertexAttributeDescriptionCount is not 0, pVertexAttributeDescriptions must be a valid pointer to an array of vertexAttributeDescriptionCount valid VkVertexInputAttributeDescription2EXT structures
VUID-vkCmdSetVertexInputEXT-pVertexBindingDescriptions-04794YValidateVertexInputDynamicStateEnabledexplicitvkCmdSetVertexInputEXT(VK_EXT_vertex_input_dynamic_state)All elements of pVertexBindingDescriptions must describe distinct binding numbers
VUID-vkCmdSetVertexInputEXT-pVertexBindingDescriptions-parameterYNoneimplicitvkCmdSetVertexInputEXT(VK_EXT_vertex_input_dynamic_state)If vertexBindingDescriptionCount is not 0, pVertexBindingDescriptions must be a valid pointer to an array of vertexBindingDescriptionCount valid VkVertexInputBindingDescription2EXT structures
VUID-vkCmdSetVertexInputEXT-vertexAttributeDescriptionCount-04792YValidateVertexInputDynamicStateEnabledexplicitvkCmdSetVertexInputEXT(VK_EXT_vertex_input_dynamic_state)vertexAttributeDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributes
VUID-vkCmdSetVertexInputEXT-vertexBindingDescriptionCount-04791YValidateVertexInputDynamicStateEnabledexplicitvkCmdSetVertexInputEXT(VK_EXT_vertex_input_dynamic_state)vertexBindingDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings
VUID-vkCmdSetVertexInputEXT-videocodingNNoneimplicitvkCmdSetVertexInputEXT(VK_EXT_vertex_input_dynamic_state)This command must only be called outside of a video coding scope
VUID-vkCmdSetViewport-commandBuffer-04821YViewportInheritanceexplicitvkCmdSetViewport(VK_NV_inherited_viewport_scissor)commandBuffer must not have VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled
VUID-vkCmdSetViewport-commandBuffer-cmdpoolYCommandQueueFlagsimplicitvkCmdSetViewportcoreThe VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetViewport-commandBuffer-parameterYNoneimplicitvkCmdSetViewportcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetViewport-commandBuffer-recordingYNoneimplicitvkCmdSetViewportcorecommandBuffer must be in the recording state
VUID-vkCmdSetViewport-firstViewport-01223YSetDynViewportParamMultiviewportTestsexplicitvkCmdSetViewportcoreThe sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive
VUID-vkCmdSetViewport-firstViewport-01224YSetDynViewportParamTestsexplicitvkCmdSetViewportcoreIf the multiViewport feature is not enabled, firstViewport must be 0
VUID-vkCmdSetViewport-pViewports-parameterYSetDynViewportParamTests, RequiredParameter, SetDynViewportParamMultiviewportTestsimplicitvkCmdSetViewportcorepViewports must be a valid pointer to an array of viewportCount valid VkViewport structures
VUID-vkCmdSetViewport-videocodingNNoneimplicitvkCmdSetViewportcoreThis command must only be called outside of a video coding scope
VUID-vkCmdSetViewport-viewportCount-01225YSetDynViewportParamTestsexplicitvkCmdSetViewportcoreIf the multiViewport feature is not enabled, viewportCount must be 1
VUID-vkCmdSetViewport-viewportCount-arraylengthYSetDynViewportParamTests, RequiredParameter, SetDynViewportParamMultiviewportTestsimplicitvkCmdSetViewportcoreviewportCount must be greater than 0
VUID-vkCmdSetViewportShadingRatePaletteNV-None-02064YNoneexplicitvkCmdSetViewportShadingRatePaletteNV(VK_NV_shading_rate_image)The shadingRateImage feature must be enabled
VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetViewportShadingRatePaletteNV(VK_NV_shading_rate_image)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-parameterYNoneimplicitvkCmdSetViewportShadingRatePaletteNV(VK_NV_shading_rate_image)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-recordingYNoneimplicitvkCmdSetViewportShadingRatePaletteNV(VK_NV_shading_rate_image)commandBuffer must be in the recording state
VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02067YShadingRateImageNVexplicitvkCmdSetViewportShadingRatePaletteNV(VK_NV_shading_rate_image)The sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive
VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02068YShadingRateImageNVexplicitvkCmdSetViewportShadingRatePaletteNV(VK_NV_shading_rate_image)If the multiViewport feature is not enabled, firstViewport must be 0
VUID-vkCmdSetViewportShadingRatePaletteNV-pShadingRatePalettes-parameterYNoneimplicitvkCmdSetViewportShadingRatePaletteNV(VK_NV_shading_rate_image)pShadingRatePalettes must be a valid pointer to an array of viewportCount valid VkShadingRatePaletteNV structures
VUID-vkCmdSetViewportShadingRatePaletteNV-videocodingNNoneimplicitvkCmdSetViewportShadingRatePaletteNV(VK_NV_shading_rate_image)This command must only be called outside of a video coding scope
VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-02069YShadingRateImageNVexplicitvkCmdSetViewportShadingRatePaletteNV(VK_NV_shading_rate_image)If the multiViewport feature is not enabled, viewportCount must be 1
VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-arraylengthYNoneimplicitvkCmdSetViewportShadingRatePaletteNV(VK_NV_shading_rate_image)viewportCount must be greater than 0
VUID-vkCmdSetViewportSwizzleNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetViewportSwizzleNV(VK_NV_viewport_swizzle)+(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetViewportSwizzleNV-commandBuffer-parameterYNoneimplicitvkCmdSetViewportSwizzleNV(VK_NV_viewport_swizzle)+(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetViewportSwizzleNV-commandBuffer-recordingYNoneimplicitvkCmdSetViewportSwizzleNV(VK_NV_viewport_swizzle)+(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetViewportSwizzleNV-extendedDynamicState3ViewportSwizzle-07445YValidateExtendedDynamicState3DisabledexplicitvkCmdSetViewportSwizzleNV(VK_NV_viewport_swizzle)+(VK_EXT_extended_dynamic_state3)The extendedDynamicState3ViewportSwizzle feature must be enabled
VUID-vkCmdSetViewportSwizzleNV-pViewportSwizzles-parameterYNoneimplicitvkCmdSetViewportSwizzleNV(VK_NV_viewport_swizzle)+(VK_EXT_extended_dynamic_state3)pViewportSwizzles must be a valid pointer to an array of viewportCount valid VkViewportSwizzleNV structures
VUID-vkCmdSetViewportSwizzleNV-videocodingNNoneimplicitvkCmdSetViewportSwizzleNV(VK_NV_viewport_swizzle)+(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetViewportSwizzleNV-viewportCount-arraylengthYNoneimplicitvkCmdSetViewportSwizzleNV(VK_NV_viewport_swizzle)+(VK_EXT_extended_dynamic_state3)viewportCount must be greater than 0
VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetViewportWScalingEnableNV(VK_NV_clip_space_w_scaling)+(VK_EXT_extended_dynamic_state3)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-parameterYNoneimplicitvkCmdSetViewportWScalingEnableNV(VK_NV_clip_space_w_scaling)+(VK_EXT_extended_dynamic_state3)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-recordingYNoneimplicitvkCmdSetViewportWScalingEnableNV(VK_NV_clip_space_w_scaling)+(VK_EXT_extended_dynamic_state3)commandBuffer must be in the recording state
VUID-vkCmdSetViewportWScalingEnableNV-extendedDynamicState3ViewportWScalingEnable-07580YValidateExtendedDynamicState3DisabledexplicitvkCmdSetViewportWScalingEnableNV(VK_NV_clip_space_w_scaling)+(VK_EXT_extended_dynamic_state3)The extendedDynamicState3ViewportWScalingEnable feature must be enabled
VUID-vkCmdSetViewportWScalingEnableNV-videocodingNNoneimplicitvkCmdSetViewportWScalingEnableNV(VK_NV_clip_space_w_scaling)+(VK_EXT_extended_dynamic_state3)This command must only be called outside of a video coding scope
VUID-vkCmdSetViewportWScalingNV-commandBuffer-cmdpoolYNoneimplicitvkCmdSetViewportWScalingNV(VK_NV_clip_space_w_scaling)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetViewportWScalingNV-commandBuffer-parameterYNoneimplicitvkCmdSetViewportWScalingNV(VK_NV_clip_space_w_scaling)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetViewportWScalingNV-commandBuffer-recordingYNoneimplicitvkCmdSetViewportWScalingNV(VK_NV_clip_space_w_scaling)commandBuffer must be in the recording state
VUID-vkCmdSetViewportWScalingNV-firstViewport-01324YViewportWScalingNVexplicitvkCmdSetViewportWScalingNV(VK_NV_clip_space_w_scaling)The sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive
VUID-vkCmdSetViewportWScalingNV-pViewportWScalings-parameterYNoneimplicitvkCmdSetViewportWScalingNV(VK_NV_clip_space_w_scaling)pViewportWScalings must be a valid pointer to an array of viewportCount VkViewportWScalingNV structures
VUID-vkCmdSetViewportWScalingNV-videocodingNNoneimplicitvkCmdSetViewportWScalingNV(VK_NV_clip_space_w_scaling)This command must only be called outside of a video coding scope
VUID-vkCmdSetViewportWScalingNV-viewportCount-arraylengthYNoneimplicitvkCmdSetViewportWScalingNV(VK_NV_clip_space_w_scaling)viewportCount must be greater than 0
VUID-vkCmdSetViewportWithCount-None-03393YValidateExtendedDynamicStateDisabledexplicitvkCmdSetViewportWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)The extendedDynamicState feature must be enabled
VUID-vkCmdSetViewportWithCount-commandBuffer-04819YNoneexplicitvkCmdSetViewportWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+(VK_NV_inherited_viewport_scissor)commandBuffer must not have VkCommandBufferInheritanceViewportScissorInfoNV::viewportScissor2D enabled
VUID-vkCmdSetViewportWithCount-commandBuffer-cmdpoolYNoneimplicitvkCmdSetViewportWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSetViewportWithCount-commandBuffer-parameterYNoneimplicitvkCmdSetViewportWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSetViewportWithCount-commandBuffer-recordingYNoneimplicitvkCmdSetViewportWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)commandBuffer must be in the recording state
VUID-vkCmdSetViewportWithCount-pViewports-parameterYNoneimplicitvkCmdSetViewportWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)pViewports must be a valid pointer to an array of viewportCount valid VkViewport structures
VUID-vkCmdSetViewportWithCount-videocodingNNoneimplicitvkCmdSetViewportWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)This command must only be called outside of a video coding scope
VUID-vkCmdSetViewportWithCount-viewportCount-03394YValidateExtendedDynamicStateEnabledexplicitvkCmdSetViewportWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive
VUID-vkCmdSetViewportWithCount-viewportCount-03395YValidateExtendedDynamicStateEnabledNoMultiviewexplicitvkCmdSetViewportWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the multiViewport feature is not enabled, viewportCount must be 1
VUID-vkCmdSetViewportWithCount-viewportCount-arraylengthYValidateExtendedDynamicStateEnabledimplicitvkCmdSetViewportWithCount(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)viewportCount must be greater than 0
VUID-vkCmdSubpassShadingHUAWEI-ConstOffset-06551NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdSubpassShadingHUAWEI-None-02691NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)If 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-02692NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdSubpassShadingHUAWEI-None-02698NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdSubpassShadingHUAWEI-None-02699NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdSubpassShadingHUAWEI-None-02700NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)A valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdSubpassShadingHUAWEI-None-02702NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)If the VkPipeline object bound 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-02703NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)If the VkPipeline object bound 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-02704NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)If the VkPipeline object bound 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-02705NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02859NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdSubpassShadingHUAWEI-None-04115NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)If a VkImageView is accessed using OpImageWrite as 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-None-04931NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)This 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-06479NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-06550NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdSubpassShadingHUAWEI-None-07288NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)Any shader invocation executed by this command must terminate
VUID-vkCmdSubpassShadingHUAWEI-None-08114NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_EXT_descriptor_buffer)Descriptors 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-08117NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-04469NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)If 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-OpTypeImage-07027NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any 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-04470NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_EXT_shader_image_atomic_int64)If 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-aspectMask-06478NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-02701NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-02707NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-cmdpoolYNoneimplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)The VkCommandPool that commandBuffer was allocated from must support graphics operations
VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-parameterYNoneimplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-recordingYNoneimplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)commandBuffer must be in the recording state
VUID-vkCmdSubpassShadingHUAWEI-filterCubic-02694NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02696NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_NV_corner_sampled_image)Any 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-07753NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)If a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdSubpassShadingHUAWEI-magFilter-04553NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdSubpassShadingHUAWEI-maintenance4-06425NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdSubpassShadingHUAWEI-mipmapMode-04770NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdSubpassShadingHUAWEI-renderpassYNoneimplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)This command must only be called inside of a render pass instance
VUID-vkCmdSubpassShadingHUAWEI-sparseImageInt64Atomics-04474NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_EXT_shader_image_atomic_int64)If 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-06936NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_EXT_pipeline_robustness)If 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-06935NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)+(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)This command must only be called outside of a video coding scope
VUID-vkCmdSubpassShadingHUAWEI-viewType-07752NNoneexplicitvkCmdSubpassShadingHUAWEI(VK_HUAWEI_subpass_shading)If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdTraceRaysIndirect2KHR-ConstOffset-06551NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdTraceRaysIndirect2KHR-None-02691YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)If 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-02692YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysIndirect2KHR-None-02698NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysIndirect2KHR-None-02699YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdTraceRaysIndirect2KHR-None-02700YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)A valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdTraceRaysIndirect2KHR-None-02702YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)If the VkPipeline object bound 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-02703YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)If the VkPipeline object bound 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-02704YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)If the VkPipeline object bound 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-02705YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02859YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdTraceRaysIndirect2KHR-None-03429NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline
VUID-vkCmdTraceRaysIndirect2KHR-None-04115YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)If a VkImageView is accessed using OpImageWrite as 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-None-06479YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-06550NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdTraceRaysIndirect2KHR-None-07288NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)Any shader invocation executed by this command must terminate
VUID-vkCmdTraceRaysIndirect2KHR-None-08114YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_EXT_descriptor_buffer)Descriptors 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-08117YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-04469YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)If 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-OpTypeImage-07027YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any 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-04470NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_EXT_shader_image_atomic_int64)If 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-aspectMask-06478NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-02701YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-02707YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-03635YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)commandBuffer must not be a protected command buffer
VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-cmdpoolYNoneimplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)The VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-parameterYNoneimplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-recordingYNoneimplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)commandBuffer must be in the recording state
VUID-vkCmdTraceRaysIndirect2KHR-filterCubic-02694YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02696YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_NV_corner_sampled_image)Any 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-07753YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)If a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03632YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)If 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-03633YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)The buffer from which indirectDeviceAddress was queried must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03634YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)indirectDeviceAddress must be a multiple of 4
VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03636NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)All device addresses between indirectDeviceAddress and indirectDeviceAddress + sizeof(sname:VkTraceRaysIndirectCommand2KHR) - 1 must be in the buffer device address range of the same buffer
VUID-vkCmdTraceRaysIndirect2KHR-magFilter-04553YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdTraceRaysIndirect2KHR-maintenance4-06425YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysIndirect2KHR-maxPipelineRayRecursionDepth-03679NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)This 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-04770YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdTraceRaysIndirect2KHR-rayTracingMotionBlurPipelineTraceRaysIndirect-04951NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_NV_ray_tracing_motion_blur)If 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-03637YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)The pname:rayTracingPipelineTraceRaysIndirect2 feature must be enabled
VUID-vkCmdTraceRaysIndirect2KHR-renderpassYNoneimplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)This command must only be called outside of a render pass instance
VUID-vkCmdTraceRaysIndirect2KHR-sparseImageInt64Atomics-04474NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_EXT_shader_image_atomic_int64)If 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-06936NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_EXT_pipeline_robustness)If 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-06935NNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)+(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)This command must only be called outside of a video coding scope
VUID-vkCmdTraceRaysIndirect2KHR-viewType-07752YNoneexplicitvkCmdTraceRaysIndirect2KHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_maintenance1)If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdTraceRaysIndirectKHR-ConstOffset-06551NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdTraceRaysIndirectKHR-None-02691YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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-02692YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysIndirectKHR-None-02698NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysIndirectKHR-None-02699YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdTraceRaysIndirectKHR-None-02700YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)A valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdTraceRaysIndirectKHR-None-02702YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the VkPipeline object bound 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-02703YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the VkPipeline object bound 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-02704YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the VkPipeline object bound 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-02705YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02859YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdTraceRaysIndirectKHR-None-03429NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline
VUID-vkCmdTraceRaysIndirectKHR-None-04115YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If a VkImageView is accessed using OpImageWrite as 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-None-06479YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-06550NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdTraceRaysIndirectKHR-None-07288NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)Any shader invocation executed by this command must terminate
VUID-vkCmdTraceRaysIndirectKHR-None-08114YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_descriptor_buffer)Descriptors 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-08117YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-04469YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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-OpTypeImage-07027YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any 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-04470NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_shader_image_atomic_int64)If 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-aspectMask-06478NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02701YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02707YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-03635YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)commandBuffer must not be a protected command buffer
VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-parameterYNoneimplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-recordingYNoneimplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)commandBuffer must be in the recording state
VUID-vkCmdTraceRaysIndirectKHR-filterCubic-02694YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02696YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_corner_sampled_image)Any 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-03511NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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 pname:pMissShaderBindingTable->deviceAddress must not be set to zero
VUID-vkCmdTraceRaysIndirectKHR-flags-03512YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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 pname: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-03513YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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 pname: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-03514YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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 pname: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-03696YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, pname:pHitShaderBindingTable->deviceAddress must not be zero
VUID-vkCmdTraceRaysIndirectKHR-flags-03697YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, pname:pHitShaderBindingTable->deviceAddress must not be zero
VUID-vkCmdTraceRaysIndirectKHR-format-07753YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03632YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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-03633YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The buffer from which indirectDeviceAddress was queried must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set
VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03634YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)indirectDeviceAddress must be a multiple of 4
VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03636NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)All device addresses between indirectDeviceAddress and indirectDeviceAddress + sizeof(sname:VkTraceRaysIndirectCommandKHR) - 1 must be in the buffer device address range of the same buffer
VUID-vkCmdTraceRaysIndirectKHR-magFilter-04553YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdTraceRaysIndirectKHR-maintenance4-06425YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysIndirectKHR-maxPipelineRayRecursionDepth-03679NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)This 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-04770YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03691NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the buffer from which pname:pCallableShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03692NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The buffer from which the pname:pCallableShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03693YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pname:pCallableShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-parameterYNoneimplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pCallableShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03687NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the buffer from which pname:pHitShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03688NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The buffer from which the pname:pHitShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03689YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pname:pHitShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-04735NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)Any non-zero hit shader group entries in the table identified by pname: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-04736NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)Any non-zero hit shader group entries in the table identified by pname: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-parameterYNoneimplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pHitShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03683NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the buffer from which pname:pMissShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03684NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The buffer from which the pname:pMissShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03685YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pname:pMissShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-parameterYNoneimplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pMissShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03680NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the buffer from which pname:pRayGenShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03681NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The buffer from which the pname:pRayGenShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03682YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pname:pRayGenShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysIndirectKHR-pRaygenShaderBindingTable-parameterYNoneimplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pRaygenShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysIndirectKHR-rayTracingMotionBlurPipelineTraceRaysIndirect-04951NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing_motion_blur)If 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-03637YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The pname:rayTracingPipelineTraceRaysIndirect feature must be enabled
VUID-vkCmdTraceRaysIndirectKHR-renderpassYNoneimplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)This command must only be called outside of a render pass instance
VUID-vkCmdTraceRaysIndirectKHR-size-04023YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The size member of pRayGenShaderBindingTable must be equal to its stride member
VUID-vkCmdTraceRaysIndirectKHR-sparseImageInt64Atomics-04474NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_shader_image_atomic_int64)If 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-06936NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_pipeline_robustness)If 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-03686YRayTracingValidateCmdTraceRaysIndirectKHRexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pname:pMissShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-vkCmdTraceRaysIndirectKHR-stride-03690YRayTracingValidateCmdTraceRaysIndirectKHRexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pname:pHitShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-vkCmdTraceRaysIndirectKHR-stride-03694YRayTracingValidateCmdTraceRaysIndirectKHRexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pname:pCallableShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-vkCmdTraceRaysIndirectKHR-stride-04029YRayTracingValidateCmdTraceRaysIndirectKHRexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pname:pMissShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-vkCmdTraceRaysIndirectKHR-stride-04035YRayTracingValidateCmdTraceRaysIndirectKHRexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pname:pHitShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-vkCmdTraceRaysIndirectKHR-stride-04041YRayTracingValidateCmdTraceRaysIndirectKHRexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pname:pCallableShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-vkCmdTraceRaysIndirectKHR-uniformBuffers-06935NNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)This command must only be called outside of a video coding scope
VUID-vkCmdTraceRaysIndirectKHR-viewType-07752YNoneexplicitvkCmdTraceRaysIndirectKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdTraceRaysKHR-ConstOffset-06551NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdTraceRaysKHR-None-02691YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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-02692YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysKHR-None-02698NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysKHR-None-02699YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdTraceRaysKHR-None-02700YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)A valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdTraceRaysKHR-None-02702YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the VkPipeline object bound 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-02703YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the VkPipeline object bound 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-02704YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the VkPipeline object bound 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-02705YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02859YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdTraceRaysKHR-None-03429NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline
VUID-vkCmdTraceRaysKHR-None-04115YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If a VkImageView is accessed using OpImageWrite as 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-None-06479YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-06550NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdTraceRaysKHR-None-07288NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)Any shader invocation executed by this command must terminate
VUID-vkCmdTraceRaysKHR-None-08114YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_descriptor_buffer)Descriptors 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-08117YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdTraceRaysKHR-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-04469YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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-OpTypeImage-07027YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any 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-04470NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_shader_image_atomic_int64)If 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-aspectMask-06478NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdTraceRaysKHR-commandBuffer-02701YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdTraceRaysKHR-commandBuffer-02707YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdTraceRaysKHR-commandBuffer-03635YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)commandBuffer must not be a protected command buffer
VUID-vkCmdTraceRaysKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdTraceRaysKHR-commandBuffer-parameterYNoneimplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdTraceRaysKHR-commandBuffer-recordingYNoneimplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)commandBuffer must be in the recording state
VUID-vkCmdTraceRaysKHR-depth-03640YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)depth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2]
VUID-vkCmdTraceRaysKHR-filterCubic-02694YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02696YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_NV_corner_sampled_image)Any 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-03511NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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 pname:pMissShaderBindingTable->deviceAddress must not be set to zero
VUID-vkCmdTraceRaysKHR-flags-03512YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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 pname: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-03513YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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 pname: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-03514YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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 pname: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-03696YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, pname:pHitShaderBindingTable->deviceAddress must not be zero
VUID-vkCmdTraceRaysKHR-flags-03697YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, pname:pHitShaderBindingTable->deviceAddress must not be zero
VUID-vkCmdTraceRaysKHR-format-07753YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdTraceRaysKHR-height-03639YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)height must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]
VUID-vkCmdTraceRaysKHR-magFilter-04553YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdTraceRaysKHR-maintenance4-06425YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysKHR-maxPipelineRayRecursionDepth-03679NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)This 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-04770YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03691NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the buffer from which pname:pCallableShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03692NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The buffer from which the pname:pCallableShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03693YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pname:pCallableShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-parameterYNoneimplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pCallableShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03687NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the buffer from which pname:pHitShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03688NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The buffer from which the pname:pHitShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03689YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pname:pHitShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-04735NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)Any non-zero hit shader group entries in the table identified by pname: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-04736NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)Any non-zero hit shader group entries in the table identified by pname: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-parameterYNoneimplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pHitShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03683NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the buffer from which pname:pMissShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03684NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The buffer from which the pname:pMissShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03685YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pname:pMissShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-parameterYNoneimplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pMissShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03680NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If the buffer from which pname:pRayGenShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03681NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The buffer from which the pname:pRayGenShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag
VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03682YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pname:pRayGenShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysKHR-pRaygenShaderBindingTable-parameterYNoneimplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pRaygenShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure
VUID-vkCmdTraceRaysKHR-renderpassYNoneimplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)This command must only be called outside of a render pass instance
VUID-vkCmdTraceRaysKHR-size-04023YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The size member of pRayGenShaderBindingTable must be equal to its stride member
VUID-vkCmdTraceRaysKHR-sparseImageInt64Atomics-04474NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_shader_image_atomic_int64)If 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-06936NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_pipeline_robustness)If 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-03686YRayTracingValidateCmdTraceRaysKHRexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pname:pMissShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-vkCmdTraceRaysKHR-stride-03690YRayTracingValidateCmdTraceRaysKHRexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pname:pHitShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-vkCmdTraceRaysKHR-stride-03694YRayTracingValidateCmdTraceRaysKHRexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pname:pCallableShaderBindingTable->stride must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment
VUID-vkCmdTraceRaysKHR-stride-04029YRayTracingValidateCmdTraceRaysKHRexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pname:pMissShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-vkCmdTraceRaysKHR-stride-04035YRayTracingValidateCmdTraceRaysKHRexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pname:pHitShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-vkCmdTraceRaysKHR-stride-04041YRayTracingValidateCmdTraceRaysKHRexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pname:pCallableShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride
VUID-vkCmdTraceRaysKHR-uniformBuffers-06935NNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)This command must only be called outside of a video coding scope
VUID-vkCmdTraceRaysKHR-viewType-07752YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdTraceRaysKHR-width-03638YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]
VUID-vkCmdTraceRaysKHR-width-03641YNoneexplicitvkCmdTraceRaysKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)width {times} height {times} depth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayDispatchInvocationCount
VUID-vkCmdTraceRaysNV-ConstOffset-06551NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must not use the ConstOffset and Offset operands
VUID-vkCmdTraceRaysNV-None-02691YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If 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-02692YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If 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-02693YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command 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-02697YExportMetalObjectsexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysNV-None-02698NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VK_VERSION_1_3,VK_KHR_maintenance4)For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysNV-None-02699YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VK_EXT_descriptor_buffer)Descriptors 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
VUID-vkCmdTraceRaysNV-None-02700YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)A valid pipeline must be bound to the pipeline bind point used by this command
VUID-vkCmdTraceRaysNV-None-02702YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If the VkPipeline object bound 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-02703YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If the VkPipeline object bound 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-02704YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If the VkPipeline object bound 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-02705YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02706YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VK_EXT_pipeline_robustness)If the robustBufferAccess feature is not enabled, and if the VkPipeline object bound 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-02859YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound
VUID-vkCmdTraceRaysNV-None-03429NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)Any shader group handle referenced by this call must have been queried from the currently bound ray tracing pipeline
VUID-vkCmdTraceRaysNV-None-04115YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If a VkImageView is accessed using OpImageWrite as 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-None-06479YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If 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-06550NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler or VkImageView object that enables sampler {YCbCr} conversion, that object must only be used with OpImageSample* or OpImageSparseSample* instructions
VUID-vkCmdTraceRaysNV-None-07288NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)Any shader invocation executed by this command must terminate
VUID-vkCmdTraceRaysNV-None-08114YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_descriptor_buffer)Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid 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-08115YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_descriptor_buffer)If 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-08116NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_descriptor_buffer)Descriptors 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-08117YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_descriptor_buffer)If 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-08119NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_descriptor_buffer)If 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-OpImageBlockMatchSADQCOM-06975NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_QCOM_image_processing)If 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-06976NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_QCOM_image_processing)If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation
VUID-vkCmdTraceRaysNV-OpImageBlockMatchSSDQCOM-06974NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_QCOM_image_processing)If 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-OpImageBoxFilterQCOM-06973NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_QCOM_image_processing)If 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-06971NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_QCOM_image_processing)If 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-06972NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_QCOM_image_processing)If 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-06977NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_QCOM_image_processing)If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-06978NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_QCOM_image_processing)If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, 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-04469YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If 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-OpTypeImage-07027YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07028YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07029YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)For 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-07030YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)Any 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-04470NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_shader_image_atomic_int64)If 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-04471NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_shader_image_atomic_int64)If 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-04472NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_shader_image_atomic_int64)If 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-04473NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_shader_image_atomic_int64)If 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-aspectMask-06478NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If a VkImageView is sampled with depth comparison, the image view must have been created with an aspectMask that contains VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02461YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)callableShaderBindingOffset must be less than the size of callableShaderBindingTableBuffer
VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02462YExportMetalObjectsexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)callableShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02465YExportMetalObjectsexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)callableShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize
VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02468YExportMetalObjectsexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)callableShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride
VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-04045NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If callableShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-parameterYNoneimplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If callableShaderBindingTableBuffer is not VK_NULL_HANDLE, callableShaderBindingTableBuffer must be a valid VkBuffer handle
VUID-vkCmdTraceRaysNV-commandBuffer-02701YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set or inherited (if the VK_NV_inherited_viewport_scissor extension is enabled) for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic
VUID-vkCmdTraceRaysNV-commandBuffer-02707YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource
VUID-vkCmdTraceRaysNV-commandBuffer-04624YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)commandBuffer must not be a protected command buffer
VUID-vkCmdTraceRaysNV-commandBuffer-cmdpoolYNoneimplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)The VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdTraceRaysNV-commandBuffer-parameterYNoneimplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdTraceRaysNV-commandBuffer-recordingYNoneimplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)commandBuffer must be in the recording state
VUID-vkCmdTraceRaysNV-commonparentYNoneimplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)Each 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-depth-02471YExportMetalObjectsexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)depth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]
VUID-vkCmdTraceRaysNV-filterCubic-02694YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02695YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)Any 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-02696YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_NV_corner_sampled_image)Any 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-07753YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If a VkImageView is accessed as a result of this command, then the image view's format must match the numeric format from the Sampled Type operand of the OpTypeImage as described in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table
VUID-vkCmdTraceRaysNV-height-02470YExportMetalObjectsexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)height must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]
VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02459YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)hitShaderBindingOffset must be less than the size of hitShaderBindingTableBuffer
VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02460YExportMetalObjectsexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)hitShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02464YExportMetalObjectsexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)hitShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize
VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02467YExportMetalObjectsexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)hitShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride
VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-04044NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If hitShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-parameterYNoneimplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If hitShaderBindingTableBuffer is not VK_NULL_HANDLE, hitShaderBindingTableBuffer must be a valid VkBuffer handle
VUID-vkCmdTraceRaysNV-magFilter-04553YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdTraceRaysNV-maintenance4-06425YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_3,VK_KHR_maintenance4)If the maintenance4 feature is not enabled, then for each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, 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, as described in Pipeline Layout Compatibility
VUID-vkCmdTraceRaysNV-maxRecursionDepth-03625NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)This 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-04770YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view's format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)missShaderBindingOffset must be less than the size of missShaderBindingTableBuffer
VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02458YExportMetalObjectsexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)missShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysNV-missShaderBindingStride-02463YExportMetalObjectsexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)missShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize
VUID-vkCmdTraceRaysNV-missShaderBindingStride-02466YExportMetalObjectsexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)missShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride
VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-04043NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If missShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-parameterYNoneimplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If missShaderBindingTableBuffer is not VK_NULL_HANDLE, missShaderBindingTableBuffer must be a valid VkBuffer handle
VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02455YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)raygenShaderBindingOffset must be less than the size of raygenShaderBindingTableBuffer
VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02456YExportMetalObjectsexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)raygenShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment
VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-04042NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If raygenShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-parameterYNoneimplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)raygenShaderBindingTableBuffer must be a valid VkBuffer handle
VUID-vkCmdTraceRaysNV-renderpassYNoneimplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)This command must only be called outside of a render pass instance
VUID-vkCmdTraceRaysNV-sparseImageInt64Atomics-04474NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_shader_image_atomic_int64)If 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-04475NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_shader_image_atomic_int64)If 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-06936NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_pipeline_robustness)If 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-06935NNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_EXT_pipeline_robustness)If 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-videocodingNNoneimplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)This command must only be called outside of a video coding scope
VUID-vkCmdTraceRaysNV-viewType-07752YNoneexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If a VkImageView is accessed as a result of this command, then the image view's viewType must match the Dim operand of the OpTypeImage as described in Instruction/Sampler/Image View Validation
VUID-vkCmdTraceRaysNV-width-02469YExportMetalObjectsexplicitvkCmdTraceRaysNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]
VUID-vkCmdUpdateBuffer-commandBuffer-01813YInvalidMixingProtectedResourcesexplicitvkCmdUpdateBuffer(VK_VERSION_1_1)If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, dstBuffer must not be a protected buffer
VUID-vkCmdUpdateBuffer-commandBuffer-01814YInvalidMixingProtectedResourcesexplicitvkCmdUpdateBuffer(VK_VERSION_1_1)If commandBuffer is a protected command buffer and protectedNoFault is not supported, dstBuffer must not be an unprotected buffer
VUID-vkCmdUpdateBuffer-commandBuffer-cmdpoolYNoneimplicitvkCmdUpdateBuffercoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdUpdateBuffer-commandBuffer-parameterYNoneimplicitvkCmdUpdateBuffercorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdUpdateBuffer-commandBuffer-recordingYNoneimplicitvkCmdUpdateBuffercorecommandBuffer must be in the recording state
VUID-vkCmdUpdateBuffer-commonparentYNoneimplicitvkCmdUpdateBuffercoreBoth of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdUpdateBuffer-dataSize-00033YInvalidCmdUpdateBufferSizeexplicitvkCmdUpdateBuffercoredataSize must be less than or equal to the size of dstBuffer minus dstOffset
VUID-vkCmdUpdateBuffer-dataSize-00037YNoneexplicitvkCmdUpdateBuffercoredataSize must be less than or equal to 65536
VUID-vkCmdUpdateBuffer-dataSize-00038YNoneexplicitvkCmdUpdateBuffercoredataSize must be a multiple of 4
VUID-vkCmdUpdateBuffer-dataSize-arraylengthYNoneimplicitvkCmdUpdateBuffercoredataSize must be greater than 0
VUID-vkCmdUpdateBuffer-dstBuffer-00034YNoneexplicitvkCmdUpdateBuffercoredstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdUpdateBuffer-dstBuffer-00035YNoneexplicitvkCmdUpdateBuffercoreIf dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdUpdateBuffer-dstBuffer-parameterYNoneimplicitvkCmdUpdateBuffercoredstBuffer must be a valid VkBuffer handle
VUID-vkCmdUpdateBuffer-dstOffset-00032YInvalidCmdUpdateBufferDstOffsetexplicitvkCmdUpdateBuffercoredstOffset must be less than the size of dstBuffer
VUID-vkCmdUpdateBuffer-dstOffset-00036YNoneexplicitvkCmdUpdateBuffercoredstOffset must be a multiple of 4
VUID-vkCmdUpdateBuffer-pData-parameterYNoneimplicitvkCmdUpdateBuffercorepData must be a valid pointer to an array of dataSize bytes
VUID-vkCmdUpdateBuffer-renderpassYUpdateBufferWithinRenderPassimplicitvkCmdUpdateBuffercoreThis command must only be called outside of a render pass instance
VUID-vkCmdUpdateBuffer-videocodingNNoneimplicitvkCmdUpdateBuffercoreThis command must only be called outside of a video coding scope
VUID-vkCmdWaitEvents-commandBuffer-01167NNoneexplicitvkCmdWaitEvents(VK_VERSION_1_1,VK_KHR_device_group)commandBuffer's current device mask must include exactly one physical device
VUID-vkCmdWaitEvents-commandBuffer-cmdpoolYNoneimplicitvkCmdWaitEventscoreThe VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdWaitEvents-commandBuffer-parameterYNoneimplicitvkCmdWaitEventscorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWaitEvents-commandBuffer-recordingYNoneimplicitvkCmdWaitEventscorecommandBuffer must be in the recording state
VUID-vkCmdWaitEvents-commonparentYNoneimplicitvkCmdWaitEventscoreBoth of commandBuffer, and the elements of pEvents must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWaitEvents-dstAccessMask-02816YNoneexplicitvkCmdWaitEventscoreThe dstAccessMask member of each element of pMemoryBarriers must only include access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types
VUID-vkCmdWaitEvents-dstStageMask-03937YNoneexplicitvkCmdWaitEvents(VK_VERSION_1_3,VK_KHR_synchronization2)If the synchronization2 feature is not enabled, pname:dstStageMask must not be 0
VUID-vkCmdWaitEvents-dstStageMask-04090YNoneexplicitvkCmdWaitEventscoreIf the geometryShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdWaitEvents-dstStageMask-04091YNoneexplicitvkCmdWaitEventscoreIf the tessellationShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-vkCmdWaitEvents-dstStageMask-04092YNoneexplicitvkCmdWaitEvents(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdWaitEvents-dstStageMask-04093YNoneexplicitvkCmdWaitEvents(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdWaitEvents-dstStageMask-04094YNoneexplicitvkCmdWaitEvents(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdWaitEvents-dstStageMask-04095YMeshShaderDisabledNVexplicitvkCmdWaitEvents(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdWaitEvents-dstStageMask-04096YMeshShaderDisabledNVexplicitvkCmdWaitEvents(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdWaitEvents-dstStageMask-04097YNoneexplicitvkCmdWaitEvents(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV
VUID-vkCmdWaitEvents-dstStageMask-04996NNoneexplicitvkCmdWaitEvents!(VK_VERSION_1_3,VK_KHR_synchronization2)pname:dstStageMask must not be 0
VUID-vkCmdWaitEvents-dstStageMask-06460YNoneexplicitvkCmdWaitEventscoreAny pipeline stage included in dstStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages
VUID-vkCmdWaitEvents-dstStageMask-07318NNoneexplicitvkCmdWaitEvents(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWaitEvents-dstStageMask-07319NNoneexplicitvkCmdWaitEvents(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWaitEvents-dstStageMask-parameterYNoneimplicitvkCmdWaitEventscoredstStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-vkCmdWaitEvents-eventCount-arraylengthYValidateArrayLengthimplicitvkCmdWaitEventscoreeventCount must be greater than 0
VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02817NNoneexplicitvkCmdWaitEventscoreFor any element of pBufferMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its srcQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its srcAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types
VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02818NNoneexplicitvkCmdWaitEventscoreFor any element of pBufferMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its dstQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its dstAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types
VUID-vkCmdWaitEvents-pBufferMemoryBarriers-parameterYNoneimplicitvkCmdWaitEventscoreIf bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier structures
VUID-vkCmdWaitEvents-pEvents-03847NNoneexplicitvkCmdWaitEvents(VK_VERSION_1_3,VK_KHR_synchronization2)Elements of pEvents must not have been signaled by vkCmdSetEvent2
VUID-vkCmdWaitEvents-pEvents-parameterYNoneimplicitvkCmdWaitEventscorepEvents must be a valid pointer to an array of eventCount valid VkEvent handles
VUID-vkCmdWaitEvents-pImageMemoryBarriers-02819NNoneexplicitvkCmdWaitEventscoreFor any element of pImageMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its srcQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its srcAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types
VUID-vkCmdWaitEvents-pImageMemoryBarriers-02820NNoneexplicitvkCmdWaitEventscoreFor any element of pImageMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its dstQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its dstAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types
VUID-vkCmdWaitEvents-pImageMemoryBarriers-parameterYNoneimplicitvkCmdWaitEventscoreIf imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier structures
VUID-vkCmdWaitEvents-pMemoryBarriers-parameterYNoneimplicitvkCmdWaitEventscoreIf memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier structures
VUID-vkCmdWaitEvents-srcAccessMask-02815YNoneexplicitvkCmdWaitEventscoreThe srcAccessMask member of each element of pMemoryBarriers must only include access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types
VUID-vkCmdWaitEvents-srcQueueFamilyIndex-02803YWaitEventsDifferentQueuesexplicitvkCmdWaitEventscoreThe srcQueueFamilyIndex and dstQueueFamilyIndex members of any element of pBufferMemoryBarriers or pImageMemoryBarriers must be equal
VUID-vkCmdWaitEvents-srcStageMask-01158YNoneexplicitvkCmdWaitEventscoresrcStageMask must be the bitwise OR of the stageMask parameter used in previous calls to vkCmdSetEvent with any of the elements of pEvents and VK_PIPELINE_STAGE_HOST_BIT if any of the elements of pEvents was set using vkSetEvent
VUID-vkCmdWaitEvents-srcStageMask-03937YNoneexplicitvkCmdWaitEvents(VK_VERSION_1_3,VK_KHR_synchronization2)If the synchronization2 feature is not enabled, pname:srcStageMask must not be 0
VUID-vkCmdWaitEvents-srcStageMask-04090YNoneexplicitvkCmdWaitEventscoreIf the geometryShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdWaitEvents-srcStageMask-04091YNoneexplicitvkCmdWaitEventscoreIf the tessellationShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-vkCmdWaitEvents-srcStageMask-04092YNoneexplicitvkCmdWaitEvents(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdWaitEvents-srcStageMask-04093YNoneexplicitvkCmdWaitEvents(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdWaitEvents-srcStageMask-04094YNoneexplicitvkCmdWaitEvents(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdWaitEvents-srcStageMask-04095YMeshShaderDisabledNVexplicitvkCmdWaitEvents(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdWaitEvents-srcStageMask-04096YMeshShaderDisabledNVexplicitvkCmdWaitEvents(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdWaitEvents-srcStageMask-04097YNoneexplicitvkCmdWaitEvents(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV
VUID-vkCmdWaitEvents-srcStageMask-04996NNoneexplicitvkCmdWaitEvents!(VK_VERSION_1_3,VK_KHR_synchronization2)pname:srcStageMask must not be 0
VUID-vkCmdWaitEvents-srcStageMask-06459YInvalidBarriersexplicitvkCmdWaitEventscoreAny 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-07308NNoneexplicitvkCmdWaitEventscoreIf vkCmdWaitEvents is being called inside a render pass instance, srcStageMask must not include VK_PIPELINE_STAGE_HOST_BIT
VUID-vkCmdWaitEvents-srcStageMask-07318NNoneexplicitvkCmdWaitEvents(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWaitEvents-srcStageMask-07319NNoneexplicitvkCmdWaitEvents(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWaitEvents-srcStageMask-parameterYEventStageMaskTwoCommandBufferFail, EventStageMaskOneCommandBufferFailimplicitvkCmdWaitEventscoresrcStageMask must be a valid combination of VkPipelineStageFlagBits values
VUID-vkCmdWaitEvents2-commandBuffer-03846NNoneexplicitvkCmdWaitEvents2(VK_VERSION_1_3,VK_KHR_synchronization2)commandBuffer's current device mask must include exactly one physical device
VUID-vkCmdWaitEvents2-commandBuffer-cmdpoolYNoneimplicitvkCmdWaitEvents2(VK_VERSION_1_3,VK_KHR_synchronization2)The VkCommandPool that commandBuffer was allocated from must support graphics, compute, decode, or encode operations
VUID-vkCmdWaitEvents2-commandBuffer-parameterYNoneimplicitvkCmdWaitEvents2(VK_VERSION_1_3,VK_KHR_synchronization2)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWaitEvents2-commandBuffer-recordingYNoneimplicitvkCmdWaitEvents2(VK_VERSION_1_3,VK_KHR_synchronization2)commandBuffer must be in the recording state
VUID-vkCmdWaitEvents2-commonparentYNoneimplicitvkCmdWaitEvents2(VK_VERSION_1_3,VK_KHR_synchronization2)Both of commandBuffer, and the elements of pEvents must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWaitEvents2-dependencyFlags-03844YNoneexplicitvkCmdWaitEvents2(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-03843YNoneexplicitvkCmdWaitEvents2(VK_VERSION_1_3,VK_KHR_synchronization2)The 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-arraylengthYNoneimplicitvkCmdWaitEvents2(VK_VERSION_1_3,VK_KHR_synchronization2)eventCount must be greater than 0
VUID-vkCmdWaitEvents2-pDependencyInfos-parameterYNoneimplicitvkCmdWaitEvents2(VK_VERSION_1_3,VK_KHR_synchronization2)pDependencyInfos must be a valid pointer to an array of eventCount valid VkDependencyInfo structures
VUID-vkCmdWaitEvents2-pEvents-03837YNoneexplicitvkCmdWaitEvents2(VK_VERSION_1_3,VK_KHR_synchronization2)Members of pEvents must not have been signaled by vkCmdSetEvent
VUID-vkCmdWaitEvents2-pEvents-03838YNoneexplicitvkCmdWaitEvents2(VK_VERSION_1_3,VK_KHR_synchronization2)For 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-03839NNoneexplicitvkCmdWaitEvents2(VK_VERSION_1_3,VK_KHR_synchronization2)For 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-03840NNoneexplicitvkCmdWaitEvents2(VK_VERSION_1_3,VK_KHR_synchronization2)For 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-03841NNoneexplicitvkCmdWaitEvents2(VK_VERSION_1_3,VK_KHR_synchronization2)For 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-parameterYNoneimplicitvkCmdWaitEvents2(VK_VERSION_1_3,VK_KHR_synchronization2)pEvents must be a valid pointer to an array of eventCount valid VkEvent handles
VUID-vkCmdWaitEvents2-srcStageMask-03842YNoneexplicitvkCmdWaitEvents2(VK_VERSION_1_3,VK_KHR_synchronization2)The srcStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfos must either include only pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from, or include only VK_PIPELINE_STAGE_2_HOST_BIT
VUID-vkCmdWaitEvents2-synchronization2-03836YCmdWaitEvents2KHRUsedButSynchronizaion2DisabledexplicitvkCmdWaitEvents2(VK_VERSION_1_3,VK_KHR_synchronization2)The synchronization2 feature must be enabled
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructureCount-arraylengthYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)accelerationStructureCount must be greater than 0
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructures-03431YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)All 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-03736NNoneexplicitvkCmdWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The buffer used to create each acceleration structure in pAccelerationStructures must be bound to device memory
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-cmdpoolYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-recordingYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)commandBuffer must be in the recording state
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commonparentYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)Each of commandBuffer, queryPool, and the elements of pAccelerationStructures must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-04964NNoneexplicitvkCmdWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)All acceleration structures in pAccelerationStructures must have been built prior to the execution of this command
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureKHR handles
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-query-04880NNoneexplicitvkCmdWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The sum of query plus accelerationStructureCount must be less than or equal to the number of queries in queryPool
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-02493YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)queryPool must have been created with a queryType matching queryType
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-02494NNoneexplicitvkCmdWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The queries identified by queryPool and firstQuery must be unavailable
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)queryPool must be a valid VkQueryPool handle
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryType-03432YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+!(VK_KHR_ray_tracing_maintenance1)queryType must be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryType-06742YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_ray_tracing_maintenance1)queryType 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-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)queryType must be a valid VkQueryType value
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-renderpassYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)This command must only be called outside of a render pass instance
VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-videocodingNNoneimplicitvkCmdWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)This command must only be called outside of a video coding scope
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-accelerationStructure-03757NNoneexplicitvkCmdWriteAccelerationStructuresPropertiesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)accelerationStructure must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-accelerationStructureCount-arraylengthYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)accelerationStructureCount must be greater than 0
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-cmdpoolYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)The VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-recordingYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)commandBuffer must be in the recording state
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commonparentYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)Each of commandBuffer, queryPool, and the elements of pAccelerationStructures must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-pAccelerationStructures-04958NNoneexplicitvkCmdWriteAccelerationStructuresPropertiesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)All acceleration structures in pAccelerationStructures must have been built prior to the execution of this command
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-pAccelerationStructures-06215YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)All 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-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureNV handles
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-03755YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)queryPool must have been created with a queryType matching queryType
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-03756NNoneexplicitvkCmdWriteAccelerationStructuresPropertiesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)The queries identified by queryPool and firstQuery must be unavailable
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)queryPool must be a valid VkQueryPool handle
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryType-06216YNoneexplicitvkCmdWriteAccelerationStructuresPropertiesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)queryType must be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryType-parameterYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)queryType must be a valid VkQueryType value
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-renderpassYNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)This command must only be called outside of a render pass instance
VUID-vkCmdWriteAccelerationStructuresPropertiesNV-videocodingNNoneimplicitvkCmdWriteAccelerationStructuresPropertiesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)This command must only be called outside of a video coding scope
VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-cmdpoolYNoneimplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-parameterYNoneimplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-recordingYNoneimplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)commandBuffer must be in the recording state
VUID-vkCmdWriteBufferMarker2AMD-commonparentYNoneimplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)Both of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03897NNoneexplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)dstBuffer must have been created with the VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-03898NNoneexplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdWriteBufferMarker2AMD-dstBuffer-parameterYNoneimplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)dstBuffer must be a valid VkBuffer handle
VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03896NNoneexplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)dstOffset must be less than or equal to the size of dstBuffer minus 4
VUID-vkCmdWriteBufferMarker2AMD-dstOffset-03899NNoneexplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)dstOffset must be a multiple of 4
VUID-vkCmdWriteBufferMarker2AMD-stage-03894NNoneexplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)stage must include only a single pipeline stage
VUID-vkCmdWriteBufferMarker2AMD-stage-03895NNoneexplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)stage must include only stages that are valid for the queue family that was used to create the command pool that commandBuffer was allocated from
VUID-vkCmdWriteBufferMarker2AMD-stage-03929NNoneexplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)If the geometryShader feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-vkCmdWriteBufferMarker2AMD-stage-03930NNoneexplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)If the tessellationShader feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
VUID-vkCmdWriteBufferMarker2AMD-stage-03931NNoneexplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdWriteBufferMarker2AMD-stage-03932NNoneexplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdWriteBufferMarker2AMD-stage-03933NNoneexplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdWriteBufferMarker2AMD-stage-03934NNoneexplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-vkCmdWriteBufferMarker2AMD-stage-03935NNoneexplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-vkCmdWriteBufferMarker2AMD-stage-04956NNoneexplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV
VUID-vkCmdWriteBufferMarker2AMD-stage-04957NNoneexplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)If the subpassShading feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
VUID-vkCmdWriteBufferMarker2AMD-stage-04995NNoneexplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)If the invocationMask feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-vkCmdWriteBufferMarker2AMD-stage-07316NNoneexplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWriteBufferMarker2AMD-stage-07317NNoneexplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWriteBufferMarker2AMD-stage-parameterYNoneimplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)stage must be a valid combination of VkPipelineStageFlagBits2 values
VUID-vkCmdWriteBufferMarker2AMD-synchronization2-03893NNoneexplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)The synchronization2 feature must be enabled
VUID-vkCmdWriteBufferMarker2AMD-videocodingNNoneimplicitvkCmdWriteBufferMarker2AMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)This command must only be called outside of a video coding scope
VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-cmdpoolYNoneimplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations
VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-parameterYNoneimplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-recordingYNoneimplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)commandBuffer must be in the recording state
VUID-vkCmdWriteBufferMarkerAMD-commonparentYNoneimplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)Both of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01799NNoneexplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01800NNoneexplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-parameterYNoneimplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)dstBuffer must be a valid VkBuffer handle
VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01798NNoneexplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)dstOffset must be less than or equal to the size of dstBuffer minus 4
VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01801NNoneexplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)dstOffset must be a multiple of 4
VUID-vkCmdWriteBufferMarkerAMD-fragmentShadingRate-07315NNoneexplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)+(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04074NNoneexplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)pipelineStage 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-04075NNoneexplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)If the geometryShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04076NNoneexplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)If 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-04077NNoneexplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)+(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04078NNoneexplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)+(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04079NNoneexplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)+(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04080NNoneexplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04081NNoneexplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)+(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-06490NNoneexplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)+!(VK_VERSION_1_3,VK_KHR_synchronization2)pipelineStage must not be VK_PIPELINE_STAGE_NONE
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-07077NNoneexplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-parameterYNoneimplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)If pipelineStage is not 0, pipelineStage must be a valid VkPipelineStageFlagBits value
VUID-vkCmdWriteBufferMarkerAMD-shadingRateImage-07314NNoneexplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)+(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWriteBufferMarkerAMD-synchronization2-06489NNoneexplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)If the synchronization2 feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_NONE
VUID-vkCmdWriteBufferMarkerAMD-videocodingNNoneimplicitvkCmdWriteBufferMarkerAMD(VK_AMD_buffer_marker)This command must only be called outside of a video coding scope
VUID-vkCmdWriteMicromapsPropertiesEXT-buffer-07527NNoneexplicitvkCmdWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)The buffer used to create each micromap in pMicrmaps must be bound to device memory
VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-cmdpoolYNoneimplicitvkCmdWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)The VkCommandPool that commandBuffer was allocated from must support compute operations
VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-parameterYNoneimplicitvkCmdWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-recordingYNoneimplicitvkCmdWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)commandBuffer must be in the recording state
VUID-vkCmdWriteMicromapsPropertiesEXT-commonparentYNoneimplicitvkCmdWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)Each of commandBuffer, queryPool, and the elements of pMicromaps must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWriteMicromapsPropertiesEXT-micromapCount-arraylengthYNoneimplicitvkCmdWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)micromapCount must be greater than 0
VUID-vkCmdWriteMicromapsPropertiesEXT-pMicromaps-07501NNoneexplicitvkCmdWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)All micromaps in pMicromaps must have been constructed prior to the execution of this command
VUID-vkCmdWriteMicromapsPropertiesEXT-pMicromaps-07502NNoneexplicitvkCmdWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)All 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-parameterYNoneimplicitvkCmdWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)pMicromaps must be a valid pointer to an array of micromapCount valid VkMicromapEXT handles
VUID-vkCmdWriteMicromapsPropertiesEXT-query-07528NNoneexplicitvkCmdWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)The sum of query plus micromapCount must be less than or equal to the number of queries in queryPool
VUID-vkCmdWriteMicromapsPropertiesEXT-queryPool-07525NNoneexplicitvkCmdWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)queryPool must have been created with a queryType matching queryType
VUID-vkCmdWriteMicromapsPropertiesEXT-queryPool-07526NNoneexplicitvkCmdWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)The queries identified by queryPool and firstQuery must be unavailable
VUID-vkCmdWriteMicromapsPropertiesEXT-queryPool-parameterYNoneimplicitvkCmdWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)queryPool must be a valid VkQueryPool handle
VUID-vkCmdWriteMicromapsPropertiesEXT-queryType-07503NNoneexplicitvkCmdWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)queryType must be VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT or VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT
VUID-vkCmdWriteMicromapsPropertiesEXT-queryType-parameterYNoneimplicitvkCmdWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)queryType must be a valid VkQueryType value
VUID-vkCmdWriteMicromapsPropertiesEXT-renderpassYNoneimplicitvkCmdWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)This command must only be called outside of a render pass instance
VUID-vkCmdWriteMicromapsPropertiesEXT-videocodingNNoneimplicitvkCmdWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)This command must only be called outside of a video coding scope
VUID-vkCmdWriteTimestamp-None-00830NNoneexplicitvkCmdWriteTimestamp(VK_VERSION_1_1,VK_KHR_multiview)All queries used by the command must be unavailable
VUID-vkCmdWriteTimestamp-commandBuffer-cmdpoolYNoneimplicitvkCmdWriteTimestampcoreThe VkCommandPool that commandBuffer was allocated from must support transfer, graphics, compute, decode, encode, or opticalflow operations
VUID-vkCmdWriteTimestamp-commandBuffer-parameterYNoneimplicitvkCmdWriteTimestampcorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWriteTimestamp-commandBuffer-recordingYNoneimplicitvkCmdWriteTimestampcorecommandBuffer must be in the recording state
VUID-vkCmdWriteTimestamp-commonparentYNoneimplicitvkCmdWriteTimestampcoreBoth of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWriteTimestamp-fragmentShadingRate-07315NNoneexplicitvkCmdWriteTimestamp(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWriteTimestamp-pipelineStage-04074YNoneexplicitvkCmdWriteTimestampcorepipelineStage must be a valid stage for the queue family that was used to create the command pool that commandBuffer was allocated from
VUID-vkCmdWriteTimestamp-pipelineStage-04075YNoneexplicitvkCmdWriteTimestampcoreIf the geometryShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
VUID-vkCmdWriteTimestamp-pipelineStage-04076YNoneexplicitvkCmdWriteTimestampcoreIf the tessellationShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
VUID-vkCmdWriteTimestamp-pipelineStage-04077YNoneexplicitvkCmdWriteTimestamp(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdWriteTimestamp-pipelineStage-04078YNoneexplicitvkCmdWriteTimestamp(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdWriteTimestamp-pipelineStage-04079YNoneexplicitvkCmdWriteTimestamp(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdWriteTimestamp-pipelineStage-04080YNoneexplicitvkCmdWriteTimestamp(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT
VUID-vkCmdWriteTimestamp-pipelineStage-04081YNoneexplicitvkCmdWriteTimestamp(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV
VUID-vkCmdWriteTimestamp-pipelineStage-06490NNoneexplicitvkCmdWriteTimestamp!(VK_VERSION_1_3,VK_KHR_synchronization2)pipelineStage must not be VK_PIPELINE_STAGE_NONE
VUID-vkCmdWriteTimestamp-pipelineStage-07077NNoneexplicitvkCmdWriteTimestamp(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT
VUID-vkCmdWriteTimestamp-pipelineStage-parameterYNoneimplicitvkCmdWriteTimestampcorepipelineStage must be a valid VkPipelineStageFlagBits value
VUID-vkCmdWriteTimestamp-query-00831NNoneexplicitvkCmdWriteTimestamp(VK_VERSION_1_1,VK_KHR_multiview)If 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-04904YWriteTimeStampInvalidQueryexplicitvkCmdWriteTimestampcorequery must be less than the number of queries in queryPool
VUID-vkCmdWriteTimestamp-queryPool-00828NNoneexplicitvkCmdWriteTimestampcoreThe query identified by queryPool and query must be unavailable
VUID-vkCmdWriteTimestamp-queryPool-01416YInvalidQuerySizesexplicitvkCmdWriteTimestampcorequeryPool must have been created with a queryType of VK_QUERY_TYPE_TIMESTAMP
VUID-vkCmdWriteTimestamp-queryPool-parameterYNoneimplicitvkCmdWriteTimestampcorequeryPool must be a valid VkQueryPool handle
VUID-vkCmdWriteTimestamp-shadingRateImage-07314NNoneexplicitvkCmdWriteTimestamp(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWriteTimestamp-synchronization2-06489NNoneexplicitvkCmdWriteTimestamp(VK_VERSION_1_3,VK_KHR_synchronization2)If the synchronization2 feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_NONE
VUID-vkCmdWriteTimestamp-timestampValidBits-00829YInvalidQuerySizesexplicitvkCmdWriteTimestampcoreThe command pool's queue family must support a non-zero timestampValidBits
VUID-vkCmdWriteTimestamp2-None-03864NNoneexplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_multiview)All queries used by the command must be unavailable
VUID-vkCmdWriteTimestamp2-commandBuffer-cmdpoolYNoneimplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, compute, decode, or encode operations
VUID-vkCmdWriteTimestamp2-commandBuffer-parameterYNoneimplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)commandBuffer must be a valid VkCommandBuffer handle
VUID-vkCmdWriteTimestamp2-commandBuffer-recordingYNoneimplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)commandBuffer must be in the recording state
VUID-vkCmdWriteTimestamp2-commonparentYNoneimplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice
VUID-vkCmdWriteTimestamp2-query-03865NNoneexplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_multiview)If 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-04903YWriteTimeStampInvalidQueryexplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)query must be less than the number of queries in queryPool
VUID-vkCmdWriteTimestamp2-queryPool-03861YNoneexplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)queryPool must have been created with a queryType of VK_QUERY_TYPE_TIMESTAMP
VUID-vkCmdWriteTimestamp2-queryPool-03862NNoneexplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)The query identified by queryPool and query must be unavailable
VUID-vkCmdWriteTimestamp2-queryPool-parameterYNoneimplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)queryPool must be a valid VkQueryPool handle
VUID-vkCmdWriteTimestamp2-stage-03859YNoneexplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)stage must only include a single pipeline stage
VUID-vkCmdWriteTimestamp2-stage-03860YNoneexplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)stage 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-03929YNoneexplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)If the geometryShader feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
VUID-vkCmdWriteTimestamp2-stage-03930YNoneexplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)If the tessellationShader feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
VUID-vkCmdWriteTimestamp2-stage-03931YNoneexplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)If the conditionalRendering feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-vkCmdWriteTimestamp2-stage-03932YNoneexplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)If the fragmentDensityMap feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-vkCmdWriteTimestamp2-stage-03933YNoneexplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If the transformFeedback feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-vkCmdWriteTimestamp2-stage-03934YNoneexplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the meshShader feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
VUID-vkCmdWriteTimestamp2-stage-03935YNoneexplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_mesh_shader,VK_EXT_mesh_shader)If the taskShader feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
VUID-vkCmdWriteTimestamp2-stage-04956YNoneexplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_shading_rate_image)+!(VK_KHR_fragment_shading_rate)If the shadingRateImage feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV
VUID-vkCmdWriteTimestamp2-stage-04957NNoneexplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)If the subpassShading feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
VUID-vkCmdWriteTimestamp2-stage-04995NNoneexplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_HUAWEI_invocation_mask)If the invocationMask feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
VUID-vkCmdWriteTimestamp2-stage-07316NNoneexplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+(VK_NV_shading_rate_image)If neither the shadingRateImage or attachmentFragmentShadingRate are enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWriteTimestamp2-stage-07317NNoneexplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate)+!(VK_NV_shading_rate_image)If the attachmentFragmentShadingRate feature is not enabled, pname:stage must not contain VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-vkCmdWriteTimestamp2-stage-parameterYNoneimplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)stage must be a valid combination of VkPipelineStageFlagBits2 values
VUID-vkCmdWriteTimestamp2-synchronization2-03858YSync2FeatureDisabledexplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)The synchronization2 feature must be enabled
VUID-vkCmdWriteTimestamp2-timestampValidBits-03863YNoneexplicitvkCmdWriteTimestamp2(VK_VERSION_1_3,VK_KHR_synchronization2)The command pool's queue family must support a non-zero timestampValidBits
VUID-vkCompileDeferredNV-device-parameterYNoneimplicitvkCompileDeferredNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)device must be a valid VkDevice handle
VUID-vkCompileDeferredNV-pipeline-02237NNoneexplicitvkCompileDeferredNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)pipeline must have been created with VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV
VUID-vkCompileDeferredNV-pipeline-04621NNoneexplicitvkCompileDeferredNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)pipeline must be a ray tracing pipeline
VUID-vkCompileDeferredNV-pipeline-parameterYNoneimplicitvkCompileDeferredNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)pipeline must be a valid VkPipeline handle
VUID-vkCompileDeferredNV-pipeline-parentYNoneimplicitvkCompileDeferredNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)pipeline must have been created, allocated, or retrieved from device
VUID-vkCompileDeferredNV-shader-02238NNoneexplicitvkCompileDeferredNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)shader must not have been called as a deferred compile before
VUID-vkCopyAccelerationStructureKHR-accelerationStructureHostCommands-03582YNoneexplicitvkCopyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled
VUID-vkCopyAccelerationStructureKHR-buffer-03727YRayTracingCmdCopyUnboundAccelerationStructureexplicitvkCopyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The buffer used to create pInfo->src must be bound to host-visible device memory
VUID-vkCopyAccelerationStructureKHR-buffer-03728YRayTracingCmdCopyUnboundAccelerationStructureexplicitvkCopyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The buffer used to create pInfo->dst must be bound to host-visible device memory
VUID-vkCopyAccelerationStructureKHR-buffer-03780NNoneexplicitvkCopyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_device_group,VK_VERSION_1_1)The buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances
VUID-vkCopyAccelerationStructureKHR-buffer-03781NNoneexplicitvkCopyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_device_group,VK_VERSION_1_1)The buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances
VUID-vkCopyAccelerationStructureKHR-deferredOperation-03677NNoneexplicitvkCopyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object
VUID-vkCopyAccelerationStructureKHR-deferredOperation-03678NNoneexplicitvkCopyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)Any previous deferred operation that was associated with deferredOperation must be complete
VUID-vkCopyAccelerationStructureKHR-deferredOperation-parameterYNoneimplicitvkCopyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkCopyAccelerationStructureKHR-deferredOperation-parentYNoneimplicitvkCopyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCopyAccelerationStructureKHR-device-parameterYNoneimplicitvkCopyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)device must be a valid VkDevice handle
VUID-vkCopyAccelerationStructureKHR-pInfo-parameterYNoneimplicitvkCopyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pInfo must be a valid pointer to a valid VkCopyAccelerationStructureInfoKHR structure
VUID-vkCopyAccelerationStructureToMemoryKHR-accelerationStructureHostCommands-03584YNoneexplicitvkCopyAccelerationStructureToMemoryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled
VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03731NNoneexplicitvkCopyAccelerationStructureToMemoryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The buffer used to create pInfo->src must be bound to host-visible device memory
VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03783NNoneexplicitvkCopyAccelerationStructureToMemoryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_device_group,VK_VERSION_1_1)The buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances
VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-03677NNoneexplicitvkCopyAccelerationStructureToMemoryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object
VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-03678NNoneexplicitvkCopyAccelerationStructureToMemoryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)Any previous deferred operation that was associated with deferredOperation must be complete
VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-parameterYNoneimplicitvkCopyAccelerationStructureToMemoryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-parentYNoneimplicitvkCopyAccelerationStructureToMemoryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCopyAccelerationStructureToMemoryKHR-device-parameterYNoneimplicitvkCopyAccelerationStructureToMemoryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)device must be a valid VkDevice handle
VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-03732YNoneexplicitvkCopyAccelerationStructureToMemoryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pInfo->dst.hostAddress must be a valid host pointer
VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-03751YNoneexplicitvkCopyAccelerationStructureToMemoryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pInfo->dst.hostAddress must be aligned to 16 bytes
VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-parameterYNoneimplicitvkCopyAccelerationStructureToMemoryKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pInfo must be a valid pointer to a valid VkCopyAccelerationStructureToMemoryInfoKHR structure
VUID-vkCopyMemoryToAccelerationStructureKHR-accelerationStructureHostCommands-03583YNoneexplicitvkCopyMemoryToAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled
VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03730YRayTracingTestCopyMemoryToAsBufferexplicitvkCopyMemoryToAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The buffer used to create pInfo->dst must be bound to host-visible device memory
VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03782NNoneexplicitvkCopyMemoryToAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_device_group,VK_VERSION_1_1)The buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances
VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-03677NNoneexplicitvkCopyMemoryToAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object
VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-03678NNoneexplicitvkCopyMemoryToAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)Any previous deferred operation that was associated with deferredOperation must be complete
VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-parameterYNoneimplicitvkCopyMemoryToAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-parentYNoneimplicitvkCopyMemoryToAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCopyMemoryToAccelerationStructureKHR-device-parameterYNoneimplicitvkCopyMemoryToAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)device must be a valid VkDevice handle
VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-03729YNoneexplicitvkCopyMemoryToAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pInfo->src.hostAddress must be a valid host pointer
VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-03750NNoneexplicitvkCopyMemoryToAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pInfo->src.hostAddress must be aligned to 16 bytes
VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-parameterYNoneimplicitvkCopyMemoryToAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pInfo must be a valid pointer to a valid VkCopyMemoryToAccelerationStructureInfoKHR structure
VUID-vkCopyMemoryToMicromapEXT-buffer-07565NNoneexplicitvkCopyMemoryToMicromapEXT(VK_EXT_opacity_micromap)The buffer used to create pInfo->dst must be bound to host-visible device memory
VUID-vkCopyMemoryToMicromapEXT-buffer-07567NNoneexplicitvkCopyMemoryToMicromapEXT(VK_EXT_opacity_micromap)+(VK_KHR_device_group,VK_VERSION_1_1)The buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances
VUID-vkCopyMemoryToMicromapEXT-deferredOperation-03677NNoneexplicitvkCopyMemoryToMicromapEXT(VK_EXT_opacity_micromap)If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object
VUID-vkCopyMemoryToMicromapEXT-deferredOperation-03678NNoneexplicitvkCopyMemoryToMicromapEXT(VK_EXT_opacity_micromap)Any previous deferred operation that was associated with deferredOperation must be complete
VUID-vkCopyMemoryToMicromapEXT-deferredOperation-parameterYNoneimplicitvkCopyMemoryToMicromapEXT(VK_EXT_opacity_micromap)If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkCopyMemoryToMicromapEXT-deferredOperation-parentYNoneimplicitvkCopyMemoryToMicromapEXT(VK_EXT_opacity_micromap)If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCopyMemoryToMicromapEXT-device-parameterYNoneimplicitvkCopyMemoryToMicromapEXT(VK_EXT_opacity_micromap)device must be a valid VkDevice handle
VUID-vkCopyMemoryToMicromapEXT-micromapHostCommands-07566NNoneexplicitvkCopyMemoryToMicromapEXT(VK_EXT_opacity_micromap)The VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled
VUID-vkCopyMemoryToMicromapEXT-pInfo-07563NNoneexplicitvkCopyMemoryToMicromapEXT(VK_EXT_opacity_micromap)pInfo->src.hostAddress must be a valid host pointer
VUID-vkCopyMemoryToMicromapEXT-pInfo-07564NNoneexplicitvkCopyMemoryToMicromapEXT(VK_EXT_opacity_micromap)pInfo->src.hostAddress must be aligned to 16 bytes
VUID-vkCopyMemoryToMicromapEXT-pInfo-parameterYNoneimplicitvkCopyMemoryToMicromapEXT(VK_EXT_opacity_micromap)pInfo must be a valid pointer to a valid VkCopyMemoryToMicromapInfoEXT structure
VUID-vkCopyMicromapEXT-buffer-07558NNoneexplicitvkCopyMicromapEXT(VK_EXT_opacity_micromap)The buffer used to create pInfo->src must be bound to host-visible device memory
VUID-vkCopyMicromapEXT-buffer-07559NNoneexplicitvkCopyMicromapEXT(VK_EXT_opacity_micromap)The buffer used to create pInfo->dst must be bound to host-visible device memory
VUID-vkCopyMicromapEXT-buffer-07561NNoneexplicitvkCopyMicromapEXT(VK_EXT_opacity_micromap)+(VK_KHR_device_group,VK_VERSION_1_1)The buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances
VUID-vkCopyMicromapEXT-buffer-07562NNoneexplicitvkCopyMicromapEXT(VK_EXT_opacity_micromap)+(VK_KHR_device_group,VK_VERSION_1_1)The buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances
VUID-vkCopyMicromapEXT-deferredOperation-03677NNoneexplicitvkCopyMicromapEXT(VK_EXT_opacity_micromap)If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object
VUID-vkCopyMicromapEXT-deferredOperation-03678NNoneexplicitvkCopyMicromapEXT(VK_EXT_opacity_micromap)Any previous deferred operation that was associated with deferredOperation must be complete
VUID-vkCopyMicromapEXT-deferredOperation-parameterYNoneimplicitvkCopyMicromapEXT(VK_EXT_opacity_micromap)If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkCopyMicromapEXT-deferredOperation-parentYNoneimplicitvkCopyMicromapEXT(VK_EXT_opacity_micromap)If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCopyMicromapEXT-device-parameterYNoneimplicitvkCopyMicromapEXT(VK_EXT_opacity_micromap)device must be a valid VkDevice handle
VUID-vkCopyMicromapEXT-micromapHostCommands-07560NNoneexplicitvkCopyMicromapEXT(VK_EXT_opacity_micromap)The VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled
VUID-vkCopyMicromapEXT-pInfo-parameterYNoneimplicitvkCopyMicromapEXT(VK_EXT_opacity_micromap)pInfo must be a valid pointer to a valid VkCopyMicromapInfoEXT structure
VUID-vkCopyMicromapToMemoryEXT-buffer-07568NNoneexplicitvkCopyMicromapToMemoryEXT(VK_EXT_opacity_micromap)The buffer used to create pInfo->src must be bound to host-visible device memory
VUID-vkCopyMicromapToMemoryEXT-buffer-07572NNoneexplicitvkCopyMicromapToMemoryEXT(VK_EXT_opacity_micromap)+(VK_KHR_device_group,VK_VERSION_1_1)The buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances
VUID-vkCopyMicromapToMemoryEXT-deferredOperation-03677NNoneexplicitvkCopyMicromapToMemoryEXT(VK_EXT_opacity_micromap)If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object
VUID-vkCopyMicromapToMemoryEXT-deferredOperation-03678NNoneexplicitvkCopyMicromapToMemoryEXT(VK_EXT_opacity_micromap)Any previous deferred operation that was associated with deferredOperation must be complete
VUID-vkCopyMicromapToMemoryEXT-deferredOperation-parameterYNoneimplicitvkCopyMicromapToMemoryEXT(VK_EXT_opacity_micromap)If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkCopyMicromapToMemoryEXT-deferredOperation-parentYNoneimplicitvkCopyMicromapToMemoryEXT(VK_EXT_opacity_micromap)If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCopyMicromapToMemoryEXT-device-parameterYNoneimplicitvkCopyMicromapToMemoryEXT(VK_EXT_opacity_micromap)device must be a valid VkDevice handle
VUID-vkCopyMicromapToMemoryEXT-micromapHostCommands-07571NNoneexplicitvkCopyMicromapToMemoryEXT(VK_EXT_opacity_micromap)The VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled
VUID-vkCopyMicromapToMemoryEXT-pInfo-07569NNoneexplicitvkCopyMicromapToMemoryEXT(VK_EXT_opacity_micromap)pInfo->dst.hostAddress must be a valid host pointer
VUID-vkCopyMicromapToMemoryEXT-pInfo-07570NNoneexplicitvkCopyMicromapToMemoryEXT(VK_EXT_opacity_micromap)pInfo->dst.hostAddress must be aligned to 16 bytes
VUID-vkCopyMicromapToMemoryEXT-pInfo-parameterYNoneimplicitvkCopyMicromapToMemoryEXT(VK_EXT_opacity_micromap)pInfo must be a valid pointer to a valid VkCopyMicromapToMemoryInfoEXT structure
VUID-vkCreateAccelerationStructureKHR-accelerationStructure-03611YNoneexplicitvkCreateAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The accelerationStructure feature must be enabled
VUID-vkCreateAccelerationStructureKHR-device-03489NNoneexplicitvkCreateAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkCreateAccelerationStructureKHR-device-parameterYNoneimplicitvkCreateAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)device must be a valid VkDevice handle
VUID-vkCreateAccelerationStructureKHR-deviceAddress-03488YRayTracingValidateCreateAccelerationStructureKHRReplayFeatureexplicitvkCreateAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If VkAccelerationStructureCreateInfoKHR::deviceAddress is not zero, the accelerationStructureCaptureReplay feature must be enabled
VUID-vkCreateAccelerationStructureKHR-pAccelerationStructure-parameterYNoneimplicitvkCreateAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)pAccelerationStructure must be a valid pointer to a VkAccelerationStructureKHR handle
VUID-vkCreateAccelerationStructureKHR-pAllocator-parameterNNoneimplicitvkCreateAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateAccelerationStructureKHR-pCreateInfo-parameterYNoneimplicitvkCreateAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)pCreateInfo must be a valid pointer to a valid VkAccelerationStructureCreateInfoKHR structure
VUID-vkCreateAccelerationStructureNV-device-parameterYNoneimplicitvkCreateAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)device must be a valid VkDevice handle
VUID-vkCreateAccelerationStructureNV-pAccelerationStructure-parameterYNoneimplicitvkCreateAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)pAccelerationStructure must be a valid pointer to a VkAccelerationStructureNV handle
VUID-vkCreateAccelerationStructureNV-pAllocator-parameterNNoneimplicitvkCreateAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateAccelerationStructureNV-pCreateInfo-parameterYNoneimplicitvkCreateAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)pCreateInfo must be a valid pointer to a valid VkAccelerationStructureCreateInfoNV structure
VUID-vkCreateAndroidSurfaceKHR-instance-parameterYNoneimplicitvkCreateAndroidSurfaceKHR(VK_KHR_surface)+(VK_KHR_android_surface)instance must be a valid VkInstance handle
VUID-vkCreateAndroidSurfaceKHR-pAllocator-parameterNNoneimplicitvkCreateAndroidSurfaceKHR(VK_KHR_surface)+(VK_KHR_android_surface)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateAndroidSurfaceKHR-pCreateInfo-parameterYNoneimplicitvkCreateAndroidSurfaceKHR(VK_KHR_surface)+(VK_KHR_android_surface)pCreateInfo must be a valid pointer to a valid VkAndroidSurfaceCreateInfoKHR structure
VUID-vkCreateAndroidSurfaceKHR-pSurface-parameterYNoneimplicitvkCreateAndroidSurfaceKHR(VK_KHR_surface)+(VK_KHR_android_surface)pSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateBuffer-device-parameterYNoneimplicitvkCreateBuffercoredevice must be a valid VkDevice handle
VUID-vkCreateBuffer-flags-00911NNoneexplicitvkCreateBuffercoreIf the flags member of pCreateInfo includes VK_BUFFER_CREATE_SPARSE_BINDING_BIT, 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-pAllocator-parameterNNoneimplicitvkCreateBuffercoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateBuffer-pBuffer-parameterYNoneimplicitvkCreateBuffercorepBuffer must be a valid pointer to a VkBuffer handle
VUID-vkCreateBuffer-pCreateInfo-parameterYNoneimplicitvkCreateBuffercorepCreateInfo must be a valid pointer to a valid VkBufferCreateInfo structure
VUID-vkCreateBuffer-pNext-06387NNoneexplicitvkCreateBuffer(VK_FUCHSIA_buffer_collection)If 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-parameterYNoneimplicitvkCreateBufferCollectionFUCHSIA(VK_FUCHSIA_buffer_collection)device must be a valid VkDevice handle
VUID-vkCreateBufferCollectionFUCHSIA-pAllocator-parameterNNoneimplicitvkCreateBufferCollectionFUCHSIA(VK_FUCHSIA_buffer_collection)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateBufferCollectionFUCHSIA-pCollection-parameterYNoneimplicitvkCreateBufferCollectionFUCHSIA(VK_FUCHSIA_buffer_collection)pCollection must be a valid pointer to a VkBufferCollectionFUCHSIA handle
VUID-vkCreateBufferCollectionFUCHSIA-pCreateInfo-parameterYNoneimplicitvkCreateBufferCollectionFUCHSIA(VK_FUCHSIA_buffer_collection)pCreateInfo must be a valid pointer to a valid VkBufferCollectionCreateInfoFUCHSIA structure
VUID-vkCreateBufferView-device-parameterYNoneimplicitvkCreateBufferViewcoredevice must be a valid VkDevice handle
VUID-vkCreateBufferView-pAllocator-parameterNNoneimplicitvkCreateBufferViewcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateBufferView-pCreateInfo-parameterYNoneimplicitvkCreateBufferViewcorepCreateInfo must be a valid pointer to a valid VkBufferViewCreateInfo structure
VUID-vkCreateBufferView-pView-parameterYNoneimplicitvkCreateBufferViewcorepView must be a valid pointer to a VkBufferView handle
VUID-vkCreateCommandPool-device-parameterYNoneimplicitvkCreateCommandPoolcoredevice must be a valid VkDevice handle
VUID-vkCreateCommandPool-pAllocator-parameterNNoneimplicitvkCreateCommandPoolcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateCommandPool-pCommandPool-parameterYNoneimplicitvkCreateCommandPoolcorepCommandPool must be a valid pointer to a VkCommandPool handle
VUID-vkCreateCommandPool-pCreateInfo-parameterYNoneimplicitvkCreateCommandPoolcorepCreateInfo must be a valid pointer to a valid VkCommandPoolCreateInfo structure
VUID-vkCreateCommandPool-queueFamilyIndex-01937YNoneexplicitvkCreateCommandPoolcorepCreateInfo->queueFamilyIndex must be the index of a queue family available in the logical device device
VUID-vkCreateComputePipelines-createInfoCount-arraylengthYNoneimplicitvkCreateComputePipelinescorecreateInfoCount must be greater than 0
VUID-vkCreateComputePipelines-device-parameterYNoneimplicitvkCreateComputePipelinescoredevice must be a valid VkDevice handle
VUID-vkCreateComputePipelines-flags-00695NNoneexplicitvkCreateComputePipelinescoreIf the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element
VUID-vkCreateComputePipelines-flags-00696NNoneexplicitvkCreateComputePipelinescoreIf the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set
VUID-vkCreateComputePipelines-pAllocator-parameterNNoneimplicitvkCreateComputePipelinescoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateComputePipelines-pCreateInfos-parameterYNoneimplicitvkCreateComputePipelinescorepCreateInfos must be a valid pointer to an array of createInfoCount valid VkComputePipelineCreateInfo structures
VUID-vkCreateComputePipelines-pPipelines-parameterYNoneimplicitvkCreateComputePipelinescorepPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles
VUID-vkCreateComputePipelines-pipelineCache-02873NNoneexplicitvkCreateComputePipelines(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized
VUID-vkCreateComputePipelines-pipelineCache-parameterYNoneimplicitvkCreateComputePipelinescoreIf pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle
VUID-vkCreateComputePipelines-pipelineCache-parentYNoneimplicitvkCreateComputePipelinescoreIf pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCreateCuFunctionNVX-device-parameterYNoneimplicitvkCreateCuFunctionNVX(VK_NVX_binary_import)device must be a valid VkDevice handle
VUID-vkCreateCuFunctionNVX-pAllocator-parameterNNoneimplicitvkCreateCuFunctionNVX(VK_NVX_binary_import)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateCuFunctionNVX-pCreateInfo-parameterYNoneimplicitvkCreateCuFunctionNVX(VK_NVX_binary_import)pCreateInfo must be a valid pointer to a valid VkCuFunctionCreateInfoNVX structure
VUID-vkCreateCuFunctionNVX-pFunction-parameterYNoneimplicitvkCreateCuFunctionNVX(VK_NVX_binary_import)pFunction must be a valid pointer to a VkCuFunctionNVX handle
VUID-vkCreateCuModuleNVX-device-parameterYNoneimplicitvkCreateCuModuleNVX(VK_NVX_binary_import)device must be a valid VkDevice handle
VUID-vkCreateCuModuleNVX-pAllocator-parameterNNoneimplicitvkCreateCuModuleNVX(VK_NVX_binary_import)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateCuModuleNVX-pCreateInfo-parameterYNoneimplicitvkCreateCuModuleNVX(VK_NVX_binary_import)pCreateInfo must be a valid pointer to a valid VkCuModuleCreateInfoNVX structure
VUID-vkCreateCuModuleNVX-pModule-parameterYNoneimplicitvkCreateCuModuleNVX(VK_NVX_binary_import)pModule must be a valid pointer to a VkCuModuleNVX handle
VUID-vkCreateDebugReportCallbackEXT-instance-parameterYNoneimplicitvkCreateDebugReportCallbackEXT(VK_EXT_debug_report)instance must be a valid VkInstance handle
VUID-vkCreateDebugReportCallbackEXT-pAllocator-parameterNNoneimplicitvkCreateDebugReportCallbackEXT(VK_EXT_debug_report)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDebugReportCallbackEXT-pCallback-parameterYNoneimplicitvkCreateDebugReportCallbackEXT(VK_EXT_debug_report)pCallback must be a valid pointer to a VkDebugReportCallbackEXT handle
VUID-vkCreateDebugReportCallbackEXT-pCreateInfo-parameterYNoneimplicitvkCreateDebugReportCallbackEXT(VK_EXT_debug_report)pCreateInfo must be a valid pointer to a valid VkDebugReportCallbackCreateInfoEXT structure
VUID-vkCreateDebugUtilsMessengerEXT-instance-parameterYNoneimplicitvkCreateDebugUtilsMessengerEXT(VK_EXT_debug_utils)instance must be a valid VkInstance handle
VUID-vkCreateDebugUtilsMessengerEXT-pAllocator-parameterNNoneimplicitvkCreateDebugUtilsMessengerEXT(VK_EXT_debug_utils)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDebugUtilsMessengerEXT-pCreateInfo-parameterYNoneimplicitvkCreateDebugUtilsMessengerEXT(VK_EXT_debug_utils)pCreateInfo must be a valid pointer to a valid VkDebugUtilsMessengerCreateInfoEXT structure
VUID-vkCreateDebugUtilsMessengerEXT-pMessenger-parameterYNoneimplicitvkCreateDebugUtilsMessengerEXT(VK_EXT_debug_utils)pMessenger must be a valid pointer to a VkDebugUtilsMessengerEXT handle
VUID-vkCreateDeferredOperationKHR-device-parameterYNoneimplicitvkCreateDeferredOperationKHR(VK_KHR_deferred_host_operations)device must be a valid VkDevice handle
VUID-vkCreateDeferredOperationKHR-pAllocator-parameterNNoneimplicitvkCreateDeferredOperationKHR(VK_KHR_deferred_host_operations)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDeferredOperationKHR-pDeferredOperation-parameterYNoneimplicitvkCreateDeferredOperationKHR(VK_KHR_deferred_host_operations)pDeferredOperation must be a valid pointer to a VkDeferredOperationKHR handle
VUID-vkCreateDescriptorPool-device-parameterYNoneimplicitvkCreateDescriptorPoolcoredevice must be a valid VkDevice handle
VUID-vkCreateDescriptorPool-pAllocator-parameterNNoneimplicitvkCreateDescriptorPoolcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDescriptorPool-pCreateInfo-parameterYNoneimplicitvkCreateDescriptorPoolcorepCreateInfo must be a valid pointer to a valid VkDescriptorPoolCreateInfo structure
VUID-vkCreateDescriptorPool-pDescriptorPool-parameterYNoneimplicitvkCreateDescriptorPoolcorepDescriptorPool must be a valid pointer to a VkDescriptorPool handle
VUID-vkCreateDescriptorSetLayout-device-parameterYNoneimplicitvkCreateDescriptorSetLayoutcoredevice must be a valid VkDevice handle
VUID-vkCreateDescriptorSetLayout-pAllocator-parameterNNoneimplicitvkCreateDescriptorSetLayoutcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDescriptorSetLayout-pCreateInfo-parameterYNoneimplicitvkCreateDescriptorSetLayoutcorepCreateInfo must be a valid pointer to a valid VkDescriptorSetLayoutCreateInfo structure
VUID-vkCreateDescriptorSetLayout-pSetLayout-parameterYNoneimplicitvkCreateDescriptorSetLayoutcorepSetLayout must be a valid pointer to a VkDescriptorSetLayout handle
VUID-vkCreateDescriptorUpdateTemplate-device-parameterYNoneimplicitvkCreateDescriptorUpdateTemplate(VK_VERSION_1_1,VK_KHR_descriptor_update_template)device must be a valid VkDevice handle
VUID-vkCreateDescriptorUpdateTemplate-pAllocator-parameterNNoneimplicitvkCreateDescriptorUpdateTemplate(VK_VERSION_1_1,VK_KHR_descriptor_update_template)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDescriptorUpdateTemplate-pCreateInfo-parameterYNoneimplicitvkCreateDescriptorUpdateTemplate(VK_VERSION_1_1,VK_KHR_descriptor_update_template)pCreateInfo must be a valid pointer to a valid VkDescriptorUpdateTemplateCreateInfo structure
VUID-vkCreateDescriptorUpdateTemplate-pDescriptorUpdateTemplate-parameterYNoneimplicitvkCreateDescriptorUpdateTemplate(VK_VERSION_1_1,VK_KHR_descriptor_update_template)pDescriptorUpdateTemplate must be a valid pointer to a VkDescriptorUpdateTemplate handle
VUID-vkCreateDevice-pAllocator-parameterNNoneimplicitvkCreateDevicecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDevice-pCreateInfo-parameterYNoneimplicitvkCreateDevicecorepCreateInfo must be a valid pointer to a valid VkDeviceCreateInfo structure
VUID-vkCreateDevice-pDevice-parameterYNoneimplicitvkCreateDevicecorepDevice must be a valid pointer to a VkDevice handle
VUID-vkCreateDevice-physicalDevice-parameterYNoneimplicitvkCreateDevicecorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkCreateDevice-ppEnabledExtensionNames-01387YExtensionNotEnabledexplicitvkCreateDevicecoreAll required device extensions for each extension in the VkDeviceCreateInfo::ppEnabledExtensionNames list must also be present in that list
VUID-vkCreateDirectFBSurfaceEXT-instance-parameterYNoneimplicitvkCreateDirectFBSurfaceEXT(VK_KHR_surface)+(VK_EXT_directfb_surface)instance must be a valid VkInstance handle
VUID-vkCreateDirectFBSurfaceEXT-pAllocator-parameterNNoneimplicitvkCreateDirectFBSurfaceEXT(VK_KHR_surface)+(VK_EXT_directfb_surface)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDirectFBSurfaceEXT-pCreateInfo-parameterYNoneimplicitvkCreateDirectFBSurfaceEXT(VK_KHR_surface)+(VK_EXT_directfb_surface)pCreateInfo must be a valid pointer to a valid VkDirectFBSurfaceCreateInfoEXT structure
VUID-vkCreateDirectFBSurfaceEXT-pSurface-parameterYNoneimplicitvkCreateDirectFBSurfaceEXT(VK_KHR_surface)+(VK_EXT_directfb_surface)pSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateDisplayModeKHR-display-parameterYNoneimplicitvkCreateDisplayModeKHR(VK_KHR_surface)+(VK_KHR_display)display must be a valid VkDisplayKHR handle
VUID-vkCreateDisplayModeKHR-display-parentNNoneimplicitvkCreateDisplayModeKHR(VK_KHR_surface)+(VK_KHR_display)display must have been created, allocated, or retrieved from physicalDevice
VUID-vkCreateDisplayModeKHR-pAllocator-parameterNNoneimplicitvkCreateDisplayModeKHR(VK_KHR_surface)+(VK_KHR_display)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDisplayModeKHR-pCreateInfo-parameterYNoneimplicitvkCreateDisplayModeKHR(VK_KHR_surface)+(VK_KHR_display)pCreateInfo must be a valid pointer to a valid VkDisplayModeCreateInfoKHR structure
VUID-vkCreateDisplayModeKHR-pMode-parameterYNoneimplicitvkCreateDisplayModeKHR(VK_KHR_surface)+(VK_KHR_display)pMode must be a valid pointer to a VkDisplayModeKHR handle
VUID-vkCreateDisplayModeKHR-physicalDevice-parameterYNoneimplicitvkCreateDisplayModeKHR(VK_KHR_surface)+(VK_KHR_display)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkCreateDisplayPlaneSurfaceKHR-instance-parameterYNoneimplicitvkCreateDisplayPlaneSurfaceKHR(VK_KHR_surface)+(VK_KHR_display)instance must be a valid VkInstance handle
VUID-vkCreateDisplayPlaneSurfaceKHR-pAllocator-parameterNNoneimplicitvkCreateDisplayPlaneSurfaceKHR(VK_KHR_surface)+(VK_KHR_display)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateDisplayPlaneSurfaceKHR-pCreateInfo-parameterYNoneimplicitvkCreateDisplayPlaneSurfaceKHR(VK_KHR_surface)+(VK_KHR_display)pCreateInfo must be a valid pointer to a valid VkDisplaySurfaceCreateInfoKHR structure
VUID-vkCreateDisplayPlaneSurfaceKHR-pSurface-parameterYNoneimplicitvkCreateDisplayPlaneSurfaceKHR(VK_KHR_surface)+(VK_KHR_display)pSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateEvent-device-parameterYNoneimplicitvkCreateEventcoredevice must be a valid VkDevice handle
VUID-vkCreateEvent-events-04468YInvalidDepthStencilStateForReadOnlyLayoutexplicitvkCreateEvent(VK_KHR_portability_subset)If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::events is VK_FALSE, then the implementation does not support events, and vkCreateEvent must not be used
VUID-vkCreateEvent-pAllocator-parameterNNoneimplicitvkCreateEventcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateEvent-pCreateInfo-parameterYNoneimplicitvkCreateEventcorepCreateInfo must be a valid pointer to a valid VkEventCreateInfo structure
VUID-vkCreateEvent-pEvent-parameterYNoneimplicitvkCreateEventcorepEvent must be a valid pointer to a VkEvent handle
VUID-vkCreateFence-device-parameterYNoneimplicitvkCreateFencecoredevice must be a valid VkDevice handle
VUID-vkCreateFence-pAllocator-parameterNNoneimplicitvkCreateFencecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateFence-pCreateInfo-parameterYNoneimplicitvkCreateFencecorepCreateInfo must be a valid pointer to a valid VkFenceCreateInfo structure
VUID-vkCreateFence-pFence-parameterYNoneimplicitvkCreateFencecorepFence must be a valid pointer to a VkFence handle
VUID-vkCreateFramebuffer-device-parameterYNoneimplicitvkCreateFramebuffercoredevice must be a valid VkDevice handle
VUID-vkCreateFramebuffer-pAllocator-parameterNNoneimplicitvkCreateFramebuffercoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateFramebuffer-pCreateInfo-02777NNoneexplicitvkCreateFramebuffercoreIf pCreateInfo->flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and attachmentCount is not 0, each element of pCreateInfo->pAttachments must have been created on device
VUID-vkCreateFramebuffer-pCreateInfo-parameterYNoneimplicitvkCreateFramebuffercorepCreateInfo must be a valid pointer to a valid VkFramebufferCreateInfo structure
VUID-vkCreateFramebuffer-pFramebuffer-parameterYNoneimplicitvkCreateFramebuffercorepFramebuffer must be a valid pointer to a VkFramebuffer handle
VUID-vkCreateGraphicsPipelines-createInfoCount-arraylengthYNoneimplicitvkCreateGraphicsPipelinescorecreateInfoCount must be greater than 0
VUID-vkCreateGraphicsPipelines-device-parameterYNoneimplicitvkCreateGraphicsPipelinescoredevice must be a valid VkDevice handle
VUID-vkCreateGraphicsPipelines-flags-00720YNoneexplicitvkCreateGraphicsPipelinescoreIf the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element
VUID-vkCreateGraphicsPipelines-flags-00721YNoneexplicitvkCreateGraphicsPipelinescoreIf the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set
VUID-vkCreateGraphicsPipelines-pAllocator-parameterNNoneimplicitvkCreateGraphicsPipelinescoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateGraphicsPipelines-pCreateInfos-parameterYNoneimplicitvkCreateGraphicsPipelinescorepCreateInfos must be a valid pointer to an array of createInfoCount valid VkGraphicsPipelineCreateInfo structures
VUID-vkCreateGraphicsPipelines-pPipelines-parameterYNoneimplicitvkCreateGraphicsPipelinescorepPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles
VUID-vkCreateGraphicsPipelines-pipelineCache-02876NNoneexplicitvkCreateGraphicsPipelines(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized
VUID-vkCreateGraphicsPipelines-pipelineCache-parameterYNoneimplicitvkCreateGraphicsPipelinescoreIf pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle
VUID-vkCreateGraphicsPipelines-pipelineCache-parentYNoneimplicitvkCreateGraphicsPipelinescoreIf pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCreateHeadlessSurfaceEXT-instance-parameterYNoneimplicitvkCreateHeadlessSurfaceEXT(VK_KHR_surface)+(VK_EXT_headless_surface)instance must be a valid VkInstance handle
VUID-vkCreateHeadlessSurfaceEXT-pAllocator-parameterNNoneimplicitvkCreateHeadlessSurfaceEXT(VK_KHR_surface)+(VK_EXT_headless_surface)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateHeadlessSurfaceEXT-pCreateInfo-parameterYNoneimplicitvkCreateHeadlessSurfaceEXT(VK_KHR_surface)+(VK_EXT_headless_surface)pCreateInfo must be a valid pointer to a valid VkHeadlessSurfaceCreateInfoEXT structure
VUID-vkCreateHeadlessSurfaceEXT-pSurface-parameterYNoneimplicitvkCreateHeadlessSurfaceEXT(VK_KHR_surface)+(VK_EXT_headless_surface)pSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateIOSSurfaceMVK-instance-parameterYNoneimplicitvkCreateIOSSurfaceMVK(VK_KHR_surface)+(VK_MVK_ios_surface)instance must be a valid VkInstance handle
VUID-vkCreateIOSSurfaceMVK-pAllocator-parameterNNoneimplicitvkCreateIOSSurfaceMVK(VK_KHR_surface)+(VK_MVK_ios_surface)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateIOSSurfaceMVK-pCreateInfo-parameterYNoneimplicitvkCreateIOSSurfaceMVK(VK_KHR_surface)+(VK_MVK_ios_surface)pCreateInfo must be a valid pointer to a valid VkIOSSurfaceCreateInfoMVK structure
VUID-vkCreateIOSSurfaceMVK-pSurface-parameterYNoneimplicitvkCreateIOSSurfaceMVK(VK_KHR_surface)+(VK_MVK_ios_surface)pSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateImage-device-parameterYNoneimplicitvkCreateImagecoredevice must be a valid VkDevice handle
VUID-vkCreateImage-flags-00939NNoneexplicitvkCreateImagecoreIf the flags member of pCreateInfo includes VK_IMAGE_CREATE_SPARSE_BINDING_BIT, 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-pAllocator-parameterNNoneimplicitvkCreateImagecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateImage-pCreateInfo-parameterYRequiredParameterimplicitvkCreateImagecorepCreateInfo must be a valid pointer to a valid VkImageCreateInfo structure
VUID-vkCreateImage-pImage-parameterYNoneimplicitvkCreateImagecorepImage must be a valid pointer to a VkImage handle
VUID-vkCreateImage-pNext-06389NNoneexplicitvkCreateImage(VK_FUCHSIA_buffer_collection)If 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-parameterYNoneimplicitvkCreateImagePipeSurfaceFUCHSIA(VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface)instance must be a valid VkInstance handle
VUID-vkCreateImagePipeSurfaceFUCHSIA-pAllocator-parameterNNoneimplicitvkCreateImagePipeSurfaceFUCHSIA(VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateImagePipeSurfaceFUCHSIA-pCreateInfo-parameterYNoneimplicitvkCreateImagePipeSurfaceFUCHSIA(VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface)pCreateInfo must be a valid pointer to a valid VkImagePipeSurfaceCreateInfoFUCHSIA structure
VUID-vkCreateImagePipeSurfaceFUCHSIA-pSurface-parameterYNoneimplicitvkCreateImagePipeSurfaceFUCHSIA(VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface)pSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateImageView-device-parameterYNoneimplicitvkCreateImageViewcoredevice must be a valid VkDevice handle
VUID-vkCreateImageView-pAllocator-parameterNNoneimplicitvkCreateImageViewcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateImageView-pCreateInfo-parameterYNoneimplicitvkCreateImageViewcorepCreateInfo must be a valid pointer to a valid VkImageViewCreateInfo structure
VUID-vkCreateImageView-pView-parameterYNoneimplicitvkCreateImageViewcorepView must be a valid pointer to a VkImageView handle
VUID-vkCreateIndirectCommandsLayoutNV-device-parameterYNoneimplicitvkCreateIndirectCommandsLayoutNV(VK_NV_device_generated_commands)device must be a valid VkDevice handle
VUID-vkCreateIndirectCommandsLayoutNV-deviceGeneratedCommands-02929NNoneexplicitvkCreateIndirectCommandsLayoutNV(VK_NV_device_generated_commands)The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled
VUID-vkCreateIndirectCommandsLayoutNV-pAllocator-parameterNNoneimplicitvkCreateIndirectCommandsLayoutNV(VK_NV_device_generated_commands)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateIndirectCommandsLayoutNV-pCreateInfo-parameterYNoneimplicitvkCreateIndirectCommandsLayoutNV(VK_NV_device_generated_commands)pCreateInfo must be a valid pointer to a valid VkIndirectCommandsLayoutCreateInfoNV structure
VUID-vkCreateIndirectCommandsLayoutNV-pIndirectCommandsLayout-parameterYNoneimplicitvkCreateIndirectCommandsLayoutNV(VK_NV_device_generated_commands)pIndirectCommandsLayout must be a valid pointer to a VkIndirectCommandsLayoutNV handle
VUID-vkCreateInstance-pAllocator-parameterNNoneimplicitvkCreateInstancecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateInstance-pCreateInfo-parameterYNoneimplicitvkCreateInstancecorepCreateInfo must be a valid pointer to a valid VkInstanceCreateInfo structure
VUID-vkCreateInstance-pInstance-parameterYNoneimplicitvkCreateInstancecorepInstance must be a valid pointer to a VkInstance handle
VUID-vkCreateInstance-ppEnabledExtensionNames-01388YInstanceExtensionDependenciesexplicitvkCreateInstancecoreAll required extensions for each extension in the VkInstanceCreateInfo::ppEnabledExtensionNames list must also be present in that list
VUID-vkCreateMacOSSurfaceMVK-instance-parameterYNoneimplicitvkCreateMacOSSurfaceMVK(VK_KHR_surface)+(VK_MVK_macos_surface)instance must be a valid VkInstance handle
VUID-vkCreateMacOSSurfaceMVK-pAllocator-parameterNNoneimplicitvkCreateMacOSSurfaceMVK(VK_KHR_surface)+(VK_MVK_macos_surface)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateMacOSSurfaceMVK-pCreateInfo-parameterYNoneimplicitvkCreateMacOSSurfaceMVK(VK_KHR_surface)+(VK_MVK_macos_surface)pCreateInfo must be a valid pointer to a valid VkMacOSSurfaceCreateInfoMVK structure
VUID-vkCreateMacOSSurfaceMVK-pSurface-parameterYNoneimplicitvkCreateMacOSSurfaceMVK(VK_KHR_surface)+(VK_MVK_macos_surface)pSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateMetalSurfaceEXT-instance-parameterYNoneimplicitvkCreateMetalSurfaceEXT(VK_KHR_surface)+(VK_EXT_metal_surface)instance must be a valid VkInstance handle
VUID-vkCreateMetalSurfaceEXT-pAllocator-parameterNNoneimplicitvkCreateMetalSurfaceEXT(VK_KHR_surface)+(VK_EXT_metal_surface)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateMetalSurfaceEXT-pCreateInfo-parameterYNoneimplicitvkCreateMetalSurfaceEXT(VK_KHR_surface)+(VK_EXT_metal_surface)pCreateInfo must be a valid pointer to a valid VkMetalSurfaceCreateInfoEXT structure
VUID-vkCreateMetalSurfaceEXT-pSurface-parameterYNoneimplicitvkCreateMetalSurfaceEXT(VK_KHR_surface)+(VK_EXT_metal_surface)pSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateMicromapEXT-device-07432NNoneexplicitvkCreateMicromapEXT(VK_EXT_opacity_micromap)If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkCreateMicromapEXT-device-parameterYNoneimplicitvkCreateMicromapEXT(VK_EXT_opacity_micromap)device must be a valid VkDevice handle
VUID-vkCreateMicromapEXT-deviceAddress-07431NNoneexplicitvkCreateMicromapEXT(VK_EXT_opacity_micromap)If VkMicromapCreateInfoEXT::deviceAddress is not zero, the micromapCaptureReplay feature must be enabled
VUID-vkCreateMicromapEXT-micromap-07430NNoneexplicitvkCreateMicromapEXT(VK_EXT_opacity_micromap)The micromap feature must be enabled
VUID-vkCreateMicromapEXT-pAllocator-parameterNNoneimplicitvkCreateMicromapEXT(VK_EXT_opacity_micromap)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateMicromapEXT-pCreateInfo-parameterYNoneimplicitvkCreateMicromapEXT(VK_EXT_opacity_micromap)pCreateInfo must be a valid pointer to a valid VkMicromapCreateInfoEXT structure
VUID-vkCreateMicromapEXT-pMicromap-parameterYNoneimplicitvkCreateMicromapEXT(VK_EXT_opacity_micromap)pMicromap must be a valid pointer to a VkMicromapEXT handle
VUID-vkCreateOpticalFlowSessionNV-device-parameterYNoneimplicitvkCreateOpticalFlowSessionNV(VK_NV_optical_flow)device must be a valid VkDevice handle
VUID-vkCreateOpticalFlowSessionNV-pAllocator-parameterNNoneimplicitvkCreateOpticalFlowSessionNV(VK_NV_optical_flow)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateOpticalFlowSessionNV-pCreateInfo-parameterYNoneimplicitvkCreateOpticalFlowSessionNV(VK_NV_optical_flow)pCreateInfo must be a valid pointer to a valid VkOpticalFlowSessionCreateInfoNV structure
VUID-vkCreateOpticalFlowSessionNV-pSession-parameterYNoneimplicitvkCreateOpticalFlowSessionNV(VK_NV_optical_flow)pSession must be a valid pointer to a VkOpticalFlowSessionNV handle
VUID-vkCreatePipelineCache-device-parameterYNoneimplicitvkCreatePipelineCachecoredevice must be a valid VkDevice handle
VUID-vkCreatePipelineCache-pAllocator-parameterNNoneimplicitvkCreatePipelineCachecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreatePipelineCache-pCreateInfo-parameterYNoneimplicitvkCreatePipelineCachecorepCreateInfo must be a valid pointer to a valid VkPipelineCacheCreateInfo structure
VUID-vkCreatePipelineCache-pPipelineCache-parameterYNoneimplicitvkCreatePipelineCachecorepPipelineCache must be a valid pointer to a VkPipelineCache handle
VUID-vkCreatePipelineLayout-device-parameterYNoneimplicitvkCreatePipelineLayoutcoredevice must be a valid VkDevice handle
VUID-vkCreatePipelineLayout-pAllocator-parameterNNoneimplicitvkCreatePipelineLayoutcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreatePipelineLayout-pCreateInfo-parameterYNoneimplicitvkCreatePipelineLayoutcorepCreateInfo must be a valid pointer to a valid VkPipelineLayoutCreateInfo structure
VUID-vkCreatePipelineLayout-pPipelineLayout-parameterYNoneimplicitvkCreatePipelineLayoutcorepPipelineLayout must be a valid pointer to a VkPipelineLayout handle
VUID-vkCreatePrivateDataSlot-device-parameterYNoneimplicitvkCreatePrivateDataSlot(VK_VERSION_1_3,VK_EXT_private_data)device must be a valid VkDevice handle
VUID-vkCreatePrivateDataSlot-pAllocator-parameterNNoneimplicitvkCreatePrivateDataSlot(VK_VERSION_1_3,VK_EXT_private_data)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreatePrivateDataSlot-pCreateInfo-parameterYNoneimplicitvkCreatePrivateDataSlot(VK_VERSION_1_3,VK_EXT_private_data)pCreateInfo must be a valid pointer to a valid VkPrivateDataSlotCreateInfo structure
VUID-vkCreatePrivateDataSlot-pPrivateDataSlot-parameterYNoneimplicitvkCreatePrivateDataSlot(VK_VERSION_1_3,VK_EXT_private_data)pPrivateDataSlot must be a valid pointer to a VkPrivateDataSlot handle
VUID-vkCreatePrivateDataSlot-privateData-04564YPrivateDataFeatureexplicitvkCreatePrivateDataSlot(VK_VERSION_1_3,VK_EXT_private_data)The privateData feature must be enabled
VUID-vkCreateQueryPool-device-parameterYNoneimplicitvkCreateQueryPoolcoredevice must be a valid VkDevice handle
VUID-vkCreateQueryPool-pAllocator-parameterNNoneimplicitvkCreateQueryPoolcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateQueryPool-pCreateInfo-parameterYNoneimplicitvkCreateQueryPoolcorepCreateInfo must be a valid pointer to a valid VkQueryPoolCreateInfo structure
VUID-vkCreateQueryPool-pQueryPool-parameterYNoneimplicitvkCreateQueryPoolcorepQueryPool must be a valid pointer to a VkQueryPool handle
VUID-vkCreateRayTracingPipelinesKHR-createInfoCount-arraylengthYNoneimplicitvkCreateRayTracingPipelinesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)createInfoCount must be greater than 0
VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03587YNoneexplicitvkCreateRayTracingPipelinesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)+(VK_KHR_deferred_host_operations)If 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-03677NNoneexplicitvkCreateRayTracingPipelinesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object
VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03678NNoneexplicitvkCreateRayTracingPipelinesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)Any previous deferred operation that was associated with deferredOperation must be complete
VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-parameterYNoneimplicitvkCreateRayTracingPipelinesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle
VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-parentYNoneimplicitvkCreateRayTracingPipelinesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCreateRayTracingPipelinesKHR-device-parameterYNoneimplicitvkCreateRayTracingPipelinesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)device must be a valid VkDevice handle
VUID-vkCreateRayTracingPipelinesKHR-flags-03415YRayTracingPipelineCreateInfoKHRexplicitvkCreateRayTracingPipelinesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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-03416YNoneexplicitvkCreateRayTracingPipelinesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If 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-03816YRayTracingPipelineCreateInfoKHRexplicitvkCreateRayTracingPipelinesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1,VK_KHR_device_group)flags must not contain the VK_PIPELINE_CREATE_DISPATCH_BASE flag
VUID-vkCreateRayTracingPipelinesKHR-pAllocator-parameterNNoneimplicitvkCreateRayTracingPipelinesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateRayTracingPipelinesKHR-pCreateInfos-parameterYNoneimplicitvkCreateRayTracingPipelinesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pCreateInfos must be a valid pointer to an array of createInfoCount valid VkRayTracingPipelineCreateInfoKHR structures
VUID-vkCreateRayTracingPipelinesKHR-pPipelines-parameterYNoneimplicitvkCreateRayTracingPipelinesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles
VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-02903NNoneexplicitvkCreateRayTracingPipelinesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized
VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-parameterYNoneimplicitvkCreateRayTracingPipelinesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle
VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-parentYNoneimplicitvkCreateRayTracingPipelinesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCreateRayTracingPipelinesKHR-rayTracingPipeline-03586YNoneexplicitvkCreateRayTracingPipelinesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The rayTracingPipeline feature must be enabled
VUID-vkCreateRayTracingPipelinesNV-createInfoCount-arraylengthYNVRayTracingValidatePipelineimplicitvkCreateRayTracingPipelinesNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)createInfoCount must be greater than 0
VUID-vkCreateRayTracingPipelinesNV-device-parameterYNoneimplicitvkCreateRayTracingPipelinesNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)device must be a valid VkDevice handle
VUID-vkCreateRayTracingPipelinesNV-flags-03415YNVRayTracingValidatePipelineexplicitvkCreateRayTracingPipelinesNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If 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-03416YNoneexplicitvkCreateRayTracingPipelinesNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If 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-03816YNoneexplicitvkCreateRayTracingPipelinesNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_1,VK_KHR_device_group)flags must not contain the VK_PIPELINE_CREATE_DISPATCH_BASE flag
VUID-vkCreateRayTracingPipelinesNV-pAllocator-parameterNNoneimplicitvkCreateRayTracingPipelinesNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateRayTracingPipelinesNV-pCreateInfos-parameterYNoneimplicitvkCreateRayTracingPipelinesNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)pCreateInfos must be a valid pointer to an array of createInfoCount valid VkRayTracingPipelineCreateInfoNV structures
VUID-vkCreateRayTracingPipelinesNV-pPipelines-parameterYNoneimplicitvkCreateRayTracingPipelinesNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles
VUID-vkCreateRayTracingPipelinesNV-pipelineCache-02903NNoneexplicitvkCreateRayTracingPipelinesNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, host access to pipelineCache must be externally synchronized
VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parameterYNoneimplicitvkCreateRayTracingPipelinesNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle
VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parentYNoneimplicitvkCreateRayTracingPipelinesNV(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkCreateRenderPass-device-parameterYNoneimplicitvkCreateRenderPasscoredevice must be a valid VkDevice handle
VUID-vkCreateRenderPass-pAllocator-parameterNNoneimplicitvkCreateRenderPasscoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateRenderPass-pCreateInfo-parameterYRequiredParameterimplicitvkCreateRenderPasscorepCreateInfo must be a valid pointer to a valid VkRenderPassCreateInfo structure
VUID-vkCreateRenderPass-pRenderPass-parameterYNoneimplicitvkCreateRenderPasscorepRenderPass must be a valid pointer to a VkRenderPass handle
VUID-vkCreateRenderPass2-device-parameterYNoneimplicitvkCreateRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)device must be a valid VkDevice handle
VUID-vkCreateRenderPass2-pAllocator-parameterNNoneimplicitvkCreateRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateRenderPass2-pCreateInfo-parameterYNoneimplicitvkCreateRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)pCreateInfo must be a valid pointer to a valid VkRenderPassCreateInfo2 structure
VUID-vkCreateRenderPass2-pRenderPass-parameterYNoneimplicitvkCreateRenderPass2(VK_VERSION_1_2,VK_KHR_create_renderpass2)pRenderPass must be a valid pointer to a VkRenderPass handle
VUID-vkCreateSampler-device-parameterYNoneimplicitvkCreateSamplercoredevice must be a valid VkDevice handle
VUID-vkCreateSampler-maxSamplerAllocationCount-04110YExceedSamplerAllocationCount, CustomBorderColorexplicitvkCreateSamplercoreThere must be less than VkPhysicalDeviceLimits::maxSamplerAllocationCount VkSampler objects currently created on the device
VUID-vkCreateSampler-pAllocator-parameterNNoneimplicitvkCreateSamplercoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateSampler-pCreateInfo-parameterYNoneimplicitvkCreateSamplercorepCreateInfo must be a valid pointer to a valid VkSamplerCreateInfo structure
VUID-vkCreateSampler-pSampler-parameterYNoneimplicitvkCreateSamplercorepSampler must be a valid pointer to a VkSampler handle
VUID-vkCreateSamplerYcbcrConversion-None-01648YCreateSamplerYcbcrConversionEnableexplicitvkCreateSamplerYcbcrConversion(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)The samplerYcbcrConversion feature must be enabled
VUID-vkCreateSamplerYcbcrConversion-device-parameterYNoneimplicitvkCreateSamplerYcbcrConversion(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)device must be a valid VkDevice handle
VUID-vkCreateSamplerYcbcrConversion-pAllocator-parameterNNoneimplicitvkCreateSamplerYcbcrConversion(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateSamplerYcbcrConversion-pCreateInfo-parameterYNoneimplicitvkCreateSamplerYcbcrConversion(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)pCreateInfo must be a valid pointer to a valid VkSamplerYcbcrConversionCreateInfo structure
VUID-vkCreateSamplerYcbcrConversion-pYcbcrConversion-parameterYNoneimplicitvkCreateSamplerYcbcrConversion(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)pYcbcrConversion must be a valid pointer to a VkSamplerYcbcrConversion handle
VUID-vkCreateScreenSurfaceQNX-instance-parameterYNoneimplicitvkCreateScreenSurfaceQNX(VK_KHR_surface)+(VK_QNX_screen_surface)instance must be a valid VkInstance handle
VUID-vkCreateScreenSurfaceQNX-pAllocator-parameterNNoneimplicitvkCreateScreenSurfaceQNX(VK_KHR_surface)+(VK_QNX_screen_surface)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateScreenSurfaceQNX-pCreateInfo-parameterYNoneimplicitvkCreateScreenSurfaceQNX(VK_KHR_surface)+(VK_QNX_screen_surface)pCreateInfo must be a valid pointer to a valid VkScreenSurfaceCreateInfoQNX structure
VUID-vkCreateScreenSurfaceQNX-pSurface-parameterYNoneimplicitvkCreateScreenSurfaceQNX(VK_KHR_surface)+(VK_QNX_screen_surface)pSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateSemaphore-device-parameterYNoneimplicitvkCreateSemaphorecoredevice must be a valid VkDevice handle
VUID-vkCreateSemaphore-pAllocator-parameterNNoneimplicitvkCreateSemaphorecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateSemaphore-pCreateInfo-parameterYNoneimplicitvkCreateSemaphorecorepCreateInfo must be a valid pointer to a valid VkSemaphoreCreateInfo structure
VUID-vkCreateSemaphore-pSemaphore-parameterYNoneimplicitvkCreateSemaphorecorepSemaphore must be a valid pointer to a VkSemaphore handle
VUID-vkCreateShaderModule-device-parameterYNoneimplicitvkCreateShaderModulecoredevice must be a valid VkDevice handle
VUID-vkCreateShaderModule-pAllocator-parameterNNoneimplicitvkCreateShaderModulecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateShaderModule-pCreateInfo-06904NNoneexplicitvkCreateShaderModule(VK_EXT_validation_cache)If pCreateInfo is not NULL, pCreateInfo->pNext must be NULL or a pointer to a VkShaderModuleValidationCacheCreateInfoEXT structure
VUID-vkCreateShaderModule-pCreateInfo-06905NNoneexplicitvkCreateShaderModule!(VK_EXT_validation_cache)If pCreateInfo is not NULL, pCreateInfo->pNext must be NULL
VUID-vkCreateShaderModule-pCreateInfo-parameterYNoneimplicitvkCreateShaderModulecorepCreateInfo must be a valid pointer to a valid VkShaderModuleCreateInfo structure
VUID-vkCreateShaderModule-pShaderModule-parameterYNoneimplicitvkCreateShaderModulecorepShaderModule must be a valid pointer to a VkShaderModule handle
VUID-vkCreateSharedSwapchainsKHR-device-parameterYNoneimplicitvkCreateSharedSwapchainsKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)device must be a valid VkDevice handle
VUID-vkCreateSharedSwapchainsKHR-pAllocator-parameterNNoneimplicitvkCreateSharedSwapchainsKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateSharedSwapchainsKHR-pCreateInfos-parameterYNoneimplicitvkCreateSharedSwapchainsKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)pCreateInfos must be a valid pointer to an array of swapchainCount valid VkSwapchainCreateInfoKHR structures
VUID-vkCreateSharedSwapchainsKHR-pSwapchains-parameterYNoneimplicitvkCreateSharedSwapchainsKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)pSwapchains must be a valid pointer to an array of swapchainCount VkSwapchainKHR handles
VUID-vkCreateSharedSwapchainsKHR-swapchainCount-arraylengthYNoneimplicitvkCreateSharedSwapchainsKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)swapchainCount must be greater than 0
VUID-vkCreateStreamDescriptorSurfaceGGP-instance-parameterYNoneimplicitvkCreateStreamDescriptorSurfaceGGP(VK_KHR_surface)+(VK_GGP_stream_descriptor_surface)instance must be a valid VkInstance handle
VUID-vkCreateStreamDescriptorSurfaceGGP-pAllocator-parameterNNoneimplicitvkCreateStreamDescriptorSurfaceGGP(VK_KHR_surface)+(VK_GGP_stream_descriptor_surface)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateStreamDescriptorSurfaceGGP-pCreateInfo-parameterYNoneimplicitvkCreateStreamDescriptorSurfaceGGP(VK_KHR_surface)+(VK_GGP_stream_descriptor_surface)pCreateInfo must be a valid pointer to a valid VkStreamDescriptorSurfaceCreateInfoGGP structure
VUID-vkCreateStreamDescriptorSurfaceGGP-pSurface-parameterYNoneimplicitvkCreateStreamDescriptorSurfaceGGP(VK_KHR_surface)+(VK_GGP_stream_descriptor_surface)pSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateSwapchainKHR-device-parameterYNoneimplicitvkCreateSwapchainKHR(VK_KHR_surface)+(VK_KHR_swapchain)device must be a valid VkDevice handle
VUID-vkCreateSwapchainKHR-pAllocator-parameterNNoneimplicitvkCreateSwapchainKHR(VK_KHR_surface)+(VK_KHR_swapchain)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateSwapchainKHR-pCreateInfo-parameterYNoneimplicitvkCreateSwapchainKHR(VK_KHR_surface)+(VK_KHR_swapchain)pCreateInfo must be a valid pointer to a valid VkSwapchainCreateInfoKHR structure
VUID-vkCreateSwapchainKHR-pSwapchain-parameterYNoneimplicitvkCreateSwapchainKHR(VK_KHR_surface)+(VK_KHR_swapchain)pSwapchain must be a valid pointer to a VkSwapchainKHR handle
VUID-vkCreateValidationCacheEXT-device-parameterYNoneimplicitvkCreateValidationCacheEXT(VK_EXT_validation_cache)device must be a valid VkDevice handle
VUID-vkCreateValidationCacheEXT-pAllocator-parameterNNoneimplicitvkCreateValidationCacheEXT(VK_EXT_validation_cache)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateValidationCacheEXT-pCreateInfo-parameterYNoneimplicitvkCreateValidationCacheEXT(VK_EXT_validation_cache)pCreateInfo must be a valid pointer to a valid VkValidationCacheCreateInfoEXT structure
VUID-vkCreateValidationCacheEXT-pValidationCache-parameterYNoneimplicitvkCreateValidationCacheEXT(VK_EXT_validation_cache)pValidationCache must be a valid pointer to a VkValidationCacheEXT handle
VUID-vkCreateViSurfaceNN-instance-parameterYNoneimplicitvkCreateViSurfaceNN(VK_KHR_surface)+(VK_NN_vi_surface)instance must be a valid VkInstance handle
VUID-vkCreateViSurfaceNN-pAllocator-parameterNNoneimplicitvkCreateViSurfaceNN(VK_KHR_surface)+(VK_NN_vi_surface)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateViSurfaceNN-pCreateInfo-parameterYNoneimplicitvkCreateViSurfaceNN(VK_KHR_surface)+(VK_NN_vi_surface)pCreateInfo must be a valid pointer to a valid VkViSurfaceCreateInfoNN structure
VUID-vkCreateViSurfaceNN-pSurface-parameterYNoneimplicitvkCreateViSurfaceNN(VK_KHR_surface)+(VK_NN_vi_surface)pSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateVideoSessionKHR-device-parameterYNoneimplicitvkCreateVideoSessionKHR(VK_KHR_video_queue)device must be a valid VkDevice handle
VUID-vkCreateVideoSessionKHR-pAllocator-parameterNNoneimplicitvkCreateVideoSessionKHR(VK_KHR_video_queue)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateVideoSessionKHR-pCreateInfo-parameterYNoneimplicitvkCreateVideoSessionKHR(VK_KHR_video_queue)pCreateInfo must be a valid pointer to a valid VkVideoSessionCreateInfoKHR structure
VUID-vkCreateVideoSessionKHR-pVideoSession-parameterYNoneimplicitvkCreateVideoSessionKHR(VK_KHR_video_queue)pVideoSession must be a valid pointer to a VkVideoSessionKHR handle
VUID-vkCreateVideoSessionParametersKHR-device-parameterYNoneimplicitvkCreateVideoSessionParametersKHR(VK_KHR_video_queue)device must be a valid VkDevice handle
VUID-vkCreateVideoSessionParametersKHR-pAllocator-parameterNNoneimplicitvkCreateVideoSessionParametersKHR(VK_KHR_video_queue)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateVideoSessionParametersKHR-pCreateInfo-parameterYNoneimplicitvkCreateVideoSessionParametersKHR(VK_KHR_video_queue)pCreateInfo must be a valid pointer to a valid VkVideoSessionParametersCreateInfoKHR structure
VUID-vkCreateVideoSessionParametersKHR-pVideoSessionParameters-parameterYNoneimplicitvkCreateVideoSessionParametersKHR(VK_KHR_video_queue)pVideoSessionParameters must be a valid pointer to a VkVideoSessionParametersKHR handle
VUID-vkCreateWaylandSurfaceKHR-instance-parameterYNoneimplicitvkCreateWaylandSurfaceKHR(VK_KHR_surface)+(VK_KHR_wayland_surface)instance must be a valid VkInstance handle
VUID-vkCreateWaylandSurfaceKHR-pAllocator-parameterNNoneimplicitvkCreateWaylandSurfaceKHR(VK_KHR_surface)+(VK_KHR_wayland_surface)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateWaylandSurfaceKHR-pCreateInfo-parameterYNoneimplicitvkCreateWaylandSurfaceKHR(VK_KHR_surface)+(VK_KHR_wayland_surface)pCreateInfo must be a valid pointer to a valid VkWaylandSurfaceCreateInfoKHR structure
VUID-vkCreateWaylandSurfaceKHR-pSurface-parameterYNoneimplicitvkCreateWaylandSurfaceKHR(VK_KHR_surface)+(VK_KHR_wayland_surface)pSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateWin32SurfaceKHR-instance-parameterYNoneimplicitvkCreateWin32SurfaceKHR(VK_KHR_surface)+(VK_KHR_win32_surface)instance must be a valid VkInstance handle
VUID-vkCreateWin32SurfaceKHR-pAllocator-parameterNNoneimplicitvkCreateWin32SurfaceKHR(VK_KHR_surface)+(VK_KHR_win32_surface)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateWin32SurfaceKHR-pCreateInfo-parameterYNoneimplicitvkCreateWin32SurfaceKHR(VK_KHR_surface)+(VK_KHR_win32_surface)pCreateInfo must be a valid pointer to a valid VkWin32SurfaceCreateInfoKHR structure
VUID-vkCreateWin32SurfaceKHR-pSurface-parameterYNoneimplicitvkCreateWin32SurfaceKHR(VK_KHR_surface)+(VK_KHR_win32_surface)pSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateXcbSurfaceKHR-instance-parameterYNoneimplicitvkCreateXcbSurfaceKHR(VK_KHR_surface)+(VK_KHR_xcb_surface)instance must be a valid VkInstance handle
VUID-vkCreateXcbSurfaceKHR-pAllocator-parameterNNoneimplicitvkCreateXcbSurfaceKHR(VK_KHR_surface)+(VK_KHR_xcb_surface)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateXcbSurfaceKHR-pCreateInfo-parameterYNoneimplicitvkCreateXcbSurfaceKHR(VK_KHR_surface)+(VK_KHR_xcb_surface)pCreateInfo must be a valid pointer to a valid VkXcbSurfaceCreateInfoKHR structure
VUID-vkCreateXcbSurfaceKHR-pSurface-parameterYNoneimplicitvkCreateXcbSurfaceKHR(VK_KHR_surface)+(VK_KHR_xcb_surface)pSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkCreateXlibSurfaceKHR-instance-parameterYNoneimplicitvkCreateXlibSurfaceKHR(VK_KHR_surface)+(VK_KHR_xlib_surface)instance must be a valid VkInstance handle
VUID-vkCreateXlibSurfaceKHR-pAllocator-parameterNNoneimplicitvkCreateXlibSurfaceKHR(VK_KHR_surface)+(VK_KHR_xlib_surface)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateXlibSurfaceKHR-pCreateInfo-parameterYNoneimplicitvkCreateXlibSurfaceKHR(VK_KHR_surface)+(VK_KHR_xlib_surface)pCreateInfo must be a valid pointer to a valid VkXlibSurfaceCreateInfoKHR structure
VUID-vkCreateXlibSurfaceKHR-pSurface-parameterYNoneimplicitvkCreateXlibSurfaceKHR(VK_KHR_surface)+(VK_KHR_xlib_surface)pSurface must be a valid pointer to a VkSurfaceKHR handle
VUID-vkDebugMarkerSetObjectNameEXT-device-parameterYNoneimplicitvkDebugMarkerSetObjectNameEXT(VK_EXT_debug_marker)device must be a valid VkDevice handle
VUID-vkDebugMarkerSetObjectNameEXT-pNameInfo-parameterYNoneimplicitvkDebugMarkerSetObjectNameEXT(VK_EXT_debug_marker)pNameInfo must be a valid pointer to a valid VkDebugMarkerObjectNameInfoEXT structure
VUID-vkDebugMarkerSetObjectTagEXT-device-parameterYNoneimplicitvkDebugMarkerSetObjectTagEXT(VK_EXT_debug_marker)device must be a valid VkDevice handle
VUID-vkDebugMarkerSetObjectTagEXT-pTagInfo-parameterYNoneimplicitvkDebugMarkerSetObjectTagEXT(VK_EXT_debug_marker)pTagInfo must be a valid pointer to a valid VkDebugMarkerObjectTagInfoEXT structure
VUID-vkDebugReportMessageEXT-flags-parameterYNoneimplicitvkDebugReportMessageEXT(VK_EXT_debug_report)flags must be a valid combination of VkDebugReportFlagBitsEXT values
VUID-vkDebugReportMessageEXT-flags-requiredbitmaskYNoneimplicitvkDebugReportMessageEXT(VK_EXT_debug_report)flags must not be 0
VUID-vkDebugReportMessageEXT-instance-parameterYNoneimplicitvkDebugReportMessageEXT(VK_EXT_debug_report)instance must be a valid VkInstance handle
VUID-vkDebugReportMessageEXT-object-01241NNoneexplicitvkDebugReportMessageEXT(VK_EXT_debug_report)object must be a Vulkan object or VK_NULL_HANDLE
VUID-vkDebugReportMessageEXT-objectType-01498NNoneexplicitvkDebugReportMessageEXT(VK_EXT_debug_report)If 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-parameterYNoneimplicitvkDebugReportMessageEXT(VK_EXT_debug_report)objectType must be a valid VkDebugReportObjectTypeEXT value
VUID-vkDebugReportMessageEXT-pLayerPrefix-parameterYNoneimplicitvkDebugReportMessageEXT(VK_EXT_debug_report)pLayerPrefix must be a null-terminated UTF-8 string
VUID-vkDebugReportMessageEXT-pMessage-parameterYNoneimplicitvkDebugReportMessageEXT(VK_EXT_debug_report)pMessage must be a null-terminated UTF-8 string
VUID-vkDeferredOperationJoinKHR-device-parameterYNoneimplicitvkDeferredOperationJoinKHR(VK_KHR_deferred_host_operations)device must be a valid VkDevice handle
VUID-vkDeferredOperationJoinKHR-operation-parameterYNoneimplicitvkDeferredOperationJoinKHR(VK_KHR_deferred_host_operations)operation must be a valid VkDeferredOperationKHR handle
VUID-vkDeferredOperationJoinKHR-operation-parentYNoneimplicitvkDeferredOperationJoinKHR(VK_KHR_deferred_host_operations)operation must have been created, allocated, or retrieved from device
VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02442YRayTracingObjInUseCmdBuildAccelerationStructureKHRexplicitvkDestroyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)All submitted commands that refer to accelerationStructure must have completed execution
VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02443YNoneexplicitvkDestroyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If VkAllocationCallbacks were provided when accelerationStructure was created, a compatible set of callbacks must be provided here
VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02444YNoneexplicitvkDestroyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If no VkAllocationCallbacks were provided when accelerationStructure was created, pAllocator must be NULL
VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-parameterYNoneimplicitvkDestroyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If accelerationStructure is not VK_NULL_HANDLE, accelerationStructure must be a valid VkAccelerationStructureKHR handle
VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-parentYNoneimplicitvkDestroyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If accelerationStructure is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyAccelerationStructureKHR-device-parameterYNoneimplicitvkDestroyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)device must be a valid VkDevice handle
VUID-vkDestroyAccelerationStructureKHR-pAllocator-parameterNNoneimplicitvkDestroyAccelerationStructureKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03752YNVRayTracingObjInUseCmdBuildAccelerationStructureexplicitvkDestroyAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)All submitted commands that refer to accelerationStructure must have completed execution
VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03753YNoneexplicitvkDestroyAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If VkAllocationCallbacks were provided when accelerationStructure was created, a compatible set of callbacks must be provided here
VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03754YNoneexplicitvkDestroyAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If no VkAllocationCallbacks were provided when accelerationStructure was created, pAllocator must be NULL
VUID-vkDestroyAccelerationStructureNV-accelerationStructure-parameterYNoneimplicitvkDestroyAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If accelerationStructure is not VK_NULL_HANDLE, accelerationStructure must be a valid VkAccelerationStructureNV handle
VUID-vkDestroyAccelerationStructureNV-accelerationStructure-parentYNoneimplicitvkDestroyAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If accelerationStructure is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyAccelerationStructureNV-device-parameterYNoneimplicitvkDestroyAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)device must be a valid VkDevice handle
VUID-vkDestroyAccelerationStructureNV-pAllocator-parameterNNoneimplicitvkDestroyAccelerationStructureNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyBuffer-buffer-00922YNVRayTracingObjInUseCmdBuildAccelerationStructure, RayTracingObjInUseCmdBuildAccelerationStructureKHR, PushDescriptorUniformDestroySignaledexplicitvkDestroyBuffercoreAll submitted commands that refer to buffer, either directly or via a VkBufferView, must have completed execution
VUID-vkDestroyBuffer-buffer-00923YNoneexplicitvkDestroyBuffercoreIf VkAllocationCallbacks were provided when buffer was created, a compatible set of callbacks must be provided here
VUID-vkDestroyBuffer-buffer-00924YNoneexplicitvkDestroyBuffercoreIf no VkAllocationCallbacks were provided when buffer was created, pAllocator must be NULL
VUID-vkDestroyBuffer-buffer-parameterYVertexBufferInvalidimplicitvkDestroyBuffercoreIf buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle
VUID-vkDestroyBuffer-buffer-parentYNoneimplicitvkDestroyBuffercoreIf buffer is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyBuffer-device-parameterYNoneimplicitvkDestroyBuffercoredevice must be a valid VkDevice handle
VUID-vkDestroyBuffer-pAllocator-parameterNNoneimplicitvkDestroyBuffercoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyBufferCollectionFUCHSIA-collection-06407NNoneexplicitvkDestroyBufferCollectionFUCHSIA(VK_FUCHSIA_buffer_collection)VkImage 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-parameterYNoneimplicitvkDestroyBufferCollectionFUCHSIA(VK_FUCHSIA_buffer_collection)collection must be a valid VkBufferCollectionFUCHSIA handle
VUID-vkDestroyBufferCollectionFUCHSIA-collection-parentYNoneimplicitvkDestroyBufferCollectionFUCHSIA(VK_FUCHSIA_buffer_collection)collection must have been created, allocated, or retrieved from device
VUID-vkDestroyBufferCollectionFUCHSIA-device-parameterYNoneimplicitvkDestroyBufferCollectionFUCHSIA(VK_FUCHSIA_buffer_collection)device must be a valid VkDevice handle
VUID-vkDestroyBufferCollectionFUCHSIA-pAllocator-parameterNNoneimplicitvkDestroyBufferCollectionFUCHSIA(VK_FUCHSIA_buffer_collection)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyBufferView-bufferView-00936YBufferViewInUseDestroyedSignaledexplicitvkDestroyBufferViewcoreAll submitted commands that refer to bufferView must have completed execution
VUID-vkDestroyBufferView-bufferView-00937YNoneexplicitvkDestroyBufferViewcoreIf VkAllocationCallbacks were provided when bufferView was created, a compatible set of callbacks must be provided here
VUID-vkDestroyBufferView-bufferView-00938YNoneexplicitvkDestroyBufferViewcoreIf no VkAllocationCallbacks were provided when bufferView was created, pAllocator must be NULL
VUID-vkDestroyBufferView-bufferView-parameterYNoneimplicitvkDestroyBufferViewcoreIf bufferView is not VK_NULL_HANDLE, bufferView must be a valid VkBufferView handle
VUID-vkDestroyBufferView-bufferView-parentYNoneimplicitvkDestroyBufferViewcoreIf bufferView is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyBufferView-device-parameterYNoneimplicitvkDestroyBufferViewcoredevice must be a valid VkDevice handle
VUID-vkDestroyBufferView-pAllocator-parameterNNoneimplicitvkDestroyBufferViewcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyCommandPool-commandPool-00041YNoneexplicitvkDestroyCommandPoolcoreAll VkCommandBuffer objects allocated from commandPool must not be in the pending state
VUID-vkDestroyCommandPool-commandPool-00042YNoneexplicitvkDestroyCommandPoolcoreIf VkAllocationCallbacks were provided when commandPool was created, a compatible set of callbacks must be provided here
VUID-vkDestroyCommandPool-commandPool-00043YNoneexplicitvkDestroyCommandPoolcoreIf no VkAllocationCallbacks were provided when commandPool was created, pAllocator must be NULL
VUID-vkDestroyCommandPool-commandPool-parameterYNoneimplicitvkDestroyCommandPoolcoreIf commandPool is not VK_NULL_HANDLE, commandPool must be a valid VkCommandPool handle
VUID-vkDestroyCommandPool-commandPool-parentYNoneimplicitvkDestroyCommandPoolcoreIf commandPool is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyCommandPool-device-parameterYNoneimplicitvkDestroyCommandPoolcoredevice must be a valid VkDevice handle
VUID-vkDestroyCommandPool-pAllocator-parameterNNoneimplicitvkDestroyCommandPoolcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyCuFunctionNVX-device-parameterYNoneimplicitvkDestroyCuFunctionNVX(VK_NVX_binary_import)device must be a valid VkDevice handle
VUID-vkDestroyCuFunctionNVX-function-parameterYNoneimplicitvkDestroyCuFunctionNVX(VK_NVX_binary_import)function must be a valid VkCuFunctionNVX handle
VUID-vkDestroyCuFunctionNVX-function-parentYNoneimplicitvkDestroyCuFunctionNVX(VK_NVX_binary_import)function must have been created, allocated, or retrieved from device
VUID-vkDestroyCuFunctionNVX-pAllocator-parameterNNoneimplicitvkDestroyCuFunctionNVX(VK_NVX_binary_import)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyCuModuleNVX-device-parameterYNoneimplicitvkDestroyCuModuleNVX(VK_NVX_binary_import)device must be a valid VkDevice handle
VUID-vkDestroyCuModuleNVX-module-parameterYNoneimplicitvkDestroyCuModuleNVX(VK_NVX_binary_import)module must be a valid VkCuModuleNVX handle
VUID-vkDestroyCuModuleNVX-module-parentYNoneimplicitvkDestroyCuModuleNVX(VK_NVX_binary_import)module must have been created, allocated, or retrieved from device
VUID-vkDestroyCuModuleNVX-pAllocator-parameterNNoneimplicitvkDestroyCuModuleNVX(VK_NVX_binary_import)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyDebugReportCallbackEXT-callback-parameterYNoneimplicitvkDestroyDebugReportCallbackEXT(VK_EXT_debug_report)If callback is not VK_NULL_HANDLE, callback must be a valid VkDebugReportCallbackEXT handle
VUID-vkDestroyDebugReportCallbackEXT-callback-parentNNoneimplicitvkDestroyDebugReportCallbackEXT(VK_EXT_debug_report)If callback is a valid handle, it must have been created, allocated, or retrieved from instance
VUID-vkDestroyDebugReportCallbackEXT-instance-01242NNoneexplicitvkDestroyDebugReportCallbackEXT(VK_EXT_debug_report)If VkAllocationCallbacks were provided when callback was created, a compatible set of callbacks must be provided here
VUID-vkDestroyDebugReportCallbackEXT-instance-01243NNoneexplicitvkDestroyDebugReportCallbackEXT(VK_EXT_debug_report)If no VkAllocationCallbacks were provided when callback was created, pAllocator must be NULL
VUID-vkDestroyDebugReportCallbackEXT-instance-parameterYNoneimplicitvkDestroyDebugReportCallbackEXT(VK_EXT_debug_report)instance must be a valid VkInstance handle
VUID-vkDestroyDebugReportCallbackEXT-pAllocator-parameterNNoneimplicitvkDestroyDebugReportCallbackEXT(VK_EXT_debug_report)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyDebugUtilsMessengerEXT-instance-parameterYNoneimplicitvkDestroyDebugUtilsMessengerEXT(VK_EXT_debug_utils)instance must be a valid VkInstance handle
VUID-vkDestroyDebugUtilsMessengerEXT-messenger-01915NNoneexplicitvkDestroyDebugUtilsMessengerEXT(VK_EXT_debug_utils)If VkAllocationCallbacks were provided when messenger was created, a compatible set of callbacks must be provided here
VUID-vkDestroyDebugUtilsMessengerEXT-messenger-01916NNoneexplicitvkDestroyDebugUtilsMessengerEXT(VK_EXT_debug_utils)If no VkAllocationCallbacks were provided when messenger was created, pAllocator must be NULL
VUID-vkDestroyDebugUtilsMessengerEXT-messenger-parameterYNoneimplicitvkDestroyDebugUtilsMessengerEXT(VK_EXT_debug_utils)If messenger is not VK_NULL_HANDLE, messenger must be a valid VkDebugUtilsMessengerEXT handle
VUID-vkDestroyDebugUtilsMessengerEXT-messenger-parentNNoneimplicitvkDestroyDebugUtilsMessengerEXT(VK_EXT_debug_utils)If messenger is a valid handle, it must have been created, allocated, or retrieved from instance
VUID-vkDestroyDebugUtilsMessengerEXT-pAllocator-parameterNNoneimplicitvkDestroyDebugUtilsMessengerEXT(VK_EXT_debug_utils)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyDeferredOperationKHR-device-parameterYNoneimplicitvkDestroyDeferredOperationKHR(VK_KHR_deferred_host_operations)device must be a valid VkDevice handle
VUID-vkDestroyDeferredOperationKHR-operation-03434NNoneexplicitvkDestroyDeferredOperationKHR(VK_KHR_deferred_host_operations)If VkAllocationCallbacks were provided when operation was created, a compatible set of callbacks must be provided here
VUID-vkDestroyDeferredOperationKHR-operation-03435NNoneexplicitvkDestroyDeferredOperationKHR(VK_KHR_deferred_host_operations)If no VkAllocationCallbacks were provided when operation was created, pAllocator must be NULL
VUID-vkDestroyDeferredOperationKHR-operation-03436NNoneexplicitvkDestroyDeferredOperationKHR(VK_KHR_deferred_host_operations)operation must be completed
VUID-vkDestroyDeferredOperationKHR-operation-parameterYNoneimplicitvkDestroyDeferredOperationKHR(VK_KHR_deferred_host_operations)If operation is not VK_NULL_HANDLE, operation must be a valid VkDeferredOperationKHR handle
VUID-vkDestroyDeferredOperationKHR-operation-parentYNoneimplicitvkDestroyDeferredOperationKHR(VK_KHR_deferred_host_operations)If operation is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyDeferredOperationKHR-pAllocator-parameterNNoneimplicitvkDestroyDeferredOperationKHR(VK_KHR_deferred_host_operations)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyDescriptorPool-descriptorPool-00303YDescriptorPoolInUseDestroyedSignaledexplicitvkDestroyDescriptorPoolcoreAll submitted commands that refer to descriptorPool (via any allocated descriptor sets) must have completed execution
VUID-vkDestroyDescriptorPool-descriptorPool-00304YNoneexplicitvkDestroyDescriptorPoolcoreIf VkAllocationCallbacks were provided when descriptorPool was created, a compatible set of callbacks must be provided here
VUID-vkDestroyDescriptorPool-descriptorPool-00305YNoneexplicitvkDestroyDescriptorPoolcoreIf no VkAllocationCallbacks were provided when descriptorPool was created, pAllocator must be NULL
VUID-vkDestroyDescriptorPool-descriptorPool-parameterYNoneimplicitvkDestroyDescriptorPoolcoreIf descriptorPool is not VK_NULL_HANDLE, descriptorPool must be a valid VkDescriptorPool handle
VUID-vkDestroyDescriptorPool-descriptorPool-parentYNoneimplicitvkDestroyDescriptorPoolcoreIf descriptorPool is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyDescriptorPool-device-parameterYNoneimplicitvkDestroyDescriptorPoolcoredevice must be a valid VkDevice handle
VUID-vkDestroyDescriptorPool-pAllocator-parameterNNoneimplicitvkDestroyDescriptorPoolcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-00284YNoneexplicitvkDestroyDescriptorSetLayoutcoreIf VkAllocationCallbacks were provided when descriptorSetLayout was created, a compatible set of callbacks must be provided here
VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-00285YNoneexplicitvkDestroyDescriptorSetLayoutcoreIf no VkAllocationCallbacks were provided when descriptorSetLayout was created, pAllocator must be NULL
VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-parameterYNoneimplicitvkDestroyDescriptorSetLayoutcoreIf descriptorSetLayout is not VK_NULL_HANDLE, descriptorSetLayout must be a valid VkDescriptorSetLayout handle
VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-parentYNoneimplicitvkDestroyDescriptorSetLayoutcoreIf descriptorSetLayout is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyDescriptorSetLayout-device-parameterYNoneimplicitvkDestroyDescriptorSetLayoutcoredevice must be a valid VkDevice handle
VUID-vkDestroyDescriptorSetLayout-pAllocator-parameterNNoneimplicitvkDestroyDescriptorSetLayoutcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00356YNoneexplicitvkDestroyDescriptorUpdateTemplate(VK_VERSION_1_1,VK_KHR_descriptor_update_template)If VkAllocationCallbacks were provided when descriptorUpdateTemplate was created, a compatible set of callbacks must be provided here
VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00357YNoneexplicitvkDestroyDescriptorUpdateTemplate(VK_VERSION_1_1,VK_KHR_descriptor_update_template)If no VkAllocationCallbacks were provided when descriptorUpdateTemplate was created, pAllocator must be NULL
VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parameterYNoneimplicitvkDestroyDescriptorUpdateTemplate(VK_VERSION_1_1,VK_KHR_descriptor_update_template)If descriptorUpdateTemplate is not VK_NULL_HANDLE, descriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle
VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parentYNoneimplicitvkDestroyDescriptorUpdateTemplate(VK_VERSION_1_1,VK_KHR_descriptor_update_template)If descriptorUpdateTemplate is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyDescriptorUpdateTemplate-device-parameterYNoneimplicitvkDestroyDescriptorUpdateTemplate(VK_VERSION_1_1,VK_KHR_descriptor_update_template)device must be a valid VkDevice handle
VUID-vkDestroyDescriptorUpdateTemplate-pAllocator-parameterNNoneimplicitvkDestroyDescriptorUpdateTemplate(VK_VERSION_1_1,VK_KHR_descriptor_update_template)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyDevice-device-00378YLeakASwapchain, LeakAnObjectexplicitvkDestroyDevicecoreAll child objects created on device must have been destroyed prior to destroying device
VUID-vkDestroyDevice-device-00379YNoneexplicitvkDestroyDevicecoreIf VkAllocationCallbacks were provided when device was created, a compatible set of callbacks must be provided here
VUID-vkDestroyDevice-device-00380YNoneexplicitvkDestroyDevicecoreIf no VkAllocationCallbacks were provided when device was created, pAllocator must be NULL
VUID-vkDestroyDevice-device-parameterYNoneimplicitvkDestroyDevicecoreIf device is not NULL, device must be a valid VkDevice handle
VUID-vkDestroyDevice-pAllocator-parameterNNoneimplicitvkDestroyDevicecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyEvent-device-parameterYNoneimplicitvkDestroyEventcoredevice must be a valid VkDevice handle
VUID-vkDestroyEvent-event-01145YInUseDestroyedSignaledexplicitvkDestroyEventcoreAll submitted commands that refer to event must have completed execution
VUID-vkDestroyEvent-event-01146YNoneexplicitvkDestroyEventcoreIf VkAllocationCallbacks were provided when event was created, a compatible set of callbacks must be provided here
VUID-vkDestroyEvent-event-01147YNoneexplicitvkDestroyEventcoreIf no VkAllocationCallbacks were provided when event was created, pAllocator must be NULL
VUID-vkDestroyEvent-event-parameterYNoneimplicitvkDestroyEventcoreIf event is not VK_NULL_HANDLE, event must be a valid VkEvent handle
VUID-vkDestroyEvent-event-parentYNoneimplicitvkDestroyEventcoreIf event is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyEvent-pAllocator-parameterNNoneimplicitvkDestroyEventcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyFence-device-parameterYNoneimplicitvkDestroyFencecoredevice must be a valid VkDevice handle
VUID-vkDestroyFence-fence-01120YInUseDestroyedSignaledexplicitvkDestroyFencecoreAll queue submission commands that refer to fence must have completed execution
VUID-vkDestroyFence-fence-01121YNoneexplicitvkDestroyFencecoreIf VkAllocationCallbacks were provided when fence was created, a compatible set of callbacks must be provided here
VUID-vkDestroyFence-fence-01122YNoneexplicitvkDestroyFencecoreIf no VkAllocationCallbacks were provided when fence was created, pAllocator must be NULL
VUID-vkDestroyFence-fence-parameterYNoneimplicitvkDestroyFencecoreIf fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle
VUID-vkDestroyFence-fence-parentYNoneimplicitvkDestroyFencecoreIf fence is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyFence-pAllocator-parameterNNoneimplicitvkDestroyFencecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyFramebuffer-device-parameterYNoneimplicitvkDestroyFramebuffercoredevice must be a valid VkDevice handle
VUID-vkDestroyFramebuffer-framebuffer-00892YFramebufferInUseDestroyedSignaledexplicitvkDestroyFramebuffercoreAll submitted commands that refer to framebuffer must have completed execution
VUID-vkDestroyFramebuffer-framebuffer-00893YNoneexplicitvkDestroyFramebuffercoreIf VkAllocationCallbacks were provided when framebuffer was created, a compatible set of callbacks must be provided here
VUID-vkDestroyFramebuffer-framebuffer-00894YNoneexplicitvkDestroyFramebuffercoreIf no VkAllocationCallbacks were provided when framebuffer was created, pAllocator must be NULL
VUID-vkDestroyFramebuffer-framebuffer-parameterYNoneimplicitvkDestroyFramebuffercoreIf framebuffer is not VK_NULL_HANDLE, framebuffer must be a valid VkFramebuffer handle
VUID-vkDestroyFramebuffer-framebuffer-parentYNoneimplicitvkDestroyFramebuffercoreIf framebuffer is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyFramebuffer-pAllocator-parameterNNoneimplicitvkDestroyFramebuffercoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyImage-device-parameterYNoneimplicitvkDestroyImagecoredevice must be a valid VkDevice handle
VUID-vkDestroyImage-image-01000YFramebufferImageInUseDestroyedSignaledexplicitvkDestroyImagecoreAll submitted commands that refer to image, either directly or via a VkImageView, must have completed execution
VUID-vkDestroyImage-image-01001YNoneexplicitvkDestroyImagecoreIf VkAllocationCallbacks were provided when image was created, a compatible set of callbacks must be provided here
VUID-vkDestroyImage-image-01002YNoneexplicitvkDestroyImagecoreIf no VkAllocationCallbacks were provided when image was created, pAllocator must be NULL
VUID-vkDestroyImage-image-04882YGetSwapchainImageAndTryDestroyexplicitvkDestroyImage(VK_KHR_swapchain)image must not have been acquired from vkGetSwapchainImagesKHR
VUID-vkDestroyImage-image-parameterYNoneimplicitvkDestroyImagecoreIf image is not VK_NULL_HANDLE, image must be a valid VkImage handle
VUID-vkDestroyImage-image-parentYNoneimplicitvkDestroyImagecoreIf image is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyImage-pAllocator-parameterNNoneimplicitvkDestroyImagecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyImageView-device-parameterYNoneimplicitvkDestroyImageViewcoredevice must be a valid VkDevice handle
VUID-vkDestroyImageView-imageView-01026YImageViewInUseDestroyedSignaledexplicitvkDestroyImageViewcoreAll submitted commands that refer to imageView must have completed execution
VUID-vkDestroyImageView-imageView-01027YNoneexplicitvkDestroyImageViewcoreIf VkAllocationCallbacks were provided when imageView was created, a compatible set of callbacks must be provided here
VUID-vkDestroyImageView-imageView-01028YNoneexplicitvkDestroyImageViewcoreIf no VkAllocationCallbacks were provided when imageView was created, pAllocator must be NULL
VUID-vkDestroyImageView-imageView-parameterYNoneimplicitvkDestroyImageViewcoreIf imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle
VUID-vkDestroyImageView-imageView-parentYNoneimplicitvkDestroyImageViewcoreIf imageView is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyImageView-pAllocator-parameterNNoneimplicitvkDestroyImageViewcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyIndirectCommandsLayoutNV-device-parameterYNoneimplicitvkDestroyIndirectCommandsLayoutNV(VK_NV_device_generated_commands)device must be a valid VkDevice handle
VUID-vkDestroyIndirectCommandsLayoutNV-deviceGeneratedCommands-02941NNoneexplicitvkDestroyIndirectCommandsLayoutNV(VK_NV_device_generated_commands)The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled
VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02938NNoneexplicitvkDestroyIndirectCommandsLayoutNV(VK_NV_device_generated_commands)All submitted commands that refer to indirectCommandsLayout must have completed execution
VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02939NNoneexplicitvkDestroyIndirectCommandsLayoutNV(VK_NV_device_generated_commands)If VkAllocationCallbacks were provided when indirectCommandsLayout was created, a compatible set of callbacks must be provided here
VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02940NNoneexplicitvkDestroyIndirectCommandsLayoutNV(VK_NV_device_generated_commands)If no VkAllocationCallbacks were provided when indirectCommandsLayout was created, pAllocator must be NULL
VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-parameterYNoneimplicitvkDestroyIndirectCommandsLayoutNV(VK_NV_device_generated_commands)If indirectCommandsLayout is not VK_NULL_HANDLE, indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle
VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-parentYNoneimplicitvkDestroyIndirectCommandsLayoutNV(VK_NV_device_generated_commands)If indirectCommandsLayout is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyIndirectCommandsLayoutNV-pAllocator-parameterNNoneimplicitvkDestroyIndirectCommandsLayoutNV(VK_NV_device_generated_commands)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyInstance-instance-00629YLeakASwapchainexplicitvkDestroyInstancecoreAll child objects created using instance must have been destroyed prior to destroying instance
VUID-vkDestroyInstance-instance-00630YNoneexplicitvkDestroyInstancecoreIf VkAllocationCallbacks were provided when instance was created, a compatible set of callbacks must be provided here
VUID-vkDestroyInstance-instance-00631YDestroyInstanceAllocationCallbacksCompatibilityexplicitvkDestroyInstancecoreIf no VkAllocationCallbacks were provided when instance was created, pAllocator must be NULL
VUID-vkDestroyInstance-instance-parameterYNoneimplicitvkDestroyInstancecoreIf instance is not NULL, instance must be a valid VkInstance handle
VUID-vkDestroyInstance-pAllocator-parameterNNoneimplicitvkDestroyInstancecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyMicromapEXT-device-parameterYNoneimplicitvkDestroyMicromapEXT(VK_EXT_opacity_micromap)device must be a valid VkDevice handle
VUID-vkDestroyMicromapEXT-micromap-07441NNoneexplicitvkDestroyMicromapEXT(VK_EXT_opacity_micromap)All submitted commands that refer to micromap must have completed execution
VUID-vkDestroyMicromapEXT-micromap-07442NNoneexplicitvkDestroyMicromapEXT(VK_EXT_opacity_micromap)If VkAllocationCallbacks were provided when micromap was created, a compatible set of callbacks must be provided here
VUID-vkDestroyMicromapEXT-micromap-07443NNoneexplicitvkDestroyMicromapEXT(VK_EXT_opacity_micromap)If no VkAllocationCallbacks were provided when micromap was created, pAllocator must be NULL
VUID-vkDestroyMicromapEXT-micromap-parameterYNoneimplicitvkDestroyMicromapEXT(VK_EXT_opacity_micromap)If micromap is not VK_NULL_HANDLE, micromap must be a valid VkMicromapEXT handle
VUID-vkDestroyMicromapEXT-micromap-parentYNoneimplicitvkDestroyMicromapEXT(VK_EXT_opacity_micromap)If micromap is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyMicromapEXT-pAllocator-parameterNNoneimplicitvkDestroyMicromapEXT(VK_EXT_opacity_micromap)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyOpticalFlowSessionNV-device-parameterYNoneimplicitvkDestroyOpticalFlowSessionNV(VK_NV_optical_flow)device must be a valid VkDevice handle
VUID-vkDestroyOpticalFlowSessionNV-pAllocator-parameterNNoneimplicitvkDestroyOpticalFlowSessionNV(VK_NV_optical_flow)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyOpticalFlowSessionNV-session-parameterYNoneimplicitvkDestroyOpticalFlowSessionNV(VK_NV_optical_flow)session must be a valid VkOpticalFlowSessionNV handle
VUID-vkDestroyOpticalFlowSessionNV-session-parentYNoneimplicitvkDestroyOpticalFlowSessionNV(VK_NV_optical_flow)session must have been created, allocated, or retrieved from device
VUID-vkDestroyPipeline-device-parameterYNoneimplicitvkDestroyPipelinecoredevice must be a valid VkDevice handle
VUID-vkDestroyPipeline-pAllocator-parameterNNoneimplicitvkDestroyPipelinecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyPipeline-pipeline-00765YPipelineInUseDestroyedSignaledexplicitvkDestroyPipelinecoreAll submitted commands that refer to pipeline must have completed execution
VUID-vkDestroyPipeline-pipeline-00766YNoneexplicitvkDestroyPipelinecoreIf VkAllocationCallbacks were provided when pipeline was created, a compatible set of callbacks must be provided here
VUID-vkDestroyPipeline-pipeline-00767YNoneexplicitvkDestroyPipelinecoreIf no VkAllocationCallbacks were provided when pipeline was created, pAllocator must be NULL
VUID-vkDestroyPipeline-pipeline-parameterYNoneimplicitvkDestroyPipelinecoreIf pipeline is not VK_NULL_HANDLE, pipeline must be a valid VkPipeline handle
VUID-vkDestroyPipeline-pipeline-parentYNoneimplicitvkDestroyPipelinecoreIf pipeline is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyPipelineCache-device-parameterYNoneimplicitvkDestroyPipelineCachecoredevice must be a valid VkDevice handle
VUID-vkDestroyPipelineCache-pAllocator-parameterNNoneimplicitvkDestroyPipelineCachecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyPipelineCache-pipelineCache-00771YNoneexplicitvkDestroyPipelineCachecoreIf VkAllocationCallbacks were provided when pipelineCache was created, a compatible set of callbacks must be provided here
VUID-vkDestroyPipelineCache-pipelineCache-00772YNoneexplicitvkDestroyPipelineCachecoreIf no VkAllocationCallbacks were provided when pipelineCache was created, pAllocator must be NULL
VUID-vkDestroyPipelineCache-pipelineCache-parameterYNoneimplicitvkDestroyPipelineCachecoreIf pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle
VUID-vkDestroyPipelineCache-pipelineCache-parentYNoneimplicitvkDestroyPipelineCachecoreIf pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyPipelineLayout-device-parameterYNoneimplicitvkDestroyPipelineLayoutcoredevice must be a valid VkDevice handle
VUID-vkDestroyPipelineLayout-pAllocator-parameterNNoneimplicitvkDestroyPipelineLayoutcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyPipelineLayout-pipelineLayout-00299YNoneexplicitvkDestroyPipelineLayoutcoreIf VkAllocationCallbacks were provided when pipelineLayout was created, a compatible set of callbacks must be provided here
VUID-vkDestroyPipelineLayout-pipelineLayout-00300YNoneexplicitvkDestroyPipelineLayoutcoreIf no VkAllocationCallbacks were provided when pipelineLayout was created, pAllocator must be NULL
VUID-vkDestroyPipelineLayout-pipelineLayout-02004NNoneexplicitvkDestroyPipelineLayoutcorepipelineLayout must not have been passed to any vkCmd* command for any command buffers that are still in the recording state when vkDestroyPipelineLayout is called
VUID-vkDestroyPipelineLayout-pipelineLayout-parameterYNoneimplicitvkDestroyPipelineLayoutcoreIf pipelineLayout is not VK_NULL_HANDLE, pipelineLayout must be a valid VkPipelineLayout handle
VUID-vkDestroyPipelineLayout-pipelineLayout-parentYNoneimplicitvkDestroyPipelineLayoutcoreIf pipelineLayout is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyPrivateDataSlot-device-parameterYNoneimplicitvkDestroyPrivateDataSlot(VK_VERSION_1_3,VK_EXT_private_data)device must be a valid VkDevice handle
VUID-vkDestroyPrivateDataSlot-pAllocator-parameterNNoneimplicitvkDestroyPrivateDataSlot(VK_VERSION_1_3,VK_EXT_private_data)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyPrivateDataSlot-privateDataSlot-04062NNoneexplicitvkDestroyPrivateDataSlot(VK_VERSION_1_3,VK_EXT_private_data)If VkAllocationCallbacks were provided when privateDataSlot was created, a compatible set of callbacks must be provided here
VUID-vkDestroyPrivateDataSlot-privateDataSlot-04063NNoneexplicitvkDestroyPrivateDataSlot(VK_VERSION_1_3,VK_EXT_private_data)If no VkAllocationCallbacks were provided when privateDataSlot was created, pAllocator must be NULL
VUID-vkDestroyPrivateDataSlot-privateDataSlot-parameterYNoneimplicitvkDestroyPrivateDataSlot(VK_VERSION_1_3,VK_EXT_private_data)If privateDataSlot is not VK_NULL_HANDLE, privateDataSlot must be a valid VkPrivateDataSlot handle
VUID-vkDestroyPrivateDataSlot-privateDataSlot-parentYNoneimplicitvkDestroyPrivateDataSlot(VK_VERSION_1_3,VK_EXT_private_data)If privateDataSlot is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyQueryPool-device-parameterYNoneimplicitvkDestroyQueryPoolcoredevice must be a valid VkDevice handle
VUID-vkDestroyQueryPool-pAllocator-parameterNNoneimplicitvkDestroyQueryPoolcoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyQueryPool-queryPool-00793YQueryPoolInUseDestroyedSignaled, DestroyActiveQueryPoolexplicitvkDestroyQueryPoolcoreAll submitted commands that refer to queryPool must have completed execution
VUID-vkDestroyQueryPool-queryPool-00794YNoneexplicitvkDestroyQueryPoolcoreIf VkAllocationCallbacks were provided when queryPool was created, a compatible set of callbacks must be provided here
VUID-vkDestroyQueryPool-queryPool-00795YNoneexplicitvkDestroyQueryPoolcoreIf no VkAllocationCallbacks were provided when queryPool was created, pAllocator must be NULL
VUID-vkDestroyQueryPool-queryPool-parameterYNoneimplicitvkDestroyQueryPoolcoreIf queryPool is not VK_NULL_HANDLE, queryPool must be a valid VkQueryPool handle
VUID-vkDestroyQueryPool-queryPool-parentYNoneimplicitvkDestroyQueryPoolcoreIf queryPool is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyRenderPass-device-parameterYNoneimplicitvkDestroyRenderPasscoredevice must be a valid VkDevice handle
VUID-vkDestroyRenderPass-pAllocator-parameterNNoneimplicitvkDestroyRenderPasscoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyRenderPass-renderPass-00873YRenderPassDestroyWhileInUseexplicitvkDestroyRenderPasscoreAll submitted commands that refer to renderPass must have completed execution
VUID-vkDestroyRenderPass-renderPass-00874YNoneexplicitvkDestroyRenderPasscoreIf VkAllocationCallbacks were provided when renderPass was created, a compatible set of callbacks must be provided here
VUID-vkDestroyRenderPass-renderPass-00875YNoneexplicitvkDestroyRenderPasscoreIf no VkAllocationCallbacks were provided when renderPass was created, pAllocator must be NULL
VUID-vkDestroyRenderPass-renderPass-parameterYNoneimplicitvkDestroyRenderPasscoreIf renderPass is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass handle
VUID-vkDestroyRenderPass-renderPass-parentYUseObjectWithWrongDeviceimplicitvkDestroyRenderPasscoreIf renderPass is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroySampler-device-parameterYNoneimplicitvkDestroySamplercoredevice must be a valid VkDevice handle
VUID-vkDestroySampler-pAllocator-parameterNNoneimplicitvkDestroySamplercoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroySampler-sampler-01082YSamplerInUseDestroyedSignaledexplicitvkDestroySamplercoreAll submitted commands that refer to sampler must have completed execution
VUID-vkDestroySampler-sampler-01083YNoneexplicitvkDestroySamplercoreIf VkAllocationCallbacks were provided when sampler was created, a compatible set of callbacks must be provided here
VUID-vkDestroySampler-sampler-01084YNoneexplicitvkDestroySamplercoreIf no VkAllocationCallbacks were provided when sampler was created, pAllocator must be NULL
VUID-vkDestroySampler-sampler-parameterYNoneimplicitvkDestroySamplercoreIf sampler is not VK_NULL_HANDLE, sampler must be a valid VkSampler handle
VUID-vkDestroySampler-sampler-parentYNoneimplicitvkDestroySamplercoreIf sampler is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroySamplerYcbcrConversion-device-parameterYNoneimplicitvkDestroySamplerYcbcrConversion(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)device must be a valid VkDevice handle
VUID-vkDestroySamplerYcbcrConversion-pAllocator-parameterNNoneimplicitvkDestroySamplerYcbcrConversion(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parameterYNoneimplicitvkDestroySamplerYcbcrConversion(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If ycbcrConversion is not VK_NULL_HANDLE, ycbcrConversion must be a valid VkSamplerYcbcrConversion handle
VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parentYNoneimplicitvkDestroySamplerYcbcrConversion(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If ycbcrConversion is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroySemaphore-device-parameterYNoneimplicitvkDestroySemaphorecoredevice must be a valid VkDevice handle
VUID-vkDestroySemaphore-pAllocator-parameterNNoneimplicitvkDestroySemaphorecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroySemaphore-semaphore-01137YInUseDestroyedSignaledexplicitvkDestroySemaphorecoreAll submitted batches that refer to semaphore must have completed execution
VUID-vkDestroySemaphore-semaphore-01138YNoneexplicitvkDestroySemaphorecoreIf VkAllocationCallbacks were provided when semaphore was created, a compatible set of callbacks must be provided here
VUID-vkDestroySemaphore-semaphore-01139YNoneexplicitvkDestroySemaphorecoreIf no VkAllocationCallbacks were provided when semaphore was created, pAllocator must be NULL
VUID-vkDestroySemaphore-semaphore-parameterYNoneimplicitvkDestroySemaphorecoreIf semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle
VUID-vkDestroySemaphore-semaphore-parentYNoneimplicitvkDestroySemaphorecoreIf semaphore is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyShaderModule-device-parameterYNoneimplicitvkDestroyShaderModulecoredevice must be a valid VkDevice handle
VUID-vkDestroyShaderModule-pAllocator-parameterNNoneimplicitvkDestroyShaderModulecoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyShaderModule-shaderModule-01092YNoneexplicitvkDestroyShaderModulecoreIf VkAllocationCallbacks were provided when shaderModule was created, a compatible set of callbacks must be provided here
VUID-vkDestroyShaderModule-shaderModule-01093YNoneexplicitvkDestroyShaderModulecoreIf no VkAllocationCallbacks were provided when shaderModule was created, pAllocator must be NULL
VUID-vkDestroyShaderModule-shaderModule-parameterYNoneimplicitvkDestroyShaderModulecoreIf shaderModule is not VK_NULL_HANDLE, shaderModule must be a valid VkShaderModule handle
VUID-vkDestroyShaderModule-shaderModule-parentYNoneimplicitvkDestroyShaderModulecoreIf shaderModule is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroySurfaceKHR-instance-parameterYNoneimplicitvkDestroySurfaceKHR(VK_KHR_surface)instance must be a valid VkInstance handle
VUID-vkDestroySurfaceKHR-pAllocator-parameterNNoneimplicitvkDestroySurfaceKHR(VK_KHR_surface)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroySurfaceKHR-surface-01266YNoneexplicitvkDestroySurfaceKHR(VK_KHR_surface)All VkSwapchainKHR objects created for surface must have been destroyed prior to destroying surface
VUID-vkDestroySurfaceKHR-surface-01267YNoneexplicitvkDestroySurfaceKHR(VK_KHR_surface)If VkAllocationCallbacks were provided when surface was created, a compatible set of callbacks must be provided here
VUID-vkDestroySurfaceKHR-surface-01268YNoneexplicitvkDestroySurfaceKHR(VK_KHR_surface)If no VkAllocationCallbacks were provided when surface was created, pAllocator must be NULL
VUID-vkDestroySurfaceKHR-surface-parameterYNoneimplicitvkDestroySurfaceKHR(VK_KHR_surface)If surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle
VUID-vkDestroySurfaceKHR-surface-parentNNoneimplicitvkDestroySurfaceKHR(VK_KHR_surface)If surface is a valid handle, it must have been created, allocated, or retrieved from instance
VUID-vkDestroySwapchainKHR-device-parameterNNoneimplicitvkDestroySwapchainKHR(VK_KHR_surface)+(VK_KHR_swapchain)device must be a valid VkDevice handle
VUID-vkDestroySwapchainKHR-pAllocator-parameterNNoneimplicitvkDestroySwapchainKHR(VK_KHR_surface)+(VK_KHR_swapchain)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroySwapchainKHR-swapchain-01282NNoneexplicitvkDestroySwapchainKHR(VK_KHR_surface)+(VK_KHR_swapchain)All uses of presentable images acquired from swapchain must have completed execution
VUID-vkDestroySwapchainKHR-swapchain-01283YNoneexplicitvkDestroySwapchainKHR(VK_KHR_surface)+(VK_KHR_swapchain)If VkAllocationCallbacks were provided when swapchain was created, a compatible set of callbacks must be provided here
VUID-vkDestroySwapchainKHR-swapchain-01284YNoneexplicitvkDestroySwapchainKHR(VK_KHR_surface)+(VK_KHR_swapchain)If no VkAllocationCallbacks were provided when swapchain was created, pAllocator must be NULL
VUID-vkDestroySwapchainKHR-swapchain-parameterNNoneimplicitvkDestroySwapchainKHR(VK_KHR_surface)+(VK_KHR_swapchain)If swapchain is not VK_NULL_HANDLE, swapchain must be a valid VkSwapchainKHR handle
VUID-vkDestroySwapchainKHR-swapchain-parentNNoneimplicitvkDestroySwapchainKHR(VK_KHR_surface)+(VK_KHR_swapchain)If swapchain is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyValidationCacheEXT-device-parameterYNoneimplicitvkDestroyValidationCacheEXT(VK_EXT_validation_cache)device must be a valid VkDevice handle
VUID-vkDestroyValidationCacheEXT-pAllocator-parameterNNoneimplicitvkDestroyValidationCacheEXT(VK_EXT_validation_cache)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyValidationCacheEXT-validationCache-01537NNoneexplicitvkDestroyValidationCacheEXT(VK_EXT_validation_cache)If VkAllocationCallbacks were provided when validationCache was created, a compatible set of callbacks must be provided here
VUID-vkDestroyValidationCacheEXT-validationCache-01538NNoneexplicitvkDestroyValidationCacheEXT(VK_EXT_validation_cache)If no VkAllocationCallbacks were provided when validationCache was created, pAllocator must be NULL
VUID-vkDestroyValidationCacheEXT-validationCache-parameterYNoneimplicitvkDestroyValidationCacheEXT(VK_EXT_validation_cache)If validationCache is not VK_NULL_HANDLE, validationCache must be a valid VkValidationCacheEXT handle
VUID-vkDestroyValidationCacheEXT-validationCache-parentYNoneimplicitvkDestroyValidationCacheEXT(VK_EXT_validation_cache)If validationCache is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyVideoSessionKHR-device-parameterYNoneimplicitvkDestroyVideoSessionKHR(VK_KHR_video_queue)device must be a valid VkDevice handle
VUID-vkDestroyVideoSessionKHR-pAllocator-parameterNNoneimplicitvkDestroyVideoSessionKHR(VK_KHR_video_queue)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyVideoSessionKHR-videoSession-parameterYNoneimplicitvkDestroyVideoSessionKHR(VK_KHR_video_queue)If videoSession is not VK_NULL_HANDLE, videoSession must be a valid VkVideoSessionKHR handle
VUID-vkDestroyVideoSessionKHR-videoSession-parentYNoneimplicitvkDestroyVideoSessionKHR(VK_KHR_video_queue)If videoSession is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkDestroyVideoSessionParametersKHR-device-parameterYNoneimplicitvkDestroyVideoSessionParametersKHR(VK_KHR_video_queue)device must be a valid VkDevice handle
VUID-vkDestroyVideoSessionParametersKHR-pAllocator-parameterNNoneimplicitvkDestroyVideoSessionParametersKHR(VK_KHR_video_queue)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkDestroyVideoSessionParametersKHR-videoSessionParameters-parameterYNoneimplicitvkDestroyVideoSessionParametersKHR(VK_KHR_video_queue)If videoSessionParameters is not VK_NULL_HANDLE, videoSessionParameters must be a valid VkVideoSessionParametersKHR handle
VUID-vkDeviceWaitIdle-device-parameterYNoneimplicitvkDeviceWaitIdlecoredevice must be a valid VkDevice handle
VUID-vkDisplayPowerControlEXT-commonparentYNoneimplicitvkDisplayPowerControlEXT(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_display_control)Both of device, and display must have been created, allocated, or retrieved from the same VkPhysicalDevice
VUID-vkDisplayPowerControlEXT-device-parameterYNoneimplicitvkDisplayPowerControlEXT(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_display_control)device must be a valid VkDevice handle
VUID-vkDisplayPowerControlEXT-display-parameterYNoneimplicitvkDisplayPowerControlEXT(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_display_control)display must be a valid VkDisplayKHR handle
VUID-vkDisplayPowerControlEXT-pDisplayPowerInfo-parameterYNoneimplicitvkDisplayPowerControlEXT(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_display_control)pDisplayPowerInfo must be a valid pointer to a valid VkDisplayPowerInfoEXT structure
VUID-vkEndCommandBuffer-None-01978YTestEndCommandBufferWithConditionalRenderingexplicitvkEndCommandBuffer(VK_EXT_conditional_rendering)Conditional rendering must not be active
VUID-vkEndCommandBuffer-None-06991NNoneexplicitvkEndCommandBuffer(VK_KHR_video_queue)There must be no video session object bound
VUID-vkEndCommandBuffer-commandBuffer-00059YNoBeginCommandBufferexplicitvkEndCommandBuffercorecommandBuffer must be in the recording state
VUID-vkEndCommandBuffer-commandBuffer-00060YEndCommandBufferWithinRenderPassexplicitvkEndCommandBuffercoreIf commandBuffer is a primary command buffer, there must not be an active render pass instance
VUID-vkEndCommandBuffer-commandBuffer-00061YUnclosedAndDuplicateQueriesexplicitvkEndCommandBuffercoreAll queries made active during the recording of commandBuffer must have been made inactive
VUID-vkEndCommandBuffer-commandBuffer-00062NNoneexplicitvkEndCommandBuffer(VK_EXT_debug_marker)If 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-01815NNoneexplicitvkEndCommandBuffer(VK_EXT_debug_utils)If commandBuffer is a secondary command buffer, there must not be an outstanding vkCmdBeginDebugUtilsLabelEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdEndDebugUtilsLabelEXT
VUID-vkEndCommandBuffer-commandBuffer-parameterYNoneimplicitvkEndCommandBuffercorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkEnumerateDeviceExtensionProperties-pLayerName-parameterNNoneimplicitvkEnumerateDeviceExtensionPropertiescoreIf pLayerName is not NULL, pLayerName must be a null-terminated UTF-8 string
VUID-vkEnumerateDeviceExtensionProperties-pProperties-parameterYNoneimplicitvkEnumerateDeviceExtensionPropertiescoreIf the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkExtensionProperties structures
VUID-vkEnumerateDeviceExtensionProperties-pPropertyCount-parameterNNoneimplicitvkEnumerateDeviceExtensionPropertiescorepPropertyCount must be a valid pointer to a uint32_t value
VUID-vkEnumerateDeviceExtensionProperties-physicalDevice-parameterYNoneimplicitvkEnumerateDeviceExtensionPropertiescorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkEnumerateDeviceLayerProperties-pProperties-parameterNNoneimplicitvkEnumerateDeviceLayerPropertiescoreIf the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkLayerProperties structures
VUID-vkEnumerateDeviceLayerProperties-pPropertyCount-parameterNNoneimplicitvkEnumerateDeviceLayerPropertiescorepPropertyCount must be a valid pointer to a uint32_t value
VUID-vkEnumerateDeviceLayerProperties-physicalDevice-parameterYNoneimplicitvkEnumerateDeviceLayerPropertiescorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkEnumerateInstanceExtensionProperties-pLayerName-parameterNNoneimplicitvkEnumerateInstanceExtensionPropertiescoreIf pLayerName is not NULL, pLayerName must be a null-terminated UTF-8 string
VUID-vkEnumerateInstanceExtensionProperties-pProperties-parameterNNoneimplicitvkEnumerateInstanceExtensionPropertiescoreIf the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkExtensionProperties structures
VUID-vkEnumerateInstanceExtensionProperties-pPropertyCount-parameterNNoneimplicitvkEnumerateInstanceExtensionPropertiescorepPropertyCount must be a valid pointer to a uint32_t value
VUID-vkEnumerateInstanceLayerProperties-pProperties-parameterNNoneimplicitvkEnumerateInstanceLayerPropertiescoreIf the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkLayerProperties structures
VUID-vkEnumerateInstanceLayerProperties-pPropertyCount-parameterNNoneimplicitvkEnumerateInstanceLayerPropertiescorepPropertyCount must be a valid pointer to a uint32_t value
VUID-vkEnumerateInstanceVersion-pApiVersion-parameterNNoneimplicitvkEnumerateInstanceVersion(VK_VERSION_1_1)pApiVersion must be a valid pointer to a uint32_t value
VUID-vkEnumeratePhysicalDeviceGroups-instance-parameterYNoneimplicitvkEnumeratePhysicalDeviceGroups(VK_VERSION_1_1,VK_KHR_device_group_creation)instance must be a valid VkInstance handle
VUID-vkEnumeratePhysicalDeviceGroups-pPhysicalDeviceGroupCount-parameterNNoneimplicitvkEnumeratePhysicalDeviceGroups(VK_VERSION_1_1,VK_KHR_device_group_creation)pPhysicalDeviceGroupCount must be a valid pointer to a uint32_t value
VUID-vkEnumeratePhysicalDeviceGroups-pPhysicalDeviceGroupProperties-parameterYNoneimplicitvkEnumeratePhysicalDeviceGroups(VK_VERSION_1_1,VK_KHR_device_group_creation)If 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-parameterNNoneimplicitvkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(VK_KHR_performance_query)pCounterCount must be a valid pointer to a uint32_t value
VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounterDescriptions-parameterYNoneimplicitvkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(VK_KHR_performance_query)If 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-parameterYNoneimplicitvkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(VK_KHR_performance_query)If 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-parameterYNoneimplicitvkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(VK_KHR_performance_query)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkEnumeratePhysicalDevices-instance-parameterYNoneimplicitvkEnumeratePhysicalDevicescoreinstance must be a valid VkInstance handle
VUID-vkEnumeratePhysicalDevices-pPhysicalDeviceCount-parameterNNoneimplicitvkEnumeratePhysicalDevicescorepPhysicalDeviceCount must be a valid pointer to a uint32_t value
VUID-vkEnumeratePhysicalDevices-pPhysicalDevices-parameterYNoneimplicitvkEnumeratePhysicalDevicescoreIf the value referenced by pPhysicalDeviceCount is not 0, and pPhysicalDevices is not NULL, pPhysicalDevices must be a valid pointer to an array of pPhysicalDeviceCount VkPhysicalDevice handles
VUID-vkExportMetalObjectsEXT-device-parameterYNoneimplicitvkExportMetalObjectsEXT(VK_EXT_metal_objects)device must be a valid VkDevice handle
VUID-vkExportMetalObjectsEXT-pMetalObjectsInfo-parameterYNoneimplicitvkExportMetalObjectsEXT(VK_EXT_metal_objects)pMetalObjectsInfo must be a valid pointer to a VkExportMetalObjectsInfoEXT structure
VUID-vkFlushMappedMemoryRanges-device-parameterYNoneimplicitvkFlushMappedMemoryRangescoredevice must be a valid VkDevice handle
VUID-vkFlushMappedMemoryRanges-memoryRangeCount-arraylengthYNoneimplicitvkFlushMappedMemoryRangescorememoryRangeCount must be greater than 0
VUID-vkFlushMappedMemoryRanges-pMemoryRanges-parameterYNoneimplicitvkFlushMappedMemoryRangescorepMemoryRanges must be a valid pointer to an array of memoryRangeCount valid VkMappedMemoryRange structures
VUID-vkFreeCommandBuffers-commandBufferCount-arraylengthYValidateArrayLengthimplicitvkFreeCommandBufferscorecommandBufferCount must be greater than 0
VUID-vkFreeCommandBuffers-commandPool-parameterYNoneimplicitvkFreeCommandBufferscorecommandPool must be a valid VkCommandPool handle
VUID-vkFreeCommandBuffers-commandPool-parentYNoneimplicitvkFreeCommandBufferscorecommandPool must have been created, allocated, or retrieved from device
VUID-vkFreeCommandBuffers-device-parameterYNoneimplicitvkFreeCommandBufferscoredevice must be a valid VkDevice handle
VUID-vkFreeCommandBuffers-pCommandBuffers-00047YNoneexplicitvkFreeCommandBufferscoreAll elements of pCommandBuffers must not be in the pending state
VUID-vkFreeCommandBuffers-pCommandBuffers-00048YNoneexplicitvkFreeCommandBufferscorepCommandBuffers 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-parentYInvalidCommandPoolConsistencyimplicitvkFreeCommandBufferscoreEach element of pCommandBuffers that is a valid handle must have been created, allocated, or retrieved from commandPool
VUID-vkFreeDescriptorSets-descriptorPool-00312YFreeDescriptorFromOneShotPoolexplicitvkFreeDescriptorSetscoredescriptorPool must have been created with the VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT flag
VUID-vkFreeDescriptorSets-descriptorPool-parameterYNoneimplicitvkFreeDescriptorSetscoredescriptorPool must be a valid VkDescriptorPool handle
VUID-vkFreeDescriptorSets-descriptorPool-parentYNoneimplicitvkFreeDescriptorSetscoredescriptorPool must have been created, allocated, or retrieved from device
VUID-vkFreeDescriptorSets-descriptorSetCount-arraylengthYValidateArrayLengthimplicitvkFreeDescriptorSetscoredescriptorSetCount must be greater than 0
VUID-vkFreeDescriptorSets-device-parameterYNoneimplicitvkFreeDescriptorSetscoredevice must be a valid VkDevice handle
VUID-vkFreeDescriptorSets-pDescriptorSets-00309YInvalidCmdBufferDescriptorSetImageSamplerDestroyedexplicitvkFreeDescriptorSetscoreAll submitted commands that refer to any element of pDescriptorSets must have completed execution
VUID-vkFreeDescriptorSets-pDescriptorSets-00310YNoneexplicitvkFreeDescriptorSetscorepDescriptorSets 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-parentYInvalidDescriptorPoolConsistencyimplicitvkFreeDescriptorSetscoreEach element of pDescriptorSets that is a valid handle must have been created, allocated, or retrieved from descriptorPool
VUID-vkFreeMemory-device-parameterYNoneimplicitvkFreeMemorycoredevice must be a valid VkDevice handle
VUID-vkFreeMemory-memory-00677YInvalidCmdBarrierImageDestroyed, InvalidCmdBarrierBufferDestroyedexplicitvkFreeMemorycoreAll submitted commands that refer to memory (via images or buffers) must have completed execution
VUID-vkFreeMemory-memory-parameterYVertexBufferInvalidimplicitvkFreeMemorycoreIf memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle
VUID-vkFreeMemory-memory-parentYNoneimplicitvkFreeMemorycoreIf memory is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkFreeMemory-pAllocator-parameterNNoneimplicitvkFreeMemorycoreIf pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkGetAccelerationStructureBuildSizesKHR-buildType-parameterYNoneimplicitvkGetAccelerationStructureBuildSizesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)buildType must be a valid VkAccelerationStructureBuildTypeKHR value
VUID-vkGetAccelerationStructureBuildSizesKHR-device-03618NNoneexplicitvkGetAccelerationStructureBuildSizesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetAccelerationStructureBuildSizesKHR-device-parameterYNoneimplicitvkGetAccelerationStructureBuildSizesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)device must be a valid VkDevice handle
VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-03619YNoneexplicitvkGetAccelerationStructureBuildSizesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If pBuildInfo->geometryCount is not 0, pMaxPrimitiveCounts must be a valid pointer to an array of pBuildInfo->geometryCount uint32_t values
VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-03785NNoneexplicitvkGetAccelerationStructureBuildSizesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If 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-parameterYNoneimplicitvkGetAccelerationStructureBuildSizesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)pBuildInfo must be a valid pointer to a valid VkAccelerationStructureBuildGeometryInfoKHR structure
VUID-vkGetAccelerationStructureBuildSizesKHR-pMaxPrimitiveCounts-parameterNNoneimplicitvkGetAccelerationStructureBuildSizesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If pMaxPrimitiveCounts is not NULL, pMaxPrimitiveCounts must be a valid pointer to an array of pBuildInfo->geometryCount uint32_t values
VUID-vkGetAccelerationStructureBuildSizesKHR-pSizeInfo-parameterYNoneimplicitvkGetAccelerationStructureBuildSizesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)pSizeInfo must be a valid pointer to a VkAccelerationStructureBuildSizesInfoKHR structure
VUID-vkGetAccelerationStructureBuildSizesKHR-rayTracingPipeline-03617YNoneexplicitvkGetAccelerationStructureBuildSizesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The rayTracingPipeline or rayQuery feature must be enabled
VUID-vkGetAccelerationStructureDeviceAddressKHR-device-03504NNoneexplicitvkGetAccelerationStructureDeviceAddressKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetAccelerationStructureDeviceAddressKHR-device-parameterYNoneimplicitvkGetAccelerationStructureDeviceAddressKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)device must be a valid VkDevice handle
VUID-vkGetAccelerationStructureDeviceAddressKHR-pInfo-parameterYNoneimplicitvkGetAccelerationStructureDeviceAddressKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)pInfo must be a valid pointer to a valid VkAccelerationStructureDeviceAddressInfoKHR structure
VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-02787YNVRayTracingValidateGetAccelerationStructureHandleexplicitvkGetAccelerationStructureHandleNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)accelerationStructure must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV
VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parameterYNoneimplicitvkGetAccelerationStructureHandleNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)accelerationStructure must be a valid VkAccelerationStructureNV handle
VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parentYNoneimplicitvkGetAccelerationStructureHandleNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)accelerationStructure must have been created, allocated, or retrieved from device
VUID-vkGetAccelerationStructureHandleNV-dataSize-02240YNVRayTracingValidateGetAccelerationStructureHandleexplicitvkGetAccelerationStructureHandleNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)dataSize must be large enough to contain the result of the query, as described above
VUID-vkGetAccelerationStructureHandleNV-dataSize-arraylengthYNoneimplicitvkGetAccelerationStructureHandleNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)dataSize must be greater than 0
VUID-vkGetAccelerationStructureHandleNV-device-parameterYNoneimplicitvkGetAccelerationStructureHandleNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)device must be a valid VkDevice handle
VUID-vkGetAccelerationStructureHandleNV-pData-parameterYNoneimplicitvkGetAccelerationStructureHandleNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)pData must be a valid pointer to an array of dataSize bytes
VUID-vkGetAccelerationStructureMemoryRequirementsNV-device-parameterYNoneimplicitvkGetAccelerationStructureMemoryRequirementsNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)device must be a valid VkDevice handle
VUID-vkGetAccelerationStructureMemoryRequirementsNV-pInfo-parameterYNoneimplicitvkGetAccelerationStructureMemoryRequirementsNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)pInfo must be a valid pointer to a valid VkAccelerationStructureMemoryRequirementsInfoNV structure
VUID-vkGetAccelerationStructureMemoryRequirementsNV-pMemoryRequirements-parameterYNoneimplicitvkGetAccelerationStructureMemoryRequirementsNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2KHR structure
VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-None-08088YDescriptorBufferNotEnabledexplicitvkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)+(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The descriptorBufferCaptureReplay feature must be enabled
VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-device-08090YNoneexplicitvkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)+(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-device-parameterYNoneimplicitvkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)+(VK_NV_ray_tracing,VK_KHR_acceleration_structure)device must be a valid VkDevice handle
VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-pData-08089NNoneexplicitvkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)+(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::accelerationStructureCaptureReplayDescriptorDataSize bytes in size
VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-pData-parameterYNoneimplicitvkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)+(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pData must be a pointer value
VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-pInfo-parameterYNoneimplicitvkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)+(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pInfo must be a valid pointer to a valid VkAccelerationStructureCaptureDescriptorDataInfoEXT structure
VUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-01884YAndroidHardwareBufferDedicatedUsageDS, AndroidHardwareBufferImportBuffer, AndroidHardwareBufferGpuUsageexplicitvkGetAndroidHardwareBufferPropertiesANDROID(VK_ANDROID_external_memory_android_hardware_buffer)buffer 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-parameterYNoneimplicitvkGetAndroidHardwareBufferPropertiesANDROID(VK_ANDROID_external_memory_android_hardware_buffer)buffer must be a valid pointer to a valid AHardwareBuffer value
VUID-vkGetAndroidHardwareBufferPropertiesANDROID-device-parameterYNoneimplicitvkGetAndroidHardwareBufferPropertiesANDROID(VK_ANDROID_external_memory_android_hardware_buffer)device must be a valid VkDevice handle
VUID-vkGetAndroidHardwareBufferPropertiesANDROID-pProperties-parameterYNoneimplicitvkGetAndroidHardwareBufferPropertiesANDROID(VK_ANDROID_external_memory_android_hardware_buffer)pProperties must be a valid pointer to a VkAndroidHardwareBufferPropertiesANDROID structure
VUID-vkGetBufferCollectionPropertiesFUCHSIA-None-06405NNoneexplicitvkGetBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)Prior to calling vkGetBufferCollectionPropertiesFUCHSIA, the constraints on the buffer collection must have been set by either vkSetBufferCollectionImageConstraintsFUCHSIA or vkSetBufferCollectionBufferConstraintsFUCHSIA
VUID-vkGetBufferCollectionPropertiesFUCHSIA-collection-parameterYNoneimplicitvkGetBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)collection must be a valid VkBufferCollectionFUCHSIA handle
VUID-vkGetBufferCollectionPropertiesFUCHSIA-collection-parentYNoneimplicitvkGetBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)collection must have been created, allocated, or retrieved from device
VUID-vkGetBufferCollectionPropertiesFUCHSIA-device-parameterYNoneimplicitvkGetBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)device must be a valid VkDevice handle
VUID-vkGetBufferCollectionPropertiesFUCHSIA-pProperties-parameterYNoneimplicitvkGetBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)pProperties must be a valid pointer to a VkBufferCollectionPropertiesFUCHSIA structure
VUID-vkGetBufferDeviceAddress-None-06542NNoneexplicitvkGetBufferDeviceAddress(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+!(VK_EXT_buffer_device_address)The bufferDeviceAddress feature must be enabled
VUID-vkGetBufferDeviceAddress-bufferDeviceAddress-03324YBufferDeviceAddressEXTDisabled, BufferDeviceAddressKHRDisabledexplicitvkGetBufferDeviceAddress(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+(VK_EXT_buffer_device_address)The bufferDeviceAddress or VkPhysicalDeviceBufferDeviceAddressFeaturesEXT::bufferDeviceAddress feature must be enabled
VUID-vkGetBufferDeviceAddress-device-03325YNoneexplicitvkGetBufferDeviceAddress(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+(VK_EXT_buffer_device_address)If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice or VkPhysicalDeviceBufferDeviceAddressFeaturesEXT::bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetBufferDeviceAddress-device-06543NNoneexplicitvkGetBufferDeviceAddress(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+!(VK_EXT_buffer_device_address)If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetBufferDeviceAddress-device-parameterYNoneimplicitvkGetBufferDeviceAddress(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)device must be a valid VkDevice handle
VUID-vkGetBufferDeviceAddress-pInfo-parameterYNoneimplicitvkGetBufferDeviceAddress(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)pInfo must be a valid pointer to a valid VkBufferDeviceAddressInfo structure
VUID-vkGetBufferMemoryRequirements-buffer-parameterYNoneimplicitvkGetBufferMemoryRequirementscorebuffer must be a valid VkBuffer handle
VUID-vkGetBufferMemoryRequirements-buffer-parentYNoneimplicitvkGetBufferMemoryRequirementscorebuffer must have been created, allocated, or retrieved from device
VUID-vkGetBufferMemoryRequirements-device-parameterYNoneimplicitvkGetBufferMemoryRequirementscoredevice must be a valid VkDevice handle
VUID-vkGetBufferMemoryRequirements-pMemoryRequirements-parameterYNoneimplicitvkGetBufferMemoryRequirementscorepMemoryRequirements must be a valid pointer to a VkMemoryRequirements structure
VUID-vkGetBufferMemoryRequirements2-device-parameterYNoneimplicitvkGetBufferMemoryRequirements2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)device must be a valid VkDevice handle
VUID-vkGetBufferMemoryRequirements2-pInfo-parameterYNoneimplicitvkGetBufferMemoryRequirements2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)pInfo must be a valid pointer to a valid VkBufferMemoryRequirementsInfo2 structure
VUID-vkGetBufferMemoryRequirements2-pMemoryRequirements-parameterYNoneimplicitvkGetBufferMemoryRequirements2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure
VUID-vkGetBufferOpaqueCaptureAddress-None-03326YBufferDeviceAddressKHRDisabledexplicitvkGetBufferOpaqueCaptureAddress(VK_VERSION_1_2,VK_KHR_buffer_device_address)The bufferDeviceAddress feature must be enabled
VUID-vkGetBufferOpaqueCaptureAddress-device-03327YNoneexplicitvkGetBufferOpaqueCaptureAddress(VK_VERSION_1_2,VK_KHR_buffer_device_address)If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetBufferOpaqueCaptureAddress-device-parameterYNoneimplicitvkGetBufferOpaqueCaptureAddress(VK_VERSION_1_2,VK_KHR_buffer_device_address)device must be a valid VkDevice handle
VUID-vkGetBufferOpaqueCaptureAddress-pInfo-parameterYNoneimplicitvkGetBufferOpaqueCaptureAddress(VK_VERSION_1_2,VK_KHR_buffer_device_address)pInfo must be a valid pointer to a valid VkBufferDeviceAddressInfo structure
VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-None-08072YDescriptorBufferNotEnabledexplicitvkGetBufferOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)The descriptorBufferCaptureReplay feature must be enabled
VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-device-08074YNoneexplicitvkGetBufferOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-device-parameterYNoneimplicitvkGetBufferOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)device must be a valid VkDevice handle
VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pData-08073NNoneexplicitvkGetBufferOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)pData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::bufferCaptureReplayDescriptorDataSize bytes in size
VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pData-parameterYNoneimplicitvkGetBufferOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)pData must be a pointer value
VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-pInfo-parameterYNoneimplicitvkGetBufferOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)pInfo must be a valid pointer to a valid VkBufferCaptureDescriptorDataInfoEXT structure
VUID-vkGetCalibratedTimestampsEXT-device-parameterYNoneimplicitvkGetCalibratedTimestampsEXT(VK_EXT_calibrated_timestamps)device must be a valid VkDevice handle
VUID-vkGetCalibratedTimestampsEXT-pMaxDeviation-parameterYNoneimplicitvkGetCalibratedTimestampsEXT(VK_EXT_calibrated_timestamps)pMaxDeviation must be a valid pointer to a uint64_t value
VUID-vkGetCalibratedTimestampsEXT-pTimestampInfos-parameterYNoneimplicitvkGetCalibratedTimestampsEXT(VK_EXT_calibrated_timestamps)pTimestampInfos must be a valid pointer to an array of timestampCount valid VkCalibratedTimestampInfoEXT structures
VUID-vkGetCalibratedTimestampsEXT-pTimestamps-parameterYNoneimplicitvkGetCalibratedTimestampsEXT(VK_EXT_calibrated_timestamps)pTimestamps must be a valid pointer to an array of timestampCount uint64_t values
VUID-vkGetCalibratedTimestampsEXT-timestampCount-arraylengthYNoneimplicitvkGetCalibratedTimestampsEXT(VK_EXT_calibrated_timestamps)timestampCount must be greater than 0
VUID-vkGetDeferredOperationMaxConcurrencyKHR-device-parameterYNoneimplicitvkGetDeferredOperationMaxConcurrencyKHR(VK_KHR_deferred_host_operations)device must be a valid VkDevice handle
VUID-vkGetDeferredOperationMaxConcurrencyKHR-operation-parameterYNoneimplicitvkGetDeferredOperationMaxConcurrencyKHR(VK_KHR_deferred_host_operations)operation must be a valid VkDeferredOperationKHR handle
VUID-vkGetDeferredOperationMaxConcurrencyKHR-operation-parentYNoneimplicitvkGetDeferredOperationMaxConcurrencyKHR(VK_KHR_deferred_host_operations)operation must have been created, allocated, or retrieved from device
VUID-vkGetDeferredOperationResultKHR-device-parameterYNoneimplicitvkGetDeferredOperationResultKHR(VK_KHR_deferred_host_operations)device must be a valid VkDevice handle
VUID-vkGetDeferredOperationResultKHR-operation-parameterYNoneimplicitvkGetDeferredOperationResultKHR(VK_KHR_deferred_host_operations)operation must be a valid VkDeferredOperationKHR handle
VUID-vkGetDeferredOperationResultKHR-operation-parentYNoneimplicitvkGetDeferredOperationResultKHR(VK_KHR_deferred_host_operations)operation must have been created, allocated, or retrieved from device
VUID-vkGetDescriptorEXT-None-08015YDescriptorBufferNotEnabledexplicitvkGetDescriptorEXT(VK_EXT_descriptor_buffer)The descriptorBuffer feature must be enabled
VUID-vkGetDescriptorEXT-dataSize-08120YDescriptorBufferDescriptorGetInfoexplicitvkGetDescriptorEXT(VK_EXT_descriptor_buffer)+!(VK_EXT_fragment_density_map)dataSize must equal the size of a descriptor of type VkDescriptorGetInfoEXT::type determined by the value in VkPhysicalDeviceDescriptorBufferPropertiesEXT
VUID-vkGetDescriptorEXT-dataSize-08125YDescriptorBufferDescriptorGetInfoexplicitvkGetDescriptorEXT(VK_EXT_descriptor_buffer)+(VK_EXT_fragment_density_map)dataSize must equal the size of a descriptor of type VkDescriptorGetInfoEXT::type determined by the value in VkPhysicalDeviceDescriptorBufferPropertiesEXT, or 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-arraylengthYNoneimplicitvkGetDescriptorEXT(VK_EXT_descriptor_buffer)dataSize must be greater than 0
VUID-vkGetDescriptorEXT-device-parameterNNoneimplicitvkGetDescriptorEXT(VK_EXT_descriptor_buffer)device must be a valid VkDevice handle
VUID-vkGetDescriptorEXT-pDescriptor-08016NNoneexplicitvkGetDescriptorEXT(VK_EXT_descriptor_buffer)pDescriptor must be a valid pointer to an array of at least dataSize bytes
VUID-vkGetDescriptorEXT-pDescriptor-parameterYNoneimplicitvkGetDescriptorEXT(VK_EXT_descriptor_buffer)pDescriptor must be a valid pointer to an array of dataSize bytes
VUID-vkGetDescriptorEXT-pDescriptorInfo-parameterYNoneimplicitvkGetDescriptorEXT(VK_EXT_descriptor_buffer)pDescriptorInfo must be a valid pointer to a valid VkDescriptorGetInfoEXT structure
VUID-vkGetDescriptorSetHostMappingVALVE-descriptorSet-parameterYNoneimplicitvkGetDescriptorSetHostMappingVALVE(VK_VALVE_descriptor_set_host_mapping)descriptorSet must be a valid VkDescriptorSet handle
VUID-vkGetDescriptorSetHostMappingVALVE-device-parameterYNoneimplicitvkGetDescriptorSetHostMappingVALVE(VK_VALVE_descriptor_set_host_mapping)device must be a valid VkDevice handle
VUID-vkGetDescriptorSetHostMappingVALVE-ppData-parameterYNoneimplicitvkGetDescriptorSetHostMappingVALVE(VK_VALVE_descriptor_set_host_mapping)ppData must be a valid pointer to a pointer value
VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-None-08013YDescriptorBufferNotEnabledexplicitvkGetDescriptorSetLayoutBindingOffsetEXT(VK_EXT_descriptor_buffer)The descriptorBuffer feature must be enabled
VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-device-parameterYNoneimplicitvkGetDescriptorSetLayoutBindingOffsetEXT(VK_EXT_descriptor_buffer)device must be a valid VkDevice handle
VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-layout-08014YDescriptorBufferVariousexplicitvkGetDescriptorSetLayoutBindingOffsetEXT(VK_EXT_descriptor_buffer)layout must have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT flag set
VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-layout-parameterYNoneimplicitvkGetDescriptorSetLayoutBindingOffsetEXT(VK_EXT_descriptor_buffer)layout must be a valid VkDescriptorSetLayout handle
VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-layout-parentYNoneimplicitvkGetDescriptorSetLayoutBindingOffsetEXT(VK_EXT_descriptor_buffer)layout must have been created, allocated, or retrieved from device
VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-pOffset-parameterYNoneimplicitvkGetDescriptorSetLayoutBindingOffsetEXT(VK_EXT_descriptor_buffer)pOffset must be a valid pointer to a VkDeviceSize value
VUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-device-parameterYNoneimplicitvkGetDescriptorSetLayoutHostMappingInfoVALVE(VK_VALVE_descriptor_set_host_mapping)device must be a valid VkDevice handle
VUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-pBindingReference-parameterYNoneimplicitvkGetDescriptorSetLayoutHostMappingInfoVALVE(VK_VALVE_descriptor_set_host_mapping)pBindingReference must be a valid pointer to a valid VkDescriptorSetBindingReferenceVALVE structure
VUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-pHostMapping-parameterYNoneimplicitvkGetDescriptorSetLayoutHostMappingInfoVALVE(VK_VALVE_descriptor_set_host_mapping)pHostMapping must be a valid pointer to a VkDescriptorSetLayoutHostMappingInfoVALVE structure
VUID-vkGetDescriptorSetLayoutSizeEXT-None-08011YDescriptorBufferNotEnabledexplicitvkGetDescriptorSetLayoutSizeEXT(VK_EXT_descriptor_buffer)The descriptorBuffer feature must be enabled
VUID-vkGetDescriptorSetLayoutSizeEXT-device-parameterYNoneimplicitvkGetDescriptorSetLayoutSizeEXT(VK_EXT_descriptor_buffer)device must be a valid VkDevice handle
VUID-vkGetDescriptorSetLayoutSizeEXT-layout-08012YDescriptorBufferVariousexplicitvkGetDescriptorSetLayoutSizeEXT(VK_EXT_descriptor_buffer)layout must have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT flag set
VUID-vkGetDescriptorSetLayoutSizeEXT-layout-parameterYNoneimplicitvkGetDescriptorSetLayoutSizeEXT(VK_EXT_descriptor_buffer)layout must be a valid VkDescriptorSetLayout handle
VUID-vkGetDescriptorSetLayoutSizeEXT-layout-parentYNoneimplicitvkGetDescriptorSetLayoutSizeEXT(VK_EXT_descriptor_buffer)layout must have been created, allocated, or retrieved from device
VUID-vkGetDescriptorSetLayoutSizeEXT-pLayoutSizeInBytes-parameterYNoneimplicitvkGetDescriptorSetLayoutSizeEXT(VK_EXT_descriptor_buffer)pLayoutSizeInBytes must be a valid pointer to a VkDeviceSize value
VUID-vkGetDescriptorSetLayoutSupport-device-parameterYNoneimplicitvkGetDescriptorSetLayoutSupport(VK_VERSION_1_1,VK_KHR_maintenance3)device must be a valid VkDevice handle
VUID-vkGetDescriptorSetLayoutSupport-pCreateInfo-parameterYNoneimplicitvkGetDescriptorSetLayoutSupport(VK_VERSION_1_1,VK_KHR_maintenance3)pCreateInfo must be a valid pointer to a valid VkDescriptorSetLayoutCreateInfo structure
VUID-vkGetDescriptorSetLayoutSupport-pSupport-parameterYNoneimplicitvkGetDescriptorSetLayoutSupport(VK_VERSION_1_1,VK_KHR_maintenance3)pSupport must be a valid pointer to a VkDescriptorSetLayoutSupport structure
VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-device-parameterYNoneimplicitvkGetDeviceAccelerationStructureCompatibilityKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)device must be a valid VkDevice handle
VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-pCompatibility-parameterYNoneimplicitvkGetDeviceAccelerationStructureCompatibilityKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pCompatibility must be a valid pointer to a VkAccelerationStructureCompatibilityKHR value
VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-pVersionInfo-parameterYNoneimplicitvkGetDeviceAccelerationStructureCompatibilityKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pVersionInfo must be a valid pointer to a valid VkAccelerationStructureVersionInfoKHR structure
VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-rayTracingPipeline-03661YNoneexplicitvkGetDeviceAccelerationStructureCompatibilityKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The rayTracingPipeline or rayQuery feature must be enabled
VUID-vkGetDeviceBufferMemoryRequirements-device-parameterYNoneimplicitvkGetDeviceBufferMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)device must be a valid VkDevice handle
VUID-vkGetDeviceBufferMemoryRequirements-pInfo-parameterYNoneimplicitvkGetDeviceBufferMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)pInfo must be a valid pointer to a valid VkDeviceBufferMemoryRequirements structure
VUID-vkGetDeviceBufferMemoryRequirements-pMemoryRequirements-parameterYNoneimplicitvkGetDeviceBufferMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure
VUID-vkGetDeviceFaultInfoEXT-device-07336NNoneexplicitvkGetDeviceFaultInfoEXT(VK_EXT_device_fault)device must be in the lost state
VUID-vkGetDeviceFaultInfoEXT-device-parameterYNoneimplicitvkGetDeviceFaultInfoEXT(VK_EXT_device_fault)device must be a valid VkDevice handle
VUID-vkGetDeviceFaultInfoEXT-pFaultCounts-07337NNoneexplicitvkGetDeviceFaultInfoEXT(VK_EXT_device_fault)If 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-07338NNoneexplicitvkGetDeviceFaultInfoEXT(VK_EXT_device_fault)If 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-07339NNoneexplicitvkGetDeviceFaultInfoEXT(VK_EXT_device_fault)If 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-parameterYNoneimplicitvkGetDeviceFaultInfoEXT(VK_EXT_device_fault)pFaultCounts must be a valid pointer to a VkDeviceFaultCountsEXT structure
VUID-vkGetDeviceFaultInfoEXT-pFaultInfo-parameterYNoneimplicitvkGetDeviceFaultInfoEXT(VK_EXT_device_fault)If pFaultInfo is not NULL, pFaultInfo must be a valid pointer to a VkDeviceFaultInfoEXT structure
VUID-vkGetDeviceGroupPeerMemoryFeatures-device-parameterYNoneimplicitvkGetDeviceGroupPeerMemoryFeatures(VK_VERSION_1_1,VK_KHR_device_group)device must be a valid VkDevice handle
VUID-vkGetDeviceGroupPeerMemoryFeatures-heapIndex-00691NNoneexplicitvkGetDeviceGroupPeerMemoryFeatures(VK_VERSION_1_1,VK_KHR_device_group)heapIndex must be less than memoryHeapCount
VUID-vkGetDeviceGroupPeerMemoryFeatures-localDeviceIndex-00692NNoneexplicitvkGetDeviceGroupPeerMemoryFeatures(VK_VERSION_1_1,VK_KHR_device_group)localDeviceIndex must be a valid device index
VUID-vkGetDeviceGroupPeerMemoryFeatures-localDeviceIndex-00694NNoneexplicitvkGetDeviceGroupPeerMemoryFeatures(VK_VERSION_1_1,VK_KHR_device_group)localDeviceIndex must not equal remoteDeviceIndex
VUID-vkGetDeviceGroupPeerMemoryFeatures-pPeerMemoryFeatures-parameterYNoneimplicitvkGetDeviceGroupPeerMemoryFeatures(VK_VERSION_1_1,VK_KHR_device_group)pPeerMemoryFeatures must be a valid pointer to a VkPeerMemoryFeatureFlags value
VUID-vkGetDeviceGroupPeerMemoryFeatures-remoteDeviceIndex-00693NNoneexplicitvkGetDeviceGroupPeerMemoryFeatures(VK_VERSION_1_1,VK_KHR_device_group)remoteDeviceIndex must be a valid device index
VUID-vkGetDeviceGroupPresentCapabilitiesKHR-device-parameterYNoneimplicitvkGetDeviceGroupPresentCapabilitiesKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)device must be a valid VkDevice handle
VUID-vkGetDeviceGroupPresentCapabilitiesKHR-pDeviceGroupPresentCapabilities-parameterYNoneimplicitvkGetDeviceGroupPresentCapabilitiesKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)pDeviceGroupPresentCapabilities must be a valid pointer to a VkDeviceGroupPresentCapabilitiesKHR structure
VUID-vkGetDeviceGroupSurfacePresentModes2EXT-device-parameterYNoneimplicitvkGetDeviceGroupSurfacePresentModes2EXT(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_full_screen_exclusive)device must be a valid VkDevice handle
VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pModes-parameterNNoneimplicitvkGetDeviceGroupSurfacePresentModes2EXT(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_full_screen_exclusive)pModes must be a valid pointer to a VkDeviceGroupPresentModeFlagsKHR value
VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pSurfaceInfo-06213YTestSurfaceSupportByPhysicalDeviceexplicitvkGetDeviceGroupSurfacePresentModes2EXT(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_full_screen_exclusive)pSurfaceInfo->surface must be supported by all physical devices associated with device, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pSurfaceInfo-parameterYNoneimplicitvkGetDeviceGroupSurfacePresentModes2EXT(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_full_screen_exclusive)pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure
VUID-vkGetDeviceGroupSurfacePresentModesKHR-commonparentYNoneimplicitvkGetDeviceGroupSurfacePresentModesKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)Both of device, and surface must have been created, allocated, or retrieved from the same VkInstance
VUID-vkGetDeviceGroupSurfacePresentModesKHR-device-parameterYNoneimplicitvkGetDeviceGroupSurfacePresentModesKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)device must be a valid VkDevice handle
VUID-vkGetDeviceGroupSurfacePresentModesKHR-pModes-parameterNNoneimplicitvkGetDeviceGroupSurfacePresentModesKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)pModes must be a valid pointer to a VkDeviceGroupPresentModeFlagsKHR value
VUID-vkGetDeviceGroupSurfacePresentModesKHR-surface-06212YTestSurfaceSupportByPhysicalDeviceexplicitvkGetDeviceGroupSurfacePresentModesKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)surface must be supported by all physical devices associated with device, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetDeviceGroupSurfacePresentModesKHR-surface-parameterYNoneimplicitvkGetDeviceGroupSurfacePresentModesKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)surface must be a valid VkSurfaceKHR handle
VUID-vkGetDeviceImageMemoryRequirements-device-parameterYNoneimplicitvkGetDeviceImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)device must be a valid VkDevice handle
VUID-vkGetDeviceImageMemoryRequirements-pInfo-parameterYNoneimplicitvkGetDeviceImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)pInfo must be a valid pointer to a valid VkDeviceImageMemoryRequirements structure
VUID-vkGetDeviceImageMemoryRequirements-pMemoryRequirements-parameterYNoneimplicitvkGetDeviceImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure
VUID-vkGetDeviceImageSparseMemoryRequirements-device-parameterYNoneimplicitvkGetDeviceImageSparseMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)device must be a valid VkDevice handle
VUID-vkGetDeviceImageSparseMemoryRequirements-pInfo-parameterYNoneimplicitvkGetDeviceImageSparseMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)pInfo must be a valid pointer to a valid VkDeviceImageMemoryRequirements structure
VUID-vkGetDeviceImageSparseMemoryRequirements-pSparseMemoryRequirementCount-parameterNNoneimplicitvkGetDeviceImageSparseMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)pSparseMemoryRequirementCount must be a valid pointer to a uint32_t value
VUID-vkGetDeviceImageSparseMemoryRequirements-pSparseMemoryRequirements-parameterYNoneimplicitvkGetDeviceImageSparseMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)If 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-vkGetDeviceMemoryCommitment-device-parameterYNoneimplicitvkGetDeviceMemoryCommitmentcoredevice must be a valid VkDevice handle
VUID-vkGetDeviceMemoryCommitment-memory-00690YQueryMemoryCommitmentWithoutLazyPropertyexplicitvkGetDeviceMemoryCommitmentcorememory must have been created with a memory type that reports VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
VUID-vkGetDeviceMemoryCommitment-memory-parameterYNoneimplicitvkGetDeviceMemoryCommitmentcorememory must be a valid VkDeviceMemory handle
VUID-vkGetDeviceMemoryCommitment-memory-parentYNoneimplicitvkGetDeviceMemoryCommitmentcorememory must have been created, allocated, or retrieved from device
VUID-vkGetDeviceMemoryCommitment-pCommittedMemoryInBytes-parameterYNoneimplicitvkGetDeviceMemoryCommitmentcorepCommittedMemoryInBytes must be a valid pointer to a VkDeviceSize value
VUID-vkGetDeviceMemoryOpaqueCaptureAddress-None-03334YBufferDeviceAddressKHRDisabledexplicitvkGetDeviceMemoryOpaqueCaptureAddress(VK_VERSION_1_2,VK_KHR_buffer_device_address)The bufferDeviceAddress feature must be enabled
VUID-vkGetDeviceMemoryOpaqueCaptureAddress-device-03335YNoneexplicitvkGetDeviceMemoryOpaqueCaptureAddress(VK_VERSION_1_2,VK_KHR_buffer_device_address)If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetDeviceMemoryOpaqueCaptureAddress-device-parameterYNoneimplicitvkGetDeviceMemoryOpaqueCaptureAddress(VK_VERSION_1_2,VK_KHR_buffer_device_address)device must be a valid VkDevice handle
VUID-vkGetDeviceMemoryOpaqueCaptureAddress-pInfo-parameterYNoneimplicitvkGetDeviceMemoryOpaqueCaptureAddress(VK_VERSION_1_2,VK_KHR_buffer_device_address)pInfo must be a valid pointer to a valid VkDeviceMemoryOpaqueCaptureAddressInfo structure
VUID-vkGetDeviceMicromapCompatibilityEXT-device-parameterYNoneimplicitvkGetDeviceMicromapCompatibilityEXT(VK_EXT_opacity_micromap)device must be a valid VkDevice handle
VUID-vkGetDeviceMicromapCompatibilityEXT-micromap-07551NNoneexplicitvkGetDeviceMicromapCompatibilityEXT(VK_EXT_opacity_micromap)The micromap feature must be enabled
VUID-vkGetDeviceMicromapCompatibilityEXT-pCompatibility-parameterYNoneimplicitvkGetDeviceMicromapCompatibilityEXT(VK_EXT_opacity_micromap)pCompatibility must be a valid pointer to a VkAccelerationStructureCompatibilityKHR value
VUID-vkGetDeviceMicromapCompatibilityEXT-pVersionInfo-parameterYNoneimplicitvkGetDeviceMicromapCompatibilityEXT(VK_EXT_opacity_micromap)pVersionInfo must be a valid pointer to a valid VkMicromapVersionInfoEXT structure
VUID-vkGetDeviceProcAddr-device-parameterYNoneimplicitvkGetDeviceProcAddrcoredevice must be a valid VkDevice handle
VUID-vkGetDeviceProcAddr-pName-parameterNNoneimplicitvkGetDeviceProcAddrcorepName must be a null-terminated UTF-8 string
VUID-vkGetDeviceQueue-device-parameterYNoneimplicitvkGetDeviceQueuecoredevice must be a valid VkDevice handle
VUID-vkGetDeviceQueue-flags-01841YInvalidGetDeviceQueueexplicitvkGetDeviceQueuecoreVkDeviceQueueCreateInfo::flags must have been set to zero when device was created
VUID-vkGetDeviceQueue-pQueue-parameterYNoneimplicitvkGetDeviceQueuecorepQueue must be a valid pointer to a VkQueue handle
VUID-vkGetDeviceQueue-queueFamilyIndex-00384YInvalidGetDeviceQueueexplicitvkGetDeviceQueuecorequeueFamilyIndex must be one of the queue family indices specified when device was created, via the VkDeviceQueueCreateInfo structure
VUID-vkGetDeviceQueue-queueIndex-00385YInvalidGetDeviceQueueexplicitvkGetDeviceQueuecorequeueIndex must be less than the value of VkDeviceQueueCreateInfo::queueCount for the queue family indicated by queueFamilyIndex when device was created
VUID-vkGetDeviceQueue2-device-parameterYNoneimplicitvkGetDeviceQueue2(VK_VERSION_1_1)device must be a valid VkDevice handle
VUID-vkGetDeviceQueue2-pQueue-parameterYNoneimplicitvkGetDeviceQueue2(VK_VERSION_1_1)pQueue must be a valid pointer to a VkQueue handle
VUID-vkGetDeviceQueue2-pQueueInfo-parameterYNoneimplicitvkGetDeviceQueue2(VK_VERSION_1_1)pQueueInfo must be a valid pointer to a valid VkDeviceQueueInfo2 structure
VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-device-parameterYNoneimplicitvkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(VK_HUAWEI_subpass_shading)device must be a valid VkDevice handle
VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-pMaxWorkgroupSize-parameterYNoneimplicitvkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(VK_HUAWEI_subpass_shading)pMaxWorkgroupSize must be a valid pointer to a VkExtent2D structure
VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-renderpass-parameterYNoneimplicitvkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(VK_HUAWEI_subpass_shading)renderpass must be a valid VkRenderPass handle
VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-renderpass-parentYNoneimplicitvkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(VK_HUAWEI_subpass_shading)renderpass must have been created, allocated, or retrieved from device
VUID-vkGetDisplayModeProperties2KHR-display-parameterYNoneimplicitvkGetDisplayModeProperties2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)display must be a valid VkDisplayKHR handle
VUID-vkGetDisplayModeProperties2KHR-display-parentNNoneimplicitvkGetDisplayModeProperties2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)display must have been created, allocated, or retrieved from physicalDevice
VUID-vkGetDisplayModeProperties2KHR-pProperties-parameterYNoneimplicitvkGetDisplayModeProperties2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayModeProperties2KHR structures
VUID-vkGetDisplayModeProperties2KHR-pPropertyCount-parameterNNoneimplicitvkGetDisplayModeProperties2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)pPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetDisplayModeProperties2KHR-physicalDevice-parameterYNoneimplicitvkGetDisplayModeProperties2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetDisplayModePropertiesKHR-display-parameterYNoneimplicitvkGetDisplayModePropertiesKHR(VK_KHR_surface)+(VK_KHR_display)display must be a valid VkDisplayKHR handle
VUID-vkGetDisplayModePropertiesKHR-display-parentNNoneimplicitvkGetDisplayModePropertiesKHR(VK_KHR_surface)+(VK_KHR_display)display must have been created, allocated, or retrieved from physicalDevice
VUID-vkGetDisplayModePropertiesKHR-pProperties-parameterYNoneimplicitvkGetDisplayModePropertiesKHR(VK_KHR_surface)+(VK_KHR_display)If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayModePropertiesKHR structures
VUID-vkGetDisplayModePropertiesKHR-pPropertyCount-parameterNNoneimplicitvkGetDisplayModePropertiesKHR(VK_KHR_surface)+(VK_KHR_display)pPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetDisplayModePropertiesKHR-physicalDevice-parameterYNoneimplicitvkGetDisplayModePropertiesKHR(VK_KHR_surface)+(VK_KHR_display)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetDisplayPlaneCapabilities2KHR-pCapabilities-parameterYNoneimplicitvkGetDisplayPlaneCapabilities2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)pCapabilities must be a valid pointer to a VkDisplayPlaneCapabilities2KHR structure
VUID-vkGetDisplayPlaneCapabilities2KHR-pDisplayPlaneInfo-parameterYNoneimplicitvkGetDisplayPlaneCapabilities2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)pDisplayPlaneInfo must be a valid pointer to a valid VkDisplayPlaneInfo2KHR structure
VUID-vkGetDisplayPlaneCapabilities2KHR-physicalDevice-parameterYNoneimplicitvkGetDisplayPlaneCapabilities2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetDisplayPlaneCapabilitiesKHR-mode-parameterYNoneimplicitvkGetDisplayPlaneCapabilitiesKHR(VK_KHR_surface)+(VK_KHR_display)mode must be a valid VkDisplayModeKHR handle
VUID-vkGetDisplayPlaneCapabilitiesKHR-pCapabilities-parameterYNoneimplicitvkGetDisplayPlaneCapabilitiesKHR(VK_KHR_surface)+(VK_KHR_display)pCapabilities must be a valid pointer to a VkDisplayPlaneCapabilitiesKHR structure
VUID-vkGetDisplayPlaneCapabilitiesKHR-physicalDevice-parameterYNoneimplicitvkGetDisplayPlaneCapabilitiesKHR(VK_KHR_surface)+(VK_KHR_display)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetDisplayPlaneSupportedDisplaysKHR-pDisplayCount-parameterNNoneimplicitvkGetDisplayPlaneSupportedDisplaysKHR(VK_KHR_surface)+(VK_KHR_display)pDisplayCount must be a valid pointer to a uint32_t value
VUID-vkGetDisplayPlaneSupportedDisplaysKHR-pDisplays-parameterYNoneimplicitvkGetDisplayPlaneSupportedDisplaysKHR(VK_KHR_surface)+(VK_KHR_display)If 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-parameterYNoneimplicitvkGetDisplayPlaneSupportedDisplaysKHR(VK_KHR_surface)+(VK_KHR_display)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetDisplayPlaneSupportedDisplaysKHR-planeIndex-01249YDisplayPlaneSurfaceexplicitvkGetDisplayPlaneSupportedDisplaysKHR(VK_KHR_surface)+(VK_KHR_display)planeIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR
VUID-vkGetDrmDisplayEXT-display-parameterYNoneimplicitvkGetDrmDisplayEXT(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_drm_display)display must be a valid pointer to a VkDisplayKHR handle
VUID-vkGetDrmDisplayEXT-physicalDevice-parameterYNoneimplicitvkGetDrmDisplayEXT(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_drm_display)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetDynamicRenderingTilePropertiesQCOM-device-parameterYNoneimplicitvkGetDynamicRenderingTilePropertiesQCOM(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_QCOM_tile_properties)device must be a valid VkDevice handle
VUID-vkGetDynamicRenderingTilePropertiesQCOM-pProperties-parameterYNoneimplicitvkGetDynamicRenderingTilePropertiesQCOM(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_QCOM_tile_properties)pProperties must be a valid pointer to a VkTilePropertiesQCOM structure
VUID-vkGetDynamicRenderingTilePropertiesQCOM-pRenderingInfo-parameterYNoneimplicitvkGetDynamicRenderingTilePropertiesQCOM(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_QCOM_tile_properties)pRenderingInfo must be a valid pointer to a valid VkRenderingInfo structure
VUID-vkGetEventStatus-device-parameterYNoneimplicitvkGetEventStatuscoredevice must be a valid VkDevice handle
VUID-vkGetEventStatus-event-03940YNoneexplicitvkGetEventStatus(VK_VERSION_1_3,VK_KHR_synchronization2)event must not have been created with VK_EVENT_CREATE_DEVICE_ONLY_BIT
VUID-vkGetEventStatus-event-parameterYNoneimplicitvkGetEventStatuscoreevent must be a valid VkEvent handle
VUID-vkGetEventStatus-event-parentYNoneimplicitvkGetEventStatuscoreevent must have been created, allocated, or retrieved from device
VUID-vkGetFenceFdKHR-device-parameterYNoneimplicitvkGetFenceFdKHR(VK_KHR_external_fence_fd)device must be a valid VkDevice handle
VUID-vkGetFenceFdKHR-pFd-parameterYNoneimplicitvkGetFenceFdKHR(VK_KHR_external_fence_fd)pFd must be a valid pointer to an int value
VUID-vkGetFenceFdKHR-pGetFdInfo-parameterYNoneimplicitvkGetFenceFdKHR(VK_KHR_external_fence_fd)pGetFdInfo must be a valid pointer to a valid VkFenceGetFdInfoKHR structure
VUID-vkGetFenceStatus-device-parameterYNoneimplicitvkGetFenceStatuscoredevice must be a valid VkDevice handle
VUID-vkGetFenceStatus-fence-parameterYNoneimplicitvkGetFenceStatuscorefence must be a valid VkFence handle
VUID-vkGetFenceStatus-fence-parentYNoneimplicitvkGetFenceStatuscorefence must have been created, allocated, or retrieved from device
VUID-vkGetFenceWin32HandleKHR-device-parameterYNoneimplicitvkGetFenceWin32HandleKHR(VK_KHR_external_fence_win32)device must be a valid VkDevice handle
VUID-vkGetFenceWin32HandleKHR-pGetWin32HandleInfo-parameterYNoneimplicitvkGetFenceWin32HandleKHR(VK_KHR_external_fence_win32)pGetWin32HandleInfo must be a valid pointer to a valid VkFenceGetWin32HandleInfoKHR structure
VUID-vkGetFenceWin32HandleKHR-pHandle-parameterYNoneimplicitvkGetFenceWin32HandleKHR(VK_KHR_external_fence_win32)pHandle must be a valid pointer to a HANDLE value
VUID-vkGetFramebufferTilePropertiesQCOM-device-parameterYNoneimplicitvkGetFramebufferTilePropertiesQCOM(VK_QCOM_tile_properties)device must be a valid VkDevice handle
VUID-vkGetFramebufferTilePropertiesQCOM-framebuffer-parameterYNoneimplicitvkGetFramebufferTilePropertiesQCOM(VK_QCOM_tile_properties)framebuffer must be a valid VkFramebuffer handle
VUID-vkGetFramebufferTilePropertiesQCOM-framebuffer-parentYNoneimplicitvkGetFramebufferTilePropertiesQCOM(VK_QCOM_tile_properties)framebuffer must have been created, allocated, or retrieved from device
VUID-vkGetFramebufferTilePropertiesQCOM-pProperties-parameterYNoneimplicitvkGetFramebufferTilePropertiesQCOM(VK_QCOM_tile_properties)If 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-parameterNNoneimplicitvkGetFramebufferTilePropertiesQCOM(VK_QCOM_tile_properties)pPropertiesCount must be a valid pointer to a uint32_t value
VUID-vkGetGeneratedCommandsMemoryRequirementsNV-device-parameterYNoneimplicitvkGetGeneratedCommandsMemoryRequirementsNV(VK_NV_device_generated_commands)device must be a valid VkDevice handle
VUID-vkGetGeneratedCommandsMemoryRequirementsNV-deviceGeneratedCommands-02906NNoneexplicitvkGetGeneratedCommandsMemoryRequirementsNV(VK_NV_device_generated_commands)The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled
VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pInfo-parameterYNoneimplicitvkGetGeneratedCommandsMemoryRequirementsNV(VK_NV_device_generated_commands)pInfo must be a valid pointer to a valid VkGeneratedCommandsMemoryRequirementsInfoNV structure
VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pMemoryRequirements-parameterYNoneimplicitvkGetGeneratedCommandsMemoryRequirementsNV(VK_NV_device_generated_commands)pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure
VUID-vkGetImageDrmFormatModifierPropertiesEXT-device-parameterYNoneimplicitvkGetImageDrmFormatModifierPropertiesEXT(VK_EXT_image_drm_format_modifier)device must be a valid VkDevice handle
VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-02272NNoneexplicitvkGetImageDrmFormatModifierPropertiesEXT(VK_EXT_image_drm_format_modifier)image must have been created with tiling equal to VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-parameterYNoneimplicitvkGetImageDrmFormatModifierPropertiesEXT(VK_EXT_image_drm_format_modifier)image must be a valid VkImage handle
VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-parentYNoneimplicitvkGetImageDrmFormatModifierPropertiesEXT(VK_EXT_image_drm_format_modifier)image must have been created, allocated, or retrieved from device
VUID-vkGetImageDrmFormatModifierPropertiesEXT-pProperties-parameterYNoneimplicitvkGetImageDrmFormatModifierPropertiesEXT(VK_EXT_image_drm_format_modifier)pProperties must be a valid pointer to a VkImageDrmFormatModifierPropertiesEXT structure
VUID-vkGetImageMemoryRequirements-device-parameterYNoneimplicitvkGetImageMemoryRequirementscoredevice must be a valid VkDevice handle
VUID-vkGetImageMemoryRequirements-image-01588YInvalidMemoryRequirementsexplicitvkGetImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)image must not have been created with the VK_IMAGE_CREATE_DISJOINT_BIT flag set
VUID-vkGetImageMemoryRequirements-image-04004YAndroidHardwareBufferCreateImageViewexplicitvkGetImageMemoryRequirements(VK_ANDROID_external_memory_android_hardware_buffer)If 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-parameterYCreateUnknownObjectimplicitvkGetImageMemoryRequirementscoreimage must be a valid VkImage handle
VUID-vkGetImageMemoryRequirements-image-parentYNoneimplicitvkGetImageMemoryRequirementscoreimage must have been created, allocated, or retrieved from device
VUID-vkGetImageMemoryRequirements-pMemoryRequirements-parameterYNoneimplicitvkGetImageMemoryRequirementscorepMemoryRequirements must be a valid pointer to a VkMemoryRequirements structure
VUID-vkGetImageMemoryRequirements2-device-parameterYNoneimplicitvkGetImageMemoryRequirements2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)device must be a valid VkDevice handle
VUID-vkGetImageMemoryRequirements2-pInfo-parameterYNoneimplicitvkGetImageMemoryRequirements2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)pInfo must be a valid pointer to a valid VkImageMemoryRequirementsInfo2 structure
VUID-vkGetImageMemoryRequirements2-pMemoryRequirements-parameterYNoneimplicitvkGetImageMemoryRequirements2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure
VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-None-08076YDescriptorBufferNotEnabledexplicitvkGetImageOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)The descriptorBufferCaptureReplay feature must be enabled
VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-device-08078YNoneexplicitvkGetImageOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-device-parameterYNoneimplicitvkGetImageOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)device must be a valid VkDevice handle
VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-pData-08077NNoneexplicitvkGetImageOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)pData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::imageCaptureReplayDescriptorDataSize bytes in size
VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-pData-parameterYNoneimplicitvkGetImageOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)pData must be a pointer value
VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-pInfo-parameterYNoneimplicitvkGetImageOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)pInfo must be a valid pointer to a valid VkImageCaptureDescriptorDataInfoEXT structure
VUID-vkGetImageSparseMemoryRequirements-device-parameterYNoneimplicitvkGetImageSparseMemoryRequirementscoredevice must be a valid VkDevice handle
VUID-vkGetImageSparseMemoryRequirements-image-parameterYNoneimplicitvkGetImageSparseMemoryRequirementscoreimage must be a valid VkImage handle
VUID-vkGetImageSparseMemoryRequirements-image-parentYNoneimplicitvkGetImageSparseMemoryRequirementscoreimage must have been created, allocated, or retrieved from device
VUID-vkGetImageSparseMemoryRequirements-pSparseMemoryRequirementCount-parameterNNoneimplicitvkGetImageSparseMemoryRequirementscorepSparseMemoryRequirementCount must be a valid pointer to a uint32_t value
VUID-vkGetImageSparseMemoryRequirements-pSparseMemoryRequirements-parameterYNoneimplicitvkGetImageSparseMemoryRequirementscoreIf the value referenced by pSparseMemoryRequirementCount is not 0, and pSparseMemoryRequirements is not NULL, pSparseMemoryRequirements must be a valid pointer to an array of pSparseMemoryRequirementCount VkSparseImageMemoryRequirements structures
VUID-vkGetImageSparseMemoryRequirements2-device-parameterYNoneimplicitvkGetImageSparseMemoryRequirements2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)device must be a valid VkDevice handle
VUID-vkGetImageSparseMemoryRequirements2-pInfo-parameterYNoneimplicitvkGetImageSparseMemoryRequirements2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)pInfo must be a valid pointer to a valid VkImageSparseMemoryRequirementsInfo2 structure
VUID-vkGetImageSparseMemoryRequirements2-pSparseMemoryRequirementCount-parameterNNoneimplicitvkGetImageSparseMemoryRequirements2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)pSparseMemoryRequirementCount must be a valid pointer to a uint32_t value
VUID-vkGetImageSparseMemoryRequirements2-pSparseMemoryRequirements-parameterYNoneimplicitvkGetImageSparseMemoryRequirements2(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)If 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-01717YExerciseGetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutcoreThe arrayLayer member of pSubresource must be less than the arrayLayers specified in VkImageCreateInfo when image was created
VUID-vkGetImageSubresourceLayout-aspectMask-00997YExerciseGetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutcoreThe aspectMask member of pSubresource must only have a single bit set
VUID-vkGetImageSubresourceLayout-device-parameterYNoneimplicitvkGetImageSubresourceLayoutcoredevice must be a valid VkDevice handle
VUID-vkGetImageSubresourceLayout-format-01581YMultiplaneImageLayoutBadAspectFlagsexplicitvkGetImageSubresourceLayout(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the tiling of the image is VK_IMAGE_TILING_LINEAR and its format is a multi-planar format with two planes, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT
VUID-vkGetImageSubresourceLayout-format-01582YMultiplaneImageLayoutBadAspectFlagsexplicitvkGetImageSubresourceLayout(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the tiling of the image is VK_IMAGE_TILING_LINEAR and its format is a multi-planar format with three planes, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT or VK_IMAGE_ASPECT_PLANE_2_BIT
VUID-vkGetImageSubresourceLayout-format-04461YExerciseGetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutcoreIf format is a color format, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_COLOR_BIT
VUID-vkGetImageSubresourceLayout-format-04462YExerciseGetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutcoreIf format has a depth component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkGetImageSubresourceLayout-format-04463YExerciseGetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutcoreIf format has a stencil component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_STENCIL_BIT
VUID-vkGetImageSubresourceLayout-format-04464YExerciseGetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutcoreIf format 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-image-00996YExerciseGetImageSubresourceLayoutexplicitvkGetImageSubresourceLayout!(VK_EXT_image_drm_format_modifier)image must have been created with tiling equal to VK_IMAGE_TILING_LINEAR
VUID-vkGetImageSubresourceLayout-image-01895YAndroidHardwareBufferFetchUnboundImageInfoexplicitvkGetImageSubresourceLayout(VK_ANDROID_external_memory_android_hardware_buffer)If 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-02270YNoneexplicitvkGetImageSubresourceLayout(VK_EXT_image_drm_format_modifier)image must have been created with tiling equal to VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
VUID-vkGetImageSubresourceLayout-image-parameterYNoneimplicitvkGetImageSubresourceLayoutcoreimage must be a valid VkImage handle
VUID-vkGetImageSubresourceLayout-image-parentYNoneimplicitvkGetImageSubresourceLayoutcoreimage must have been created, allocated, or retrieved from device
VUID-vkGetImageSubresourceLayout-mipLevel-01716YExerciseGetImageSubresourceLayoutexplicitvkGetImageSubresourceLayoutcoreThe mipLevel member of pSubresource must be less than the mipLevels specified in VkImageCreateInfo when image was created
VUID-vkGetImageSubresourceLayout-pLayout-parameterYNoneimplicitvkGetImageSubresourceLayoutcorepLayout must be a valid pointer to a VkSubresourceLayout structure
VUID-vkGetImageSubresourceLayout-pSubresource-parameterYNoneimplicitvkGetImageSubresourceLayoutcorepSubresource must be a valid pointer to a valid VkImageSubresource structure
VUID-vkGetImageSubresourceLayout-tiling-02271YGetImageSubresourceLayoutInvalidDrmPlaneexplicitvkGetImageSubresourceLayout(VK_EXT_image_drm_format_modifier)If 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{ibit}BIT_EXT and the index i must be less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image's format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier
VUID-vkGetImageSubresourceLayout2EXT-arrayLayer-01717YInvalidImageCompressionControlexplicitvkGetImageSubresourceLayout2EXT(VK_EXT_image_compression_control)The arrayLayer member of pSubresource must be less than the arrayLayers specified in VkImageCreateInfo when image was created
VUID-vkGetImageSubresourceLayout2EXT-aspectMask-00997YInvalidImageCompressionControlexplicitvkGetImageSubresourceLayout2EXT(VK_EXT_image_compression_control)The aspectMask member of pSubresource must only have a single bit set
VUID-vkGetImageSubresourceLayout2EXT-device-parameterYNoneimplicitvkGetImageSubresourceLayout2EXT(VK_EXT_image_compression_control)device must be a valid VkDevice handle
VUID-vkGetImageSubresourceLayout2EXT-format-01581YInvalidImageCompressionControlexplicitvkGetImageSubresourceLayout2EXT(VK_EXT_image_compression_control)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the tiling of the image is VK_IMAGE_TILING_LINEAR and its format is a multi-planar format with two planes, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT
VUID-vkGetImageSubresourceLayout2EXT-format-01582YInvalidImageCompressionControlexplicitvkGetImageSubresourceLayout2EXT(VK_EXT_image_compression_control)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the tiling of the image is VK_IMAGE_TILING_LINEAR and its format is a multi-planar format with three planes, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT or VK_IMAGE_ASPECT_PLANE_2_BIT
VUID-vkGetImageSubresourceLayout2EXT-format-04461YInvalidImageCompressionControlexplicitvkGetImageSubresourceLayout2EXT(VK_EXT_image_compression_control)If format is a color format, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_COLOR_BIT
VUID-vkGetImageSubresourceLayout2EXT-format-04462YInvalidImageCompressionControlexplicitvkGetImageSubresourceLayout2EXT(VK_EXT_image_compression_control)If format has a depth component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_DEPTH_BIT
VUID-vkGetImageSubresourceLayout2EXT-format-04463YInvalidImageCompressionControlexplicitvkGetImageSubresourceLayout2EXT(VK_EXT_image_compression_control)If format has a stencil component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_STENCIL_BIT
VUID-vkGetImageSubresourceLayout2EXT-format-04464YInvalidImageCompressionControlexplicitvkGetImageSubresourceLayout2EXT(VK_EXT_image_compression_control)If format 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-vkGetImageSubresourceLayout2EXT-image-00996YInvalidImageCompressionControlexplicitvkGetImageSubresourceLayout2EXT(VK_EXT_image_compression_control)+!(VK_EXT_image_drm_format_modifier)image must have been created with tiling equal to VK_IMAGE_TILING_LINEAR
VUID-vkGetImageSubresourceLayout2EXT-image-01895YNoneexplicitvkGetImageSubresourceLayout2EXT(VK_EXT_image_compression_control)+(VK_ANDROID_external_memory_android_hardware_buffer)If 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-vkGetImageSubresourceLayout2EXT-image-02270NNoneexplicitvkGetImageSubresourceLayout2EXT(VK_EXT_image_compression_control)+(VK_EXT_image_drm_format_modifier)image must have been created with tiling equal to VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
VUID-vkGetImageSubresourceLayout2EXT-image-parameterYNoneimplicitvkGetImageSubresourceLayout2EXT(VK_EXT_image_compression_control)image must be a valid VkImage handle
VUID-vkGetImageSubresourceLayout2EXT-image-parentYNoneimplicitvkGetImageSubresourceLayout2EXT(VK_EXT_image_compression_control)image must have been created, allocated, or retrieved from device
VUID-vkGetImageSubresourceLayout2EXT-mipLevel-01716YInvalidImageCompressionControlexplicitvkGetImageSubresourceLayout2EXT(VK_EXT_image_compression_control)The mipLevel member of pSubresource must be less than the mipLevels specified in VkImageCreateInfo when image was created
VUID-vkGetImageSubresourceLayout2EXT-pLayout-parameterYNoneimplicitvkGetImageSubresourceLayout2EXT(VK_EXT_image_compression_control)pLayout must be a valid pointer to a VkSubresourceLayout2EXT structure
VUID-vkGetImageSubresourceLayout2EXT-pSubresource-parameterYNoneimplicitvkGetImageSubresourceLayout2EXT(VK_EXT_image_compression_control)pSubresource must be a valid pointer to a valid VkImageSubresource2EXT structure
VUID-vkGetImageSubresourceLayout2EXT-tiling-02271NNoneexplicitvkGetImageSubresourceLayout2EXT(VK_EXT_image_compression_control)+(VK_EXT_image_drm_format_modifier)If 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{ibit}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-parameterYNoneimplicitvkGetImageViewAddressNVX(VK_NVX_image_view_handle)device must be a valid VkDevice handle
VUID-vkGetImageViewAddressNVX-imageView-parameterYNoneimplicitvkGetImageViewAddressNVX(VK_NVX_image_view_handle)imageView must be a valid VkImageView handle
VUID-vkGetImageViewAddressNVX-imageView-parentYNoneimplicitvkGetImageViewAddressNVX(VK_NVX_image_view_handle)imageView must have been created, allocated, or retrieved from device
VUID-vkGetImageViewAddressNVX-pProperties-parameterYNoneimplicitvkGetImageViewAddressNVX(VK_NVX_image_view_handle)pProperties must be a valid pointer to a VkImageViewAddressPropertiesNVX structure
VUID-vkGetImageViewHandleNVX-device-parameterYNoneimplicitvkGetImageViewHandleNVX(VK_NVX_image_view_handle)device must be a valid VkDevice handle
VUID-vkGetImageViewHandleNVX-pInfo-parameterYNoneimplicitvkGetImageViewHandleNVX(VK_NVX_image_view_handle)pInfo must be a valid pointer to a valid VkImageViewHandleInfoNVX structure
VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-None-08080YDescriptorBufferNotEnabledexplicitvkGetImageViewOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)The descriptorBufferCaptureReplay feature must be enabled
VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-device-08082YNoneexplicitvkGetImageViewOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-device-parameterYNoneimplicitvkGetImageViewOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)device must be a valid VkDevice handle
VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-pData-08081NNoneexplicitvkGetImageViewOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)pData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::imageViewCaptureReplayDescriptorDataSize bytes in size
VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-pData-parameterYNoneimplicitvkGetImageViewOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)pData must be a pointer value
VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-pInfo-parameterYNoneimplicitvkGetImageViewOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)pInfo must be a valid pointer to a valid VkImageViewCaptureDescriptorDataInfoEXT structure
VUID-vkGetInstanceProcAddr-instance-parameterYNoneimplicitvkGetInstanceProcAddrcoreIf instance is not NULL, instance must be a valid VkInstance handle
VUID-vkGetInstanceProcAddr-pName-parameterNNoneimplicitvkGetInstanceProcAddrcorepName must be a null-terminated UTF-8 string
VUID-vkGetMemoryAndroidHardwareBufferANDROID-device-parameterYNoneimplicitvkGetMemoryAndroidHardwareBufferANDROID(VK_ANDROID_external_memory_android_hardware_buffer)device must be a valid VkDevice handle
VUID-vkGetMemoryAndroidHardwareBufferANDROID-pBuffer-parameterYNoneimplicitvkGetMemoryAndroidHardwareBufferANDROID(VK_ANDROID_external_memory_android_hardware_buffer)pBuffer must be a valid pointer to a valid pointer to an AHardwareBuffer value
VUID-vkGetMemoryAndroidHardwareBufferANDROID-pInfo-parameterYNoneimplicitvkGetMemoryAndroidHardwareBufferANDROID(VK_ANDROID_external_memory_android_hardware_buffer)pInfo must be a valid pointer to a valid VkMemoryGetAndroidHardwareBufferInfoANDROID structure
VUID-vkGetMemoryFdKHR-device-parameterYNoneimplicitvkGetMemoryFdKHR(VK_KHR_external_memory_fd)device must be a valid VkDevice handle
VUID-vkGetMemoryFdKHR-pFd-parameterYNoneimplicitvkGetMemoryFdKHR(VK_KHR_external_memory_fd)pFd must be a valid pointer to an int value
VUID-vkGetMemoryFdKHR-pGetFdInfo-parameterYNoneimplicitvkGetMemoryFdKHR(VK_KHR_external_memory_fd)pGetFdInfo must be a valid pointer to a valid VkMemoryGetFdInfoKHR structure
VUID-vkGetMemoryFdPropertiesKHR-device-parameterYNoneimplicitvkGetMemoryFdPropertiesKHR(VK_KHR_external_memory_fd)device must be a valid VkDevice handle
VUID-vkGetMemoryFdPropertiesKHR-fd-00673NNoneexplicitvkGetMemoryFdPropertiesKHR(VK_KHR_external_memory_fd)fd must be an external memory handle created outside of the Vulkan API
VUID-vkGetMemoryFdPropertiesKHR-handleType-00674NNoneexplicitvkGetMemoryFdPropertiesKHR(VK_KHR_external_memory_fd)handleType must not be VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT
VUID-vkGetMemoryFdPropertiesKHR-handleType-parameterYNoneimplicitvkGetMemoryFdPropertiesKHR(VK_KHR_external_memory_fd)handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-vkGetMemoryFdPropertiesKHR-pMemoryFdProperties-parameterYNoneimplicitvkGetMemoryFdPropertiesKHR(VK_KHR_external_memory_fd)pMemoryFdProperties must be a valid pointer to a VkMemoryFdPropertiesKHR structure
VUID-vkGetMemoryHostPointerPropertiesEXT-device-parameterYNoneimplicitvkGetMemoryHostPointerPropertiesEXT(VK_EXT_external_memory_host)device must be a valid VkDevice handle
VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01752NNoneexplicitvkGetMemoryHostPointerPropertiesEXT(VK_EXT_external_memory_host)handleType 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-01754NNoneexplicitvkGetMemoryHostPointerPropertiesEXT(VK_EXT_external_memory_host)If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT, pHostPointer must be a pointer to host memory
VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01755NNoneexplicitvkGetMemoryHostPointerPropertiesEXT(VK_EXT_external_memory_host)If 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-parameterYNoneimplicitvkGetMemoryHostPointerPropertiesEXT(VK_EXT_external_memory_host)handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-vkGetMemoryHostPointerPropertiesEXT-pHostPointer-01753NNoneexplicitvkGetMemoryHostPointerPropertiesEXT(VK_EXT_external_memory_host)pHostPointer must be a pointer aligned to an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment
VUID-vkGetMemoryHostPointerPropertiesEXT-pMemoryHostPointerProperties-parameterYNoneimplicitvkGetMemoryHostPointerPropertiesEXT(VK_EXT_external_memory_host)pMemoryHostPointerProperties must be a valid pointer to a VkMemoryHostPointerPropertiesEXT structure
VUID-vkGetMemoryRemoteAddressNV-device-parameterYNoneimplicitvkGetMemoryRemoteAddressNV(VK_NV_external_memory_rdma)device must be a valid VkDevice handle
VUID-vkGetMemoryRemoteAddressNV-pAddress-parameterYNoneimplicitvkGetMemoryRemoteAddressNV(VK_NV_external_memory_rdma)pAddress must be a valid pointer to a VkRemoteAddressNV value
VUID-vkGetMemoryRemoteAddressNV-pMemoryGetRemoteAddressInfo-parameterYNoneimplicitvkGetMemoryRemoteAddressNV(VK_NV_external_memory_rdma)pMemoryGetRemoteAddressInfo must be a valid pointer to a valid VkMemoryGetRemoteAddressInfoNV structure
VUID-vkGetMemoryWin32HandleKHR-device-parameterYNoneimplicitvkGetMemoryWin32HandleKHR(VK_KHR_external_memory_win32)device must be a valid VkDevice handle
VUID-vkGetMemoryWin32HandleKHR-pGetWin32HandleInfo-parameterYNoneimplicitvkGetMemoryWin32HandleKHR(VK_KHR_external_memory_win32)pGetWin32HandleInfo must be a valid pointer to a valid VkMemoryGetWin32HandleInfoKHR structure
VUID-vkGetMemoryWin32HandleKHR-pHandle-parameterYNoneimplicitvkGetMemoryWin32HandleKHR(VK_KHR_external_memory_win32)pHandle must be a valid pointer to a HANDLE value
VUID-vkGetMemoryWin32HandleNV-device-parameterYNoneimplicitvkGetMemoryWin32HandleNV(VK_NV_external_memory_win32)device must be a valid VkDevice handle
VUID-vkGetMemoryWin32HandleNV-handleType-01326NNoneexplicitvkGetMemoryWin32HandleNV(VK_NV_external_memory_win32)handleType must be a flag specified in VkExportMemoryAllocateInfoNV::handleTypes when allocating memory
VUID-vkGetMemoryWin32HandleNV-handleType-parameterYNoneimplicitvkGetMemoryWin32HandleNV(VK_NV_external_memory_win32)handleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values
VUID-vkGetMemoryWin32HandleNV-handleType-requiredbitmaskYNoneimplicitvkGetMemoryWin32HandleNV(VK_NV_external_memory_win32)handleType must not be 0
VUID-vkGetMemoryWin32HandleNV-memory-parameterYNoneimplicitvkGetMemoryWin32HandleNV(VK_NV_external_memory_win32)memory must be a valid VkDeviceMemory handle
VUID-vkGetMemoryWin32HandleNV-memory-parentYNoneimplicitvkGetMemoryWin32HandleNV(VK_NV_external_memory_win32)memory must have been created, allocated, or retrieved from device
VUID-vkGetMemoryWin32HandleNV-pHandle-parameterYNoneimplicitvkGetMemoryWin32HandleNV(VK_NV_external_memory_win32)pHandle must be a valid pointer to a HANDLE value
VUID-vkGetMemoryWin32HandlePropertiesKHR-device-parameterYNoneimplicitvkGetMemoryWin32HandlePropertiesKHR(VK_KHR_external_memory_win32)device must be a valid VkDevice handle
VUID-vkGetMemoryWin32HandlePropertiesKHR-handle-00665NNoneexplicitvkGetMemoryWin32HandlePropertiesKHR(VK_KHR_external_memory_win32)handle must be an external memory handle created outside of the Vulkan API
VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-00666NNoneexplicitvkGetMemoryWin32HandlePropertiesKHR(VK_KHR_external_memory_win32)handleType must not be one of the handle types defined as opaque
VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-parameterYNoneimplicitvkGetMemoryWin32HandlePropertiesKHR(VK_KHR_external_memory_win32)handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-vkGetMemoryWin32HandlePropertiesKHR-pMemoryWin32HandleProperties-parameterYNoneimplicitvkGetMemoryWin32HandlePropertiesKHR(VK_KHR_external_memory_win32)pMemoryWin32HandleProperties must be a valid pointer to a VkMemoryWin32HandlePropertiesKHR structure
VUID-vkGetMemoryZirconHandleFUCHSIA-device-parameterYNoneimplicitvkGetMemoryZirconHandleFUCHSIA(VK_FUCHSIA_external_memory)device must be a valid VkDevice handle
VUID-vkGetMemoryZirconHandleFUCHSIA-pGetZirconHandleInfo-parameterYNoneimplicitvkGetMemoryZirconHandleFUCHSIA(VK_FUCHSIA_external_memory)pGetZirconHandleInfo must be a valid pointer to a valid VkMemoryGetZirconHandleInfoFUCHSIA structure
VUID-vkGetMemoryZirconHandleFUCHSIA-pZirconHandle-parameterYNoneimplicitvkGetMemoryZirconHandleFUCHSIA(VK_FUCHSIA_external_memory)pZirconHandle must be a valid pointer to a zx_handle_t value
VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-device-parameterYNoneimplicitvkGetMemoryZirconHandlePropertiesFUCHSIA(VK_FUCHSIA_external_memory)device must be a valid VkDevice handle
VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-handleType-04773NNoneexplicitvkGetMemoryZirconHandlePropertiesFUCHSIA(VK_FUCHSIA_external_memory)handleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA
VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-handleType-parameterYNoneimplicitvkGetMemoryZirconHandlePropertiesFUCHSIA(VK_FUCHSIA_external_memory)handleType must be a valid VkExternalMemoryHandleTypeFlagBits value
VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-pMemoryZirconHandleProperties-parameterYNoneimplicitvkGetMemoryZirconHandlePropertiesFUCHSIA(VK_FUCHSIA_external_memory)pMemoryZirconHandleProperties must be a valid pointer to a VkMemoryZirconHandlePropertiesFUCHSIA structure
VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-zirconHandle-04774NNoneexplicitvkGetMemoryZirconHandlePropertiesFUCHSIA(VK_FUCHSIA_external_memory)zirconHandle must reference a valid VMO
VUID-vkGetMicromapBuildSizesEXT-buildType-parameterYNoneimplicitvkGetMicromapBuildSizesEXT(VK_EXT_opacity_micromap)buildType must be a valid VkAccelerationStructureBuildTypeKHR value
VUID-vkGetMicromapBuildSizesEXT-device-07440NNoneexplicitvkGetMicromapBuildSizesEXT(VK_EXT_opacity_micromap)If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetMicromapBuildSizesEXT-device-parameterYNoneimplicitvkGetMicromapBuildSizesEXT(VK_EXT_opacity_micromap)device must be a valid VkDevice handle
VUID-vkGetMicromapBuildSizesEXT-micromap-07439NNoneexplicitvkGetMicromapBuildSizesEXT(VK_EXT_opacity_micromap)The micromap feature must be enabled
VUID-vkGetMicromapBuildSizesEXT-pBuildInfo-parameterYNoneimplicitvkGetMicromapBuildSizesEXT(VK_EXT_opacity_micromap)pBuildInfo must be a valid pointer to a valid VkMicromapBuildInfoEXT structure
VUID-vkGetMicromapBuildSizesEXT-pSizeInfo-parameterYNoneimplicitvkGetMicromapBuildSizesEXT(VK_EXT_opacity_micromap)pSizeInfo must be a valid pointer to a VkMicromapBuildSizesInfoEXT structure
VUID-vkGetPastPresentationTimingGOOGLE-device-parameterYNoneimplicitvkGetPastPresentationTimingGOOGLE(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)device must be a valid VkDevice handle
VUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimingCount-parameterNNoneimplicitvkGetPastPresentationTimingGOOGLE(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)pPresentationTimingCount must be a valid pointer to a uint32_t value
VUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimings-parameterYNoneimplicitvkGetPastPresentationTimingGOOGLE(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)If 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-parameterYNoneimplicitvkGetPastPresentationTimingGOOGLE(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)swapchain must be a valid VkSwapchainKHR handle
VUID-vkGetPastPresentationTimingGOOGLE-swapchain-parentNNoneimplicitvkGetPastPresentationTimingGOOGLE(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)swapchain must have been created, allocated, or retrieved from device
VUID-vkGetPerformanceParameterINTEL-device-parameterYNoneimplicitvkGetPerformanceParameterINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)device must be a valid VkDevice handle
VUID-vkGetPerformanceParameterINTEL-pValue-parameterYNoneimplicitvkGetPerformanceParameterINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)pValue must be a valid pointer to a VkPerformanceValueINTEL structure
VUID-vkGetPerformanceParameterINTEL-parameter-parameterYNoneimplicitvkGetPerformanceParameterINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)parameter must be a valid VkPerformanceParameterTypeINTEL value
VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-pTimeDomainCount-parameterNNoneimplicitvkGetPhysicalDeviceCalibrateableTimeDomainsEXT(VK_EXT_calibrated_timestamps)pTimeDomainCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-pTimeDomains-parameterYNoneimplicitvkGetPhysicalDeviceCalibrateableTimeDomainsEXT(VK_EXT_calibrated_timestamps)If the value referenced by pTimeDomainCount is not 0, and pTimeDomains is not NULL, pTimeDomains must be a valid pointer to an array of pTimeDomainCount VkTimeDomainEXT values
VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceCalibrateableTimeDomainsEXT(VK_EXT_calibrated_timestamps)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceCooperativeMatrixPropertiesNV(VK_NV_cooperative_matrix)If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkCooperativeMatrixPropertiesNV structures
VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-pPropertyCount-parameterNNoneimplicitvkGetPhysicalDeviceCooperativeMatrixPropertiesNV(VK_NV_cooperative_matrix)pPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceCooperativeMatrixPropertiesNV(VK_NV_cooperative_matrix)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-dfb-parameterYNoneimplicitvkGetPhysicalDeviceDirectFBPresentationSupportEXT(VK_KHR_surface)+(VK_EXT_directfb_surface)dfb must be a valid pointer to an IDirectFB value
VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceDirectFBPresentationSupportEXT(VK_KHR_surface)+(VK_EXT_directfb_surface)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-queueFamilyIndex-04119NNoneexplicitvkGetPhysicalDeviceDirectFBPresentationSupportEXT(VK_KHR_surface)+(VK_EXT_directfb_surface)queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice
VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceDisplayPlaneProperties2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayPlaneProperties2KHR structures
VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-pPropertyCount-parameterNNoneimplicitvkGetPhysicalDeviceDisplayPlaneProperties2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)pPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceDisplayPlaneProperties2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceDisplayPlanePropertiesKHR(VK_KHR_surface)+(VK_KHR_display)If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayPlanePropertiesKHR structures
VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-pPropertyCount-parameterNNoneimplicitvkGetPhysicalDeviceDisplayPlanePropertiesKHR(VK_KHR_surface)+(VK_KHR_display)pPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceDisplayPlanePropertiesKHR(VK_KHR_surface)+(VK_KHR_display)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceDisplayProperties2KHR-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceDisplayProperties2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayProperties2KHR structures
VUID-vkGetPhysicalDeviceDisplayProperties2KHR-pPropertyCount-parameterNNoneimplicitvkGetPhysicalDeviceDisplayProperties2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)pPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceDisplayProperties2KHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceDisplayProperties2KHR(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceDisplayPropertiesKHR(VK_KHR_surface)+(VK_KHR_display)If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayPropertiesKHR structures
VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-pPropertyCount-parameterNNoneimplicitvkGetPhysicalDeviceDisplayPropertiesKHR(VK_KHR_surface)+(VK_KHR_display)pPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceDisplayPropertiesKHR(VK_KHR_surface)+(VK_KHR_display)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceExternalBufferProperties-pExternalBufferInfo-parameterYNoneimplicitvkGetPhysicalDeviceExternalBufferProperties(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)pExternalBufferInfo must be a valid pointer to a valid VkPhysicalDeviceExternalBufferInfo structure
VUID-vkGetPhysicalDeviceExternalBufferProperties-pExternalBufferProperties-parameterYNoneimplicitvkGetPhysicalDeviceExternalBufferProperties(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)pExternalBufferProperties must be a valid pointer to a VkExternalBufferProperties structure
VUID-vkGetPhysicalDeviceExternalBufferProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceExternalBufferProperties(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceExternalFenceProperties-pExternalFenceInfo-parameterYNoneimplicitvkGetPhysicalDeviceExternalFenceProperties(VK_VERSION_1_1,VK_KHR_external_fence_capabilities)pExternalFenceInfo must be a valid pointer to a valid VkPhysicalDeviceExternalFenceInfo structure
VUID-vkGetPhysicalDeviceExternalFenceProperties-pExternalFenceProperties-parameterYNoneimplicitvkGetPhysicalDeviceExternalFenceProperties(VK_VERSION_1_1,VK_KHR_external_fence_capabilities)pExternalFenceProperties must be a valid pointer to a VkExternalFenceProperties structure
VUID-vkGetPhysicalDeviceExternalFenceProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceExternalFenceProperties(VK_VERSION_1_1,VK_KHR_external_fence_capabilities)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-externalHandleType-07721NNoneexplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNV(VK_NV_external_memory_capabilities)externalHandleType must not have more than one bit set
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-externalHandleType-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNV(VK_NV_external_memory_capabilities)externalHandleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-flags-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNV(VK_NV_external_memory_capabilities)flags must be a valid combination of VkImageCreateFlagBits values
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-format-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNV(VK_NV_external_memory_capabilities)format must be a valid VkFormat value
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-pExternalImageFormatProperties-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNV(VK_NV_external_memory_capabilities)pExternalImageFormatProperties must be a valid pointer to a VkExternalImageFormatPropertiesNV structure
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNV(VK_NV_external_memory_capabilities)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-tiling-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNV(VK_NV_external_memory_capabilities)tiling must be a valid VkImageTiling value
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-type-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNV(VK_NV_external_memory_capabilities)type must be a valid VkImageType value
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-usage-parameterYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNV(VK_NV_external_memory_capabilities)usage must be a valid combination of VkImageUsageFlagBits values
VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-usage-requiredbitmaskYNoneimplicitvkGetPhysicalDeviceExternalImageFormatPropertiesNV(VK_NV_external_memory_capabilities)usage must not be 0
VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-pExternalSemaphoreInfo-parameterYNoneimplicitvkGetPhysicalDeviceExternalSemaphoreProperties(VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities)pExternalSemaphoreInfo must be a valid pointer to a valid VkPhysicalDeviceExternalSemaphoreInfo structure
VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-pExternalSemaphoreProperties-parameterYNoneimplicitvkGetPhysicalDeviceExternalSemaphoreProperties(VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities)pExternalSemaphoreProperties must be a valid pointer to a VkExternalSemaphoreProperties structure
VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceExternalSemaphoreProperties(VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceFeatures-pFeatures-parameterYNoneimplicitvkGetPhysicalDeviceFeaturescorepFeatures must be a valid pointer to a VkPhysicalDeviceFeatures structure
VUID-vkGetPhysicalDeviceFeatures-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceFeaturescorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceFeatures2-pFeatures-parameterYNoneimplicitvkGetPhysicalDeviceFeatures2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)pFeatures must be a valid pointer to a VkPhysicalDeviceFeatures2 structure
VUID-vkGetPhysicalDeviceFeatures2-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceFeatures2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceFormatProperties-format-parameterYNoneimplicitvkGetPhysicalDeviceFormatPropertiescoreformat must be a valid VkFormat value
VUID-vkGetPhysicalDeviceFormatProperties-pFormatProperties-parameterYNoneimplicitvkGetPhysicalDeviceFormatPropertiescorepFormatProperties must be a valid pointer to a VkFormatProperties structure
VUID-vkGetPhysicalDeviceFormatProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceFormatPropertiescorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceFormatProperties2-format-parameterYNoneimplicitvkGetPhysicalDeviceFormatProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)format must be a valid VkFormat value
VUID-vkGetPhysicalDeviceFormatProperties2-pFormatProperties-parameterYNoneimplicitvkGetPhysicalDeviceFormatProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)pFormatProperties must be a valid pointer to a VkFormatProperties2 structure
VUID-vkGetPhysicalDeviceFormatProperties2-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceFormatProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-pFragmentShadingRateCount-parameterNNoneimplicitvkGetPhysicalDeviceFragmentShadingRatesKHR(VK_KHR_fragment_shading_rate)pFragmentShadingRateCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-pFragmentShadingRates-parameterYNoneimplicitvkGetPhysicalDeviceFragmentShadingRatesKHR(VK_KHR_fragment_shading_rate)If 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-parameterYNoneimplicitvkGetPhysicalDeviceFragmentShadingRatesKHR(VK_KHR_fragment_shading_rate)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceImageFormatProperties-flags-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatPropertiescoreflags must be a valid combination of VkImageCreateFlagBits values
VUID-vkGetPhysicalDeviceImageFormatProperties-format-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatPropertiescoreformat must be a valid VkFormat value
VUID-vkGetPhysicalDeviceImageFormatProperties-pImageFormatProperties-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatPropertiescorepImageFormatProperties must be a valid pointer to a VkImageFormatProperties structure
VUID-vkGetPhysicalDeviceImageFormatProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatPropertiescorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceImageFormatProperties-tiling-02248YImageDrmFormatModiferexplicitvkGetPhysicalDeviceImageFormatProperties(VK_EXT_image_drm_format_modifier)tiling must not be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT. (Use vkGetPhysicalDeviceImageFormatProperties2 instead)
VUID-vkGetPhysicalDeviceImageFormatProperties-tiling-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatPropertiescoretiling must be a valid VkImageTiling value
VUID-vkGetPhysicalDeviceImageFormatProperties-type-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatPropertiescoretype must be a valid VkImageType value
VUID-vkGetPhysicalDeviceImageFormatProperties-usage-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatPropertiescoreusage must be a valid combination of VkImageUsageFlagBits values
VUID-vkGetPhysicalDeviceImageFormatProperties-usage-requiredbitmaskYNoneimplicitvkGetPhysicalDeviceImageFormatPropertiescoreusage must not be 0
VUID-vkGetPhysicalDeviceImageFormatProperties2-pImageFormatInfo-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)pImageFormatInfo must be a valid pointer to a valid VkPhysicalDeviceImageFormatInfo2 structure
VUID-vkGetPhysicalDeviceImageFormatProperties2-pImageFormatProperties-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)pImageFormatProperties must be a valid pointer to a VkImageFormatProperties2 structure
VUID-vkGetPhysicalDeviceImageFormatProperties2-pNext-01868YAndroidHardwareBufferPhysDevImageFormatProp2explicitvkGetPhysicalDeviceImageFormatProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_ANDROID_external_memory_android_hardware_buffer)If 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-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceImageFormatProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceMemoryProperties-pMemoryProperties-parameterYNoneimplicitvkGetPhysicalDeviceMemoryPropertiescorepMemoryProperties must be a valid pointer to a VkPhysicalDeviceMemoryProperties structure
VUID-vkGetPhysicalDeviceMemoryProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceMemoryPropertiescorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceMemoryProperties2-pMemoryProperties-parameterYNoneimplicitvkGetPhysicalDeviceMemoryProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)pMemoryProperties must be a valid pointer to a VkPhysicalDeviceMemoryProperties2 structure
VUID-vkGetPhysicalDeviceMemoryProperties2-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceMemoryProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-pMultisampleProperties-parameterYNoneimplicitvkGetPhysicalDeviceMultisamplePropertiesEXT(VK_EXT_sample_locations)pMultisampleProperties must be a valid pointer to a VkMultisamplePropertiesEXT structure
VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceMultisamplePropertiesEXT(VK_EXT_sample_locations)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-samples-parameterYNoneimplicitvkGetPhysicalDeviceMultisamplePropertiesEXT(VK_EXT_sample_locations)samples must be a valid VkSampleCountFlagBits value
VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-pFormatCount-parameterNNoneimplicitvkGetPhysicalDeviceOpticalFlowImageFormatsNV(VK_NV_optical_flow)pFormatCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-pImageFormatProperties-parameterYNoneimplicitvkGetPhysicalDeviceOpticalFlowImageFormatsNV(VK_NV_optical_flow)If 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-parameterYNoneimplicitvkGetPhysicalDeviceOpticalFlowImageFormatsNV(VK_NV_optical_flow)pOpticalFlowImageFormatInfo must be a valid pointer to a valid VkOpticalFlowImageFormatInfoNV structure
VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceOpticalFlowImageFormatsNV(VK_NV_optical_flow)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDevicePresentRectanglesKHR-commonparentNNoneimplicitvkGetPhysicalDevicePresentRectanglesKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance
VUID-vkGetPhysicalDevicePresentRectanglesKHR-pRectCount-parameterNNoneimplicitvkGetPhysicalDevicePresentRectanglesKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)pRectCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDevicePresentRectanglesKHR-pRects-parameterYNoneimplicitvkGetPhysicalDevicePresentRectanglesKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If 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-parameterYNoneimplicitvkGetPhysicalDevicePresentRectanglesKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-06211YTestSurfaceSupportByPhysicalDeviceexplicitvkGetPhysicalDevicePresentRectanglesKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-06523NNoneexplicitvkGetPhysicalDevicePresentRectanglesKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-parameterYNoneimplicitvkGetPhysicalDevicePresentRectanglesKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceProperties-pProperties-parameterYNoneimplicitvkGetPhysicalDevicePropertiescorepProperties must be a valid pointer to a VkPhysicalDeviceProperties structure
VUID-vkGetPhysicalDeviceProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDevicePropertiescorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceProperties2-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)pProperties must be a valid pointer to a VkPhysicalDeviceProperties2 structure
VUID-vkGetPhysicalDeviceProperties2-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-pNumPasses-parameterYNoneimplicitvkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(VK_KHR_performance_query)pNumPasses must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-pPerformanceQueryCreateInfo-parameterYNoneimplicitvkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(VK_KHR_performance_query)pPerformanceQueryCreateInfo must be a valid pointer to a valid VkQueryPoolPerformanceCreateInfoKHR structure
VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(VK_KHR_performance_query)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyProperties-parameterYNoneimplicitvkGetPhysicalDeviceQueueFamilyPropertiescoreIf the value referenced by pQueueFamilyPropertyCount is not 0, and pQueueFamilyProperties is not NULL, pQueueFamilyProperties must be a valid pointer to an array of pQueueFamilyPropertyCount VkQueueFamilyProperties structures
VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyPropertyCount-parameterNNoneimplicitvkGetPhysicalDeviceQueueFamilyPropertiescorepQueueFamilyPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceQueueFamilyProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceQueueFamilyPropertiescorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceQueueFamilyProperties2-pQueueFamilyProperties-parameterYNoneimplicitvkGetPhysicalDeviceQueueFamilyProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)If the value referenced by pQueueFamilyPropertyCount is not 0, and pQueueFamilyProperties is not NULL, pQueueFamilyProperties must be a valid pointer to an array of pQueueFamilyPropertyCount VkQueueFamilyProperties2 structures
VUID-vkGetPhysicalDeviceQueueFamilyProperties2-pQueueFamilyPropertyCount-parameterNNoneimplicitvkGetPhysicalDeviceQueueFamilyProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)pQueueFamilyPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceQueueFamilyProperties2-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceQueueFamilyProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceScreenPresentationSupportQNX(VK_KHR_surface)+(VK_QNX_screen_surface)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-queueFamilyIndex-04743NNoneexplicitvkGetPhysicalDeviceScreenPresentationSupportQNX(VK_KHR_surface)+(VK_QNX_screen_surface)queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice
VUID-vkGetPhysicalDeviceScreenPresentationSupportQNX-window-parameterYNoneimplicitvkGetPhysicalDeviceScreenPresentationSupportQNX(VK_KHR_surface)+(VK_QNX_screen_surface)window must be a valid pointer to a _screen_window value
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-format-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiescoreformat must be a valid VkFormat value
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiescoreIf the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkSparseImageFormatProperties structures
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-pPropertyCount-parameterNNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiescorepPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiescorephysicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-samples-01094NNoneexplicitvkGetPhysicalDeviceSparseImageFormatPropertiescoresamples must be a bit value that is set in VkImageFormatProperties::sampleCounts returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, and usage equal to those in this command and flags equal to the value that is set in VkImageCreateInfo::flags when the image is created
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-samples-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiescoresamples must be a valid VkSampleCountFlagBits value
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-tiling-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiescoretiling must be a valid VkImageTiling value
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-type-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiescoretype must be a valid VkImageType value
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-usage-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiescoreusage must be a valid combination of VkImageUsageFlagBits values
VUID-vkGetPhysicalDeviceSparseImageFormatProperties-usage-requiredbitmaskYNoneimplicitvkGetPhysicalDeviceSparseImageFormatPropertiescoreusage must not be 0
VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pFormatInfo-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)pFormatInfo must be a valid pointer to a valid VkPhysicalDeviceSparseImageFormatInfo2 structure
VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pProperties-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkSparseImageFormatProperties2 structures
VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pPropertyCount-parameterNNoneimplicitvkGetPhysicalDeviceSparseImageFormatProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)pPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSparseImageFormatProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-pCombinationCount-parameterNNoneimplicitvkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)pCombinationCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-pCombinations-parameterYNoneimplicitvkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)If 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-parameterYNoneimplicitvkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-commonparentNNoneimplicitvkGetPhysicalDeviceSurfaceCapabilities2EXT(VK_KHR_surface)+(VK_EXT_display_surface_counter)Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance
VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-pSurfaceCapabilities-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilities2EXT(VK_KHR_surface)+(VK_EXT_display_surface_counter)pSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilities2EXT structure
VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilities2EXT(VK_KHR_surface)+(VK_EXT_display_surface_counter)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-06211YTestSurfaceSupportByPhysicalDeviceexplicitvkGetPhysicalDeviceSurfaceCapabilities2EXT(VK_KHR_surface)+(VK_EXT_display_surface_counter)surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-06523NNoneexplicitvkGetPhysicalDeviceSurfaceCapabilities2EXT(VK_KHR_surface)+(VK_EXT_display_surface_counter)surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilities2EXT(VK_KHR_surface)+(VK_EXT_display_surface_counter)surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-02671YPhysicalDeviceSurfaceCapabilitiesexplicitvkGetPhysicalDeviceSurfaceCapabilities2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_full_screen_exclusive+VK_KHR_win32_surface)If 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-pSurfaceCapabilities-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilities2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)pSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilities2KHR structure
VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06210YTestSurfaceSupportByPhysicalDeviceexplicitvkGetPhysicalDeviceSurfaceCapabilities2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)pSurfaceInfo->surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06520YNoneexplicitvkGetPhysicalDeviceSurfaceCapabilities2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)pSurfaceInfo->surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilities2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure
VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilities2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-commonparentNNoneimplicitvkGetPhysicalDeviceSurfaceCapabilitiesKHR(VK_KHR_surface)Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance
VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-pSurfaceCapabilities-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilitiesKHR(VK_KHR_surface)pSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilitiesKHR structure
VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilitiesKHR(VK_KHR_surface)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-06211YTestSurfaceSupportByPhysicalDeviceexplicitvkGetPhysicalDeviceSurfaceCapabilitiesKHR(VK_KHR_surface)surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-06523NNoneexplicitvkGetPhysicalDeviceSurfaceCapabilitiesKHR(VK_KHR_surface)surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceCapabilitiesKHR(VK_KHR_surface)surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceFormatCount-parameterNNoneimplicitvkGetPhysicalDeviceSurfaceFormats2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)pSurfaceFormatCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceFormats-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceFormats2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)If 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-06210YTestSurfaceSupportByPhysicalDeviceexplicitvkGetPhysicalDeviceSurfaceFormats2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+!(VK_GOOGLE_surfaceless_query)pSurfaceInfo->surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06520NNoneexplicitvkGetPhysicalDeviceSurfaceFormats2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+!(VK_GOOGLE_surfaceless_query)pSurfaceInfo->surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06521YNoneexplicitvkGetPhysicalDeviceSurfaceFormats2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_GOOGLE_surfaceless_query)If the VK_GOOGLE_surfaceless_query extension is not enabled, pSurfaceInfo->surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06522NNoneexplicitvkGetPhysicalDeviceSurfaceFormats2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_GOOGLE_surfaceless_query)If pSurfaceInfo->surface is not VK_NULL_HANDLE, it must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceFormats2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure
VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceFormats2KHR(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-commonparentNNoneimplicitvkGetPhysicalDeviceSurfaceFormatsKHR(VK_KHR_surface)Both 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-parameterNNoneimplicitvkGetPhysicalDeviceSurfaceFormatsKHR(VK_KHR_surface)pSurfaceFormatCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-pSurfaceFormats-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceFormatsKHR(VK_KHR_surface)If 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-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceFormatsKHR(VK_KHR_surface)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-06211YTestSurfaceSupportByPhysicalDeviceexplicitvkGetPhysicalDeviceSurfaceFormatsKHR(VK_KHR_surface)+!(VK_GOOGLE_surfaceless_query)surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-06523NNoneexplicitvkGetPhysicalDeviceSurfaceFormatsKHR(VK_KHR_surface)+!(VK_GOOGLE_surfaceless_query)surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-06524YNoneexplicitvkGetPhysicalDeviceSurfaceFormatsKHR(VK_KHR_surface)+(VK_GOOGLE_surfaceless_query)If the VK_GOOGLE_surfaceless_query extension is not enabled, surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-06525NNoneexplicitvkGetPhysicalDeviceSurfaceFormatsKHR(VK_KHR_surface)+(VK_GOOGLE_surfaceless_query)If surface is not VK_NULL_HANDLE, it must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceFormatsKHR(VK_KHR_surface)If surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pPresentModeCount-parameterNNoneimplicitvkGetPhysicalDeviceSurfacePresentModes2EXT(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)pPresentModeCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pPresentModes-parameterYNoneimplicitvkGetPhysicalDeviceSurfacePresentModes2EXT(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)If 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-06210YNoneexplicitvkGetPhysicalDeviceSurfacePresentModes2EXT(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)+!(VK_GOOGLE_surfaceless_query)pSurfaceInfo->surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-06520NNoneexplicitvkGetPhysicalDeviceSurfacePresentModes2EXT(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)+!(VK_GOOGLE_surfaceless_query)pSurfaceInfo->surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-06521YNoneexplicitvkGetPhysicalDeviceSurfacePresentModes2EXT(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)+(VK_GOOGLE_surfaceless_query)If the VK_GOOGLE_surfaceless_query extension is not enabled, pSurfaceInfo->surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-06522NNoneexplicitvkGetPhysicalDeviceSurfacePresentModes2EXT(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)+(VK_GOOGLE_surfaceless_query)If pSurfaceInfo->surface is not VK_NULL_HANDLE, it must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-parameterYNoneimplicitvkGetPhysicalDeviceSurfacePresentModes2EXT(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure
VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSurfacePresentModes2EXT(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-commonparentNNoneimplicitvkGetPhysicalDeviceSurfacePresentModesKHR(VK_KHR_surface)Both 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-parameterNNoneimplicitvkGetPhysicalDeviceSurfacePresentModesKHR(VK_KHR_surface)pPresentModeCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-pPresentModes-parameterYNoneimplicitvkGetPhysicalDeviceSurfacePresentModesKHR(VK_KHR_surface)If 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-parameterYNoneimplicitvkGetPhysicalDeviceSurfacePresentModesKHR(VK_KHR_surface)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06211YNoneexplicitvkGetPhysicalDeviceSurfacePresentModesKHR(VK_KHR_surface)+!(VK_GOOGLE_surfaceless_query)surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06523NNoneexplicitvkGetPhysicalDeviceSurfacePresentModesKHR(VK_KHR_surface)+!(VK_GOOGLE_surfaceless_query)surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06524YNoneexplicitvkGetPhysicalDeviceSurfacePresentModesKHR(VK_KHR_surface)+(VK_GOOGLE_surfaceless_query)If the VK_GOOGLE_surfaceless_query extension is not enabled, surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06525NNoneexplicitvkGetPhysicalDeviceSurfacePresentModesKHR(VK_KHR_surface)+(VK_GOOGLE_surfaceless_query)If surface is not VK_NULL_HANDLE, it must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-parameterYNoneimplicitvkGetPhysicalDeviceSurfacePresentModesKHR(VK_KHR_surface)If surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfaceSupportKHR-commonparentNNoneimplicitvkGetPhysicalDeviceSurfaceSupportKHR(VK_KHR_surface)Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance
VUID-vkGetPhysicalDeviceSurfaceSupportKHR-pSupported-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceSupportKHR(VK_KHR_surface)pSupported must be a valid pointer to a VkBool32 value
VUID-vkGetPhysicalDeviceSurfaceSupportKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceSupportKHR(VK_KHR_surface)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfaceSupportKHR-queueFamilyIndex-01269YNoneexplicitvkGetPhysicalDeviceSurfaceSupportKHR(VK_KHR_surface)queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice
VUID-vkGetPhysicalDeviceSurfaceSupportKHR-surface-parameterYNoneimplicitvkGetPhysicalDeviceSurfaceSupportKHR(VK_KHR_surface)surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceToolProperties-pToolCount-parameterNNoneimplicitvkGetPhysicalDeviceToolProperties(VK_VERSION_1_3,VK_EXT_tooling_info)pToolCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceToolProperties-pToolProperties-parameterYNoneimplicitvkGetPhysicalDeviceToolProperties(VK_VERSION_1_3,VK_EXT_tooling_info)If 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-parameterYNoneimplicitvkGetPhysicalDeviceToolProperties(VK_VERSION_1_3,VK_EXT_tooling_info)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pCapabilities-parameterYNoneimplicitvkGetPhysicalDeviceVideoCapabilitiesKHR(VK_KHR_video_queue)pCapabilities must be a valid pointer to a VkVideoCapabilitiesKHR structure
VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-parameterYNoneimplicitvkGetPhysicalDeviceVideoCapabilitiesKHR(VK_KHR_video_queue)pVideoProfile must be a valid pointer to a valid VkVideoProfileInfoKHR structure
VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceVideoCapabilitiesKHR(VK_KHR_video_queue)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pNext-06812NNoneexplicitvkGetPhysicalDeviceVideoFormatPropertiesKHR(VK_KHR_video_queue)The pNext chain of pVideoFormatInfo must include a valid VkVideoProfileListInfoKHR structure with profileCount greater than 0
VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pVideoFormatInfo-parameterYNoneimplicitvkGetPhysicalDeviceVideoFormatPropertiesKHR(VK_KHR_video_queue)pVideoFormatInfo must be a valid pointer to a valid VkPhysicalDeviceVideoFormatInfoKHR structure
VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-pVideoFormatProperties-parameterYNoneimplicitvkGetPhysicalDeviceVideoFormatPropertiesKHR(VK_KHR_video_queue)If 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-parameterNNoneimplicitvkGetPhysicalDeviceVideoFormatPropertiesKHR(VK_KHR_video_queue)pVideoFormatPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceVideoFormatPropertiesKHR(VK_KHR_video_queue)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-display-parameterYNoneimplicitvkGetPhysicalDeviceWaylandPresentationSupportKHR(VK_KHR_surface)+(VK_KHR_wayland_surface)display must be a valid pointer to a wl_display value
VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceWaylandPresentationSupportKHR(VK_KHR_surface)+(VK_KHR_wayland_surface)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-queueFamilyIndex-01306YNoneexplicitvkGetPhysicalDeviceWaylandPresentationSupportKHR(VK_KHR_surface)+(VK_KHR_wayland_surface)queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice
VUID-vkGetPhysicalDeviceWin32PresentationSupportKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceWin32PresentationSupportKHR(VK_KHR_surface)+(VK_KHR_win32_surface)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceWin32PresentationSupportKHR-queueFamilyIndex-01309YNoneexplicitvkGetPhysicalDeviceWin32PresentationSupportKHR(VK_KHR_surface)+(VK_KHR_win32_surface)queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice
VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-connection-parameterYNoneimplicitvkGetPhysicalDeviceXcbPresentationSupportKHR(VK_KHR_surface)+(VK_KHR_xcb_surface)connection must be a valid pointer to an xcb_connection_t value
VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceXcbPresentationSupportKHR(VK_KHR_surface)+(VK_KHR_xcb_surface)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-queueFamilyIndex-01312YNoneexplicitvkGetPhysicalDeviceXcbPresentationSupportKHR(VK_KHR_surface)+(VK_KHR_xcb_surface)queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice
VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-dpy-parameterYNoneimplicitvkGetPhysicalDeviceXlibPresentationSupportKHR(VK_KHR_surface)+(VK_KHR_xlib_surface)dpy must be a valid pointer to a Display value
VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-physicalDevice-parameterYNoneimplicitvkGetPhysicalDeviceXlibPresentationSupportKHR(VK_KHR_surface)+(VK_KHR_xlib_surface)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-queueFamilyIndex-01315YNoneexplicitvkGetPhysicalDeviceXlibPresentationSupportKHR(VK_KHR_surface)+(VK_KHR_xlib_surface)queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice
VUID-vkGetPipelineCacheData-device-parameterYNoneimplicitvkGetPipelineCacheDatacoredevice must be a valid VkDevice handle
VUID-vkGetPipelineCacheData-pData-parameterYNoneimplicitvkGetPipelineCacheDatacoreIf the value referenced by pDataSize is not 0, and pData is not NULL, pData must be a valid pointer to an array of pDataSize bytes
VUID-vkGetPipelineCacheData-pDataSize-parameterNNoneimplicitvkGetPipelineCacheDatacorepDataSize must be a valid pointer to a size_t value
VUID-vkGetPipelineCacheData-pipelineCache-parameterYNoneimplicitvkGetPipelineCacheDatacorepipelineCache must be a valid VkPipelineCache handle
VUID-vkGetPipelineCacheData-pipelineCache-parentYNoneimplicitvkGetPipelineCacheDatacorepipelineCache must have been created, allocated, or retrieved from device
VUID-vkGetPipelineExecutableInternalRepresentationsKHR-device-parameterYNoneimplicitvkGetPipelineExecutableInternalRepresentationsKHR(VK_KHR_pipeline_executable_properties)device must be a valid VkDevice handle
VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pExecutableInfo-parameterYNoneimplicitvkGetPipelineExecutableInternalRepresentationsKHR(VK_KHR_pipeline_executable_properties)pExecutableInfo must be a valid pointer to a valid VkPipelineExecutableInfoKHR structure
VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pInternalRepresentationCount-parameterNNoneimplicitvkGetPipelineExecutableInternalRepresentationsKHR(VK_KHR_pipeline_executable_properties)pInternalRepresentationCount must be a valid pointer to a uint32_t value
VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pInternalRepresentations-parameterYNoneimplicitvkGetPipelineExecutableInternalRepresentationsKHR(VK_KHR_pipeline_executable_properties)If 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-03277NNoneexplicitvkGetPipelineExecutableInternalRepresentationsKHR(VK_KHR_pipeline_executable_properties)The pipeline member of pExecutableInfo must have been created with device
VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipeline-03278YValidatePipelineExecutablePropertiesFeatureexplicitvkGetPipelineExecutableInternalRepresentationsKHR(VK_KHR_pipeline_executable_properties)The pipeline member of pExecutableInfo must have been created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipelineExecutableInfo-03276YValidatePipelineExecutablePropertiesFeatureexplicitvkGetPipelineExecutableInternalRepresentationsKHR(VK_KHR_pipeline_executable_properties)The pipelineExecutableInfo feature must be enabled
VUID-vkGetPipelineExecutablePropertiesKHR-device-parameterYNoneimplicitvkGetPipelineExecutablePropertiesKHR(VK_KHR_pipeline_executable_properties)device must be a valid VkDevice handle
VUID-vkGetPipelineExecutablePropertiesKHR-pExecutableCount-parameterNNoneimplicitvkGetPipelineExecutablePropertiesKHR(VK_KHR_pipeline_executable_properties)pExecutableCount must be a valid pointer to a uint32_t value
VUID-vkGetPipelineExecutablePropertiesKHR-pPipelineInfo-parameterYNoneimplicitvkGetPipelineExecutablePropertiesKHR(VK_KHR_pipeline_executable_properties)pPipelineInfo must be a valid pointer to a valid VkPipelineInfoKHR structure
VUID-vkGetPipelineExecutablePropertiesKHR-pProperties-parameterYNoneimplicitvkGetPipelineExecutablePropertiesKHR(VK_KHR_pipeline_executable_properties)If 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-03271NNoneexplicitvkGetPipelineExecutablePropertiesKHR(VK_KHR_pipeline_executable_properties)The pipeline member of pPipelineInfo must have been created with device
VUID-vkGetPipelineExecutablePropertiesKHR-pipelineExecutableInfo-03270YValidatePipelineExecutablePropertiesFeatureexplicitvkGetPipelineExecutablePropertiesKHR(VK_KHR_pipeline_executable_properties)The pipelineExecutableInfo feature must be enabled
VUID-vkGetPipelineExecutableStatisticsKHR-device-parameterYNoneimplicitvkGetPipelineExecutableStatisticsKHR(VK_KHR_pipeline_executable_properties)device must be a valid VkDevice handle
VUID-vkGetPipelineExecutableStatisticsKHR-pExecutableInfo-parameterYNoneimplicitvkGetPipelineExecutableStatisticsKHR(VK_KHR_pipeline_executable_properties)pExecutableInfo must be a valid pointer to a valid VkPipelineExecutableInfoKHR structure
VUID-vkGetPipelineExecutableStatisticsKHR-pStatisticCount-parameterNNoneimplicitvkGetPipelineExecutableStatisticsKHR(VK_KHR_pipeline_executable_properties)pStatisticCount must be a valid pointer to a uint32_t value
VUID-vkGetPipelineExecutableStatisticsKHR-pStatistics-parameterYNoneimplicitvkGetPipelineExecutableStatisticsKHR(VK_KHR_pipeline_executable_properties)If 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-03273NNoneexplicitvkGetPipelineExecutableStatisticsKHR(VK_KHR_pipeline_executable_properties)The pipeline member of pExecutableInfo must have been created with device
VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03274YValidatePipelineExecutablePropertiesFeatureexplicitvkGetPipelineExecutableStatisticsKHR(VK_KHR_pipeline_executable_properties)The pipeline member of pExecutableInfo must have been created with VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR
VUID-vkGetPipelineExecutableStatisticsKHR-pipelineExecutableInfo-03272YValidatePipelineExecutablePropertiesFeatureexplicitvkGetPipelineExecutableStatisticsKHR(VK_KHR_pipeline_executable_properties)The pipelineExecutableInfo feature must be enabled
VUID-vkGetPipelinePropertiesEXT-None-06766NNoneexplicitvkGetPipelinePropertiesEXT(VK_EXT_pipeline_properties)The pipelinePropertiesIdentifier feature must be enabled
VUID-vkGetPipelinePropertiesEXT-device-parameterYNoneimplicitvkGetPipelinePropertiesEXT(VK_EXT_pipeline_properties)device must be a valid VkDevice handle
VUID-vkGetPipelinePropertiesEXT-pPipelineInfo-parameterYNoneimplicitvkGetPipelinePropertiesEXT(VK_EXT_pipeline_properties)pPipelineInfo must be a valid pointer to a valid VkPipelineInfoEXT structure
VUID-vkGetPipelinePropertiesEXT-pPipelineProperties-06739NNoneexplicitvkGetPipelinePropertiesEXT(VK_EXT_pipeline_properties)pPipelineProperties must be a valid pointer to a VkPipelinePropertiesIdentifierEXT structure
VUID-vkGetPipelinePropertiesEXT-pipeline-06738NNoneexplicitvkGetPipelinePropertiesEXT(VK_EXT_pipeline_properties)The pipeline member of pPipelineInfo must have been created with device
VUID-vkGetPrivateData-device-parameterYNoneimplicitvkGetPrivateData(VK_VERSION_1_3,VK_EXT_private_data)device must be a valid VkDevice handle
VUID-vkGetPrivateData-objectType-04018NNoneexplicitvkGetPrivateData(VK_VERSION_1_3,VK_EXT_private_data)objectType must be VK_OBJECT_TYPE_DEVICE, or an object type whose parent is VkDevice
VUID-vkGetPrivateData-objectType-parameterYNoneimplicitvkGetPrivateData(VK_VERSION_1_3,VK_EXT_private_data)objectType must be a valid VkObjectType value
VUID-vkGetPrivateData-pData-parameterYNoneimplicitvkGetPrivateData(VK_VERSION_1_3,VK_EXT_private_data)pData must be a valid pointer to a uint64_t value
VUID-vkGetPrivateData-privateDataSlot-parameterYNoneimplicitvkGetPrivateData(VK_VERSION_1_3,VK_EXT_private_data)privateDataSlot must be a valid VkPrivateDataSlot handle
VUID-vkGetPrivateData-privateDataSlot-parentYNoneimplicitvkGetPrivateData(VK_VERSION_1_3,VK_EXT_private_data)privateDataSlot must have been created, allocated, or retrieved from device
VUID-vkGetQueryPoolResults-dataSize-00817YQueryPreciseBitexplicitvkGetQueryPoolResultscoredataSize must be large enough to contain the result of each query, as described here
VUID-vkGetQueryPoolResults-dataSize-arraylengthYNoneimplicitvkGetQueryPoolResultscoredataSize must be greater than 0
VUID-vkGetQueryPoolResults-device-parameterYNoneimplicitvkGetQueryPoolResultscoredevice must be a valid VkDevice handle
VUID-vkGetQueryPoolResults-firstQuery-00813YInvalidQuerySizesexplicitvkGetQueryPoolResultscorefirstQuery must be less than the number of queries in queryPool
VUID-vkGetQueryPoolResults-firstQuery-00816YInvalidQuerySizesexplicitvkGetQueryPoolResultscoreThe sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool
VUID-vkGetQueryPoolResults-flags-00815YValidateStrideexplicitvkGetQueryPoolResultscoreIf VK_QUERY_RESULT_64_BIT is set in flags then pData and stride must be multiples of 8
VUID-vkGetQueryPoolResults-flags-02827YValidateStrideexplicitvkGetQueryPoolResults!(VK_KHR_performance_query)If VK_QUERY_RESULT_64_BIT is not set in flags, then pData and stride must be multiples of 4
VUID-vkGetQueryPoolResults-flags-02828YTestGetQueryPoolResultsDataAndStrideexplicitvkGetQueryPoolResults(VK_KHR_performance_query)If 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-04811YGetQueryPoolResultsFlagsexplicitvkGetQueryPoolResults(VK_KHR_video_queue)If flags includes VK_QUERY_RESULT_WITH_STATUS_BIT_KHR, it must not include VK_QUERY_RESULT_WITH_AVAILABILITY_BIT
VUID-vkGetQueryPoolResults-flags-parameterYNoneimplicitvkGetQueryPoolResultscoreflags must be a valid combination of VkQueryResultFlagBits values
VUID-vkGetQueryPoolResults-pData-parameterYNoneimplicitvkGetQueryPoolResultscorepData must be a valid pointer to an array of dataSize bytes
VUID-vkGetQueryPoolResults-queryPool-parameterYNoneimplicitvkGetQueryPoolResultscorequeryPool must be a valid VkQueryPool handle
VUID-vkGetQueryPoolResults-queryPool-parentYNoneimplicitvkGetQueryPoolResultscorequeryPool must have been created, allocated, or retrieved from device
VUID-vkGetQueryPoolResults-queryType-00818YQueryPoolPartialTimestampexplicitvkGetQueryPoolResultscoreIf the queryType used to create queryPool was VK_QUERY_TYPE_TIMESTAMP, flags must not contain VK_QUERY_RESULT_PARTIAL_BIT
VUID-vkGetQueryPoolResults-queryType-03229YQueryPerformanceIncompletePassesexplicitvkGetQueryPoolResults(VK_KHR_performance_query)If 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-03230YQueryPerformanceIncompletePassesexplicitvkGetQueryPoolResults(VK_KHR_performance_query)If 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_PARTIAL_BIT or VK_QUERY_RESULT_64_BIT
VUID-vkGetQueryPoolResults-queryType-03231YQueryPerformanceIncompletePassesexplicitvkGetQueryPoolResults(VK_KHR_performance_query)If 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-04519YQueryPerformanceIncompletePassesexplicitvkGetQueryPoolResults(VK_KHR_performance_query)If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then stride must be large enough to contain VkQueryPoolPerformanceCreateInfoKHR::counterIndexCount used to create queryPool times the size of VkPerformanceCounterResultKHR
VUID-vkGetQueryPoolResults-queryType-04810YQueryPoolResultStatusOnlyexplicitvkGetQueryPoolResults(VK_KHR_video_queue)If the queryType used to create queryPool was VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR, flags must include VK_QUERY_RESULT_WITH_STATUS_BIT_KHR
VUID-vkGetQueryPoolResults-queryType-06900NNoneexplicitvkGetQueryPoolResults(VK_KHR_video_queue)If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, flags must not contain VK_QUERY_RESULT_WITH_STATUS_BIT_KHR
VUID-vkGetQueueCheckpointData2NV-pCheckpointData-parameterYNoneimplicitvkGetQueueCheckpointData2NV(VK_NV_device_diagnostic_checkpoints)+(VK_VERSION_1_3,VK_KHR_synchronization2)If the value referenced by pCheckpointDataCount is not 0, and pCheckpointData is not NULL, pCheckpointData must be a valid pointer to an array of pCheckpointDataCount VkCheckpointData2NV structures
VUID-vkGetQueueCheckpointData2NV-pCheckpointDataCount-parameterNNoneimplicitvkGetQueueCheckpointData2NV(VK_NV_device_diagnostic_checkpoints)+(VK_VERSION_1_3,VK_KHR_synchronization2)pCheckpointDataCount must be a valid pointer to a uint32_t value
VUID-vkGetQueueCheckpointData2NV-queue-03892NNoneexplicitvkGetQueueCheckpointData2NV(VK_NV_device_diagnostic_checkpoints)+(VK_VERSION_1_3,VK_KHR_synchronization2)The device that queue belongs to must be in the lost state
VUID-vkGetQueueCheckpointData2NV-queue-parameterYNoneimplicitvkGetQueueCheckpointData2NV(VK_NV_device_diagnostic_checkpoints)+(VK_VERSION_1_3,VK_KHR_synchronization2)queue must be a valid VkQueue handle
VUID-vkGetQueueCheckpointDataNV-pCheckpointData-parameterYNoneimplicitvkGetQueueCheckpointDataNV(VK_NV_device_diagnostic_checkpoints)If the value referenced by pCheckpointDataCount is not 0, and pCheckpointData is not NULL, pCheckpointData must be a valid pointer to an array of pCheckpointDataCount VkCheckpointDataNV structures
VUID-vkGetQueueCheckpointDataNV-pCheckpointDataCount-parameterNNoneimplicitvkGetQueueCheckpointDataNV(VK_NV_device_diagnostic_checkpoints)pCheckpointDataCount must be a valid pointer to a uint32_t value
VUID-vkGetQueueCheckpointDataNV-queue-02025NNoneexplicitvkGetQueueCheckpointDataNV(VK_NV_device_diagnostic_checkpoints)The device that queue belongs to must be in the lost state
VUID-vkGetQueueCheckpointDataNV-queue-parameterYNoneimplicitvkGetQueueCheckpointDataNV(VK_NV_device_diagnostic_checkpoints)queue must be a valid VkQueue handle
VUID-vkGetRandROutputDisplayEXT-dpy-parameterYNoneimplicitvkGetRandROutputDisplayEXT(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_xlib_display)dpy must be a valid pointer to a Display value
VUID-vkGetRandROutputDisplayEXT-pDisplay-parameterYNoneimplicitvkGetRandROutputDisplayEXT(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_xlib_display)pDisplay must be a valid pointer to a VkDisplayKHR handle
VUID-vkGetRandROutputDisplayEXT-physicalDevice-parameterYNoneimplicitvkGetRandROutputDisplayEXT(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_xlib_display)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-dataSize-03484YRayTracingValidateGetCaptureReplayShaderGroupHandlesKHRexplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)dataSize must be at least VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleCaptureReplaySize {times} groupCount
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-dataSize-arraylengthYRayTracingValidateGetCaptureReplayShaderGroupHandlesKHRimplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)dataSize must be greater than 0
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-device-parameterYNoneimplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)device must be a valid VkDevice handle
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-firstGroup-03483YRayTracingValidateGetCaptureReplayShaderGroupHandlesKHRexplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The sum of firstGroup and groupCount must be less than or equal to the number of shader groups in pipeline
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-firstGroup-04051YRayTracingValidateGetCaptureReplayShaderGroupHandlesKHRexplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)firstGroup must be less than the number of shader groups in pipeline
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pData-parameterYNoneimplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pData must be a valid pointer to an array of dataSize bytes
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-03607YNoneexplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pipeline must have been created with a flags that included VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-04620NNoneexplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pipeline must be a ray tracing pipeline
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-06720NNoneexplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_pipeline_library)pipeline must not have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-parameterYNoneimplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pipeline must be a valid VkPipeline handle
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-parentYNoneimplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pipeline must have been created, allocated, or retrieved from device
VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-rayTracingPipelineShaderGroupHandleCaptureReplay-03606YNoneexplicitvkGetRayTracingCaptureReplayShaderGroupHandlesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)VkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipelineShaderGroupHandleCaptureReplay must be enabled to call this function
VUID-vkGetRayTracingShaderGroupHandlesKHR-dataSize-02420YNoneexplicitvkGetRayTracingShaderGroupHandlesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)dataSize must be at least VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleSize {times} groupCount
VUID-vkGetRayTracingShaderGroupHandlesKHR-dataSize-arraylengthYNoneimplicitvkGetRayTracingShaderGroupHandlesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)dataSize must be greater than 0
VUID-vkGetRayTracingShaderGroupHandlesKHR-device-parameterYNoneimplicitvkGetRayTracingShaderGroupHandlesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)device must be a valid VkDevice handle
VUID-vkGetRayTracingShaderGroupHandlesKHR-firstGroup-02419YNoneexplicitvkGetRayTracingShaderGroupHandlesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The sum of firstGroup and groupCount must be less than or equal to the number of shader groups in pipeline
VUID-vkGetRayTracingShaderGroupHandlesKHR-firstGroup-04050YNoneexplicitvkGetRayTracingShaderGroupHandlesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)firstGroup must be less than the number of shader groups in pipeline
VUID-vkGetRayTracingShaderGroupHandlesKHR-pData-parameterYNoneimplicitvkGetRayTracingShaderGroupHandlesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)pData must be a valid pointer to an array of dataSize bytes
VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-03482YNoneexplicitvkGetRayTracingShaderGroupHandlesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_pipeline_library)pipeline must not have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-04619NNoneexplicitvkGetRayTracingShaderGroupHandlesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)pipeline must be a ray tracing pipeline
VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-parameterYNoneimplicitvkGetRayTracingShaderGroupHandlesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)pipeline must be a valid VkPipeline handle
VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-parentYNoneimplicitvkGetRayTracingShaderGroupHandlesKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)pipeline must have been created, allocated, or retrieved from device
VUID-vkGetRayTracingShaderGroupStackSizeKHR-device-parameterYNoneimplicitvkGetRayTracingShaderGroupStackSizeKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)device must be a valid VkDevice handle
VUID-vkGetRayTracingShaderGroupStackSizeKHR-group-03608YNoneexplicitvkGetRayTracingShaderGroupStackSizeKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The value of group must be less than the number of shader groups in pipeline
VUID-vkGetRayTracingShaderGroupStackSizeKHR-groupShader-03609NNoneexplicitvkGetRayTracingShaderGroupStackSizeKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)The shader identified by groupShader in group must not be VK_SHADER_UNUSED_KHR
VUID-vkGetRayTracingShaderGroupStackSizeKHR-groupShader-parameterYNoneimplicitvkGetRayTracingShaderGroupStackSizeKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)groupShader must be a valid VkShaderGroupShaderKHR value
VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-04622YRayTracingTestWrongPipelineTypeexplicitvkGetRayTracingShaderGroupStackSizeKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pipeline must be a ray tracing pipeline
VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-parameterYNoneimplicitvkGetRayTracingShaderGroupStackSizeKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pipeline must be a valid VkPipeline handle
VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-parentYNoneimplicitvkGetRayTracingShaderGroupStackSizeKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)pipeline must have been created, allocated, or retrieved from device
VUID-vkGetRefreshCycleDurationGOOGLE-device-parameterYNoneimplicitvkGetRefreshCycleDurationGOOGLE(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)device must be a valid VkDevice handle
VUID-vkGetRefreshCycleDurationGOOGLE-pDisplayTimingProperties-parameterYNoneimplicitvkGetRefreshCycleDurationGOOGLE(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)pDisplayTimingProperties must be a valid pointer to a VkRefreshCycleDurationGOOGLE structure
VUID-vkGetRefreshCycleDurationGOOGLE-swapchain-parameterYNoneimplicitvkGetRefreshCycleDurationGOOGLE(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)swapchain must be a valid VkSwapchainKHR handle
VUID-vkGetRefreshCycleDurationGOOGLE-swapchain-parentNNoneimplicitvkGetRefreshCycleDurationGOOGLE(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)swapchain must have been created, allocated, or retrieved from device
VUID-vkGetRenderAreaGranularity-device-parameterYNoneimplicitvkGetRenderAreaGranularitycoredevice must be a valid VkDevice handle
VUID-vkGetRenderAreaGranularity-pGranularity-parameterYNoneimplicitvkGetRenderAreaGranularitycorepGranularity must be a valid pointer to a VkExtent2D structure
VUID-vkGetRenderAreaGranularity-renderPass-parameterYNoneimplicitvkGetRenderAreaGranularitycorerenderPass must be a valid VkRenderPass handle
VUID-vkGetRenderAreaGranularity-renderPass-parentYNoneimplicitvkGetRenderAreaGranularitycorerenderPass must have been created, allocated, or retrieved from device
VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-None-08084YDescriptorBufferNotEnabledexplicitvkGetSamplerOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)The descriptorBufferCaptureReplay feature must be enabled
VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-device-08086YNoneexplicitvkGetSamplerOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled
VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-device-parameterYNoneimplicitvkGetSamplerOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)device must be a valid VkDevice handle
VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-pData-08085NNoneexplicitvkGetSamplerOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)pData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferPropertiesEXT::samplerCaptureReplayDescriptorDataSize bytes in size
VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-pData-parameterYNoneimplicitvkGetSamplerOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)pData must be a pointer value
VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-pInfo-parameterYNoneimplicitvkGetSamplerOpaqueCaptureDescriptorDataEXT(VK_EXT_descriptor_buffer)pInfo must be a valid pointer to a valid VkSamplerCaptureDescriptorDataInfoEXT structure
VUID-vkGetSemaphoreCounterValue-device-parameterYNoneimplicitvkGetSemaphoreCounterValue(VK_VERSION_1_2,VK_KHR_timeline_semaphore)device must be a valid VkDevice handle
VUID-vkGetSemaphoreCounterValue-pValue-parameterYNoneimplicitvkGetSemaphoreCounterValue(VK_VERSION_1_2,VK_KHR_timeline_semaphore)pValue must be a valid pointer to a uint64_t value
VUID-vkGetSemaphoreCounterValue-semaphore-03255YInvalidSemaphoreCounterTypeexplicitvkGetSemaphoreCounterValue(VK_VERSION_1_2,VK_KHR_timeline_semaphore)semaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE
VUID-vkGetSemaphoreCounterValue-semaphore-parameterYNoneimplicitvkGetSemaphoreCounterValue(VK_VERSION_1_2,VK_KHR_timeline_semaphore)semaphore must be a valid VkSemaphore handle
VUID-vkGetSemaphoreCounterValue-semaphore-parentYNoneimplicitvkGetSemaphoreCounterValue(VK_VERSION_1_2,VK_KHR_timeline_semaphore)semaphore must have been created, allocated, or retrieved from device
VUID-vkGetSemaphoreFdKHR-device-parameterYNoneimplicitvkGetSemaphoreFdKHR(VK_KHR_external_semaphore_fd)device must be a valid VkDevice handle
VUID-vkGetSemaphoreFdKHR-pFd-parameterYNoneimplicitvkGetSemaphoreFdKHR(VK_KHR_external_semaphore_fd)pFd must be a valid pointer to an int value
VUID-vkGetSemaphoreFdKHR-pGetFdInfo-parameterYNoneimplicitvkGetSemaphoreFdKHR(VK_KHR_external_semaphore_fd)pGetFdInfo must be a valid pointer to a valid VkSemaphoreGetFdInfoKHR structure
VUID-vkGetSemaphoreWin32HandleKHR-device-parameterYNoneimplicitvkGetSemaphoreWin32HandleKHR(VK_KHR_external_semaphore_win32)device must be a valid VkDevice handle
VUID-vkGetSemaphoreWin32HandleKHR-pGetWin32HandleInfo-parameterYNoneimplicitvkGetSemaphoreWin32HandleKHR(VK_KHR_external_semaphore_win32)pGetWin32HandleInfo must be a valid pointer to a valid VkSemaphoreGetWin32HandleInfoKHR structure
VUID-vkGetSemaphoreWin32HandleKHR-pHandle-parameterYNoneimplicitvkGetSemaphoreWin32HandleKHR(VK_KHR_external_semaphore_win32)pHandle must be a valid pointer to a HANDLE value
VUID-vkGetSemaphoreZirconHandleFUCHSIA-device-parameterYNoneimplicitvkGetSemaphoreZirconHandleFUCHSIA(VK_FUCHSIA_external_semaphore)device must be a valid VkDevice handle
VUID-vkGetSemaphoreZirconHandleFUCHSIA-pGetZirconHandleInfo-parameterYNoneimplicitvkGetSemaphoreZirconHandleFUCHSIA(VK_FUCHSIA_external_semaphore)pGetZirconHandleInfo must be a valid pointer to a valid VkSemaphoreGetZirconHandleInfoFUCHSIA structure
VUID-vkGetSemaphoreZirconHandleFUCHSIA-pZirconHandle-parameterYNoneimplicitvkGetSemaphoreZirconHandleFUCHSIA(VK_FUCHSIA_external_semaphore)pZirconHandle must be a valid pointer to a zx_handle_t value
VUID-vkGetShaderInfoAMD-device-parameterYNoneimplicitvkGetShaderInfoAMD(VK_AMD_shader_info)device must be a valid VkDevice handle
VUID-vkGetShaderInfoAMD-infoType-parameterYNoneimplicitvkGetShaderInfoAMD(VK_AMD_shader_info)infoType must be a valid VkShaderInfoTypeAMD value
VUID-vkGetShaderInfoAMD-pInfo-parameterYNoneimplicitvkGetShaderInfoAMD(VK_AMD_shader_info)If 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-parameterNNoneimplicitvkGetShaderInfoAMD(VK_AMD_shader_info)pInfoSize must be a valid pointer to a size_t value
VUID-vkGetShaderInfoAMD-pipeline-parameterYNoneimplicitvkGetShaderInfoAMD(VK_AMD_shader_info)pipeline must be a valid VkPipeline handle
VUID-vkGetShaderInfoAMD-pipeline-parentYNoneimplicitvkGetShaderInfoAMD(VK_AMD_shader_info)pipeline must have been created, allocated, or retrieved from device
VUID-vkGetShaderInfoAMD-shaderStage-parameterYNoneimplicitvkGetShaderInfoAMD(VK_AMD_shader_info)shaderStage must be a valid VkShaderStageFlagBits value
VUID-vkGetShaderModuleCreateInfoIdentifierEXT-device-parameterYNoneimplicitvkGetShaderModuleCreateInfoIdentifierEXT(VK_EXT_shader_module_identifier)device must be a valid VkDevice handle
VUID-vkGetShaderModuleCreateInfoIdentifierEXT-pCreateInfo-parameterYNoneimplicitvkGetShaderModuleCreateInfoIdentifierEXT(VK_EXT_shader_module_identifier)pCreateInfo must be a valid pointer to a valid VkShaderModuleCreateInfo structure
VUID-vkGetShaderModuleCreateInfoIdentifierEXT-pIdentifier-parameterYNoneimplicitvkGetShaderModuleCreateInfoIdentifierEXT(VK_EXT_shader_module_identifier)pIdentifier must be a valid pointer to a VkShaderModuleIdentifierEXT structure
VUID-vkGetShaderModuleCreateInfoIdentifierEXT-shaderModuleIdentifier-06885YShaderModuleIdentifierFeaturesexplicitvkGetShaderModuleCreateInfoIdentifierEXT(VK_EXT_shader_module_identifier)shaderModuleIdentifier feature must be enabled
VUID-vkGetShaderModuleIdentifierEXT-device-parameterYNoneimplicitvkGetShaderModuleIdentifierEXT(VK_EXT_shader_module_identifier)device must be a valid VkDevice handle
VUID-vkGetShaderModuleIdentifierEXT-pIdentifier-parameterYNoneimplicitvkGetShaderModuleIdentifierEXT(VK_EXT_shader_module_identifier)pIdentifier must be a valid pointer to a VkShaderModuleIdentifierEXT structure
VUID-vkGetShaderModuleIdentifierEXT-shaderModule-parameterYNoneimplicitvkGetShaderModuleIdentifierEXT(VK_EXT_shader_module_identifier)shaderModule must be a valid VkShaderModule handle
VUID-vkGetShaderModuleIdentifierEXT-shaderModule-parentYNoneimplicitvkGetShaderModuleIdentifierEXT(VK_EXT_shader_module_identifier)shaderModule must have been created, allocated, or retrieved from device
VUID-vkGetShaderModuleIdentifierEXT-shaderModuleIdentifier-06884YShaderModuleIdentifierFeaturesexplicitvkGetShaderModuleIdentifierEXT(VK_EXT_shader_module_identifier)shaderModuleIdentifier feature must be enabled
VUID-vkGetSwapchainCounterEXT-counter-parameterYNoneimplicitvkGetSwapchainCounterEXT(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_display_control)counter must be a valid VkSurfaceCounterFlagBitsEXT value
VUID-vkGetSwapchainCounterEXT-device-parameterYNoneimplicitvkGetSwapchainCounterEXT(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_display_control)device must be a valid VkDevice handle
VUID-vkGetSwapchainCounterEXT-pCounterValue-parameterYNoneimplicitvkGetSwapchainCounterEXT(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_display_control)pCounterValue must be a valid pointer to a uint64_t value
VUID-vkGetSwapchainCounterEXT-swapchain-01245NNoneexplicitvkGetSwapchainCounterEXT(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_display_control)One or more present commands on swapchain must have been processed by the presentation engine
VUID-vkGetSwapchainCounterEXT-swapchain-parameterYNoneimplicitvkGetSwapchainCounterEXT(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_display_control)swapchain must be a valid VkSwapchainKHR handle
VUID-vkGetSwapchainCounterEXT-swapchain-parentNNoneimplicitvkGetSwapchainCounterEXT(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_display_control)swapchain must have been created, allocated, or retrieved from device
VUID-vkGetSwapchainImagesKHR-device-parameterYNoneimplicitvkGetSwapchainImagesKHR(VK_KHR_surface)+(VK_KHR_swapchain)device must be a valid VkDevice handle
VUID-vkGetSwapchainImagesKHR-pSwapchainImageCount-parameterNNoneimplicitvkGetSwapchainImagesKHR(VK_KHR_surface)+(VK_KHR_swapchain)pSwapchainImageCount must be a valid pointer to a uint32_t value
VUID-vkGetSwapchainImagesKHR-pSwapchainImages-parameterYNoneimplicitvkGetSwapchainImagesKHR(VK_KHR_surface)+(VK_KHR_swapchain)If 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-parameterYNoneimplicitvkGetSwapchainImagesKHR(VK_KHR_surface)+(VK_KHR_swapchain)swapchain must be a valid VkSwapchainKHR handle
VUID-vkGetSwapchainImagesKHR-swapchain-parentYNoneimplicitvkGetSwapchainImagesKHR(VK_KHR_surface)+(VK_KHR_swapchain)swapchain must have been created, allocated, or retrieved from device
VUID-vkGetSwapchainStatusKHR-device-parameterYNoneimplicitvkGetSwapchainStatusKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_shared_presentable_image)device must be a valid VkDevice handle
VUID-vkGetSwapchainStatusKHR-swapchain-parameterYNoneimplicitvkGetSwapchainStatusKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_shared_presentable_image)swapchain must be a valid VkSwapchainKHR handle
VUID-vkGetSwapchainStatusKHR-swapchain-parentNNoneimplicitvkGetSwapchainStatusKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_shared_presentable_image)swapchain must have been created, allocated, or retrieved from device
VUID-vkGetValidationCacheDataEXT-device-parameterYNoneimplicitvkGetValidationCacheDataEXT(VK_EXT_validation_cache)device must be a valid VkDevice handle
VUID-vkGetValidationCacheDataEXT-pData-parameterYNoneimplicitvkGetValidationCacheDataEXT(VK_EXT_validation_cache)If 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-parameterNNoneimplicitvkGetValidationCacheDataEXT(VK_EXT_validation_cache)pDataSize must be a valid pointer to a size_t value
VUID-vkGetValidationCacheDataEXT-validationCache-parameterYNoneimplicitvkGetValidationCacheDataEXT(VK_EXT_validation_cache)validationCache must be a valid VkValidationCacheEXT handle
VUID-vkGetValidationCacheDataEXT-validationCache-parentYNoneimplicitvkGetValidationCacheDataEXT(VK_EXT_validation_cache)validationCache must have been created, allocated, or retrieved from device
VUID-vkGetVideoSessionMemoryRequirementsKHR-device-parameterYNoneimplicitvkGetVideoSessionMemoryRequirementsKHR(VK_KHR_video_queue)device must be a valid VkDevice handle
VUID-vkGetVideoSessionMemoryRequirementsKHR-pMemoryRequirements-parameterYNoneimplicitvkGetVideoSessionMemoryRequirementsKHR(VK_KHR_video_queue)If 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-parameterNNoneimplicitvkGetVideoSessionMemoryRequirementsKHR(VK_KHR_video_queue)pMemoryRequirementsCount must be a valid pointer to a uint32_t value
VUID-vkGetVideoSessionMemoryRequirementsKHR-videoSession-parameterYNoneimplicitvkGetVideoSessionMemoryRequirementsKHR(VK_KHR_video_queue)videoSession must be a valid VkVideoSessionKHR handle
VUID-vkGetVideoSessionMemoryRequirementsKHR-videoSession-parentYNoneimplicitvkGetVideoSessionMemoryRequirementsKHR(VK_KHR_video_queue)videoSession must have been created, allocated, or retrieved from device
VUID-vkGetWinrtDisplayNV-pDisplay-parameterYNoneimplicitvkGetWinrtDisplayNV(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_NV_acquire_winrt_display)pDisplay must be a valid pointer to a VkDisplayKHR handle
VUID-vkGetWinrtDisplayNV-physicalDevice-parameterYNoneimplicitvkGetWinrtDisplayNV(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_NV_acquire_winrt_display)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkImportFenceFdKHR-device-parameterYNoneimplicitvkImportFenceFdKHR(VK_KHR_external_fence_fd)device must be a valid VkDevice handle
VUID-vkImportFenceFdKHR-fence-01463YNoneexplicitvkImportFenceFdKHR(VK_KHR_external_fence_fd)fence must not be associated with any queue command that has not yet completed execution on that queue
VUID-vkImportFenceFdKHR-pImportFenceFdInfo-parameterYNoneimplicitvkImportFenceFdKHR(VK_KHR_external_fence_fd)pImportFenceFdInfo must be a valid pointer to a valid VkImportFenceFdInfoKHR structure
VUID-vkImportFenceWin32HandleKHR-device-parameterYNoneimplicitvkImportFenceWin32HandleKHR(VK_KHR_external_fence_win32)device must be a valid VkDevice handle
VUID-vkImportFenceWin32HandleKHR-fence-04448YNoneexplicitvkImportFenceWin32HandleKHR(VK_KHR_external_fence_win32)fence must not be associated with any queue command that has not yet completed execution on that queue
VUID-vkImportFenceWin32HandleKHR-pImportFenceWin32HandleInfo-parameterYNoneimplicitvkImportFenceWin32HandleKHR(VK_KHR_external_fence_win32)pImportFenceWin32HandleInfo must be a valid pointer to a valid VkImportFenceWin32HandleInfoKHR structure
VUID-vkImportSemaphoreFdKHR-device-parameterYNoneimplicitvkImportSemaphoreFdKHR(VK_KHR_external_semaphore_fd)device must be a valid VkDevice handle
VUID-vkImportSemaphoreFdKHR-pImportSemaphoreFdInfo-parameterYNoneimplicitvkImportSemaphoreFdKHR(VK_KHR_external_semaphore_fd)pImportSemaphoreFdInfo must be a valid pointer to a valid VkImportSemaphoreFdInfoKHR structure
VUID-vkImportSemaphoreFdKHR-semaphore-01142NNoneexplicitvkImportSemaphoreFdKHR(VK_KHR_external_semaphore_fd)semaphore must not be associated with any queue command that has not yet completed execution on that queue
VUID-vkImportSemaphoreWin32HandleKHR-device-parameterYNoneimplicitvkImportSemaphoreWin32HandleKHR(VK_KHR_external_semaphore_win32)device must be a valid VkDevice handle
VUID-vkImportSemaphoreWin32HandleKHR-pImportSemaphoreWin32HandleInfo-parameterYNoneimplicitvkImportSemaphoreWin32HandleKHR(VK_KHR_external_semaphore_win32)pImportSemaphoreWin32HandleInfo must be a valid pointer to a valid VkImportSemaphoreWin32HandleInfoKHR structure
VUID-vkImportSemaphoreZirconHandleFUCHSIA-device-parameterYNoneimplicitvkImportSemaphoreZirconHandleFUCHSIA(VK_FUCHSIA_external_semaphore)device must be a valid VkDevice handle
VUID-vkImportSemaphoreZirconHandleFUCHSIA-pImportSemaphoreZirconHandleInfo-parameterYNoneimplicitvkImportSemaphoreZirconHandleFUCHSIA(VK_FUCHSIA_external_semaphore)pImportSemaphoreZirconHandleInfo must be a valid pointer to a valid VkImportSemaphoreZirconHandleInfoFUCHSIA structure
VUID-vkImportSemaphoreZirconHandleFUCHSIA-semaphore-04764NNoneexplicitvkImportSemaphoreZirconHandleFUCHSIA(VK_FUCHSIA_external_semaphore)semaphore must not be associated with any queue command that has not yet completed execution on that queue
VUID-vkInitializePerformanceApiINTEL-device-parameterYNoneimplicitvkInitializePerformanceApiINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)device must be a valid VkDevice handle
VUID-vkInitializePerformanceApiINTEL-pInitializeInfo-parameterYNoneimplicitvkInitializePerformanceApiINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)pInitializeInfo must be a valid pointer to a valid VkInitializePerformanceApiInfoINTEL structure
VUID-vkInvalidateMappedMemoryRanges-device-parameterYNoneimplicitvkInvalidateMappedMemoryRangescoredevice must be a valid VkDevice handle
VUID-vkInvalidateMappedMemoryRanges-memoryRangeCount-arraylengthYNoneimplicitvkInvalidateMappedMemoryRangescorememoryRangeCount must be greater than 0
VUID-vkInvalidateMappedMemoryRanges-pMemoryRanges-parameterYNoneimplicitvkInvalidateMappedMemoryRangescorepMemoryRanges must be a valid pointer to an array of memoryRangeCount valid VkMappedMemoryRange structures
VUID-vkMapMemory-device-parameterYNoneimplicitvkMapMemorycoredevice must be a valid VkDevice handle
VUID-vkMapMemory-flags-zerobitmaskYNoneimplicitvkMapMemorycoreflags must be 0
VUID-vkMapMemory-memory-00678YInvalidMemoryMappingexplicitvkMapMemorycorememory must not be currently host mapped
VUID-vkMapMemory-memory-00682YMapMemWithoutHostVisibleBitexplicitvkMapMemorycorememory must have been created with a memory type that reports VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
VUID-vkMapMemory-memory-00683YMapMemWithoutHostVisibleBit, InvalidDeviceMaskexplicitvkMapMemory(VK_KHR_device_group)memory must not have been allocated with multiple instances
VUID-vkMapMemory-memory-parameterYNoneimplicitvkMapMemorycorememory must be a valid VkDeviceMemory handle
VUID-vkMapMemory-memory-parentYNoneimplicitvkMapMemorycorememory must have been created, allocated, or retrieved from device
VUID-vkMapMemory-offset-00679YInvalidMemoryMappingexplicitvkMapMemorycoreoffset must be less than the size of memory
VUID-vkMapMemory-ppData-parameterNNoneimplicitvkMapMemorycoreppData must be a valid pointer to a pointer value
VUID-vkMapMemory-size-00680YInvalidMemoryMappingexplicitvkMapMemorycoreIf size is not equal to VK_WHOLE_SIZE, size must be greater than 0
VUID-vkMapMemory-size-00681YInvalidMemoryMappingexplicitvkMapMemorycoreIf size is not equal to VK_WHOLE_SIZE, size must be less than or equal to the size of the memory minus offset
VUID-vkMergePipelineCaches-device-parameterYNoneimplicitvkMergePipelineCachescoredevice must be a valid VkDevice handle
VUID-vkMergePipelineCaches-dstCache-00770YMergePipelineCachesInvalidDstexplicitvkMergePipelineCachescoredstCache must not appear in the list of source caches
VUID-vkMergePipelineCaches-dstCache-parameterYNoneimplicitvkMergePipelineCachescoredstCache must be a valid VkPipelineCache handle
VUID-vkMergePipelineCaches-dstCache-parentYNoneimplicitvkMergePipelineCachescoredstCache must have been created, allocated, or retrieved from device
VUID-vkMergePipelineCaches-pSrcCaches-parameterYNoneimplicitvkMergePipelineCachescorepSrcCaches must be a valid pointer to an array of srcCacheCount valid VkPipelineCache handles
VUID-vkMergePipelineCaches-pSrcCaches-parentYNoneimplicitvkMergePipelineCachescoreEach element of pSrcCaches must have been created, allocated, or retrieved from device
VUID-vkMergePipelineCaches-srcCacheCount-arraylengthYNoneimplicitvkMergePipelineCachescoresrcCacheCount must be greater than 0
VUID-vkMergeValidationCachesEXT-device-parameterYNoneimplicitvkMergeValidationCachesEXT(VK_EXT_validation_cache)device must be a valid VkDevice handle
VUID-vkMergeValidationCachesEXT-dstCache-01536YValidationCacheTestBadMergeexplicitvkMergeValidationCachesEXT(VK_EXT_validation_cache)dstCache must not appear in the list of source caches
VUID-vkMergeValidationCachesEXT-dstCache-parameterYNoneimplicitvkMergeValidationCachesEXT(VK_EXT_validation_cache)dstCache must be a valid VkValidationCacheEXT handle
VUID-vkMergeValidationCachesEXT-dstCache-parentYNoneimplicitvkMergeValidationCachesEXT(VK_EXT_validation_cache)dstCache must have been created, allocated, or retrieved from device
VUID-vkMergeValidationCachesEXT-pSrcCaches-parameterYNoneimplicitvkMergeValidationCachesEXT(VK_EXT_validation_cache)pSrcCaches must be a valid pointer to an array of srcCacheCount valid VkValidationCacheEXT handles
VUID-vkMergeValidationCachesEXT-pSrcCaches-parentYNoneimplicitvkMergeValidationCachesEXT(VK_EXT_validation_cache)Each element of pSrcCaches must have been created, allocated, or retrieved from device
VUID-vkMergeValidationCachesEXT-srcCacheCount-arraylengthYNoneimplicitvkMergeValidationCachesEXT(VK_EXT_validation_cache)srcCacheCount must be greater than 0
VUID-vkQueueBeginDebugUtilsLabelEXT-pLabelInfo-parameterYNoneimplicitvkQueueBeginDebugUtilsLabelEXT(VK_EXT_debug_utils)pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure
VUID-vkQueueBeginDebugUtilsLabelEXT-queue-parameterYNoneimplicitvkQueueBeginDebugUtilsLabelEXT(VK_EXT_debug_utils)queue must be a valid VkQueue handle
VUID-vkQueueBindSparse-commonparentYNoneimplicitvkQueueBindSparsecoreBoth of fence, and queue that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-vkQueueBindSparse-fence-01113YNoneexplicitvkQueueBindSparsecoreIf fence is not VK_NULL_HANDLE, fence must be unsignaled
VUID-vkQueueBindSparse-fence-01114YNoneexplicitvkQueueBindSparsecoreIf fence is not VK_NULL_HANDLE, fence must not be associated with any other queue command that has not yet completed execution on that queue
VUID-vkQueueBindSparse-fence-parameterYNoneimplicitvkQueueBindSparsecoreIf fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle
VUID-vkQueueBindSparse-pBindInfo-parameterYNoneimplicitvkQueueBindSparsecoreIf bindInfoCount is not 0, pBindInfo must be a valid pointer to an array of bindInfoCount valid VkBindSparseInfo structures
VUID-vkQueueBindSparse-pSignalSemaphores-01115YNoneexplicitvkQueueBindSparsecoreEach element of the pSignalSemaphores member of each element of pBindInfo must be unsignaled when the semaphore signal operation it defines is executed on the device
VUID-vkQueueBindSparse-pWaitSemaphores-01116YQueueSubmitWaitingSameSemaphoreexplicitvkQueueBindSparsecoreWhen 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-01117YQueueSubmitBinarySemaphoreNotSignaledexplicitvkQueueBindSparsecoreAll elements of the pWaitSemaphores member of all elements of the pBindInfo parameter referring to a binary semaphore must be semaphores that are signaled, or have semaphore signal operations previously submitted for execution
VUID-vkQueueBindSparse-pWaitSemaphores-03245YQueueSubmitBinarySemaphoreNotSignaledexplicitvkQueueBindSparse(VK_VERSION_1_2,VK_KHR_timeline_semaphore)All elements of the pWaitSemaphores member of all elements of pBindInfo 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 (if any) must have also been submitted for execution
VUID-vkQueueBindSparse-queue-parameterYNoneimplicitvkQueueBindSparsecorequeue must be a valid VkQueue handle
VUID-vkQueueBindSparse-queuetypeYNoneimplicitvkQueueBindSparsecoreThe queue must support sparse binding operations
VUID-vkQueueEndDebugUtilsLabelEXT-None-01911NNoneexplicitvkQueueEndDebugUtilsLabelEXT(VK_EXT_debug_utils)There must be an outstanding vkQueueBeginDebugUtilsLabelEXT command prior to the vkQueueEndDebugUtilsLabelEXT on the queue
VUID-vkQueueEndDebugUtilsLabelEXT-queue-parameterYNoneimplicitvkQueueEndDebugUtilsLabelEXT(VK_EXT_debug_utils)queue must be a valid VkQueue handle
VUID-vkQueueInsertDebugUtilsLabelEXT-pLabelInfo-parameterYNoneimplicitvkQueueInsertDebugUtilsLabelEXT(VK_EXT_debug_utils)pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure
VUID-vkQueueInsertDebugUtilsLabelEXT-queue-parameterYNoneimplicitvkQueueInsertDebugUtilsLabelEXT(VK_EXT_debug_utils)queue must be a valid VkQueue handle
VUID-vkQueuePresentKHR-pPresentInfo-parameterYNoneimplicitvkQueuePresentKHR(VK_KHR_surface)+(VK_KHR_swapchain)pPresentInfo must be a valid pointer to a valid VkPresentInfoKHR structure
VUID-vkQueuePresentKHR-pSwapchains-01292YNoneexplicitvkQueuePresentKHR(VK_KHR_surface)+(VK_KHR_swapchain)Each element of pSwapchains member of pPresentInfo must be a swapchain that is created for a surface for which presentation is supported from queue as determined using a call to vkGetPhysicalDeviceSurfaceSupportKHR
VUID-vkQueuePresentKHR-pSwapchains-01293NNoneexplicitvkQueuePresentKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)If more than one member of pSwapchains was created from a display surface, all display surfaces referenced that refer to the same display must use the same display mode
VUID-vkQueuePresentKHR-pWaitSemaphores-01294NNoneexplicitvkQueuePresentKHR(VK_KHR_surface)+(VK_KHR_swapchain)When a semaphore wait operation referring to a binary semaphore defined by the elements of the pWaitSemaphores member of pPresentInfo executes on queue, there must be no other queues waiting on the same semaphore
VUID-vkQueuePresentKHR-pWaitSemaphores-01295NNoneexplicitvkQueuePresentKHR(VK_KHR_surface)+(VK_KHR_swapchain)All elements of the pWaitSemaphores member of pPresentInfo must be semaphores that are signaled, or have semaphore signal operations previously submitted for execution
VUID-vkQueuePresentKHR-pWaitSemaphores-03267YNoneexplicitvkQueuePresentKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)All elements of the pWaitSemaphores member of pPresentInfo must be created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY
VUID-vkQueuePresentKHR-pWaitSemaphores-03268YNoneexplicitvkQueuePresentKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)All 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 (if any) must have also been submitted for execution
VUID-vkQueuePresentKHR-queue-parameterYNoneimplicitvkQueuePresentKHR(VK_KHR_surface)+(VK_KHR_swapchain)queue must be a valid VkQueue handle
VUID-vkQueueSetPerformanceConfigurationINTEL-commonparentYNoneimplicitvkQueueSetPerformanceConfigurationINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)Both of configuration, and queue must have been created, allocated, or retrieved from the same VkDevice
VUID-vkQueueSetPerformanceConfigurationINTEL-configuration-parameterYNoneimplicitvkQueueSetPerformanceConfigurationINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)configuration must be a valid VkPerformanceConfigurationINTEL handle
VUID-vkQueueSetPerformanceConfigurationINTEL-queue-parameterYNoneimplicitvkQueueSetPerformanceConfigurationINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)queue must be a valid VkQueue handle
VUID-vkQueueSubmit-commonparentYNoneimplicitvkQueueSubmitcoreBoth of fence, and queue that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-vkQueueSubmit-fence-00063YTemporaryExternalFenceexplicitvkQueueSubmitcoreIf fence is not VK_NULL_HANDLE, fence must be unsignaled
VUID-vkQueueSubmit-fence-00064YTemporaryExternalFenceexplicitvkQueueSubmitcoreIf fence is not VK_NULL_HANDLE, fence must not be associated with any other queue command that has not yet completed execution on that queue
VUID-vkQueueSubmit-fence-parameterYNoneimplicitvkQueueSubmitcoreIf fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle
VUID-vkQueueSubmit-pCommandBuffers-00065NNoneexplicitvkQueueSubmitcoreAny calls to vkCmdSetEvent, vkCmdResetEvent or vkCmdWaitEvents that have been recorded into any of the command buffer elements of the pCommandBuffers member of any element of pSubmits, must not reference any VkEvent that is referenced by any of those commands in a command buffer that has been submitted to another queue and is still in the pending state
VUID-vkQueueSubmit-pCommandBuffers-00070YExecuteUnrecordedCBexplicitvkQueueSubmitcoreEach element of the pCommandBuffers member of each element of pSubmits must be in the pending or executable state
VUID-vkQueueSubmit-pCommandBuffers-00071YSimultaneousUseOneShotexplicitvkQueueSubmitcoreIf any element of the pCommandBuffers member of any element of pSubmits was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state
VUID-vkQueueSubmit-pCommandBuffers-00072YNoneexplicitvkQueueSubmitcoreAny secondary command buffers recorded into any element of the pCommandBuffers member of any element of pSubmits must be in the pending or executable state
VUID-vkQueueSubmit-pCommandBuffers-00073YNoneexplicitvkQueueSubmitcoreIf any secondary command buffers recorded into any element of the pCommandBuffers member of any element of pSubmits was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state
VUID-vkQueueSubmit-pCommandBuffers-00074YMismatchedQueueFamiliesOnSubmitexplicitvkQueueSubmitcoreEach 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-03220YQueryPerformanceReleaseProfileLockBeforeSubmitexplicitvkQueueSubmit(VK_KHR_performance_query)If a command recorded into any element of pCommandBuffers was a vkCmdBeginQuery whose queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the profiling lock must have been held continuously on the VkDevice that queue was retrieved from, throughout recording of those command buffers
VUID-vkQueueSubmit-pSignalSemaphores-00067YNoneexplicitvkQueueSubmitcoreEach binary semaphore element of the pSignalSemaphores member of any element of pSubmits must be unsignaled when the semaphore signal operation it defines is executed on the device
VUID-vkQueueSubmit-pSubmits-02207NNoneexplicitvkQueueSubmitcoreIf any element of pSubmits->pCommandBuffers includes a Queue Family Transfer Acquire Operation, there must exist a previously submitted Queue Family Transfer Release Operation on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such acquire operations, and which happens-before the acquire operation
VUID-vkQueueSubmit-pSubmits-02808NNoneexplicitvkQueueSubmitcoreAny resource created with VK_SHARING_MODE_EXCLUSIVE that is read by an operation specified by pSubmits must not be owned by any queue family other than the one which queue belongs to, at the time it is executed
VUID-vkQueueSubmit-pSubmits-04626YInvalidQueueFamilyIndexexplicitvkQueueSubmitcoreAny resource created with VK_SHARING_MODE_CONCURRENT that is accessed by an operation specified by pSubmits must have included the queue family of queue at resource creation time
VUID-vkQueueSubmit-pSubmits-parameterYNoneimplicitvkQueueSubmitcoreIf submitCount is not 0, pSubmits must be a valid pointer to an array of submitCount valid VkSubmitInfo structures
VUID-vkQueueSubmit-pWaitDstStageMask-00066YNoneexplicitvkQueueSubmitcoreAny stage flag included in any element of the pWaitDstStageMask member of any element of pSubmits must be a pipeline stage supported by one of the capabilities of queue, as specified in the table of supported pipeline stages
VUID-vkQueueSubmit-pWaitSemaphores-00068YQueueSubmitWaitingSameSemaphoreexplicitvkQueueSubmitcoreWhen 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-00069YQueueSubmitBinarySemaphoreNotSignaledexplicitvkQueueSubmit!(VK_KHR_timeline_semaphore)All elements of the pWaitSemaphores member of all elements of pSubmits must be semaphores that are signaled, or have semaphore signal operations previously submitted for execution
VUID-vkQueueSubmit-pWaitSemaphores-03238YQueueSubmitBinarySemaphoreNotSignaledexplicitvkQueueSubmit(VK_VERSION_1_2,VK_KHR_timeline_semaphore)All 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 (if any) must have also been submitted for execution
VUID-vkQueueSubmit-queue-06448YInvalidMixingProtectedResources, InvalidProtectedSubmitexplicitvkQueueSubmit(VK_VERSION_1_1)If queue was not created with VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT, there must be no element of pSubmits that includes an VkProtectedSubmitInfo structure in its pNext chain with protectedSubmit equal to VK_TRUE
VUID-vkQueueSubmit-queue-parameterYNoneimplicitvkQueueSubmitcorequeue must be a valid VkQueue handle
VUID-vkQueueSubmit2-commandBuffer-03867NNoneexplicitvkQueueSubmit2(VK_VERSION_1_3,VK_KHR_synchronization2)If a command recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits referenced an VkEvent, that event must not be referenced by a command that has been submitted to another queue and is still in the pending state
VUID-vkQueueSubmit2-commandBuffer-03874YNoneexplicitvkQueueSubmit2(VK_VERSION_1_3,VK_KHR_synchronization2)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-03875YNoneexplicitvkQueueSubmit2(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-03876YNoneexplicitvkQueueSubmit2(VK_VERSION_1_3,VK_KHR_synchronization2)Any 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-03877YNoneexplicitvkQueueSubmit2(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-03878YNoneexplicitvkQueueSubmit2(VK_VERSION_1_3,VK_KHR_synchronization2)The 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-03879NNoneexplicitvkQueueSubmit2(VK_VERSION_1_3,VK_KHR_synchronization2)If a command recorded into the commandBuffer member of any element of the pCommandBufferInfos member of any element of pSubmits includes a Queue Family Transfer Acquire Operation, there must exist a previously submitted Queue Family Transfer Release Operation on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such acquire operations, and which happens before the acquire operation
VUID-vkQueueSubmit2-commandBuffer-03880NNoneexplicitvkQueueSubmit2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_performance_query)If 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-commonparentYNoneimplicitvkQueueSubmit2(VK_VERSION_1_3,VK_KHR_synchronization2)Both 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-04894YNoneexplicitvkQueueSubmit2(VK_VERSION_1_3,VK_KHR_synchronization2)If fence is not VK_NULL_HANDLE, fence must be unsignaled
VUID-vkQueueSubmit2-fence-04895YNoneexplicitvkQueueSubmit2(VK_VERSION_1_3,VK_KHR_synchronization2)If 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-parameterYNoneimplicitvkQueueSubmit2(VK_VERSION_1_3,VK_KHR_synchronization2)If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle
VUID-vkQueueSubmit2-pSubmits-parameterYNoneimplicitvkQueueSubmit2(VK_VERSION_1_3,VK_KHR_synchronization2)If submitCount is not 0, pSubmits must be a valid pointer to an array of submitCount valid VkSubmitInfo2 structures
VUID-vkQueueSubmit2-queue-06447YNoneexplicitvkQueueSubmit2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1)If 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-parameterYNoneimplicitvkQueueSubmit2(VK_VERSION_1_3,VK_KHR_synchronization2)queue must be a valid VkQueue handle
VUID-vkQueueSubmit2-semaphore-03868YNoneexplicitvkQueueSubmit2(VK_VERSION_1_3,VK_KHR_synchronization2)The 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-03871YQueueSubmitWaitingSameSemaphoreexplicitvkQueueSubmit2(VK_VERSION_1_3,VK_KHR_synchronization2)When 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-03872YQueueSubmitBinarySemaphoreNotSignaledexplicitvkQueueSubmit2(VK_VERSION_1_3,VK_KHR_synchronization2)The semaphore member of any element of the pWaitSemaphoreInfos member of any element of pSubmits must be semaphores that are signaled, or have semaphore signal operations previously submitted for execution
VUID-vkQueueSubmit2-semaphore-03873YQueueSubmitBinarySemaphoreNotSignaledexplicitvkQueueSubmit2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_KHR_timeline_semaphore)Any 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 (if any) must have also been submitted for execution
VUID-vkQueueSubmit2-stageMask-03869YNoneexplicitvkQueueSubmit2(VK_VERSION_1_3,VK_KHR_synchronization2)The 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-03870YNoneexplicitvkQueueSubmit2(VK_VERSION_1_3,VK_KHR_synchronization2)The 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-03866YQueueSubmit2KHRUsedButSynchronizaion2DisabledexplicitvkQueueSubmit2(VK_VERSION_1_3,VK_KHR_synchronization2)The synchronization2 feature must be enabled
VUID-vkQueueWaitIdle-queue-parameterYNoneimplicitvkQueueWaitIdlecorequeue must be a valid VkQueue handle
VUID-vkRegisterDeviceEventEXT-device-parameterYNoneimplicitvkRegisterDeviceEventEXT(VK_EXT_display_control)device must be a valid VkDevice handle
VUID-vkRegisterDeviceEventEXT-pAllocator-parameterNNoneimplicitvkRegisterDeviceEventEXT(VK_EXT_display_control)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkRegisterDeviceEventEXT-pDeviceEventInfo-parameterYNoneimplicitvkRegisterDeviceEventEXT(VK_EXT_display_control)pDeviceEventInfo must be a valid pointer to a valid VkDeviceEventInfoEXT structure
VUID-vkRegisterDeviceEventEXT-pFence-parameterYNoneimplicitvkRegisterDeviceEventEXT(VK_EXT_display_control)pFence must be a valid pointer to a VkFence handle
VUID-vkRegisterDisplayEventEXT-commonparentYNoneimplicitvkRegisterDisplayEventEXT(VK_EXT_display_control)Both of device, and display must have been created, allocated, or retrieved from the same VkPhysicalDevice
VUID-vkRegisterDisplayEventEXT-device-parameterYNoneimplicitvkRegisterDisplayEventEXT(VK_EXT_display_control)device must be a valid VkDevice handle
VUID-vkRegisterDisplayEventEXT-display-parameterYNoneimplicitvkRegisterDisplayEventEXT(VK_EXT_display_control)display must be a valid VkDisplayKHR handle
VUID-vkRegisterDisplayEventEXT-pAllocator-parameterNNoneimplicitvkRegisterDisplayEventEXT(VK_EXT_display_control)If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkRegisterDisplayEventEXT-pDisplayEventInfo-parameterYNoneimplicitvkRegisterDisplayEventEXT(VK_EXT_display_control)pDisplayEventInfo must be a valid pointer to a valid VkDisplayEventInfoEXT structure
VUID-vkRegisterDisplayEventEXT-pFence-parameterYNoneimplicitvkRegisterDisplayEventEXT(VK_EXT_display_control)pFence must be a valid pointer to a VkFence handle
VUID-vkReleaseDisplayEXT-display-parameterYNoneimplicitvkReleaseDisplayEXT(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)display must be a valid VkDisplayKHR handle
VUID-vkReleaseDisplayEXT-display-parentNNoneimplicitvkReleaseDisplayEXT(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)display must have been created, allocated, or retrieved from physicalDevice
VUID-vkReleaseDisplayEXT-physicalDevice-parameterYNoneimplicitvkReleaseDisplayEXT(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkReleaseFullScreenExclusiveModeEXT-swapchain-02677YTestvkAcquireFullScreenExclusiveModeEXTexplicitvkReleaseFullScreenExclusiveModeEXT(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)swapchain must not be in the retired state
VUID-vkReleaseFullScreenExclusiveModeEXT-swapchain-02678YTestvkAcquireFullScreenExclusiveModeEXTexplicitvkReleaseFullScreenExclusiveModeEXT(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)swapchain must be a swapchain created with a VkSurfaceFullScreenExclusiveInfoEXT structure, with fullScreenExclusive set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
VUID-vkReleasePerformanceConfigurationINTEL-configuration-02737NNoneexplicitvkReleasePerformanceConfigurationINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)configuration must not be released before all command buffers submitted while the configuration was set are in pending state
VUID-vkReleasePerformanceConfigurationINTEL-configuration-parameterYNoneimplicitvkReleasePerformanceConfigurationINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)If configuration is not VK_NULL_HANDLE, configuration must be a valid VkPerformanceConfigurationINTEL handle
VUID-vkReleasePerformanceConfigurationINTEL-configuration-parentYNoneimplicitvkReleasePerformanceConfigurationINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)If configuration is a valid handle, it must have been created, allocated, or retrieved from device
VUID-vkReleasePerformanceConfigurationINTEL-device-parameterYNoneimplicitvkReleasePerformanceConfigurationINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)device must be a valid VkDevice handle
VUID-vkReleaseProfilingLockKHR-device-03235YNoneexplicitvkReleaseProfilingLockKHR(VK_KHR_performance_query)The profiling lock of device must have been held via a previous successful call to vkAcquireProfilingLockKHR
VUID-vkReleaseProfilingLockKHR-device-parameterYNoneimplicitvkReleaseProfilingLockKHR(VK_KHR_performance_query)device must be a valid VkDevice handle
VUID-vkResetCommandBuffer-commandBuffer-00045YNoneexplicitvkResetCommandBuffercorecommandBuffer must not be in the pending state
VUID-vkResetCommandBuffer-commandBuffer-00046YCommandBufferResetErrorsexplicitvkResetCommandBuffercorecommandBuffer must have been allocated from a pool that was created with the VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
VUID-vkResetCommandBuffer-commandBuffer-parameterYNoneimplicitvkResetCommandBuffercorecommandBuffer must be a valid VkCommandBuffer handle
VUID-vkResetCommandBuffer-flags-parameterYNoneimplicitvkResetCommandBuffercoreflags must be a valid combination of VkCommandBufferResetFlagBits values
VUID-vkResetCommandPool-commandPool-00040YNoneexplicitvkResetCommandPoolcoreAll VkCommandBuffer objects allocated from commandPool must not be in the pending state
VUID-vkResetCommandPool-commandPool-parameterYNoneimplicitvkResetCommandPoolcorecommandPool must be a valid VkCommandPool handle
VUID-vkResetCommandPool-commandPool-parentYNoneimplicitvkResetCommandPoolcorecommandPool must have been created, allocated, or retrieved from device
VUID-vkResetCommandPool-device-parameterYNoneimplicitvkResetCommandPoolcoredevice must be a valid VkDevice handle
VUID-vkResetCommandPool-flags-parameterYNoneimplicitvkResetCommandPoolcoreflags must be a valid combination of VkCommandPoolResetFlagBits values
VUID-vkResetDescriptorPool-descriptorPool-00313YDescriptorPoolInUseResetSignaledexplicitvkResetDescriptorPoolcoreAll uses of descriptorPool (via any allocated descriptor sets) must have completed execution
VUID-vkResetDescriptorPool-descriptorPool-parameterYInvalidDescriptorPoolimplicitvkResetDescriptorPoolcoredescriptorPool must be a valid VkDescriptorPool handle
VUID-vkResetDescriptorPool-descriptorPool-parentYNoneimplicitvkResetDescriptorPoolcoredescriptorPool must have been created, allocated, or retrieved from device
VUID-vkResetDescriptorPool-device-parameterYNoneimplicitvkResetDescriptorPoolcoredevice must be a valid VkDevice handle
VUID-vkResetDescriptorPool-flags-zerobitmaskYNoneimplicitvkResetDescriptorPoolcoreflags must be 0
VUID-vkResetEvent-device-parameterYNoneimplicitvkResetEventcoredevice must be a valid VkDevice handle
VUID-vkResetEvent-event-03821NNoneexplicitvkResetEventcoreThere must be an execution dependency between vkResetEvent and the execution of any vkCmdWaitEvents that includes event in its pEvents parameter
VUID-vkResetEvent-event-03822NNoneexplicitvkResetEvent(VK_VERSION_1_3,VK_KHR_synchronization2)There must be an execution dependency between vkResetEvent and the execution of any vkCmdWaitEvents2 that includes event in its pEvents parameter
VUID-vkResetEvent-event-03823YNoneexplicitvkResetEvent(VK_VERSION_1_3,VK_KHR_synchronization2)event must not have been created with VK_EVENT_CREATE_DEVICE_ONLY_BIT
VUID-vkResetEvent-event-parameterYNoneimplicitvkResetEventcoreevent must be a valid VkEvent handle
VUID-vkResetEvent-event-parentYNoneimplicitvkResetEventcoreevent must have been created, allocated, or retrieved from device
VUID-vkResetFences-device-parameterYNoneimplicitvkResetFencescoredevice must be a valid VkDevice handle
VUID-vkResetFences-fenceCount-arraylengthYValidateArrayLengthimplicitvkResetFencescorefenceCount must be greater than 0
VUID-vkResetFences-pFences-01123YNoneexplicitvkResetFencescoreEach element of pFences must not be currently associated with any queue command that has not yet completed execution on that queue
VUID-vkResetFences-pFences-parameterYNoneimplicitvkResetFencescorepFences must be a valid pointer to an array of fenceCount valid VkFence handles
VUID-vkResetFences-pFences-parentYNoneimplicitvkResetFencescoreEach element of pFences must have been created, allocated, or retrieved from device
VUID-vkResetQueryPool-None-02665YHostQueryResetNotEnabledexplicitvkResetQueryPool(VK_VERSION_1_2,VK_EXT_host_query_reset)The hostQueryReset feature must be enabled
VUID-vkResetQueryPool-device-parameterYNoneimplicitvkResetQueryPool(VK_VERSION_1_2,VK_EXT_host_query_reset)device must be a valid VkDevice handle
VUID-vkResetQueryPool-firstQuery-02666YHostQueryResetBadFirstQueryexplicitvkResetQueryPool(VK_VERSION_1_2,VK_EXT_host_query_reset)firstQuery must be less than the number of queries in queryPool
VUID-vkResetQueryPool-firstQuery-02667YHostQueryResetBadRangeexplicitvkResetQueryPool(VK_VERSION_1_2,VK_EXT_host_query_reset)The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool
VUID-vkResetQueryPool-firstQuery-02741NNoneexplicitvkResetQueryPool(VK_VERSION_1_2,VK_EXT_host_query_reset)Submitted commands that refer to the range specified by firstQuery and queryCount in queryPool must have completed execution
VUID-vkResetQueryPool-firstQuery-02742NNoneexplicitvkResetQueryPool(VK_VERSION_1_2,VK_EXT_host_query_reset)The 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-queryPool-parameterYHostQueryResetInvalidQueryPoolimplicitvkResetQueryPool(VK_VERSION_1_2,VK_EXT_host_query_reset)queryPool must be a valid VkQueryPool handle
VUID-vkResetQueryPool-queryPool-parentYHostQueryResetWrongDeviceimplicitvkResetQueryPool(VK_VERSION_1_2,VK_EXT_host_query_reset)queryPool must have been created, allocated, or retrieved from device
VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-collection-06403NNoneexplicitvkSetBufferCollectionBufferConstraintsFUCHSIA(VK_FUCHSIA_buffer_collection)vkSetBufferCollectionImageConstraintsFUCHSIA or vkSetBufferCollectionBufferConstraintsFUCHSIA must not have already been called on collection
VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-collection-parameterYNoneimplicitvkSetBufferCollectionBufferConstraintsFUCHSIA(VK_FUCHSIA_buffer_collection)collection must be a valid VkBufferCollectionFUCHSIA handle
VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-collection-parentYNoneimplicitvkSetBufferCollectionBufferConstraintsFUCHSIA(VK_FUCHSIA_buffer_collection)collection must have been created, allocated, or retrieved from device
VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-device-parameterYNoneimplicitvkSetBufferCollectionBufferConstraintsFUCHSIA(VK_FUCHSIA_buffer_collection)device must be a valid VkDevice handle
VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-pBufferConstraintsInfo-parameterYNoneimplicitvkSetBufferCollectionBufferConstraintsFUCHSIA(VK_FUCHSIA_buffer_collection)pBufferConstraintsInfo must be a valid pointer to a valid VkBufferConstraintsInfoFUCHSIA structure
VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-collection-06394NNoneexplicitvkSetBufferCollectionImageConstraintsFUCHSIA(VK_FUCHSIA_buffer_collection)vkSetBufferCollectionImageConstraintsFUCHSIA or vkSetBufferCollectionBufferConstraintsFUCHSIA must not have already been called on collection
VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-collection-parameterYNoneimplicitvkSetBufferCollectionImageConstraintsFUCHSIA(VK_FUCHSIA_buffer_collection)collection must be a valid VkBufferCollectionFUCHSIA handle
VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-collection-parentYNoneimplicitvkSetBufferCollectionImageConstraintsFUCHSIA(VK_FUCHSIA_buffer_collection)collection must have been created, allocated, or retrieved from device
VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-device-parameterYNoneimplicitvkSetBufferCollectionImageConstraintsFUCHSIA(VK_FUCHSIA_buffer_collection)device must be a valid VkDevice handle
VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-pImageConstraintsInfo-parameterYNoneimplicitvkSetBufferCollectionImageConstraintsFUCHSIA(VK_FUCHSIA_buffer_collection)pImageConstraintsInfo must be a valid pointer to a valid VkImageConstraintsInfoFUCHSIA structure
VUID-vkSetDebugUtilsObjectNameEXT-device-parameterYNoneimplicitvkSetDebugUtilsObjectNameEXT(VK_EXT_debug_utils)device must be a valid VkDevice handle
VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-02587YDebugUtilsNameTestexplicitvkSetDebugUtilsObjectNameEXT(VK_EXT_debug_utils)pNameInfo->objectType must not be VK_OBJECT_TYPE_UNKNOWN
VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-02588YDebugUtilsNameTestexplicitvkSetDebugUtilsObjectNameEXT(VK_EXT_debug_utils)pNameInfo->objectHandle must not be VK_NULL_HANDLE
VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-parameterYNoneimplicitvkSetDebugUtilsObjectNameEXT(VK_EXT_debug_utils)pNameInfo must be a valid pointer to a valid VkDebugUtilsObjectNameInfoEXT structure
VUID-vkSetDebugUtilsObjectTagEXT-device-parameterYNoneimplicitvkSetDebugUtilsObjectTagEXT(VK_EXT_debug_utils)device must be a valid VkDevice handle
VUID-vkSetDebugUtilsObjectTagEXT-pTagInfo-parameterYNoneimplicitvkSetDebugUtilsObjectTagEXT(VK_EXT_debug_utils)pTagInfo must be a valid pointer to a valid VkDebugUtilsObjectTagInfoEXT structure
VUID-vkSetDeviceMemoryPriorityEXT-device-parameterYNoneimplicitvkSetDeviceMemoryPriorityEXT(VK_EXT_pageable_device_local_memory)device must be a valid VkDevice handle
VUID-vkSetDeviceMemoryPriorityEXT-memory-parameterYNoneimplicitvkSetDeviceMemoryPriorityEXT(VK_EXT_pageable_device_local_memory)memory must be a valid VkDeviceMemory handle
VUID-vkSetDeviceMemoryPriorityEXT-memory-parentYNoneimplicitvkSetDeviceMemoryPriorityEXT(VK_EXT_pageable_device_local_memory)memory must have been created, allocated, or retrieved from device
VUID-vkSetDeviceMemoryPriorityEXT-priority-06258NNoneexplicitvkSetDeviceMemoryPriorityEXT(VK_EXT_pageable_device_local_memory)priority must be between 0 and 1, inclusive
VUID-vkSetEvent-device-parameterYNoneimplicitvkSetEventcoredevice must be a valid VkDevice handle
VUID-vkSetEvent-event-03941YNoneexplicitvkSetEvent(VK_VERSION_1_3,VK_KHR_synchronization2)event must not have been created with VK_EVENT_CREATE_DEVICE_ONLY_BIT
VUID-vkSetEvent-event-parameterYNoneimplicitvkSetEventcoreevent must be a valid VkEvent handle
VUID-vkSetEvent-event-parentYNoneimplicitvkSetEventcoreevent must have been created, allocated, or retrieved from device
VUID-vkSetHdrMetadataEXT-device-parameterYNoneimplicitvkSetHdrMetadataEXT(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_hdr_metadata)device must be a valid VkDevice handle
VUID-vkSetHdrMetadataEXT-pMetadata-parameterYNoneimplicitvkSetHdrMetadataEXT(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_hdr_metadata)pMetadata must be a valid pointer to an array of swapchainCount valid VkHdrMetadataEXT structures
VUID-vkSetHdrMetadataEXT-pSwapchains-parameterYNoneimplicitvkSetHdrMetadataEXT(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_hdr_metadata)pSwapchains must be a valid pointer to an array of swapchainCount valid VkSwapchainKHR handles
VUID-vkSetHdrMetadataEXT-pSwapchains-parentNNoneimplicitvkSetHdrMetadataEXT(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_hdr_metadata)Each element of pSwapchains must have been created, allocated, or retrieved from device
VUID-vkSetHdrMetadataEXT-swapchainCount-arraylengthYNoneimplicitvkSetHdrMetadataEXT(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_hdr_metadata)swapchainCount must be greater than 0
VUID-vkSetLocalDimmingAMD-device-parameterYNoneimplicitvkSetLocalDimmingAMD(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_AMD_display_native_hdr)device must be a valid VkDevice handle
VUID-vkSetLocalDimmingAMD-localDimmingSupport-04618NNoneexplicitvkSetLocalDimmingAMD(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_AMD_display_native_hdr)VkDisplayNativeHdrSurfaceCapabilitiesAMD::localDimmingSupport must be supported
VUID-vkSetLocalDimmingAMD-swapChain-parameterYNoneimplicitvkSetLocalDimmingAMD(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_AMD_display_native_hdr)swapChain must be a valid VkSwapchainKHR handle
VUID-vkSetLocalDimmingAMD-swapChain-parentNNoneimplicitvkSetLocalDimmingAMD(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_AMD_display_native_hdr)swapChain must have been created, allocated, or retrieved from device
VUID-vkSetPrivateData-device-parameterYNoneimplicitvkSetPrivateData(VK_VERSION_1_3,VK_EXT_private_data)device must be a valid VkDevice handle
VUID-vkSetPrivateData-objectHandle-04016NNoneexplicitvkSetPrivateData(VK_VERSION_1_3,VK_EXT_private_data)objectHandle must be device or a child of device
VUID-vkSetPrivateData-objectHandle-04017NNoneexplicitvkSetPrivateData(VK_VERSION_1_3,VK_EXT_private_data)objectHandle must be a valid handle to an object of type objectType
VUID-vkSetPrivateData-objectType-parameterYNoneimplicitvkSetPrivateData(VK_VERSION_1_3,VK_EXT_private_data)objectType must be a valid VkObjectType value
VUID-vkSetPrivateData-privateDataSlot-parameterYNoneimplicitvkSetPrivateData(VK_VERSION_1_3,VK_EXT_private_data)privateDataSlot must be a valid VkPrivateDataSlot handle
VUID-vkSetPrivateData-privateDataSlot-parentYNoneimplicitvkSetPrivateData(VK_VERSION_1_3,VK_EXT_private_data)privateDataSlot must have been created, allocated, or retrieved from device
VUID-vkSignalSemaphore-device-parameterYNoneimplicitvkSignalSemaphore(VK_VERSION_1_2,VK_KHR_timeline_semaphore)device must be a valid VkDevice handle
VUID-vkSignalSemaphore-pSignalInfo-parameterYNoneimplicitvkSignalSemaphore(VK_VERSION_1_2,VK_KHR_timeline_semaphore)pSignalInfo must be a valid pointer to a valid VkSemaphoreSignalInfo structure
VUID-vkSubmitDebugUtilsMessageEXT-instance-parameterYNoneimplicitvkSubmitDebugUtilsMessageEXT(VK_EXT_debug_utils)instance must be a valid VkInstance handle
VUID-vkSubmitDebugUtilsMessageEXT-messageSeverity-parameterYNoneimplicitvkSubmitDebugUtilsMessageEXT(VK_EXT_debug_utils)messageSeverity must be a valid VkDebugUtilsMessageSeverityFlagBitsEXT value
VUID-vkSubmitDebugUtilsMessageEXT-messageTypes-parameterYNoneimplicitvkSubmitDebugUtilsMessageEXT(VK_EXT_debug_utils)messageTypes must be a valid combination of VkDebugUtilsMessageTypeFlagBitsEXT values
VUID-vkSubmitDebugUtilsMessageEXT-messageTypes-requiredbitmaskYNoneimplicitvkSubmitDebugUtilsMessageEXT(VK_EXT_debug_utils)messageTypes must not be 0
VUID-vkSubmitDebugUtilsMessageEXT-objectType-02591NNoneexplicitvkSubmitDebugUtilsMessageEXT(VK_EXT_debug_utils)The objectType member of each element of pCallbackData->pObjects must not be VK_OBJECT_TYPE_UNKNOWN
VUID-vkSubmitDebugUtilsMessageEXT-pCallbackData-parameterYNoneimplicitvkSubmitDebugUtilsMessageEXT(VK_EXT_debug_utils)pCallbackData must be a valid pointer to a valid VkDebugUtilsMessengerCallbackDataEXT structure
VUID-vkTrimCommandPool-commandPool-parameterYNoneimplicitvkTrimCommandPool(VK_VERSION_1_1,VK_KHR_maintenance1)commandPool must be a valid VkCommandPool handle
VUID-vkTrimCommandPool-commandPool-parentYNoneimplicitvkTrimCommandPool(VK_VERSION_1_1,VK_KHR_maintenance1)commandPool must have been created, allocated, or retrieved from device
VUID-vkTrimCommandPool-device-parameterYNoneimplicitvkTrimCommandPool(VK_VERSION_1_1,VK_KHR_maintenance1)device must be a valid VkDevice handle
VUID-vkTrimCommandPool-flags-zerobitmaskYNoneimplicitvkTrimCommandPool(VK_VERSION_1_1,VK_KHR_maintenance1)flags must be 0
VUID-vkUninitializePerformanceApiINTEL-device-parameterYNoneimplicitvkUninitializePerformanceApiINTEL(VK_INTEL_performance_query)+(VK_INTEL_performance_query)device must be a valid VkDevice handle
VUID-vkUnmapMemory-device-parameterYNoneimplicitvkUnmapMemorycoredevice must be a valid VkDevice handle
VUID-vkUnmapMemory-memory-00689YInvalidMemoryMappingexplicitvkUnmapMemorycorememory must be currently host mapped
VUID-vkUnmapMemory-memory-parameterYNoneimplicitvkUnmapMemorycorememory must be a valid VkDeviceMemory handle
VUID-vkUnmapMemory-memory-parentYNoneimplicitvkUnmapMemorycorememory must have been created, allocated, or retrieved from device
VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-06994NNoneexplicitvkUpdateDescriptorSetWithTemplate(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)Host access to descriptorSet must be externally synchronized
VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-06995NNoneexplicitvkUpdateDescriptorSetWithTemplate(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_VERSION_1_2,VK_EXT_descriptor_indexing)Host access to descriptorSet must be externally synchronized unless explicitly denoted otherwise for specific flags
VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-parameterYNoneimplicitvkUpdateDescriptorSetWithTemplate(VK_VERSION_1_1,VK_KHR_descriptor_update_template)descriptorSet must be a valid VkDescriptorSet handle
VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parameterYNoneimplicitvkUpdateDescriptorSetWithTemplate(VK_VERSION_1_1,VK_KHR_descriptor_update_template)descriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle
VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parentYNoneimplicitvkUpdateDescriptorSetWithTemplate(VK_VERSION_1_1,VK_KHR_descriptor_update_template)descriptorUpdateTemplate must have been created, allocated, or retrieved from device
VUID-vkUpdateDescriptorSetWithTemplate-device-parameterYNoneimplicitvkUpdateDescriptorSetWithTemplate(VK_VERSION_1_1,VK_KHR_descriptor_update_template)device must be a valid VkDevice handle
VUID-vkUpdateDescriptorSetWithTemplate-pData-01685NNoneexplicitvkUpdateDescriptorSetWithTemplate(VK_VERSION_1_1,VK_KHR_descriptor_update_template)pData 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-03047YInvalidCmdBufferDescriptorSetImageSamplerDestroyedexplicitvkUpdateDescriptorSets(VK_VERSION_1_2,VK_EXT_descriptor_indexing)Descriptor bindings updated by this command which were created without the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT or VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT bits set must not be used by any command that was recorded to a command buffer which is in the pending state
VUID-vkUpdateDescriptorSets-device-parameterYNoneimplicitvkUpdateDescriptorSetscoredevice must be a valid VkDevice handle
VUID-vkUpdateDescriptorSets-dstSet-00314NNoneexplicitvkUpdateDescriptorSets!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)The dstSet member of each element of pDescriptorWrites or pDescriptorCopies must not be used by any command that was recorded to a command buffer which is in the pending state
VUID-vkUpdateDescriptorSets-pDescriptorCopies-parameterYNoneimplicitvkUpdateDescriptorSetscoreIf descriptorCopyCount is not 0, pDescriptorCopies must be a valid pointer to an array of descriptorCopyCount valid VkCopyDescriptorSet structures
VUID-vkUpdateDescriptorSets-pDescriptorWrites-06236NNoneexplicitvkUpdateDescriptorSetscoreFor 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-06237NNoneexplicitvkUpdateDescriptorSetscoreFor each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the buffer member of any element of the pBufferInfo member of pDescriptorWrites[i] must have been created on device
VUID-vkUpdateDescriptorSets-pDescriptorWrites-06238NNoneexplicitvkUpdateDescriptorSetscoreFor each element i where pDescriptorWrites[i].descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and dstSet was not allocated with a layout that included immutable samplers for dstBinding with descriptorType, the sampler member of any element of the pImageInfo member of pDescriptorWrites[i] must have been created on device
VUID-vkUpdateDescriptorSets-pDescriptorWrites-06239NNoneexplicitvkUpdateDescriptorSetscoreFor 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-06240NNoneexplicitvkUpdateDescriptorSets(VK_KHR_acceleration_structure)For 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-06241NNoneexplicitvkUpdateDescriptorSets(VK_NV_ray_tracing)For 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-06493YNoneexplicitvkUpdateDescriptorSetscoreFor 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-06940NNoneexplicitvkUpdateDescriptorSets(VK_QCOM_image_processing)For 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-06941NNoneexplicitvkUpdateDescriptorSets(VK_QCOM_image_processing)For 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-06992NNoneexplicitvkUpdateDescriptorSets!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)Host access to pDescriptorWrites[i].dstSet and pDescriptorCopies[i].dstSet must be externally synchronized
VUID-vkUpdateDescriptorSets-pDescriptorWrites-06993NNoneexplicitvkUpdateDescriptorSets(VK_VERSION_1_2,VK_EXT_descriptor_indexing)Host access to pDescriptorWrites[i].dstSet and pDescriptorCopies[i].dstSet must be externally synchronized unless explicitly denoted otherwise for specific flags
VUID-vkUpdateDescriptorSets-pDescriptorWrites-parameterYNoneimplicitvkUpdateDescriptorSetscoreIf descriptorWriteCount is not 0, pDescriptorWrites must be a valid pointer to an array of descriptorWriteCount valid VkWriteDescriptorSet structures
VUID-vkUpdateVideoSessionParametersKHR-device-parameterYNoneimplicitvkUpdateVideoSessionParametersKHR(VK_KHR_video_queue)device must be a valid VkDevice handle
VUID-vkUpdateVideoSessionParametersKHR-pUpdateInfo-parameterYNoneimplicitvkUpdateVideoSessionParametersKHR(VK_KHR_video_queue)pUpdateInfo must be a valid pointer to a valid VkVideoSessionParametersUpdateInfoKHR structure
VUID-vkUpdateVideoSessionParametersKHR-videoSessionParameters-parameterYNoneimplicitvkUpdateVideoSessionParametersKHR(VK_KHR_video_queue)videoSessionParameters must be a valid VkVideoSessionParametersKHR handle
VUID-vkWaitForFences-device-parameterYNoneimplicitvkWaitForFencescoredevice must be a valid VkDevice handle
VUID-vkWaitForFences-fenceCount-arraylengthYValidateArrayLengthimplicitvkWaitForFencescorefenceCount must be greater than 0
VUID-vkWaitForFences-pFences-parameterYNoneimplicitvkWaitForFencescorepFences must be a valid pointer to an array of fenceCount valid VkFence handles
VUID-vkWaitForFences-pFences-parentYNoneimplicitvkWaitForFencescoreEach element of pFences must have been created, allocated, or retrieved from device
VUID-vkWaitForPresentKHR-device-parameterYNoneimplicitvkWaitForPresentKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_present_id)+(VK_KHR_present_wait)device must be a valid VkDevice handle
VUID-vkWaitForPresentKHR-presentWait-06234YPresentIdWaitFeaturesexplicitvkWaitForPresentKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_present_id)+(VK_KHR_present_wait)The presentWait feature must be enabled
VUID-vkWaitForPresentKHR-swapchain-04997YPresentIdWaitexplicitvkWaitForPresentKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_present_id)+(VK_KHR_present_wait)swapchain must not be in the retired state
VUID-vkWaitForPresentKHR-swapchain-parameterYNoneimplicitvkWaitForPresentKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_present_id)+(VK_KHR_present_wait)swapchain must be a valid VkSwapchainKHR handle
VUID-vkWaitForPresentKHR-swapchain-parentNNoneimplicitvkWaitForPresentKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_present_id)+(VK_KHR_present_wait)swapchain must have been created, allocated, or retrieved from device
VUID-vkWaitSemaphores-device-parameterYNoneimplicitvkWaitSemaphores(VK_VERSION_1_2,VK_KHR_timeline_semaphore)device must be a valid VkDevice handle
VUID-vkWaitSemaphores-pWaitInfo-parameterYNoneimplicitvkWaitSemaphores(VK_VERSION_1_2,VK_KHR_timeline_semaphore)pWaitInfo must be a valid pointer to a valid VkSemaphoreWaitInfo structure
VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureCount-arraylengthYNoneimplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)accelerationStructureCount must be greater than 0
VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureHostCommands-03585YNoneexplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled
VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructures-03431YNoneexplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)All 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-03733YRayTracingTestWriteAccelerationStructureMemoryexplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The buffer used to create each acceleration structure in pAccelerationStructures must be bound to host-visible device memory
VUID-vkWriteAccelerationStructuresPropertiesKHR-buffer-03784NNoneexplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_device_group,VK_VERSION_1_1)The buffer used to create each acceleration structure in pAccelerationStructures must be bound to memory that was not allocated with multiple instances
VUID-vkWriteAccelerationStructuresPropertiesKHR-dataSize-03452YNoneexplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)dataSize must be greater than or equal to accelerationStructureCount*stride
VUID-vkWriteAccelerationStructuresPropertiesKHR-dataSize-arraylengthYNoneimplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)dataSize must be greater than 0
VUID-vkWriteAccelerationStructuresPropertiesKHR-device-parameterYNoneimplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)device must be a valid VkDevice handle
VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-04964NNoneexplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)All acceleration structures in pAccelerationStructures must have been built prior to the execution of this command
VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parameterYNoneimplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureKHR handles
VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parentYNoneimplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)Each element of pAccelerationStructures must have been created, allocated, or retrieved from device
VUID-vkWriteAccelerationStructuresPropertiesKHR-pData-parameterYNoneimplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pData must be a valid pointer to an array of dataSize bytes
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03432YNoneexplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+!(VK_KHR_ray_tracing_maintenance1)queryType must be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03448YNoneexplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, then stride must be a multiple of the size of VkDeviceSize
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03449NNoneexplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, then pData must point to a VkDeviceSize
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03450YNoneexplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR, then stride must be a multiple of the size of VkDeviceSize
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03451NNoneexplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR, then pData must point to a VkDeviceSize
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06731YNoneexplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_ray_tracing_maintenance1)If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR, then stride must be a multiple of the size of VkDeviceSize
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06732NNoneexplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_ray_tracing_maintenance1)If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR, then pData must point to a VkDeviceSize
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06733YNoneexplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_ray_tracing_maintenance1)If 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-06734NNoneexplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_ray_tracing_maintenance1)If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR, then pData must point to a VkDeviceSize
VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-06742YNoneexplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_ray_tracing_maintenance1)queryType 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-parameterYNoneimplicitvkWriteAccelerationStructuresPropertiesKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)queryType must be a valid VkQueryType value
VUID-vkWriteMicromapsPropertiesEXT-buffer-07577NNoneexplicitvkWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)The buffer used to create each micromap in pMicromaps must be bound to host-visible device memory
VUID-vkWriteMicromapsPropertiesEXT-buffer-07579NNoneexplicitvkWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)+(VK_KHR_device_group,VK_VERSION_1_1)The buffer used to create each micromap in pMicromaps must be bound to memory that was not allocated with multiple instances
VUID-vkWriteMicromapsPropertiesEXT-dataSize-07576NNoneexplicitvkWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)dataSize must be greater than or equal to micromapCount*stride
VUID-vkWriteMicromapsPropertiesEXT-dataSize-arraylengthYNoneimplicitvkWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)dataSize must be greater than 0
VUID-vkWriteMicromapsPropertiesEXT-device-parameterYNoneimplicitvkWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)device must be a valid VkDevice handle
VUID-vkWriteMicromapsPropertiesEXT-micromapCount-arraylengthYNoneimplicitvkWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)micromapCount must be greater than 0
VUID-vkWriteMicromapsPropertiesEXT-micromapHostCommands-07578NNoneexplicitvkWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)The VkPhysicalDeviceOpacityMicromapFeaturesEXT::micromapHostCommands feature must be enabled
VUID-vkWriteMicromapsPropertiesEXT-pData-parameterYNoneimplicitvkWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)pData must be a valid pointer to an array of dataSize bytes
VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-07501NNoneexplicitvkWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)All micromaps in pMicromaps must have been constructed prior to the execution of this command
VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-07502NNoneexplicitvkWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)All 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-parameterYNoneimplicitvkWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)pMicromaps must be a valid pointer to an array of micromapCount valid VkMicromapEXT handles
VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-parentYNoneimplicitvkWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)Each element of pMicromaps must have been created, allocated, or retrieved from device
VUID-vkWriteMicromapsPropertiesEXT-queryType-07503NNoneexplicitvkWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)queryType must be VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT or VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT
VUID-vkWriteMicromapsPropertiesEXT-queryType-07573NNoneexplicitvkWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)If queryType is VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT, then stride must be a multiple of the size of VkDeviceSize
VUID-vkWriteMicromapsPropertiesEXT-queryType-07574NNoneexplicitvkWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)If queryType is VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT, then pData must point to a VkDeviceSize
VUID-vkWriteMicromapsPropertiesEXT-queryType-07575NNoneexplicitvkWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)If queryType is
VUID-vkWriteMicromapsPropertiesEXT-queryType-parameterYNoneimplicitvkWriteMicromapsPropertiesEXT(VK_EXT_opacity_micromap)queryType must be a valid VkQueryType value