Valid Usage Database (1.2.182)

VUID NAMECHECKEDSPIRV-TOOLTESTTYPEAPI/STRUCTEXTENSIONVUID TEXT
VUID-BaryCoordNV-BaryCoordNV-04154NNoneexplicitBaryCoordNV(VK_NV_fragment_shader_barycentric)The BaryCoordNV decoration must be used only within the Fragment {ExecutionModel}
VUID-BaryCoordNV-BaryCoordNV-04155NNoneexplicitBaryCoordNV(VK_NV_fragment_shader_barycentric)The variable decorated with BaryCoordNV must be declared using the Input {StorageClass}
VUID-BaryCoordNV-BaryCoordNV-04156NNoneexplicitBaryCoordNV(VK_NV_fragment_shader_barycentric)The variable decorated with BaryCoordNV 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-BaryCoordNoPerspNV-BaryCoordNoPerspNV-04160NNoneexplicitBaryCoordNoPerspNV(VK_NV_fragment_shader_barycentric)The BaryCoordNoPerspNV decoration must be used only within the Fragment {ExecutionModel}
VUID-BaryCoordNoPerspNV-BaryCoordNoPerspNV-04161NNoneexplicitBaryCoordNoPerspNV(VK_NV_fragment_shader_barycentric)The variable decorated with BaryCoordNoPerspNV must be declared using the Input {StorageClass}
VUID-BaryCoordNoPerspNV-BaryCoordNoPerspNV-04162NNoneexplicitBaryCoordNoPerspNV(VK_NV_fragment_shader_barycentric)The variable decorated with BaryCoordNoPerspNV 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 MeshNV, Vertex, Fragment, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel}
VUID-ClipDistance-ClipDistance-04188NNoneexplicitClipDistancecoreThe variable decorated with ClipDistance within the 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-CullDistance-CullDistance-04196NNoneexplicitCullDistancecoreThe CullDistance decoration must be used only within the MeshNV, Vertex, Fragment, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel}
VUID-CullDistance-CullDistance-04197NNoneexplicitCullDistancecoreThe variable decorated with CullDistance within the 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-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, 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, 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 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 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-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, 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, 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, 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 {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 MeshNV, Vertex, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel}
VUID-PointSize-PointSize-04315NNoneexplicitPointSizecoreThe variable decorated with PointSize within the 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 MeshNV, Vertex, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel}
VUID-Position-Position-04319NNoneexplicitPositioncoreThe variable decorated with Position within MeshNV or Vertex {ExecutionModel} must be declared using the Output {StorageClass}
VUID-Position-Position-04320NNoneexplicitPositioncoreThe variable decorated with Position within 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 MeshNV {ExecutionModel} and a variable decorated with PrimitiveId is read from Fragment shader, then the 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 either the Geometry or Tessellation capability must also be declared
VUID-PrimitiveId-PrimitiveId-04330NNoneexplicitPrimitiveIdcoreThe PrimitiveId decoration must be used only within the 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 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-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-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04484NNoneexplicitPrimitiveShadingRateKHR(VK_KHR_fragment_shading_rate)The PrimitiveShadingRateKHR decoration must be used only within the 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-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-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-04707NNoneexplicitStandaloneSpirvcoreThe Base operand of OpPtrAccessChain must point to one of the following: Workgroup, if VariablePointers is enabled; StorageBuffer, if VariablePointers or VariablePointersStorageBuffer is enabled; PhysicalStorageBuffer, if the PhysicalStorageBuffer64 addressing model is enabled
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-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 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 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-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-FPRoundingMode-04675NNoneexplicitStandaloneSpirvcoreRounding modes other than round-to-nearest-even and round-towards-zero must not be used for the FPRoundingMode decoration
VUID-StandaloneSpirv-FPRoundingMode-04676NNoneexplicitStandaloneSpirvcoreThe FPRoundingMode decoration must only be used for a width-only conversion instruction whose only uses are Object operands of OpStore instructions storing through a pointer to a 16-bit floating-point object in the StorageBuffer, PhysicalStorageBuffer, Uniform, or Output storage class
VUID-StandaloneSpirv-Flat-04670NNoneexplicitStandaloneSpirvcoreThe Flat, NoPerspective, Sample, and Centroid decorations must not be used on variables with storage class other than Input or on variables used in the interface of non-fragment shader entry points
VUID-StandaloneSpirv-Flat-04744NNoneexplicitStandaloneSpirvcoreThe Flat decorations must be used on variables with storage class of Input in a fragment shader stage that are a scalar integer, vector of integer, or any double-precision floating-point type
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-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-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-04683NNoneexplicitStandaloneSpirvcoreFor each compute shader entry point, either a LocalSize 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 a block 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-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-04639NNoneexplicitStandaloneSpirvcoreIf the Scope for memory is Workgroup, then it must only be used in the task, mesh, or compute execution models
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-04642NNoneexplicitStandaloneSpirvcoreScope for Non Uniform 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, or PhysicalStorageBuffer
VUID-StandaloneSpirv-None-04745NNoneexplicitStandaloneSpirvcoreAll variables with a storage class of PushConstant declared as an array must only be accessed by dynamically uniform indices
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 that specifies 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-OpGroupNonUniformBallotBitCount-04685NNoneexplicitStandaloneSpirvcoreIf OpGroupNonUniformBallotBitCount is used, the group operation must be limited to Reduce, InclusiveScan, or ExclusiveScan
VUID-StandaloneSpirv-OpImage-04777NNoneexplicitStandaloneSpirvcoreOpImage*Dref 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-OpReportIntersectionKHR-04666NNoneexplicitStandaloneSpirvcoreThe value of the "Hit Kind" operand of OpReportIntersectionKHR must be in the range [0,127]
VUID-StandaloneSpirv-OpTypeAccelerationStructureKHR-04665NNoneexplicitStandaloneSpirvcoreObjects of types OpTypeAccelerationStructureKHR and arrays of this type must not be stored to or modified
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-04661NNoneexplicitStandaloneSpirvcoreObjects of types OpTypeImage, OpTypeSampler, OpTypeSampledImage, 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 an OpTypeStruct that is in the StorageBuffer or PhysicalStorageBuffer storage class decorated as Block, or that is in the Uniform storage class decorated as BufferBlock
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-OriginLowerLeft-04653NNoneexplicitStandaloneSpirvcoreThe OriginLowerLeft execution mode must not be used; fragment entry points must declare OriginUpperLeft
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-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-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-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-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-ViewportMaskNV-04674NNoneexplicitStandaloneSpirvcoreThe ViewportMaskNV and ViewportIndex decorations must not both be statically used by one or more OpEntryPoint's that form the vertex processing 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, 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 not be used within the GLCompute {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 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 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-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-parameterYValidateCmdBuildAccelerationStructuresKHRimplicitVkAccelerationStructureBuildGeometryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)flags must be a valid combination of VkBuildAccelerationStructureFlagBitsKHR values
VUID-VkAccelerationStructureBuildGeometryInfoKHR-pGeometries-03788YValidateCmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureBuildGeometryInfoKHR(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-sTypeYValidateCmdBuildAccelerationStructuresKHRimplicitVkAccelerationStructureBuildGeometryInfoKHR(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-03654YValidateCmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureBuildGeometryInfoKHR(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-parameterYValidateCmdBuildAccelerationStructuresKHRimplicitVkAccelerationStructureBuildGeometryInfoKHR(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-VkAccelerationStructureCreateInfoKHR-buffer-03614YValidateCreateAccelerationStructureKHRexplicitVkAccelerationStructureCreateInfoKHR(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-03613YNoneexplicitVkAccelerationStructureCreateInfoKHR(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-parameterYValidateCreateAccelerationStructureKHRimplicitVkAccelerationStructureCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)createFlags must be a valid combination of VkAccelerationStructureCreateFlagBitsKHR values
VUID-VkAccelerationStructureCreateInfoKHR-deviceAddress-03612YValidateCreateAccelerationStructureKHRexplicitVkAccelerationStructureCreateInfoKHR(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-03616YValidateCreateAccelerationStructureKHRexplicitVkAccelerationStructureCreateInfoKHR(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-pNextYNoneimplicitVkAccelerationStructureCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)pNext must be NULL or a pointer to a valid instance of VkAccelerationStructureMotionInfoNV
VUID-VkAccelerationStructureCreateInfoKHR-sType-sTypeYValidateCreateAccelerationStructureKHRimplicitVkAccelerationStructureCreateInfoKHR(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-parameterYValidateCreateAccelerationStructureKHRimplicitVkAccelerationStructureCreateInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)type must be a valid VkAccelerationStructureTypeKHR value
VUID-VkAccelerationStructureCreateInfoNV-compactedSize-02421YValidateCreateAccelerationStructureNVexplicitVkAccelerationStructureCreateInfoNV(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
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-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-03798YValidateCmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureGeometryTrianglesDataKHR(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)pNext must be NULL or a pointer to a valid instance of VkAccelerationStructureGeometryMotionTrianglesDataNV
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-03819YValidateCmdBuildAccelerationStructuresKHRexplicitVkAccelerationStructureGeometryTrianglesDataKHR(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-02592YValidateCreateAccelerationStructureNVexplicitVkAccelerationStructureInfoNV(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-02782YValidateCmdBuildAccelerationStructureNVexplicitVkAccelerationStructureInfoNV(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-02781YValidateCmdBuildAccelerationStructureNVexplicitVkAccelerationStructureInfoNV(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-02425YValidateCreateAccelerationStructureNVexplicitVkAccelerationStructureInfoNV(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-02426YValidateCreateAccelerationStructureNVexplicitVkAccelerationStructureInfoNV(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-02786YValidateCreateAccelerationStructureNVexplicitVkAccelerationStructureInfoNV(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-04623NNoneexplicitVkAccelerationStructureInfoNV(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-VkAccelerationStructureVersionInfoKHR-pNext-pNextYNoneimplicitVkAccelerationStructureVersionInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pNext must be NULL
VUID-VkAccelerationStructureVersionInfoKHR-pVersionData-parameterYValidateVkAccelerationStructureVersionInfoKHRimplicitVkAccelerationStructureVersionInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pVersionData must be a valid pointer to an array of 2*VK_UUID_SIZE uint8_t values
VUID-VkAccelerationStructureVersionInfoKHR-sType-sTypeYValidateVkAccelerationStructureVersionInfoKHRimplicitVkAccelerationStructureVersionInfoKHR(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 VkInstance
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-01288NNoneexplicitVkAcquireNextImageInfoKHR(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-01675NNoneexplicitVkAcquireNextImageInfoKHR(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-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)pNext must be NULL or a pointer to a valid instance of 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-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, 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-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, 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-VkAttachmentDescription-format-03283YRenderPassCreateAttachmentDescriptionInvalidFinalLayout, InvalidImageLayoutexplicitVkAttachmentDescriptioncoreIf 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-03288YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription(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_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-03289YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription(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_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-03292YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-03293YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If 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-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-VkAttachmentDescription2-finalLayout-03061YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription2(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-03294YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription2(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, 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-VkAttachmentDescription2-format-03295YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription2(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-03296YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription2(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, 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-VkAttachmentDescription2-format-03297YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription2(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-03300YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription2(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-03301YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription2(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-03302YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription2(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-03303YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription2(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-03304YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription2(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-03305YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription2(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-03306YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription2(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 stencil aspect, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription2-format-03307YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription2(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 stencil aspect, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_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-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-03298YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription2(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-03299YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription2(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-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-layout-00857YRenderPassCreateAttachmentReferenceInvalidLayoutexplicitVkAttachmentReferencecoreIf attachment is not VK_ATTACHMENT_UNUSED, layout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_PREINITIALIZED, VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, 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-layout-parameterYNoneimplicitVkAttachmentReferencecorelayout must be a valid VkImageLayout value
VUID-VkAttachmentReference2-attachment-04754YRenderPassCreateAttachmentReferenceInvalidLayoutexplicitVkAttachmentReference2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If attachment is not VK_ATTACHMENT_UNUSED, and the format of the referenced attachment is a color format, 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-attachment-04755YRenderPassCreateAttachmentReferenceInvalidLayoutexplicitVkAttachmentReference2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If attachment is not VK_ATTACHMENT_UNUSED, and the format of the referenced attachment is a depth/stencil format which includes both depth and stencil aspects, and layout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, the pNext chain must include a VkAttachmentReferenceStencilLayout structure
VUID-VkAttachmentReference2-attachment-04756YRenderPassCreateAttachmentReferenceInvalidLayoutexplicitVkAttachmentReference2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If attachment is not VK_ATTACHMENT_UNUSED, and the format of the referenced attachment is a depth/stencil format which includes only the depth aspect, layout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentReference2-attachment-04757YRenderPassCreateAttachmentReferenceInvalidLayoutexplicitVkAttachmentReference2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If attachment is not VK_ATTACHMENT_UNUSED, and the format of the referenced attachment is a depth/stencil format which includes only the stencil aspect, layout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
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-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-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-03620YValidateBindAccelerationStructureNVexplicitVkBindAccelerationStructureMemoryInfoNV(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-03622YValidateBindAccelerationStructureNVexplicitVkBindAccelerationStructureMemoryInfoNV(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-parameterYValidateBindAccelerationStructureNVimplicitVkBindAccelerationStructureMemoryInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)memory must be a valid VkDeviceMemory handle
VUID-VkBindAccelerationStructureMemoryInfoNV-memoryOffset-03621YValidateBindAccelerationStructureNVexplicitVkBindAccelerationStructureMemoryInfoNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)memoryOffset must be less than the size of memory
VUID-VkBindAccelerationStructureMemoryInfoNV-memoryOffset-03623YValidateBindAccelerationStructureNVexplicitVkBindAccelerationStructureMemoryInfoNV(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-03624YValidateBindAccelerationStructureNVexplicitVkBindAccelerationStructureMemoryInfoNV(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-01606NNoneexplicitVkBindBufferMemoryDeviceGroupInfo(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-01607NNoneexplicitVkBindBufferMemoryDeviceGroupInfo(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-01029YNoneexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)buffer must not already be backed by a memory object
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-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-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-01633NNoneexplicitVkBindImageMemoryDeviceGroupInfo(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-01634NNoneexplicitVkBindImageMemoryDeviceGroupInfo(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-01636NNoneexplicitVkBindImageMemoryDeviceGroupInfo(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-image-01044YNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)image must not already be backed by a memory object
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-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-01612YBindInvalidMemory2Disjoint, ValidateImportMemoryHandleTypeexplicitVkBindImageMemoryInfo(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-01614YBindInvalidMemory2Disjoint, ValidateImportMemoryHandleTypeexplicitVkBindImageMemoryInfo(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 dedicated allocation image aliasing 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 dedicated allocation image aliasing 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-01627NNoneexplicitVkBindImageMemoryInfo(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-03247YNoneexplicitVkBindSparseInfo(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-03248YNoneexplicitVkBindSparseInfo(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-03249YNoneexplicitVkBindSparseInfo(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-03251YNoneexplicitVkBindSparseInfo(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-03246YNoneexplicitVkBindSparseInfo(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-03250YNoneexplicitVkBindSparseInfo(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-VkBlitImageInfo2KHR-aspectMask-00241YNoneexplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage
VUID-VkBlitImageInfo2KHR-aspectMask-00242YNoneexplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage
VUID-VkBlitImageInfo2KHR-commonparentYNoneimplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-VkBlitImageInfo2KHR-dstImage-00224YNoneexplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkBlitImageInfo2KHR-dstImage-00225YNoneexplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBlitImageInfo2KHR-dstImage-00234YNoneexplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)dstImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT
VUID-VkBlitImageInfo2KHR-dstImage-00250YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-dstImage-00252YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-dstImage-01562YNoneexplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)dstImage must not use a format listed in Formats requiring sampler Y'CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views
VUID-VkBlitImageInfo2KHR-dstImage-02000YBlitImageFormatTypesexplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)The format features of dstImage must contain VK_FORMAT_FEATURE_BLIT_DST_BIT
VUID-VkBlitImageInfo2KHR-dstImage-02545YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-dstImage-parameterYNoneimplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)dstImage must be a valid VkImage handle
VUID-VkBlitImageInfo2KHR-dstImageLayout-00226YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-dstImageLayout-00227YNoneexplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkBlitImageInfo2KHR-dstImageLayout-01399YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-dstImageLayout-parameterYNoneimplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)dstImageLayout must be a valid VkImageLayout value
VUID-VkBlitImageInfo2KHR-dstOffset-00248YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-dstOffset-00249YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-dstOffset-00251YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-dstSubresource-01706YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-dstSubresource-01708YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-filter-00237YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-filter-02001YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-filter-02002YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-filter-parameterYNoneimplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)filter must be a valid VkFilter value
VUID-VkBlitImageInfo2KHR-pNext-pNextYNoneimplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)pNext must be NULL
VUID-VkBlitImageInfo2KHR-pRegions-00215YNoneexplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)The source region specified by each element of pRegions must be a region that is contained within srcImage
VUID-VkBlitImageInfo2KHR-pRegions-00216YNoneexplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)The destination region specified by each element of pRegions must be a region that is contained within dstImage
VUID-VkBlitImageInfo2KHR-pRegions-00217NNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-pRegions-04561NNoneexplicitVkBlitImageInfo2KHR(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 a block-compressed image.
VUID-VkBlitImageInfo2KHR-pRegions-04562NNoneexplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then the srcImage must be of type VK_IMAGE_TYPE_2D and must not be a multi-planar format.
VUID-VkBlitImageInfo2KHR-pRegions-parameterYNoneimplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)pRegions must be a valid pointer to an array of regionCount valid VkImageBlit2KHR structures
VUID-VkBlitImageInfo2KHR-regionCount-arraylengthYNoneimplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)regionCount must be greater than 0
VUID-VkBlitImageInfo2KHR-sType-sTypeYNoneimplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR
VUID-VkBlitImageInfo2KHR-srcImage-00219YNoneexplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkBlitImageInfo2KHR-srcImage-00220YNoneexplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBlitImageInfo2KHR-srcImage-00229YBlitImageFormatTypesexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-srcImage-00230YBlitImageFormatTypesexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-srcImage-00231YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-srcImage-00232YNoneexplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)If srcImage was created with a depth/stencil format, filter must be VK_FILTER_NEAREST
VUID-VkBlitImageInfo2KHR-srcImage-00233YNoneexplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)srcImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT
VUID-VkBlitImageInfo2KHR-srcImage-00240YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-srcImage-00245YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-srcImage-00247YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-srcImage-01561YNoneexplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)srcImage must not use a format listed in Formats requiring sampler Y'CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views
VUID-VkBlitImageInfo2KHR-srcImage-01999YBlitImageFormatTypesexplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)The format features of srcImage must contain VK_FORMAT_FEATURE_BLIT_SRC_BIT
VUID-VkBlitImageInfo2KHR-srcImage-parameterYNoneimplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)srcImage must be a valid VkImage handle
VUID-VkBlitImageInfo2KHR-srcImageLayout-00221YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-srcImageLayout-00222YNoneexplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkBlitImageInfo2KHR-srcImageLayout-01398YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-srcImageLayout-parameterYNoneimplicitVkBlitImageInfo2KHR(VK_KHR_copy_commands2)srcImageLayout must be a valid VkImageLayout value
VUID-VkBlitImageInfo2KHR-srcOffset-00243YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-srcOffset-00244YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-srcOffset-00246YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-srcSubresource-01705YNoneexplicitVkBlitImageInfo2KHR(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-VkBlitImageInfo2KHR-srcSubresource-01707YNoneexplicitVkBlitImageInfo2KHR(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-VkBufferCopy-size-01988YBufferExtentsexplicitVkBufferCopycoreThe size must be greater than 0
VUID-VkBufferCopy2KHR-pNext-pNextYNoneimplicitVkBufferCopy2KHR(VK_KHR_copy_commands2)pNext must be NULL
VUID-VkBufferCopy2KHR-sType-sTypeYNoneimplicitVkBufferCopy2KHR(VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR
VUID-VkBufferCopy2KHR-size-01988YNoneexplicitVkBufferCopy2KHR(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 sparse bindings feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_BINDING_BIT
VUID-VkBufferCreateInfo-flags-00916YNoneexplicitVkBufferCreateInfocoreIf the sparse buffer residency feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkBufferCreateInfo-flags-00917YNoneexplicitVkBufferCreateInfocoreIf the sparse aliased residency 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-01887YDisabledProtectedMemoryexplicitVkBufferCreateInfo(VK_VERSION_1_1)If the protected memory 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)If flags includes VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, the bufferDeviceAddressCaptureReplay or VkPhysicalDeviceBufferDeviceAddressFeaturesEXT::bufferDeviceAddressCaptureReplay 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-01571NNoneexplicitVkBufferCreateInfo(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-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 VkBufferDeviceAddressCreateInfoEXT, VkBufferOpaqueCaptureAddressCreateInfo, VkDedicatedAllocationBufferCreateInfoNV, VkExternalMemoryBufferCreateInfo, VkVideoProfileKHR, or VkVideoProfilesKHR
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-01391NNoneexplicitVkBufferCreateInfo!(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-usage-04813NNoneexplicitVkBufferCreateInfo(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 VkVideoProfilesKHR structure which includes at least one VkVideoProfileKHR with a decode codec-operation.
VUID-VkBufferCreateInfo-usage-04814NNoneexplicitVkBufferCreateInfo(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 VkVideoProfilesKHR structure which includes at least one VkVideoProfileKHR with a encode codec-operation.
VUID-VkBufferCreateInfo-usage-parameterYNoneimplicitVkBufferCreateInfocoreusage must be a valid combination of VkBufferUsageFlagBits values
VUID-VkBufferCreateInfo-usage-requiredbitmaskYNoneimplicitVkBufferCreateInfocoreusage 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-02600YBufferDeviceAddressEXT, BufferDeviceAddressKHR, BufferDeviceAddressEXTDisabled, BufferDeviceAddressKHRDisabledexplicitVkBufferDeviceAddressInfo(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-02601YBufferDeviceAddressKHRDisabled, BufferDeviceAddressEXTDisabledexplicitVkBufferDeviceAddressInfo(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-imageSubresource-parameterNNoneimplicitVkBufferImageCopycoreimageSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkBufferImageCopy2KHR-aspectMask-00212YNoneexplicitVkBufferImageCopy2KHR(VK_KHR_copy_commands2)The aspectMask member of imageSubresource must only have a single bit set
VUID-VkBufferImageCopy2KHR-bufferImageHeight-00196YNoneexplicitVkBufferImageCopy2KHR(VK_KHR_copy_commands2)bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent
VUID-VkBufferImageCopy2KHR-bufferRowLength-00195YNoneexplicitVkBufferImageCopy2KHR(VK_KHR_copy_commands2)bufferRowLength must be 0, or greater than or equal to the width member of imageExtent
VUID-VkBufferImageCopy2KHR-imageSubresource-parameterNNoneimplicitVkBufferImageCopy2KHR(VK_KHR_copy_commands2)imageSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkBufferImageCopy2KHR-pNext-pNextYNoneimplicitVkBufferImageCopy2KHR(VK_KHR_copy_commands2)pNext must be NULL or a pointer to a valid instance of VkCopyCommandTransformInfoQCOM
VUID-VkBufferImageCopy2KHR-sType-sTypeYNoneimplicitVkBufferImageCopy2KHR(VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR
VUID-VkBufferImageCopy2KHR-sType-uniqueYNoneimplicitVkBufferImageCopy2KHR(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-04087NNoneexplicitVkBufferMemoryBarrier(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-03853YInvalidBarrierQueueFamilyWithMemExt, Sync2InvalidBarrierQueueFamilyexplicitVkBufferMemoryBarrier(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-VkBufferMemoryBarrier2KHR-buffer-01931YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBufferMemoryBarrier2KHR-buffer-04086YNoneexplicitVkBufferMemoryBarrier2KHR(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-VkBufferMemoryBarrier2KHR-buffer-04088YSync2InvalidBarrierQueueFamilyexplicitVkBufferMemoryBarrier2KHR(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-VkBufferMemoryBarrier2KHR-buffer-04089YSync2InvalidBarrierQueueFamilyexplicitVkBufferMemoryBarrier2KHR(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-VkBufferMemoryBarrier2KHR-buffer-parameterYNoneimplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)buffer must be a valid VkBuffer handle
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03900YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03901YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_INDEX_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03902YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03903YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR,
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03904YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03905YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03906YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03907YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03908YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03909YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03910YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03911YSync2InvalidBarriersexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03912YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03913YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03914YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03915YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03916YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_HOST_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03917YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03918YNoneexplicitVkBufferMemoryBarrier2KHR(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_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03919YNoneexplicitVkBufferMemoryBarrier2KHR(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_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03920YNoneexplicitVkBufferMemoryBarrier2KHR(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_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03922YNoneexplicitVkBufferMemoryBarrier2KHR(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_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03923YNoneexplicitVkBufferMemoryBarrier2KHR(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_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03924YNoneexplicitVkBufferMemoryBarrier2KHR(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_KHR
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03925YNoneexplicitVkBufferMemoryBarrier2KHR(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_KHR
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03926YNoneexplicitVkBufferMemoryBarrier2KHR(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_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03927YNoneexplicitVkBufferMemoryBarrier2KHR(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_RAY_TRACING_SHADER_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03928YNoneexplicitVkBufferMemoryBarrier2KHR(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_KHR
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-04747YNoneexplicitVkBufferMemoryBarrier2KHR(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_KHR, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-04858NNoneexplicitVkBufferMemoryBarrier2KHR(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-VkBufferMemoryBarrier2KHR-dstAccessMask-04859NNoneexplicitVkBufferMemoryBarrier2KHR(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-VkBufferMemoryBarrier2KHR-dstAccessMask-04860NNoneexplicitVkBufferMemoryBarrier2KHR(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-VkBufferMemoryBarrier2KHR-dstAccessMask-04861NNoneexplicitVkBufferMemoryBarrier2KHR(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-VkBufferMemoryBarrier2KHR-dstAccessMask-parameterYNoneimplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)dstAccessMask must be a valid combination of VkAccessFlagBits2KHR values
VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03929YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If the geometry shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03930YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If the tessellation shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03931YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)If the conditional rendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03932YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)If the fragment density map feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03933YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If the transform feedback feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03934YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_NV_mesh_shader)If the mesh shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV
VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03935YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_NV_mesh_shader)If the task shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV
VUID-VkBufferMemoryBarrier2KHR-dstStageMask-04956YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_NV_shading_rate_image)If the shading rate image feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV
VUID-VkBufferMemoryBarrier2KHR-dstStageMask-04957NNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)If the subpass shading feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
VUID-VkBufferMemoryBarrier2KHR-dstStageMask-parameterYNoneimplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)dstStageMask must be a valid combination of VkPipelineStageFlagBits2KHR values
VUID-VkBufferMemoryBarrier2KHR-offset-01187YSync2InvalidBarriersexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)offset must be less than the size of buffer
VUID-VkBufferMemoryBarrier2KHR-pNext-pNextYNoneimplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)pNext must be NULL
VUID-VkBufferMemoryBarrier2KHR-sType-sTypeYNoneimplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR
VUID-VkBufferMemoryBarrier2KHR-size-01188YSync2InvalidBarriersexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If size is not equal to VK_WHOLE_SIZE, size must be greater than 0
VUID-VkBufferMemoryBarrier2KHR-size-01189YSync2InvalidBarriersexplicitVkBufferMemoryBarrier2KHR(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-VkBufferMemoryBarrier2KHR-srcAccessMask-03900YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03901YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_INDEX_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03902YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03903YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR,
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03904YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03905YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03906YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03907YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03908YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03909YSync2InvalidBarriersexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03910YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03911YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03912YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03913YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03914YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03915YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03916YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_HOST_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03917YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03918YNoneexplicitVkBufferMemoryBarrier2KHR(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_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03919YNoneexplicitVkBufferMemoryBarrier2KHR(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_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03920YNoneexplicitVkBufferMemoryBarrier2KHR(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_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03922YNoneexplicitVkBufferMemoryBarrier2KHR(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_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03923YNoneexplicitVkBufferMemoryBarrier2KHR(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_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03924YNoneexplicitVkBufferMemoryBarrier2KHR(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_KHR
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03925YNoneexplicitVkBufferMemoryBarrier2KHR(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_KHR
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03926YNoneexplicitVkBufferMemoryBarrier2KHR(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_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03927YNoneexplicitVkBufferMemoryBarrier2KHR(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_RAY_TRACING_SHADER_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03928YNoneexplicitVkBufferMemoryBarrier2KHR(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_KHR
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-04747YNoneexplicitVkBufferMemoryBarrier2KHR(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_KHR, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-04858NNoneexplicitVkBufferMemoryBarrier2KHR(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-VkBufferMemoryBarrier2KHR-srcAccessMask-04859NNoneexplicitVkBufferMemoryBarrier2KHR(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-VkBufferMemoryBarrier2KHR-srcAccessMask-04860NNoneexplicitVkBufferMemoryBarrier2KHR(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-VkBufferMemoryBarrier2KHR-srcAccessMask-04861NNoneexplicitVkBufferMemoryBarrier2KHR(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-VkBufferMemoryBarrier2KHR-srcAccessMask-parameterYNoneimplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)srcAccessMask must be a valid combination of VkAccessFlagBits2KHR values
VUID-VkBufferMemoryBarrier2KHR-srcQueueFamilyIndex-04087NNoneexplicitVkBufferMemoryBarrier2KHR(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-VkBufferMemoryBarrier2KHR-srcStageMask-03851NNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If either srcStageMask or dstStageMask includes VK_PIPELINE_STAGE_2_HOST_BIT_KHR, srcQueueFamilyIndex and dstQueueFamilyIndex must be equal
VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03929YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If the geometry shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03930YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)If the tessellation shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR
VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03931YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)If the conditional rendering feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03932YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)If the fragment density map feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03933YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If the transform feedback feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03934YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_NV_mesh_shader)If the mesh shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV
VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03935YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_NV_mesh_shader)If the task shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV
VUID-VkBufferMemoryBarrier2KHR-srcStageMask-04956YNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_NV_shading_rate_image)If the shading rate image feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV
VUID-VkBufferMemoryBarrier2KHR-srcStageMask-04957NNoneexplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)If the subpass shading feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
VUID-VkBufferMemoryBarrier2KHR-srcStageMask-parameterYNoneimplicitVkBufferMemoryBarrier2KHR(VK_KHR_synchronization2)srcStageMask must be a valid combination of VkPipelineStageFlagBits2KHR 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-00934YInvalidBufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocoreIf 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_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 VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT::storageTexelBufferOffsetAlignmentBytes or, if VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT::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_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 VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT::uniformTexelBufferOffsetAlignmentBytes or, if VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT::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_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_EXT_texel_buffer_alignment)If the texelBufferAlignment feature is not enabled, offset must be a multiple of VkPhysicalDeviceLimits::minTexelBufferOffsetAlignment
VUID-VkBufferViewCreateInfo-pNext-pNextYNoneimplicitVkBufferViewCreateInfocorepNext must be NULL
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-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_KHR_synchronization2)pNext must be NULL
VUID-VkCheckpointData2NV-sType-sTypeYNoneimplicitVkCheckpointData2NV(VK_NV_device_diagnostic_checkpoints)+(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-00019YNoneexplicitVkClearAttachmentcoreIf 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_i_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-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-00053YSecondaryCommandBufferNullRenderpassexplicitVkCommandBufferBeginInfocoreIf flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, the renderPass member of pInheritanceInfo must be a valid VkRenderPass
VUID-VkCommandBufferBeginInfo-flags-00054YNoneexplicitVkCommandBufferBeginInfocoreIf 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-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 inherited conditional rendering 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 inherited queries 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 VkCommandBufferInheritanceConditionalRenderingInfoEXT, VkCommandBufferInheritanceRenderPassTransformInfoQCOM, or VkCommandBufferInheritanceViewportScissorInfoNV
VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-00058YNoneexplicitVkCommandBufferInheritanceInfocoreIf the pipeline statistics queries feature is not enabled, pipelineStatistics must be 0
VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-02789YNoneexplicitVkCommandBufferInheritanceInfocoreIf the pipeline statistics queries feature is enabled, pipelineStatistics must be a valid combination of VkQueryPipelineStatisticFlagBits values
VUID-VkCommandBufferInheritanceInfo-queryFlags-00057YNoneexplicitVkCommandBufferInheritanceInfocoreIf the inherited queries feature is enabled, queryFlags must be a valid combination of VkQueryControlFlagBits values
VUID-VkCommandBufferInheritanceInfo-queryFlags-02788YNoneexplicitVkCommandBufferInheritanceInfocoreIf the inherited queries 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-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 inherited viewport scissor feature is not enabled, viewportScissor2D must be VK_FALSE
VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04783NNoneexplicitVkCommandBufferInheritanceViewportScissorInfoNV(VK_NV_inherited_viewport_scissor)If the multiple viewports 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-VkCommandBufferSubmitInfoKHR-commandBuffer-03890YSync2SecondaryCommandbufferAsPrimaryexplicitVkCommandBufferSubmitInfoKHR(VK_KHR_synchronization2)commandBuffer must not have been allocated with VK_COMMAND_BUFFER_LEVEL_SECONDARY
VUID-VkCommandBufferSubmitInfoKHR-commandBuffer-parameterYNoneimplicitVkCommandBufferSubmitInfoKHR(VK_KHR_synchronization2)commandBuffer must be a valid VkCommandBuffer handle
VUID-VkCommandBufferSubmitInfoKHR-deviceMask-03891YNoneexplicitVkCommandBufferSubmitInfoKHR(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-VkCommandBufferSubmitInfoKHR-pNext-pNextYNoneimplicitVkCommandBufferSubmitInfoKHR(VK_KHR_synchronization2)pNext must be NULL
VUID-VkCommandBufferSubmitInfoKHR-sType-sTypeYNoneimplicitVkCommandBufferSubmitInfoKHR(VK_KHR_synchronization2)sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR
VUID-VkCommandPoolCreateInfo-flags-02860YDisabledProtectedMemoryexplicitVkCommandPoolCreateInfo(VK_VERSION_1_1)If the protected memory 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-pNextYNoneimplicitVkCommandPoolCreateInfocorepNext 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-00698NNoneexplicitVkComputePipelineCreateInfocoreIf 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-00699NNoneexplicitVkComputePipelineCreateInfocoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is not -1, basePipelineHandle must be VK_NULL_HANDLE
VUID-VkComputePipelineCreateInfo-flags-00700NNoneexplicitVkComputePipelineCreateInfocoreIf 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-04945NNoneexplicitVkComputePipelineCreateInfo(VK_NV_ray_tracing_motion_blur)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
VUID-VkComputePipelineCreateInfo-flags-parameterYNoneimplicitVkComputePipelineCreateInfocoreflags must be a valid combination of VkPipelineCreateFlagBits values
VUID-VkComputePipelineCreateInfo-layout-00703YNoneexplicitVkComputePipelineCreateInfocorelayout 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, VkPipelineCreationFeedbackCreateInfoEXT, or VkSubpassShadingPipelineCreateInfoHUAWEI
VUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875YPipelineCreationCacheControlexplicitVkComputePipelineCreateInfo(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_EXT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT
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-01982NNoneexplicitVkConditionalRenderingBeginInfoEXT(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-01983NNoneexplicitVkConditionalRenderingBeginInfoEXT(VK_EXT_conditional_rendering)offset must be less than the size of buffer by at least 32 bits
VUID-VkConditionalRenderingBeginInfoEXT-offset-01984NNoneexplicitVkConditionalRenderingBeginInfoEXT(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-03718NNoneexplicitVkCopyAccelerationStructureInfoKHR(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-03719NNoneexplicitVkCopyAccelerationStructureInfoKHR(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 built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR
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-parameterYNoneimplicitVkCopyAccelerationStructureToMemoryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)src must be a valid VkAccelerationStructureKHR handle
VUID-VkCopyBufferInfo2KHR-commonparentYNoneimplicitVkCopyBufferInfo2KHR(VK_KHR_copy_commands2)Both of dstBuffer, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyBufferInfo2KHR-dstBuffer-00120YNoneexplicitVkCopyBufferInfo2KHR(VK_KHR_copy_commands2)dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkCopyBufferInfo2KHR-dstBuffer-00121YNoneexplicitVkCopyBufferInfo2KHR(VK_KHR_copy_commands2)If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyBufferInfo2KHR-dstBuffer-parameterYNoneimplicitVkCopyBufferInfo2KHR(VK_KHR_copy_commands2)dstBuffer must be a valid VkBuffer handle
VUID-VkCopyBufferInfo2KHR-dstOffset-00114YBufferExtentsexplicitVkCopyBufferInfo2KHR(VK_KHR_copy_commands2)The dstOffset member of each element of pRegions must be less than the size of dstBuffer
VUID-VkCopyBufferInfo2KHR-pNext-pNextYNoneimplicitVkCopyBufferInfo2KHR(VK_KHR_copy_commands2)pNext must be NULL
VUID-VkCopyBufferInfo2KHR-pRegions-00117YNoneexplicitVkCopyBufferInfo2KHR(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-VkCopyBufferInfo2KHR-pRegions-parameterYNoneimplicitVkCopyBufferInfo2KHR(VK_KHR_copy_commands2)pRegions must be a valid pointer to an array of regionCount valid VkBufferCopy2KHR structures
VUID-VkCopyBufferInfo2KHR-regionCount-arraylengthYNoneimplicitVkCopyBufferInfo2KHR(VK_KHR_copy_commands2)regionCount must be greater than 0
VUID-VkCopyBufferInfo2KHR-sType-sTypeYNoneimplicitVkCopyBufferInfo2KHR(VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR
VUID-VkCopyBufferInfo2KHR-size-00115YBufferExtentsexplicitVkCopyBufferInfo2KHR(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-VkCopyBufferInfo2KHR-size-00116YBufferExtentsexplicitVkCopyBufferInfo2KHR(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-VkCopyBufferInfo2KHR-srcBuffer-00118YNoneexplicitVkCopyBufferInfo2KHR(VK_KHR_copy_commands2)srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkCopyBufferInfo2KHR-srcBuffer-00119YNoneexplicitVkCopyBufferInfo2KHR(VK_KHR_copy_commands2)If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyBufferInfo2KHR-srcBuffer-parameterYNoneimplicitVkCopyBufferInfo2KHR(VK_KHR_copy_commands2)srcBuffer must be a valid VkBuffer handle
VUID-VkCopyBufferInfo2KHR-srcOffset-00113YBufferExtentsexplicitVkCopyBufferInfo2KHR(VK_KHR_copy_commands2)The srcOffset member of each element of pRegions must be less than the size of srcBuffer
VUID-VkCopyBufferToImageInfo2KHR-None-00214NNoneexplicitVkCopyBufferToImageInfo2KHR(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-VkCopyBufferToImageInfo2KHR-aspectMask-00211YNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)For each element of pRegions, imageSubresource.aspectMask must specify aspects present in {imageparam}
VUID-VkCopyBufferToImageInfo2KHR-aspectMask-01560YNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If {imageparam} has a multi-planar format, 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 (with VK_IMAGE_ASPECT_PLANE_2_BIT valid only for image formats with three planes)
VUID-VkCopyBufferToImageInfo2KHR-baseArrayLayer-00213YNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)If {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-VkCopyBufferToImageInfo2KHR-bufferImageHeight-00204YNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)If {imageparam} is a blocked image, for each element of pRegions, bufferImageHeight must be a multiple of the compressed texel block height
VUID-VkCopyBufferToImageInfo2KHR-bufferOffset-00193YNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)+!(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-VkCopyBufferToImageInfo2KHR-bufferOffset-00206YNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)If {imageparam} is a blocked image, for each element of pRegions, bufferOffset must be a multiple of the compressed texel block size in bytes
VUID-VkCopyBufferToImageInfo2KHR-bufferOffset-01558YNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)+(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-VkCopyBufferToImageInfo2KHR-bufferOffset-01559YNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)+(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-VkCopyBufferToImageInfo2KHR-bufferRowLength-00203YNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)If {imageparam} is a blocked image, for each element of pRegions, bufferRowLength must be a multiple of the compressed texel block width
VUID-VkCopyBufferToImageInfo2KHR-commandBuffer-04052YNoneexplicitVkCopyBufferToImageInfo2KHR(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 pRegions must be a multiple of 4
VUID-VkCopyBufferToImageInfo2KHR-commandBuffer-04477YNoneexplicitVkCopyBufferToImageInfo2KHR(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 pRegions, the aspectMask member of imageSubresource must not be VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT.
VUID-VkCopyBufferToImageInfo2KHR-commonparentYNoneimplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)Both of dstImage, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyBufferToImageInfo2KHR-dstImage-00177YInvalidUsageBitsexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkCopyBufferToImageInfo2KHR-dstImage-00178YNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyBufferToImageInfo2KHR-dstImage-00179YNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-VkCopyBufferToImageInfo2KHR-dstImage-01997YNoneexplicitVkCopyBufferToImageInfo2KHR(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-VkCopyBufferToImageInfo2KHR-dstImage-02543YNoneexplicitVkCopyBufferToImageInfo2KHR(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-VkCopyBufferToImageInfo2KHR-dstImage-parameterYNoneimplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)dstImage must be a valid VkImage handle
VUID-VkCopyBufferToImageInfo2KHR-dstImageLayout-00180YNoneexplicitVkCopyBufferToImageInfo2KHR(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-VkCopyBufferToImageInfo2KHR-dstImageLayout-00181YNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkCopyBufferToImageInfo2KHR-dstImageLayout-01396YNoneexplicitVkCopyBufferToImageInfo2KHR(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-VkCopyBufferToImageInfo2KHR-dstImageLayout-parameterYNoneimplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)dstImageLayout must be a valid VkImageLayout value
VUID-VkCopyBufferToImageInfo2KHR-imageExtent-00207YNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)If {imageparam} is a blocked image, for each element of pRegions, imageExtent.width must be a multiple of the compressed texel block width or (imageExtent.width + imageOffset.x) must equal the width of the specified imageSubresource of {imageparam}
VUID-VkCopyBufferToImageInfo2KHR-imageExtent-00208YNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)If {imageparam} is a blocked image, for each element of pRegions, imageExtent.height must be a multiple of the compressed texel block height or (imageExtent.height + imageOffset.y) must equal the height of the specified imageSubresource of {imageparam}
VUID-VkCopyBufferToImageInfo2KHR-imageExtent-00209YNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)If {imageparam} is a blocked image, for each element of pRegions, imageExtent.depth must be a multiple of the compressed texel block depth or (imageExtent.depth + imageOffset.z) must equal the depth of the specified imageSubresource of {imageparam}
VUID-VkCopyBufferToImageInfo2KHR-imageOffset-00197YNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)For each element of pRegions
VUID-VkCopyBufferToImageInfo2KHR-imageOffset-00198YNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)For each element of pRegions
VUID-VkCopyBufferToImageInfo2KHR-imageOffset-00200YNoneexplicitVkCopyBufferToImageInfo2KHR(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 {imageparam}
VUID-VkCopyBufferToImageInfo2KHR-imageOffset-00205YCompressedImageMipCopyTestsexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)If {imageparam} is a blocked image, for each element of pRegions, all members of imageOffset must be a multiple of the corresponding dimensions of the compressed texel block
VUID-VkCopyBufferToImageInfo2KHR-imageOffset-01793YCompressedImageMipCopyTestsexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)The imageOffset and imageExtent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties
VUID-VkCopyBufferToImageInfo2KHR-imageSubresource-01701YNoneexplicitVkCopyBufferToImageInfo2KHR(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-VkCopyBufferToImageInfo2KHR-imageSubresource-01702YNoneexplicitVkCopyBufferToImageInfo2KHR(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-VkCopyBufferToImageInfo2KHR-pNext-pNextYNoneimplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)pNext must be NULL
VUID-VkCopyBufferToImageInfo2KHR-pRegions-00171YNoneexplicitVkCopyBufferToImageInfo2KHR(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-VkCopyBufferToImageInfo2KHR-pRegions-00172YNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)+!(VK_QCOM_rotated_copy_commands)The image region specified by each element of pRegions must be a region that is contained within dstImage
VUID-VkCopyBufferToImageInfo2KHR-pRegions-00173NNoneexplicitVkCopyBufferToImageInfo2KHR(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-VkCopyBufferToImageInfo2KHR-pRegions-04554NNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If the image region specified by each element of pRegions does contain VkCopyCommandTransformInfoQCOM in its pNext chain, the rotated destination region as described in Buffer and Image Addressing with Rotation must be contained within dstImage.
VUID-VkCopyBufferToImageInfo2KHR-pRegions-04555NNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then the dstImage must not be a blocked image.
VUID-VkCopyBufferToImageInfo2KHR-pRegions-04556NNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then the dstImage must be of type VK_IMAGE_TYPE_2D and must not be a multi-planar format.
VUID-VkCopyBufferToImageInfo2KHR-pRegions-04565NNoneexplicitVkCopyBufferToImageInfo2KHR(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 dstImage
VUID-VkCopyBufferToImageInfo2KHR-pRegions-04725NNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)If {imageparam} is not a blocked image, for each element of pRegions, bufferRowLength multiplied by the texel block size of {imageparam} must be less than or equal to 231-1
VUID-VkCopyBufferToImageInfo2KHR-pRegions-04726NNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)If {imageparam} is a blocked image, for each element of pRegions, bufferRowLength divided by the compressed texel block width and then multiplied by the texel block size of {imageparam} must be less than or equal to 231-1
VUID-VkCopyBufferToImageInfo2KHR-pRegions-parameterYNoneimplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy2KHR structures
VUID-VkCopyBufferToImageInfo2KHR-regionCount-arraylengthYNoneimplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)regionCount must be greater than 0
VUID-VkCopyBufferToImageInfo2KHR-sType-sTypeYNoneimplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR
VUID-VkCopyBufferToImageInfo2KHR-srcBuffer-00174YInvalidUsageBitsexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkCopyBufferToImageInfo2KHR-srcBuffer-00176YNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyBufferToImageInfo2KHR-srcBuffer-parameterYNoneimplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)srcBuffer must be a valid VkBuffer handle
VUID-VkCopyBufferToImageInfo2KHR-srcImage-00199YNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)If {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-VkCopyBufferToImageInfo2KHR-srcImage-00201YNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)If {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-VkCopyBufferToImageInfo2KHR-srcImage-04053YNoneexplicitVkCopyBufferToImageInfo2KHR(VK_KHR_copy_commands2)If {imageparam} has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4
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_EXT_inline_uniform_block)If the descriptor type of the descriptor set binding specified by dstBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, 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-04612NNoneexplicitVkCopyDescriptorSet(VK_VALVE_mutable_descriptor_type)If VkDescriptorSetLayoutBinding for dstSet at dstBinding is VK_DESCRIPTOR_TYPE_MUTABLE_VALVE, 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_VALVE
VUID-VkCopyDescriptorSet-dstSet-04614NNoneexplicitVkCopyDescriptorSet(VK_VALVE_mutable_descriptor_type)If VkDescriptorSetLayoutBinding for dstSet at dstBinding is VK_DESCRIPTOR_TYPE_MUTABLE_VALVE, and the new active descriptor type is VK_DESCRIPTOR_TYPE_MUTABLE_VALVE, 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_EXT_inline_uniform_block)If the descriptor type of the descriptor set binding specified by srcBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, srcArrayElement must be an integer multiple of 4
VUID-VkCopyDescriptorSet-srcBinding-02225YInlineUniformBlockEXTexplicitVkCopyDescriptorSet(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_EXT, 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-04613NNoneexplicitVkCopyDescriptorSet(VK_VALVE_mutable_descriptor_type)If VkDescriptorSetLayoutBinding for srcSet at srcBinding is VK_DESCRIPTOR_TYPE_MUTABLE_VALVE and the VkDescriptorSetLayoutBinding for dstSet at dstBinding is not VK_DESCRIPTOR_TYPE_MUTABLE_VALVE, 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_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_VALVE 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_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_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_VALVE 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_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-VkCopyImageInfo2KHR-None-01549YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-aspectMask-00142YNoneexplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage
VUID-VkCopyImageInfo2KHR-aspectMask-00143YNoneexplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage
VUID-VkCopyImageInfo2KHR-commonparentYNoneimplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyImageInfo2KHR-dstImage-00131YNoneexplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkCopyImageInfo2KHR-dstImage-00132YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-dstImage-00152YCopyImageTypeExtentMismatchexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-dstImage-01547YCopyInvalidImageMemoryexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-dstImage-01554YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-dstImage-01555YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-dstImage-01557YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-dstImage-01731YNoneexplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)If dstImage is a blocked image, then for each element of pRegions, all members of dstOffset must be a multiple of the corresponding dimensions of the compressed texel block
VUID-VkCopyImageInfo2KHR-dstImage-01732YNoneexplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)If dstImage is a blocked image, then for each element of pRegions, extent.width must be a multiple of the compressed texel block width or (extent.width + dstOffset.x) must equal the width of the specified dstSubresource of dstImage
VUID-VkCopyImageInfo2KHR-dstImage-01733YNoneexplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)If dstImage is a blocked image, then for each element of pRegions, extent.height must be a multiple of the compressed texel block height or (extent.height + dstOffset.y) must equal the height of the specified dstSubresource of dstImage
VUID-VkCopyImageInfo2KHR-dstImage-01734YNoneexplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)If dstImage is a blocked image, then for each element of pRegions, extent.depth must be a multiple of the compressed texel block depth or (extent.depth + dstOffset.z) must equal the depth of the specified dstSubresource of dstImage
VUID-VkCopyImageInfo2KHR-dstImage-01786YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-dstImage-01788YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-dstImage-01792YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-dstImage-01996YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-dstImage-02542YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-dstImage-04444YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-dstImage-parameterYNoneimplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)dstImage must be a valid VkImage handle
VUID-VkCopyImageInfo2KHR-dstImageLayout-00133YInvalidImageLayoutexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-dstImageLayout-00134YInvalidImageLayoutexplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkCopyImageInfo2KHR-dstImageLayout-01395YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-dstImageLayout-parameterYNoneimplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)dstImageLayout must be a valid VkImageLayout value
VUID-VkCopyImageInfo2KHR-dstOffset-00150YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-dstOffset-00151YCopyImageTypeExtentMismatchexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-dstOffset-00153YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-dstOffset-01784YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-dstSubresource-01697YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-dstSubresource-01699YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-pNext-pNextYNoneimplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)pNext must be NULL
VUID-VkCopyImageInfo2KHR-pRegions-00124YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-pRegions-parameterYNoneimplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)pRegions must be a valid pointer to an array of regionCount valid VkImageCopy2KHR structures
VUID-VkCopyImageInfo2KHR-regionCount-arraylengthYNoneimplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)regionCount must be greater than 0
VUID-VkCopyImageInfo2KHR-sType-sTypeYNoneimplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR
VUID-VkCopyImageInfo2KHR-srcImage-00126YNoneexplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkCopyImageInfo2KHR-srcImage-00127YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-srcImage-00135YNoneexplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)The VkFormat of each of srcImage and dstImage must be compatible, as defined above
VUID-VkCopyImageInfo2KHR-srcImage-00136YNoneexplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)The sample count of srcImage and dstImage must match
VUID-VkCopyImageInfo2KHR-srcImage-00139YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-srcImage-00146YCopyImageTypeExtentMismatchexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-srcImage-01546YCopyInvalidImageMemoryexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-srcImage-01548YNoneexplicitVkCopyImageInfo2KHR(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 compatible, as defined above
VUID-VkCopyImageInfo2KHR-srcImage-01551YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-srcImage-01552YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-srcImage-01553YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-srcImage-01556YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-srcImage-01727YNoneexplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)If srcImage is a blocked image, then for each element of pRegions, all members of srcOffset must be a multiple of the corresponding dimensions of the compressed texel block
VUID-VkCopyImageInfo2KHR-srcImage-01728YNoneexplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)If srcImage is a blocked image, then for each element of pRegions, extent.width must be a multiple of the compressed texel block width or (extent.width + srcOffset.x) must equal the width of the specified srcSubresource of srcImage
VUID-VkCopyImageInfo2KHR-srcImage-01729YNoneexplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)If srcImage is a blocked image, then for each element of pRegions, extent.height must be a multiple of the compressed texel block height or (extent.height + srcOffset.y) must equal the height of the specified srcSubresource of srcImage
VUID-VkCopyImageInfo2KHR-srcImage-01730YNoneexplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)If srcImage is a blocked image, then for each element of pRegions, extent.depth must be a multiple of the compressed texel block depth or (extent.depth + srcOffset.z) must equal the depth of the specified srcSubresource of srcImage
VUID-VkCopyImageInfo2KHR-srcImage-01785YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-srcImage-01787YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-srcImage-01789YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-srcImage-01790YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-srcImage-01791YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-srcImage-01995YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-srcImage-04443YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-srcImage-parameterYNoneimplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)srcImage must be a valid VkImage handle
VUID-VkCopyImageInfo2KHR-srcImageLayout-00128YInvalidImageLayoutexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-srcImageLayout-00129YInvalidImageLayoutexplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkCopyImageInfo2KHR-srcImageLayout-01917YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-srcImageLayout-parameterYNoneimplicitVkCopyImageInfo2KHR(VK_KHR_copy_commands2)srcImageLayout must be a valid VkImageLayout value
VUID-VkCopyImageInfo2KHR-srcOffset-00144YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-srcOffset-00145YCopyImageTypeExtentMismatchexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-srcOffset-00147YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-srcOffset-01783YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-srcSubresource-01696YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageInfo2KHR-srcSubresource-01698YNoneexplicitVkCopyImageInfo2KHR(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-VkCopyImageToBufferInfo2KHR-aspectMask-00211YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)For each element of pRegions, imageSubresource.aspectMask must specify aspects present in {imageparam}
VUID-VkCopyImageToBufferInfo2KHR-aspectMask-01560YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If {imageparam} has a multi-planar format, 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 (with VK_IMAGE_ASPECT_PLANE_2_BIT valid only for image formats with three planes)
VUID-VkCopyImageToBufferInfo2KHR-baseArrayLayer-00213YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)If {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-VkCopyImageToBufferInfo2KHR-bufferImageHeight-00204YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)If {imageparam} is a blocked image, for each element of pRegions, bufferImageHeight must be a multiple of the compressed texel block height
VUID-VkCopyImageToBufferInfo2KHR-bufferOffset-00193YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)+!(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-VkCopyImageToBufferInfo2KHR-bufferOffset-00206YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)If {imageparam} is a blocked image, for each element of pRegions, bufferOffset must be a multiple of the compressed texel block size in bytes
VUID-VkCopyImageToBufferInfo2KHR-bufferOffset-01558YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)+(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-VkCopyImageToBufferInfo2KHR-bufferOffset-01559YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)+(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-VkCopyImageToBufferInfo2KHR-bufferRowLength-00203YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)If {imageparam} is a blocked image, for each element of pRegions, bufferRowLength must be a multiple of the compressed texel block width
VUID-VkCopyImageToBufferInfo2KHR-commandBuffer-04052YNoneexplicitVkCopyImageToBufferInfo2KHR(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 pRegions must be a multiple of 4
VUID-VkCopyImageToBufferInfo2KHR-commonparentYNoneimplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)Both of dstBuffer, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyImageToBufferInfo2KHR-dstBuffer-00191YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkCopyImageToBufferInfo2KHR-dstBuffer-00192NNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyImageToBufferInfo2KHR-dstBuffer-parameterYNoneimplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)dstBuffer must be a valid VkBuffer handle
VUID-VkCopyImageToBufferInfo2KHR-imageExtent-00207YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)If {imageparam} is a blocked image, for each element of pRegions, imageExtent.width must be a multiple of the compressed texel block width or (imageExtent.width + imageOffset.x) must equal the width of the specified imageSubresource of {imageparam}
VUID-VkCopyImageToBufferInfo2KHR-imageExtent-00208YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)If {imageparam} is a blocked image, for each element of pRegions, imageExtent.height must be a multiple of the compressed texel block height or (imageExtent.height + imageOffset.y) must equal the height of the specified imageSubresource of {imageparam}
VUID-VkCopyImageToBufferInfo2KHR-imageExtent-00209YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)If {imageparam} is a blocked image, for each element of pRegions, imageExtent.depth must be a multiple of the compressed texel block depth or (imageExtent.depth + imageOffset.z) must equal the depth of the specified imageSubresource of {imageparam}
VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00197YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)For each element of pRegions
VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00198YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)For each element of pRegions
VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00200YNoneexplicitVkCopyImageToBufferInfo2KHR(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 {imageparam}
VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00205YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)If {imageparam} is a blocked image, for each element of pRegions, all members of imageOffset must be a multiple of the corresponding dimensions of the compressed texel block
VUID-VkCopyImageToBufferInfo2KHR-imageOffset-01794YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)The imageOffset and imageExtent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties
VUID-VkCopyImageToBufferInfo2KHR-imageSubresource-01703YNoneexplicitVkCopyImageToBufferInfo2KHR(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-VkCopyImageToBufferInfo2KHR-imageSubresource-01704YNoneexplicitVkCopyImageToBufferInfo2KHR(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-VkCopyImageToBufferInfo2KHR-pNext-pNextYNoneimplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)pNext must be NULL
VUID-VkCopyImageToBufferInfo2KHR-pRegions-00182YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)+!(VK_QCOM_rotated_copy_commands)The image region specified by each element of pRegions must be a region that is contained within srcImage
VUID-VkCopyImageToBufferInfo2KHR-pRegions-00183YNoneexplicitVkCopyImageToBufferInfo2KHR(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-VkCopyImageToBufferInfo2KHR-pRegions-00184NNoneexplicitVkCopyImageToBufferInfo2KHR(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-VkCopyImageToBufferInfo2KHR-pRegions-04557NNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If the image region specified by each element of pRegions does contain VkCopyCommandTransformInfoQCOM in its pNext chain, the rotated source region as described in Buffer and Image Addressing with Rotation must be contained within srcImage.
VUID-VkCopyImageToBufferInfo2KHR-pRegions-04558NNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then the srcImage must not be a blocked image
VUID-VkCopyImageToBufferInfo2KHR-pRegions-04559NNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then the srcImage must be of type VK_IMAGE_TYPE_2D, and must not be a multi-planar format.
VUID-VkCopyImageToBufferInfo2KHR-pRegions-04566NNoneexplicitVkCopyImageToBufferInfo2KHR(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 srcImage
VUID-VkCopyImageToBufferInfo2KHR-pRegions-04725NNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)If {imageparam} is not a blocked image, for each element of pRegions, bufferRowLength multiplied by the texel block size of {imageparam} must be less than or equal to 231-1
VUID-VkCopyImageToBufferInfo2KHR-pRegions-04726NNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)If {imageparam} is a blocked image, for each element of pRegions, bufferRowLength divided by the compressed texel block width and then multiplied by the texel block size of {imageparam} must be less than or equal to 231-1
VUID-VkCopyImageToBufferInfo2KHR-pRegions-parameterYNoneimplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy2KHR structures
VUID-VkCopyImageToBufferInfo2KHR-regionCount-arraylengthYNoneimplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)regionCount must be greater than 0
VUID-VkCopyImageToBufferInfo2KHR-sType-sTypeYNoneimplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR
VUID-VkCopyImageToBufferInfo2KHR-srcImage-00186YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkCopyImageToBufferInfo2KHR-srcImage-00187YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyImageToBufferInfo2KHR-srcImage-00188YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)srcImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-VkCopyImageToBufferInfo2KHR-srcImage-00199YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)If {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-VkCopyImageToBufferInfo2KHR-srcImage-00201YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)If {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-VkCopyImageToBufferInfo2KHR-srcImage-01998YNoneexplicitVkCopyImageToBufferInfo2KHR(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-VkCopyImageToBufferInfo2KHR-srcImage-02544YNoneexplicitVkCopyImageToBufferInfo2KHR(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-VkCopyImageToBufferInfo2KHR-srcImage-04053YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)If {imageparam} has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4
VUID-VkCopyImageToBufferInfo2KHR-srcImage-parameterYNoneimplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)srcImage must be a valid VkImage handle
VUID-VkCopyImageToBufferInfo2KHR-srcImageLayout-00189YNoneexplicitVkCopyImageToBufferInfo2KHR(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-VkCopyImageToBufferInfo2KHR-srcImageLayout-00190YNoneexplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkCopyImageToBufferInfo2KHR-srcImageLayout-01397YNoneexplicitVkCopyImageToBufferInfo2KHR(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-VkCopyImageToBufferInfo2KHR-srcImageLayout-parameterYNoneimplicitVkCopyImageToBufferInfo2KHR(VK_KHR_copy_commands2)srcImageLayout must be a valid VkImageLayout value
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-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
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-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-02589YDebugUtilsNameTestexplicitVkDebugUtilsObjectNameInfoEXT(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-pNext-pNextYNoneimplicitVkDebugUtilsObjectNameInfoEXT(VK_EXT_debug_utils)pNext must be NULL
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-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-VkDependencyInfoKHR-dependencyFlags-parameterYNoneimplicitVkDependencyInfoKHR(VK_KHR_synchronization2)dependencyFlags must be a valid combination of VkDependencyFlagBits values
VUID-VkDependencyInfoKHR-pBufferMemoryBarriers-parameterYNoneimplicitVkDependencyInfoKHR(VK_KHR_synchronization2)If bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier2KHR structures
VUID-VkDependencyInfoKHR-pImageMemoryBarriers-parameterYNoneimplicitVkDependencyInfoKHR(VK_KHR_synchronization2)If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier2KHR structures
VUID-VkDependencyInfoKHR-pMemoryBarriers-parameterYNoneimplicitVkDependencyInfoKHR(VK_KHR_synchronization2)If memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier2KHR structures
VUID-VkDependencyInfoKHR-pNext-pNextYNoneimplicitVkDependencyInfoKHR(VK_KHR_synchronization2)pNext must be NULL
VUID-VkDependencyInfoKHR-sType-sTypeYNoneimplicitVkDependencyInfoKHR(VK_KHR_synchronization2)sType must be VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR
VUID-VkDescriptorBufferInfo-buffer-02998YNullDescriptorsDisabledexplicitVkDescriptorBufferInfocoreIf 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-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-imageLayout-00344YImageDescriptorLayoutMismatchexplicitVkDescriptorImageInfocoreimageLayout 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-00343YMaint1BindingSliceOf3DImageexplicitVkDescriptorImageInfo(VK_VERSION_1_1,VK_KHR_maintenance1)imageView must not be 2D or 2D array image view created from a 3D image
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-mutableComparisonSamplers-04450YDestroyInstanceHandleLeakexplicitVkDescriptorImageInfo(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-01564YDSAspectBitsErrorsexplicitVkDescriptorImageInfo(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-04607NNoneexplicitVkDescriptorPoolCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VALVE_mutable_descriptor_type)If flags has the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE bit set, then the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT bit must not be set
VUID-VkDescriptorPoolCreateInfo-flags-04609NNoneexplicitVkDescriptorPoolCreateInfo(VK_VALVE_mutable_descriptor_type)If flags has the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE bit set, VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE::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-04608NNoneexplicitVkDescriptorPoolCreateInfo(VK_VALVE_mutable_descriptor_type)If VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE::mutableDescriptorType is not enabled, pPoolSizes must not contain a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_VALVE
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 VkDescriptorPoolInlineUniformBlockCreateInfoEXT or VkMutableDescriptorTypeCreateInfoVALVE
VUID-VkDescriptorPoolCreateInfo-pPoolSizes-04787NNoneexplicitVkDescriptorPoolCreateInfo(VK_VALVE_mutable_descriptor_type)If pPoolSizes contains a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_VALVE, any other VK_DESCRIPTOR_TYPE_MUTABLE_VALVE element in pPoolSizes must not have sets of supported descriptor types which partially overlap
VUID-VkDescriptorPoolCreateInfo-pPoolSizes-parameterYNoneimplicitVkDescriptorPoolCreateInfocorepPoolSizes must be a valid pointer to an array of poolSizeCount valid VkDescriptorPoolSize structures
VUID-VkDescriptorPoolCreateInfo-poolSizeCount-arraylengthYNoneimplicitVkDescriptorPoolCreateInfocorepoolSizeCount must be greater than 0
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-VkDescriptorPoolInlineUniformBlockCreateInfoEXT-sType-sTypeYNoneimplicitVkDescriptorPoolInlineUniformBlockCreateInfoEXT(VK_EXT_inline_uniform_block)sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT
VUID-VkDescriptorPoolSize-descriptorCount-00302YInvalidCreateDescriptorPoolexplicitVkDescriptorPoolSizecoredescriptorCount must be greater than 0
VUID-VkDescriptorPoolSize-type-02218YInlineUniformBlockEXTexplicitVkDescriptorPoolSize(VK_EXT_inline_uniform_block)If type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT 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-04610NNoneexplicitVkDescriptorSetAllocateInfo(VK_VALVE_mutable_descriptor_type)If any element of pSetLayouts was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE bit set, descriptorPool must have been created with the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE flag 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-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_EXT_inline_uniform_block)If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT then descriptorCount must be a multiple of 4
VUID-VkDescriptorSetLayoutBinding-descriptorType-02210YInlineUniformBlockEXTexplicitVkDescriptorSetLayoutBinding(VK_EXT_inline_uniform_block)If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT then descriptorCount must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxInlineUniformBlockSize
VUID-VkDescriptorSetLayoutBinding-descriptorType-04604YInlineUniformBlockEXTFeatureexplicitVkDescriptorSetLayoutBinding(VK_EXT_inline_uniform_block)If the inlineUniformBlock feature is not enabled, descriptorType must not be VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT
VUID-VkDescriptorSetLayoutBinding-descriptorType-04605NNoneexplicitVkDescriptorSetLayoutBinding(VK_VALVE_mutable_descriptor_type)If descriptorType is VK_DESCRIPTOR_TYPE_MUTABLE_VALVE, then pImmutableSamplers must be NULL.
VUID-VkDescriptorSetLayoutBinding-descriptorType-parameterYNoneimplicitVkDescriptorSetLayoutBindingcoredescriptorType must be a valid VkDescriptorType value
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-03570NNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(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_EXT_inline_uniform_block)If VkPhysicalDeviceInlineUniformBlockFeaturesEXT::descriptorBindingInlineUniformBlockUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT 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-03001NNoneexplicitVkDescriptorSetLayoutCreateInfo(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-04593NNoneexplicitVkDescriptorSetLayoutCreateInfo(VK_VALVE_mutable_descriptor_type)If any binding has a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_VALVE, then a VkMutableDescriptorTypeCreateInfoVALVE must be present in the pNext chain
VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-04594NNoneexplicitVkDescriptorSetLayoutCreateInfo(VK_VALVE_mutable_descriptor_type)If a binding has a descriptorType value of VK_DESCRIPTOR_TYPE_MUTABLE_VALVE, 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-00281YInvalidPushDescriptorSetLayout, PushDescriptorSetLayoutWithoutExtensionexplicitVkDescriptorSetLayoutCreateInfo(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_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_EXT
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-04590NNoneexplicitVkDescriptorSetLayoutCreateInfo(VK_KHR_push_descriptor)+(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_VALVE
VUID-VkDescriptorSetLayoutCreateInfo-flags-04591NNoneexplicitVkDescriptorSetLayoutCreateInfo(VK_KHR_push_descriptor)+(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_VALVE
VUID-VkDescriptorSetLayoutCreateInfo-flags-04592NNoneexplicitVkDescriptorSetLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(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_VALVE
VUID-VkDescriptorSetLayoutCreateInfo-flags-04596NNoneexplicitVkDescriptorSetLayoutCreateInfo(VK_VALVE_mutable_descriptor_type)If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE, VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE::mutableDescriptorType must be enabled
VUID-VkDescriptorSetLayoutCreateInfo-flags-parameterYNoneimplicitVkDescriptorSetLayoutCreateInfocoreflags must be a valid combination of VkDescriptorSetLayoutCreateFlagBits values
VUID-VkDescriptorSetLayoutCreateInfo-mutableDescriptorType-04595NNoneexplicitVkDescriptorSetLayoutCreateInfo(VK_VALVE_mutable_descriptor_type)If VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE::mutableDescriptorType is not enabled, pBindings must not contain a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_VALVE
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-pNextYNoneimplicitVkDescriptorSetLayoutCreateInfocoreEach 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 VkMutableDescriptorTypeCreateInfoVALVE
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-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 descriptor count 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-04615NNoneexplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(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_VALVE
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-parameterYNoneimplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)templateType must be a valid VkDescriptorUpdateTemplateType value
VUID-VkDescriptorUpdateTemplateEntry-descriptor-02226NNoneexplicitVkDescriptorUpdateTemplateEntry(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_EXT_inline_uniform_block)If descriptor type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, dstArrayElement must be an integer multiple of 4
VUID-VkDescriptorUpdateTemplateEntry-descriptor-02227NNoneexplicitVkDescriptorUpdateTemplateEntry(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_EXT_inline_uniform_block)If descriptor type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, 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-VkDeviceCreateInfo-None-04896NNoneexplicitVkDeviceCreateInfo(VK_EXT_shader_image_atomic_int64)If sparseImageInt64Atomics is enabled, shaderImageInt64Atomics must be enabled
VUID-VkDeviceCreateInfo-None-04897NNoneexplicitVkDeviceCreateInfo(VK_EXT_shader_atomic_float)If sparseImageFloat32Atomics is enabled, shaderImageFloat32Atomics must be enabled
VUID-VkDeviceCreateInfo-None-04898NNoneexplicitVkDeviceCreateInfo(VK_EXT_shader_atomic_float)If sparseImageFloat32AtomicAdd is enabled, shaderImageFloat32AtomicAdd must be enabled
VUID-VkDeviceCreateInfo-flags-zerobitmaskYNoneimplicitVkDeviceCreateInfocoreflags must be 0
VUID-VkDeviceCreateInfo-fragmentDensityMap-04481YInvalidFragmentShadingRateDeviceFeatureCombinationsexplicitVkDeviceCreateInfo(VK_KHR_fragment_shading_rate,VK_EXT_fragment_density_map)If fragmentDensityMap is enabled, pipelineFragmentShadingRate must not be enabled
VUID-VkDeviceCreateInfo-fragmentDensityMap-04482YInvalidFragmentShadingRateDeviceFeatureCombinationsexplicitVkDeviceCreateInfo(VK_KHR_fragment_shading_rate,VK_EXT_fragment_density_map)If fragmentDensityMap is enabled, primitiveFragmentShadingRate must not be enabled
VUID-VkDeviceCreateInfo-fragmentDensityMap-04483YInvalidFragmentShadingRateDeviceFeatureCombinationsexplicitVkDeviceCreateInfo(VK_KHR_fragment_shading_rate,VK_EXT_fragment_density_map)If fragmentDensityMap is enabled, attachmentFragmentShadingRate 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-02829YFeatures12AndpNextexplicitVkDeviceCreateInfo(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-02830YFeatures12AndpNextexplicitVkDeviceCreateInfo(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-04748NNoneexplicitVkDeviceCreateInfo(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-pNextYDeviceFeature2AndVertexAttributeDivisorExtensionUnenabledimplicitVkDeviceCreateInfocoreEach 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, VkDevicePrivateDataCreateInfoEXT, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceAccelerationStructureFeaturesKHR, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceColorWriteEnableFeaturesEXT, VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImageRobustnessFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8FeaturesEXT, VkPhysicalDeviceInheritedViewportScissorFeaturesNV, VkPhysicalDeviceInlineUniformBlockFeaturesEXT, VkPhysicalDeviceLineRasterizationFeaturesEXT, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiDrawFeaturesEXT, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE, VkPhysicalDevicePerformanceQueryFeaturesKHR, VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT, VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, VkPhysicalDevicePortabilitySubsetFeaturesKHR, VkPhysicalDevicePrivateDataFeaturesEXT, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceProvokingVertexFeaturesEXT, VkPhysicalDeviceRayQueryFeaturesKHR, VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, VkPhysicalDeviceRayTracingPipelineFeaturesKHR, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesEXT, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, VkPhysicalDeviceShaderImageFootprintFeaturesNV, VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceSubgroupSizeControlFeaturesEXT, VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, VkPhysicalDeviceSynchronization2FeaturesKHR, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, VkPhysicalDeviceVulkan11Features, VkPhysicalDeviceVulkan12Features, VkPhysicalDeviceVulkanMemoryModelFeatures, VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, or VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR
VUID-VkDeviceCreateInfo-pProperties-04451YDestroyInstanceHandleLeakexplicitVkDeviceCreateInfo(VK_KHR_portability_subset)If the [VK_KHR_portability_subset] extension is included in pProperties of vkEnumerateDeviceExtensionProperties, ppEnabledExtensions must include "VK_KHR_portability_subset".
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-01840NNoneexplicitVkDeviceCreateInfo(VK_AMD_negative_viewport_height)+(VK_VERSION_1_1)ppEnabledExtensionNames must not contain VK_AMD_negative_viewport_height
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-parameterYNoneimplicitVkDeviceCreateInfocoreIf enabledExtensionCount is not 0, ppEnabledExtensionNames must be a valid pointer to an array of enabledExtensionCount null-terminated UTF-8 strings
VUID-VkDeviceCreateInfo-ppEnabledExtensions-02831YRequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfo(VK_VERSION_1_2)+(VK_KHR_draw_indirect_count)If ppEnabledExtensions contains "VK_KHR_draw_indirect_count" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::drawIndirectCount must be VK_TRUE
VUID-VkDeviceCreateInfo-ppEnabledExtensions-02832YRequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfo(VK_VERSION_1_2)+(VK_KHR_sampler_mirror_clamp_to_edge)If ppEnabledExtensions 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-ppEnabledExtensions-02833YRequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfo(VK_VERSION_1_2)+(VK_EXT_descriptor_indexing)If ppEnabledExtensions contains "VK_EXT_descriptor_indexing" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::descriptorIndexing must be VK_TRUE
VUID-VkDeviceCreateInfo-ppEnabledExtensions-02834YRequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfo(VK_VERSION_1_2)+(VK_EXT_sampler_filter_minmax)If ppEnabledExtensions contains "VK_EXT_sampler_filter_minmax" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::samplerFilterMinmax must be VK_TRUE
VUID-VkDeviceCreateInfo-ppEnabledExtensions-02835YRequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfo(VK_VERSION_1_2)+(VK_EXT_shader_viewport_index_layer)If ppEnabledExtensions 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-ppEnabledExtensions-04476YRequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfo(VK_VERSION_1_2)+(VK_KHR_shader_draw_parameters)If ppEnabledExtensions contains "VK_KHR_shader_draw_parameters" and the pNext chain includes a VkPhysicalDeviceVulkan11Features structure, then VkPhysicalDeviceVulkan11Features::shaderDrawParameters must be VK_TRUE
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-02802YUniqueQueueDeviceCreationBothProtected, 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 is a protected-capable queue and one is not a protected-capable queue
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 VkDevicePrivateDataCreateInfoEXT
VUID-VkDeviceCreateInfo-shadingRateImage-04478YInvalidFragmentShadingRateDeviceFeatureCombinationsexplicitVkDeviceCreateInfo(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image)If shadingRateImage is enabled, pipelineFragmentShadingRate must not be enabled
VUID-VkDeviceCreateInfo-shadingRateImage-04479YInvalidFragmentShadingRateDeviceFeatureCombinationsexplicitVkDeviceCreateInfo(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image)If shadingRateImage is enabled, primitiveFragmentShadingRate must not be enabled
VUID-VkDeviceCreateInfo-shadingRateImage-04480YInvalidFragmentShadingRateDeviceFeatureCombinationsexplicitVkDeviceCreateInfo(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image)If shadingRateImage is enabled, attachmentFragmentShadingRate must not 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-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-00375NNoneexplicitVkDeviceGroupDeviceCreateInfo(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-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-00083NNoneexplicitVkDeviceGroupSubmitInfo(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-00084NNoneexplicitVkDeviceGroupSubmitInfo(VK_VERSION_1_1,VK_KHR_device_group)signalSemaphoreCount must equal VkSubmitInfo::signalSemaphoreCount
VUID-VkDeviceGroupSubmitInfo-waitSemaphoreCount-00082NNoneexplicitVkDeviceGroupSubmitInfo(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-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-VkDevicePrivateDataCreateInfoEXT-sType-sTypeYNoneimplicitVkDevicePrivateDataCreateInfoEXT(VK_EXT_private_data)sType must be VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT
VUID-VkDeviceQueueCreateInfo-flags-02861YInvalidGetDeviceQueueexplicitVkDeviceQueueCreateInfo(VK_VERSION_1_1)If the protected memory feature is not enabled, the VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT bit of flags must not be set
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 VkDeviceQueueGlobalPriorityCreateInfoEXT
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-00381YNoneexplicitVkDeviceQueueCreateInfocorequeueFamilyIndex 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-VkDeviceQueueGlobalPriorityCreateInfoEXT-globalPriority-parameterYNoneimplicitVkDeviceQueueGlobalPriorityCreateInfoEXT(VK_EXT_global_priority)globalPriority must be a valid VkQueueGlobalPriorityEXT value
VUID-VkDeviceQueueGlobalPriorityCreateInfoEXT-sType-sTypeYNoneimplicitVkDeviceQueueGlobalPriorityCreateInfoEXT(VK_EXT_global_priority)sType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT
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 the number of queues created for the specified queue family index and VkDeviceQueueCreateFlags member flags equal to this flags value when device was created, via the queueCount member of the VkDeviceQueueCreateInfo structure
VUID-VkDeviceQueueInfo2-sType-sTypeYNoneimplicitVkDeviceQueueInfo2(VK_VERSION_1_1)sType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2
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-00417NNoneexplicitVkDispatchIndirectCommandcorex must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]
VUID-VkDispatchIndirectCommand-y-00418NNoneexplicitVkDispatchIndirectCommandcorey must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]
VUID-VkDispatchIndirectCommand-z-00419NNoneexplicitVkDispatchIndirectCommandcorez 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-01257NNoneexplicitVkDisplayPresentInfoKHR(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-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-00554NNoneexplicitVkDrawIndexedIndirectCommandcoreIf 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-00501NNoneexplicitVkDrawIndirectCommandcoreIf the drawIndirectFirstInstance feature is not enabled, firstInstance must be 0
VUID-VkDrawMeshTasksIndirectCommandNV-taskCount-02175NNoneexplicitVkDrawMeshTasksIndirectCommandNV(VK_NV_mesh_shader)taskCount must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxDrawMeshTasksCount
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-pNextYNoneimplicitVkEventCreateInfocorepNext must be NULL
VUID-VkEventCreateInfo-sType-sTypeYNoneimplicitVkEventCreateInfocoresType must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
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, 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, 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-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-01453NNoneexplicitVkFenceGetFdInfoKHR(VK_KHR_external_fence_fd)handleType must have been included in VkExportFenceCreateInfo::handleTypes when fence's current payload was created
VUID-VkFenceGetFdInfoKHR-handleType-01454NNoneexplicitVkFenceGetFdInfoKHR(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-01456NNoneexplicitVkFenceGetFdInfoKHR(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-01448NNoneexplicitVkFenceGetWin32HandleInfoKHR(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-01452NNoneexplicitVkFenceGetWin32HandleInfoKHR(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 VkDrmFormatModifierPropertiesListEXT, VkVideoProfileKHR, or VkVideoProfilesKHR
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-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-pNextNNoneimplicitVkFramebufferAttachmentImageInfo(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 imageless framebuffer 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 an instance of VkFramebufferAttachmentsCreateInfo
VUID-VkFramebufferCreateInfo-flags-03191YImagelessFramebufferCreationTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the attachmentImageInfoCount member of an instance of VkFramebufferAttachmentsCreateInfo 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 an instance of VkFramebufferAttachmentsCreateInfo 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::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::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 an instance of VkFramebufferAttachmentsCreateInfo 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 an instance of VkFramebufferAttachmentsCreateInfo 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 an instance of VkFramebufferAttachmentsCreateInfo 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 an instance of VkFramebufferAttachmentsCreateInfo 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 an instance of VkFramebufferAttachmentsCreateInfo 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 VkPhysicalDeviceLimits::maxFramebufferHeight
VUID-VkFramebufferCreateInfo-layers-00889YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocorelayers must be greater than 0
VUID-VkFramebufferCreateInfo-layers-00890YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocorelayers must be less than or equal to VkPhysicalDeviceLimits::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 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-00880YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocoreIf 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-02744NNoneexplicitVkFramebufferCreateInfo(VK_EXT_fragment_density_map)+!(VK_VERSION_1_1,VK_KHR_multiview)An 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 non-subsample image 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-02746NNoneexplicitVkFramebufferCreateInfo(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-02747NNoneexplicitVkFramebufferCreateInfo(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-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-width-00885YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocorewidth must be greater than 0
VUID-VkFramebufferCreateInfo-width-00886YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocorewidth must be less than or equal to VkPhysicalDeviceLimits::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-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-02439YValidateGeometryNVexplicitVkGeometryAABBNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)offset must be less than the size of aabbData
VUID-VkGeometryAABBNV-offset-02440YValidateGeometryNVexplicitVkGeometryAABBNV(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-02441YValidateGeometryNVexplicitVkGeometryAABBNV(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-03503YValidateGeometryNVexplicitVkGeometryNV(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-parameterYValidateGeometryNVimplicitVkGeometryNV(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-02436YValidateGeometryNVexplicitVkGeometryTrianglesNV(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-02434YValidateGeometryNVexplicitVkGeometryTrianglesNV(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-02431YValidateGeometryNVexplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)indexOffset must be less than the size of indexData
VUID-VkGeometryTrianglesNV-indexOffset-02432YValidateGeometryNVexplicitVkGeometryTrianglesNV(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-02437YValidateGeometryNVexplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)transformOffset must be less than the size of transformData
VUID-VkGeometryTrianglesNV-transformOffset-02438YValidateGeometryNVexplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)transformOffset must be a multiple of 16
VUID-VkGeometryTrianglesNV-vertexData-parameterYValidateGeometryNVimplicitVkGeometryTrianglesNV(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-02430YValidateGeometryNVexplicitVkGeometryTrianglesNV(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-02428YValidateGeometryNVexplicitVkGeometryTrianglesNV(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)vertexOffset must be less than the size of vertexData
VUID-VkGeometryTrianglesNV-vertexOffset-02429YValidateGeometryNVexplicitVkGeometryTrianglesNV(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-None-02322NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_transform_feedback)+(VK_NV_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 pre-rasterization shader state or 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 pre-rasterization shader state or 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 vertex processing shader stage and any relevant state must adhere to the pipeline linking rules described in the Shader Interfaces chapter
VUID-VkGraphicsPipelineCreateInfo-None-04893NNoneexplicitVkGraphicsPipelineCreateInfocoreThe pipeline must be created with a complete set of state
VUID-VkGraphicsPipelineCreateInfo-attachmentCount-00746YNumBlendAttachMismatchexplicitVkGraphicsPipelineCreateInfocoreIf 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-blendEnable-04717YBlendingOnFormatWithoutBlendingSupportexplicitVkGraphicsPipelineCreateInfocoreIf 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-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-coverageReductionMode-02722YFramebufferMixedSamplesCoverageReductionexplicitVkGraphicsPipelineCreateInfo(VK_NV_coverage_reduction_mode)If the pipeline is being created with fragment shader 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-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 VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::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)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-04947NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NV_ray_tracing_motion_blur)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
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 pre-rasterization shader state or 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 vertex processing stage is a geometry shader, and that geometry shader uses the GeometryStreams capability, then VkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreams feature must be enabled
VUID-VkGraphicsPipelineCreateInfo-layout-00756YSubpassInputNotBoundDescriptorSet, DrawWithoutUpdatePushConstants, CreatePipelineCheckShaderPushConstantNotDeclared, CreatePipelinePushConstantsNotInLayoutexplicitVkGraphicsPipelineCreateInfocorelayout 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-parameterYNoneimplicitVkGraphicsPipelineCreateInfocorelayout must be a valid VkPipelineLayout handle
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, 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-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 pre-rasterization shader state or 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 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, 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 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, 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 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, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR
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_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_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 wide lines 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 depth bias clamping 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)If the pipeline is being created with fragment shader 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)If the pipeline is being created with fragment shader 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)If the pipeline is being created with fragment shader 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_EXT_extended_dynamic_state)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_EXT, VK_DYNAMIC_STATE_FRONT_FACE_EXT, VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT, VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT, VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT, VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT, VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT, VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT, VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT, VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT, or VK_DYNAMIC_STATE_STENCIL_OP_EXT
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379YValidateExtendedDynamicStateEnabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state)If the pipeline is being created with pre-rasterization shader state, and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT is included in the pDynamicStates array then viewportCount must be zero
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380YValidateExtendedDynamicStateEnabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state)If the pipeline is being created with pre-rasterization shader state, and VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT 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_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_EXT, the pViewports member of pViewportState must be a valid pointer to an array of pViewportState->viewportCount valid VkViewport structures
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04131NNoneexplicitVkGraphicsPipelineCreateInfo(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_EXT, the pScissors member of pViewportState must be a valid pointer to an array of pViewportState->scissorCount VkRect2D structures
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132YValidateExtendedDynamicStateEnabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state)If the pipeline is being created with pre-rasterization shader state, and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT is included in the pDynamicStates array then VK_DYNAMIC_STATE_VIEWPORT must not be present
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133YValidateExtendedDynamicStateEnabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_extended_dynamic_state)If the pipeline is being created with pre-rasterization shader state, and VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT is included in the pDynamicStates array then VK_DYNAMIC_STATE_SCISSOR must not be present
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04800NNoneexplicitVkGraphicsPipelineCreateInfo(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_EXT_extended_dynamic_state2)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_EXT, VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT, or VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04869YValidateExtendedDynamicState2LogicOpDisabledexplicitVkGraphicsPipelineCreateInfo(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_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-pNext-pNextYUsePnextOnlyStructWithoutExtensionEnabledimplicitVkGraphicsPipelineCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkGraphicsPipelineShaderGroupsCreateInfoNV, VkPipelineCompilerControlCreateInfoAMD, VkPipelineCreationFeedbackCreateInfoEXT, VkPipelineDiscardRectangleStateCreateInfoEXT, VkPipelineFragmentShadingRateEnumStateCreateInfoNV, VkPipelineFragmentShadingRateStateCreateInfoKHR, or VkPipelineRepresentativeFragmentTestStateCreateInfoNV
VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-parameterYNoneimplicitVkGraphicsPipelineCreateInfocorepRasterizationState 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 that specifies 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 that specifies 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 that specifies 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 that specifies 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 that specifies 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 that specifies 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-00741NNoneexplicitVkGraphicsPipelineCreateInfocoreIf 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-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-02095YMeshShaderNVexplicitVkGraphicsPipelineCreateInfo(VK_NV_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_NV or VK_SHADER_STAGE_MESH_BIT_NV) 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-02097YMeshShaderNVexplicitVkGraphicsPipelineCreateInfo!(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-02098YMeshShaderNVexplicitVkGraphicsPipelineCreateInfocoreIf 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 vertex processing stage
VUID-VkGraphicsPipelineCreateInfo-pStages-parameterYNoneimplicitVkGraphicsPipelineCreateInfocorepStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures
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_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_EXT dynamic state enabled, pViewportState must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878YPipelineCreationCacheControlexplicitVkGraphicsPipelineCreateInfo(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_EXT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503YInvalidPrimitiveFragmentShadingRateWriteMultiViewportLimitexplicitVkGraphicsPipelineCreateInfo(VK_KHR_fragment_shading_rate)+(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_EXT 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 shader state, pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00752YNoneexplicitVkGraphicsPipelineCreateInfocoreIf 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-rasterizerDiscardEnable-00753YPipelineRenderpassCompatibilityexplicitVkGraphicsPipelineCreateInfocoreIf 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-rasterizerDiscardEnable-04493NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with fragment output interface state, pColorBlendState->attachmentCount must be greater than the index of all color attachments that are not VK_ATTACHMENT_UNUSED for the subpass index in renderPass
VUID-VkGraphicsPipelineCreateInfo-renderPass-00760NNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If the pipeline is being created with pre-rasterization shader state, and the renderPass has multiview enabled and subpass has more than one bit set in the view mask and multiviewTessellationShader is not enabled, then pStages must not include tessellation shaders
VUID-VkGraphicsPipelineCreateInfo-renderPass-00761NNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If the pipeline is being created with pre-rasterization shader state, and the renderPass has multiview enabled and subpass has more than one bit set in the view mask and multiviewGeometryShader is not enabled, then pStages must not include a geometry shader
VUID-VkGraphicsPipelineCreateInfo-renderPass-00762NNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If the pipeline is being created with pre-rasterization shader state, and the renderPass has multiview enabled and subpass has more than one bit set in the view mask, shaders in the pipeline must not write to the Layer built-in output
VUID-VkGraphicsPipelineCreateInfo-renderPass-00763NNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If the pipeline is being created with pre-rasterization shader state, and the renderPass has multiview enabled, then all shaders must not include variables decorated with the Layer built-in decoration in their interfaces
VUID-VkGraphicsPipelineCreateInfo-renderPass-parameterYNoneimplicitVkGraphicsPipelineCreateInfocorerenderPass must be a valid VkRenderPass handle
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-00726YCreatePipelineDuplicateStageexplicitVkGraphicsPipelineCreateInfocoreThe stage member of each element of pStages must be unique
VUID-VkGraphicsPipelineCreateInfo-stage-00727YInvalidPipelineCreateStateexplicitVkGraphicsPipelineCreateInfo!(VK_NV_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-00728YNoneexplicitVkGraphicsPipelineCreateInfocoreThe stage member of each element of pStages must not be VK_SHADER_STAGE_COMPUTE_BIT
VUID-VkGraphicsPipelineCreateInfo-stage-02096YMeshShaderNVexplicitVkGraphicsPipelineCreateInfo(VK_NV_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_NV
VUID-VkGraphicsPipelineCreateInfo-stageCount-arraylengthYNoneimplicitVkGraphicsPipelineCreateInfocorestageCount 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-00757YNumSamplesMismatch, FramebufferMixedSamplesNV, FramebufferMixedSamples, InvalidSampleLocationsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with fragment shader state, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions 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-subpass-00758NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with fragment shader 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-00759YNoneexplicitVkGraphicsPipelineCreateInfocoresubpass must be a valid subpass within renderPass
VUID-VkGraphicsPipelineCreateInfo-subpass-01411YFramebufferMixedSamplesNVexplicitVkGraphicsPipelineCreateInfo(VK_NV_framebuffer_mixed_samples)If the pipeline is being created with fragment shader 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 shader 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 shader 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-subpass-04890NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with fragment shader state, and subpass uses a depth/stencil attachment in renderPass with a read-only layout for the depth aspect in the VkAttachmentReference defined by subpass, the depthWriteEnable member of pDepthStencilState must be VK_FALSE
VUID-VkGraphicsPipelineCreateInfo-subpass-04891NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with fragment shader state, and subpass uses a depth/stencil attachment in renderPass with a read-only layout for the stencil aspect in the VkAttachmentReference defined by subpass, the failOp, passOp and depthFailOp members of each of the front and back members of pDepthStencilState must be VK_STENCIL_OP_KEEP
VUID-VkGraphicsPipelineCreateInfo-topology-00737YInvalidTopology, 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-VkGraphicsPipelineShaderGroupsCreateInfoNV-deviceGeneratedCommands-02887NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNV(VK_NV_device_generated_commands)The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::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-groupCount-arraylengthYNoneimplicitVkGraphicsPipelineShaderGroupsCreateInfoNV(VK_NV_device_generated_commands)groupCount must be greater than 0
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)All elements of pGroups must use the same shader stage combinations
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02884NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNV(VK_NV_device_generated_commands)+(VK_NV_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)Mesh and regular primitive shading stages cannot be mixed across pGroups
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-parameterYNoneimplicitVkGraphicsPipelineShaderGroupsCreateInfoNV(VK_NV_device_generated_commands)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-VkImageBlit2KHR-aspectMask-00238YNoneexplicitVkImageBlit2KHR(VK_KHR_copy_commands2)The aspectMask member of srcSubresource and dstSubresource must match
VUID-VkImageBlit2KHR-dstSubresource-parameterNNoneimplicitVkImageBlit2KHR(VK_KHR_copy_commands2)dstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageBlit2KHR-layerCount-00239YNoneexplicitVkImageBlit2KHR(VK_KHR_copy_commands2)The layerCount member of srcSubresource and dstSubresource must match
VUID-VkImageBlit2KHR-pNext-pNextYNoneimplicitVkImageBlit2KHR(VK_KHR_copy_commands2)pNext must be NULL or a pointer to a valid instance of VkCopyCommandTransformInfoQCOM
VUID-VkImageBlit2KHR-sType-sTypeYNoneimplicitVkImageBlit2KHR(VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR
VUID-VkImageBlit2KHR-sType-uniqueYNoneimplicitVkImageBlit2KHR(VK_KHR_copy_commands2)The sType value of each struct in the pNext chain must be unique
VUID-VkImageBlit2KHR-srcSubresource-parameterNNoneimplicitVkImageBlit2KHR(VK_KHR_copy_commands2)srcSubresource must be a valid VkImageSubresourceLayers structure
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-00140YCopyImageLayerCountMismatch, CopyImageTypeExtentMismatchMaintenance1explicitVkImageCopy(VK_VERSION_1_1,VK_KHR_maintenance1)The number of slices of the extent (for 3D) or layers of the srcSubresource (for non-3D) must match the number of slices of the extent (for 3D) or layers of the dstSubresource (for non-3D)
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-VkImageCopy2KHR-aspectMask-00137YNoneexplicitVkImageCopy2KHR(VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)The aspectMask member of srcSubresource and dstSubresource must match
VUID-VkImageCopy2KHR-dstSubresource-parameterNNoneimplicitVkImageCopy2KHR(VK_KHR_copy_commands2)dstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageCopy2KHR-extent-00140YNoneexplicitVkImageCopy2KHR(VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)The number of slices of the extent (for 3D) or layers of the srcSubresource (for non-3D) must match the number of slices of the extent (for 3D) or layers of the dstSubresource (for non-3D)
VUID-VkImageCopy2KHR-layerCount-00138YNoneexplicitVkImageCopy2KHR(VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_maintenance1)The layerCount member of srcSubresource and dstSubresource must match
VUID-VkImageCopy2KHR-pNext-pNextYNoneimplicitVkImageCopy2KHR(VK_KHR_copy_commands2)pNext must be NULL
VUID-VkImageCopy2KHR-sType-sTypeYNoneimplicitVkImageCopy2KHR(VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR
VUID-VkImageCopy2KHR-srcSubresource-parameterNNoneimplicitVkImageCopy2KHR(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-01925NNoneexplicitVkImageCreateInfocoreIf 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-02253YCreateImageYcbcrFormats, CreateImageMaxLimitsViolationexplicitVkImageCreateInfocoreextent.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 sparse bindings feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT
VUID-VkImageCreateInfo-flags-00987YSparseBindingImageBufferCreateexplicitVkImageCreateInfocoreIf 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 block-compressed image format, an ETC compressed image format, or an ASTC 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-01890YDisabledProtectedMemoryexplicitVkImageCreateInfo(VK_VERSION_1_1)If the protected memory feature is not enabled, flags must not contain VK_IMAGE_CREATE_PROTECTED_BIT
VUID-VkImageCreateInfo-flags-01924YNoneexplicitVkImageCreateInfocoreIf the sparse aliased residency 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-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 multisampled storage images 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-02561YCreateImageYcbcrFormatsexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the image format is one of those listed in Formats requiring sampler Y'CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, then mipLevels must be 1
VUID-VkImageCreateInfo-format-02562YCreateImageYcbcrFormatsexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the image format is one of those listed in Formats requiring sampler Y'CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, samples must be VK_SAMPLE_COUNT_1_BIT
VUID-VkImageCreateInfo-format-02563YCreateImageYcbcrFormatsexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the image format is one of those listed in Formats requiring sampler Y'CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, imageType must be VK_IMAGE_TYPE_2D
VUID-VkImageCreateInfo-format-02564YCreateImageYcbcrFormatsexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_ycbcr_image_arrays)If the image format is one of those listed in Formats requiring sampler Y'CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, arrayLayers must be 1
VUID-VkImageCreateInfo-format-02653YCreateImageYcbcrFormatsexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_ycbcr_image_arrays)If the image format is one of those listed in Formats requiring sampler Y'CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, and the ycbcrImageArrays feature is not enabled, arrayLayers must be 1
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-parameterYNoneimplicitVkImageCreateInfocoreformat must be a valid VkFormat value
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-00954YCreateImageMinLimitsViolation, CreateImageMiscErrorsexplicitVkImageCreateInfocoreIf 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-00956YCreateImageYcbcrFormats, CreateImageMinLimitsViolationexplicitVkImageCreateInfocoreIf 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 sparse residency for 2D images 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 sparse residency for 3D images 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 sparse residency for images with 2 samples 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 sparse residency for images with 4 samples 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 sparse residency for images with 8 samples 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 sparse residency for images with 16 samples 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-04459YDestroyInstanceHandleLeakexplicitVkImageCreateInfo(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-00958YCornerSampledImageNV, CreateImageMaxLimitsViolationexplicitVkImageCreateInfocoremipLevels 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-04460YDestroyInstanceHandleLeakexplicitVkImageCreateInfo(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-pNext-00988NNoneexplicitVkImageCreateInfo(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-01443NNoneexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_external_memory,VK_NV_external_memory)If the pNext chain includes a ifdef::VK_VERSION_1_1,VK_KHR_external_memory[VkExternalMemoryImageCreateInfo]
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-04737YInvalidImageFormatListexplicitVkImageCreateInfo(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 all of the formats in VkImageFormatListCreateInfo::pViewFormats must be compatible with the format as described in the compatibility table
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 VkDedicatedAllocationImageCreateInfoNV, VkExternalFormatANDROID, VkExternalMemoryImageCreateInfo, VkExternalMemoryImageCreateInfoNV, VkImageDrmFormatModifierExplicitCreateInfoEXT, VkImageDrmFormatModifierListCreateInfoEXT, VkImageFormatListCreateInfo, VkImageStencilUsageCreateInfo, VkImageSwapchainCreateInfoKHR, VkVideoProfileKHR, or VkVideoProfilesKHR
VUID-VkImageCreateInfo-physicalDeviceCount-01421NNoneexplicitVkImageCreateInfo(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
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-02258YCreateImageYcbcrFormats, CreateImageMaxLimitsViolationexplicitVkImageCreateInfocoresamples 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-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-01392NNoneexplicitVkImageCreateInfo!(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-01420YNoneexplicitVkImageCreateInfo(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-02084YShadingRateImageNVexplicitVkImageCreateInfo(VK_NV_shading_rate_image)If usage includes VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, tiling must be VK_IMAGE_TILING_OPTIMAL
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 multisampled storage images feature is not enabled, and usage contains VK_IMAGE_USAGE_STORAGE_BIT, samples must be VK_SAMPLE_COUNT_1_BIT
VUID-VkImageCreateInfo-usage-02559YCreateImageMaxLimitsViolationexplicitVkImageCreateInfo(VK_EXT_fragment_density_map)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-02560YCreateImageMaxLimitsViolationexplicitVkImageCreateInfo(VK_EXT_fragment_density_map)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_SRC_BIT_KHR, VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR, then the pNext chain must include a valid VkVideoProfilesKHR structure which includes at least one VkVideoProfileKHR with a decode codec-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 VkVideoProfilesKHR structure which includes at least one VkVideoProfileKHR with a encode codec-operation.
VUID-VkImageCreateInfo-usage-parameterYNoneimplicitVkImageCreateInfocoreusage must be a valid combination of VkImageUsageFlagBits values
VUID-VkImageCreateInfo-usage-requiredbitmaskYNoneimplicitVkImageCreateInfocoreusage must not be 0
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-arrayPitch-02268NNoneexplicitVkImageDrmFormatModifierExplicitCreateInfoEXT(VK_EXT_image_drm_format_modifier)For each element of pPlaneLayouts, arrayPitch must be 0 if VkImageCreateInfo::arrayLayers is 1
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-depthPitch-02269NNoneexplicitVkImageDrmFormatModifierExplicitCreateInfoEXT(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-02267NNoneexplicitVkImageDrmFormatModifierExplicitCreateInfoEXT(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-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, 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-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-01932YNoneexplicitVkImageMemoryBarriercoreIf 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-01197YInvalidBarriers, InvalidImageLayoutexplicitVkImageMemoryBarriercoreIf 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-01210YInvalidBarriers, InvalidImageLayoutexplicitVkImageMemoryBarriercoreIf 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_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_KHR, 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_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_KHR, 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-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-03857YInvalidBarrierQueueFamilyWithMemExt, Sync2InvalidBarrierQueueFamilyexplicitVkImageMemoryBarrier(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-VkImageMemoryBarrier2KHR-dstAccessMask-03900YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03901YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_INDEX_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03902YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03903YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR,
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03904YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03905YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03906YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03907YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03908YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03909YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03910YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03911YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03912YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03913YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03914YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03915YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03916YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_HOST_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03917YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03918YNoneexplicitVkImageMemoryBarrier2KHR(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_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03919YNoneexplicitVkImageMemoryBarrier2KHR(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_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03920YNoneexplicitVkImageMemoryBarrier2KHR(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_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03922YNoneexplicitVkImageMemoryBarrier2KHR(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_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03923YNoneexplicitVkImageMemoryBarrier2KHR(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_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03924YNoneexplicitVkImageMemoryBarrier2KHR(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_KHR
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03925YNoneexplicitVkImageMemoryBarrier2KHR(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_KHR
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03926YNoneexplicitVkImageMemoryBarrier2KHR(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_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03927YNoneexplicitVkImageMemoryBarrier2KHR(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_RAY_TRACING_SHADER_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03928YNoneexplicitVkImageMemoryBarrier2KHR(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_KHR
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-04747YNoneexplicitVkImageMemoryBarrier2KHR(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_KHR, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-04858NNoneexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-dstAccessMask-04859NNoneexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-dstAccessMask-04860NNoneexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-dstAccessMask-04861NNoneexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-dstAccessMask-parameterYNoneimplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)dstAccessMask must be a valid combination of VkAccessFlagBits2KHR values
VUID-VkImageMemoryBarrier2KHR-dstStageMask-03929YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If the geometry shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-dstStageMask-03930YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If the tessellation shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-dstStageMask-03931YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)If the conditional rendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkImageMemoryBarrier2KHR-dstStageMask-03932YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)If the fragment density map feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkImageMemoryBarrier2KHR-dstStageMask-03933YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If the transform feedback feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkImageMemoryBarrier2KHR-dstStageMask-03934YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_NV_mesh_shader)If the mesh shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV
VUID-VkImageMemoryBarrier2KHR-dstStageMask-03935YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_NV_mesh_shader)If the task shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV
VUID-VkImageMemoryBarrier2KHR-dstStageMask-04956YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_NV_shading_rate_image)If the shading rate image feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV
VUID-VkImageMemoryBarrier2KHR-dstStageMask-04957NNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)If the subpass shading feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
VUID-VkImageMemoryBarrier2KHR-dstStageMask-parameterYNoneimplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)dstStageMask must be a valid combination of VkPipelineStageFlagBits2KHR values
VUID-VkImageMemoryBarrier2KHR-image-01207YSync2InvalidBarriersexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-image-01671YSync2InvalidBarriersexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-image-01672YNoneexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-image-01673YNoneexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-image-01932YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkImageMemoryBarrier2KHR-image-02902YNoneexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-image-03319YNoneexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-image-03320YSync2InvalidBarriersexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-image-04069YNoneexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-image-04071YSync2InvalidBarrierQueueFamilyexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-image-04072YSync2InvalidBarrierQueueFamilyexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-image-parameterYNoneimplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)image must be a valid VkImage handle
VUID-VkImageMemoryBarrier2KHR-newLayout-01198YSync2InvalidBarriersexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-newLayout-parameterYNoneimplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)newLayout must be a valid VkImageLayout value
VUID-VkImageMemoryBarrier2KHR-oldLayout-01197YSync2InvalidBarriersexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-oldLayout-01208YSync2InvalidBarriersexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-oldLayout-01209YSync2InvalidBarriersexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-oldLayout-01210YSync2InvalidBarriersexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-oldLayout-01211YSync2InvalidBarriersexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-oldLayout-01212YSync2InvalidBarriersexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-oldLayout-01213YSync2InvalidBarriersexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-oldLayout-01658YSync2InvalidBarriersexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-oldLayout-01659YSync2InvalidBarriersexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-oldLayout-02088YNoneexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-oldLayout-parameterYNoneimplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)oldLayout must be a valid VkImageLayout value
VUID-VkImageMemoryBarrier2KHR-pNext-pNextYNoneimplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)pNext must be NULL or a pointer to a valid instance of VkSampleLocationsInfoEXT
VUID-VkImageMemoryBarrier2KHR-sType-sTypeYNoneimplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)sType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR
VUID-VkImageMemoryBarrier2KHR-sType-uniqueYNoneimplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)The sType value of each struct in the pNext chain must be unique
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03900YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03901YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_INDEX_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03902YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03903YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR,
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03904YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03905YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03906YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03907YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03908YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03909YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03910YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03911YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03912YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03913YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03914YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03915YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03916YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_HOST_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03917YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:srcAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03918YNoneexplicitVkImageMemoryBarrier2KHR(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_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03919YNoneexplicitVkImageMemoryBarrier2KHR(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_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03920YNoneexplicitVkImageMemoryBarrier2KHR(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_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03922YNoneexplicitVkImageMemoryBarrier2KHR(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_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03923YNoneexplicitVkImageMemoryBarrier2KHR(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_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03924YNoneexplicitVkImageMemoryBarrier2KHR(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_KHR
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03925YNoneexplicitVkImageMemoryBarrier2KHR(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_KHR
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03926YNoneexplicitVkImageMemoryBarrier2KHR(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_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03927YNoneexplicitVkImageMemoryBarrier2KHR(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_RAY_TRACING_SHADER_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03928YNoneexplicitVkImageMemoryBarrier2KHR(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_KHR
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-04747YNoneexplicitVkImageMemoryBarrier2KHR(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_KHR, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-04858NNoneexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-srcAccessMask-04859NNoneexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-srcAccessMask-04860NNoneexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-srcAccessMask-04861NNoneexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-srcAccessMask-parameterYNoneimplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)srcAccessMask must be a valid combination of VkAccessFlagBits2KHR values
VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-03938NNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)+(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_KHR, image must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-03939NNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)+(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_KHR, 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-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-04065NNoneexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-04066NNoneexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-04067NNoneexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-04068NNoneexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-04070NNoneexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-srcStageMask-03854NNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If either srcStageMask or dstStageMask includes VK_PIPELINE_STAGE_2_HOST_BIT_KHR, srcQueueFamilyIndex and dstQueueFamilyIndex must be equal
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03855NNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If srcStageMask includes VK_PIPELINE_STAGE_2_HOST_BIT_KHR, 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-VkImageMemoryBarrier2KHR-srcStageMask-03929YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If the geometry shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03930YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)If the tessellation shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03931YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_EXT_conditional_rendering)If the conditional rendering feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03932YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_EXT_fragment_density_map)If the fragment density map feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03933YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_EXT_transform_feedback)If the transform feedback feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03934YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_NV_mesh_shader)If the mesh shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03935YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_NV_mesh_shader)If the task shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV
VUID-VkImageMemoryBarrier2KHR-srcStageMask-04956YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_NV_shading_rate_image)If the shading rate image feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV
VUID-VkImageMemoryBarrier2KHR-srcStageMask-04957NNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading)If the subpass shading feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
VUID-VkImageMemoryBarrier2KHR-srcStageMask-parameterYNoneimplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)srcStageMask must be a valid combination of VkPipelineStageFlagBits2KHR values
VUID-VkImageMemoryBarrier2KHR-subresourceRange-01486YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created
VUID-VkImageMemoryBarrier2KHR-subresourceRange-01488YNoneexplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created
VUID-VkImageMemoryBarrier2KHR-subresourceRange-01724YNoneexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-subresourceRange-01725YNoneexplicitVkImageMemoryBarrier2KHR(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-VkImageMemoryBarrier2KHR-subresourceRange-parameterNNoneimplicitVkImageMemoryBarrier2KHR(VK_KHR_synchronization2)subresourceRange must be a valid VkImageSubresourceRange structure
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-02279NNoneexplicitVkImageMemoryRequirementsInfo2(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-VkImageResolve2KHR-aspectMask-00266YNoneexplicitVkImageResolve2KHR(VK_KHR_copy_commands2)The aspectMask member of srcSubresource and dstSubresource must only contain VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkImageResolve2KHR-dstSubresource-parameterNNoneimplicitVkImageResolve2KHR(VK_KHR_copy_commands2)dstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageResolve2KHR-layerCount-00267YNoneexplicitVkImageResolve2KHR(VK_KHR_copy_commands2)The layerCount member of srcSubresource and dstSubresource must match
VUID-VkImageResolve2KHR-pNext-pNextYNoneimplicitVkImageResolve2KHR(VK_KHR_copy_commands2)pNext must be NULL
VUID-VkImageResolve2KHR-sType-sTypeYNoneimplicitVkImageResolve2KHR(VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR
VUID-VkImageResolve2KHR-srcSubresource-parameterNNoneimplicitVkImageResolve2KHR(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-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_i_BIT_EXT for any index i
VUID-VkImageSubresourceLayers-aspectMask-parameterYNoneimplicitVkImageSubresourceLayerscoreaspectMask must be a valid combination of VkImageAspectFlagBits values
VUID-VkImageSubresourceLayers-aspectMask-requiredbitmaskYNoneimplicitVkImageSubresourceLayerscoreaspectMask must not be 0
VUID-VkImageSubresourceLayers-layerCount-01700YMiscBlitImageTestsexplicitVkImageSubresourceLayerscorelayerCount must be greater than 0
VUID-VkImageSubresourceRange-aspectMask-01670NNoneexplicitVkImageSubresourceRange(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_i_BIT_EXT for any index i
VUID-VkImageSubresourceRange-aspectMask-parameterYNoneimplicitVkImageSubresourceRangecoreaspectMask must be a valid combination of VkImageAspectFlagBits values
VUID-VkImageSubresourceRange-aspectMask-requiredbitmaskYNoneimplicitVkImageSubresourceRangecoreaspectMask must not be 0
VUID-VkImageSubresourceRange-layerCount-01721YImageBarrierWithBadRange, ClearDepthStencilWithBadRange, ClearColorImageWithBadRange, CreateImageViewInvalidSubresourceRangeexplicitVkImageSubresourceRangecoreIf layerCount is not VK_REMAINING_ARRAY_LAYERS, it must be greater than 0
VUID-VkImageSubresourceRange-levelCount-01720YImageBarrierWithBadRange, ClearDepthStencilWithBadRange, ClearColorImageWithBadRange, CreateImageViewInvalidSubresourceRangeexplicitVkImageSubresourceRangecoreIf 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-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 dynamic fragment density map 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 deferred fragment density map 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-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-04724NNoneexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If format is one of those listed in Formats requiring sampler Y'CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, 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-01003YCreateImageViewBreaksParameterCompatibilityRequirements, ShadingRateImageNVexplicitVkImageViewCreateInfocoreIf 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-01005YCreateImageViewBreaksParameterCompatibilityRequirementsexplicitVkImageViewCreateInfo(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 or VK_IMAGE_VIEW_TYPE_2D_ARRAY
VUID-VkImageViewCreateInfo-image-01018YCreateImageViewFormatFeatureMismatch, InvalidImageFormatList, CreateImageViewDifferentClass, CreateImageViewIncompatibleDepthFormat, CreateImageViewIncompatibleFormatexplicitVkImageViewCreateInfo!(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-01020YNoneexplicitVkImageViewCreateInfocoreIf 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)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-01583NNoneexplicitVkImageViewCreateInfo(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-01584NNoneexplicitVkImageViewCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)If image was created with the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, the levelCount and layerCount members of subresourceRange must both be 1
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, CreateImageViewDifferentClass, CreateImageViewIncompatibleFormatexplicitVkImageViewCreateInfo(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, CreateImageViewDifferentClass, CreateImageViewIncompatibleFormatexplicitVkImageViewCreateInfo!(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, CreateImageViewDifferentClass, CreateImageViewIncompatibleFormatexplicitVkImageViewCreateInfo(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-04739NNoneexplicitVkImageViewCreateInfo(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, viewType must not be VK_IMAGE_VIEW_TYPE_3D
VUID-VkImageViewCreateInfo-image-04817NNoneexplicitVkImageViewCreateInfo(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-04818NNoneexplicitVkImageViewCreateInfo(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-parameterYNoneimplicitVkImageViewCreateInfocoreimage must be a valid VkImage handle
VUID-VkImageViewCreateInfo-imageViewFormatReinterpretation-04466YDestroyInstanceHandleLeakexplicitVkImageViewCreateInfo(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-04465YDestroyInstanceHandleLeakexplicitVkImageViewCreateInfo(VK_KHR_portability_subset)If the [VK_KHR_portability_subset] extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageViewFormatSwizzle is VK_FALSE, all elements of components must be VK_COMPONENT_SWIZZLE_IDENTITY.
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 instance 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-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 VkImageViewASTCDecodeModeEXT, VkImageViewUsageCreateInfo, VkSamplerYcbcrConversionInfo, VkVideoProfileKHR, or VkVideoProfilesKHR
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
VUID-VkImageViewCreateInfo-subResourceRange-01021YCreateImageViewBreaksParameterCompatibilityRequirementsexplicitVkImageViewCreateInfocoresubresourceRange and viewType must be compatible with the image, as described in the 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)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-01719YCreateImageViewInvalidSubresourceRangeexplicitVkImageViewCreateInfo!(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-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-viewType-01004YCreateImageViewDifferentClassexplicitVkImageViewCreateInfocoreIf the image cubemap arrays 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-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-01464NNoneexplicitVkImportFenceFdInfoKHR(VK_KHR_external_fence_fd)handleType must be a value included in the Handle Types Supported by VkImportFenceFdInfoKHR table
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-01462NNoneexplicitVkImportFenceWin32HandleInfoKHR(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-01457NNoneexplicitVkImportFenceWin32HandleInfoKHR(VK_KHR_external_fence_win32)handleType must be a value included in the Handle Types Supported by VkImportFenceWin32HandleInfoKHR table
VUID-VkImportFenceWin32HandleInfoKHR-handleType-01459NNoneexplicitVkImportFenceWin32HandleInfoKHR(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-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
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-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-03323NNoneexplicitVkImportSemaphoreFdInfoKHR(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-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-03322NNoneexplicitVkImportSemaphoreWin32HandleInfoKHR(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-01469NNoneexplicitVkImportSemaphoreWin32HandleInfoKHR(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-01140NNoneexplicitVkImportSemaphoreWin32HandleInfoKHR(VK_KHR_external_semaphore_win32)handleType must be a value included in the Handle Types Supported by VkImportSemaphoreWin32HandleInfoKHR table
VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01466NNoneexplicitVkImportSemaphoreWin32HandleInfoKHR(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-04768NNoneexplicitVkImportSemaphoreZirconHandleInfoFUCHSIA(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 prior 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)
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-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_i_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-zerobitmaskYInstanceFlagsimplicitVkInstanceCreateInfocoreflags must be 0
VUID-VkInstanceCreateInfo-pApplicationInfo-parameterYNoneimplicitVkInstanceCreateInfocoreIf pApplicationInfo is not NULL, pApplicationInfo must be a valid pointer to a valid VkApplicationInfo structure
VUID-VkInstanceCreateInfo-pNext-04925NNoneexplicitVkInstanceCreateInfo(VK_EXT_debug_report,VK_EXT_debug_utils)+(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_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-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, 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
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 that 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-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_KHR, 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_KHR or VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR, 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-02383YAndroidHardwareBufferBindBufferMemory, AndroidHardwareBufferMemoryAllocationexplicitVkMemoryAllocateInfo(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-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-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-01872YDisabledProtectedMemoryexplicitVkMemoryAllocateInfo(VK_VERSION_1_1)If the protected memory feature is not enabled, the VkMemoryAllocateInfo::memoryTypeIndex must not indicate a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT
VUID-VkMemoryAllocateInfo-memoryTypeIndex-02385YAndroidHardwareBufferMemoryAllocationexplicitVkMemoryAllocateInfo(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-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 ifdef::VK_KHR_dedicated_allocation[VkMemoryDedicatedAllocateInfo]
VUID-VkMemoryAllocateInfo-pNext-00640NNoneexplicitVkMemoryAllocateInfo(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-01874YAndroidHardwareBufferMemoryAllocationexplicitVkMemoryAllocateInfo(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-02384YAndroidHardwareBufferMemoryAllocation, 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-02386YAndroidHardwareBufferMemoryAllocationexplicitVkMemoryAllocateInfo(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 or AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE
VUID-VkMemoryAllocateInfo-pNext-02387YAndroidHardwareBufferMemoryAllocationexplicitVkMemoryAllocateInfo(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-02388YAndroidHardwareBufferMemoryAllocationexplicitVkMemoryAllocateInfo(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-02389YAndroidHardwareBufferMemoryAllocationexplicitVkMemoryAllocateInfo(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-02390YAndroidHardwareBufferMemoryAllocationexplicitVkMemoryAllocateInfo(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-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, VkImportAndroidHardwareBufferInfoANDROID, VkImportMemoryFdInfoKHR, VkImportMemoryHostPointerInfoEXT, VkImportMemoryWin32HandleInfoKHR, VkImportMemoryWin32HandleInfoNV, VkImportMemoryZirconHandleInfoFUCHSIA, 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
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-VkMemoryBarrier2KHR-dstAccessMask-03900YNoneexplicitVkMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkMemoryBarrier2KHR-dstAccessMask-03901YNoneexplicitVkMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_INDEX_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkMemoryBarrier2KHR-dstAccessMask-03902YNoneexplicitVkMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkMemoryBarrier2KHR-dstAccessMask-03903YNoneexplicitVkMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR,
VUID-VkMemoryBarrier2KHR-dstAccessMask-03904YNoneexplicitVkMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2KHR-dstAccessMask-03905YNoneexplicitVkMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2KHR-dstAccessMask-03906YNoneexplicitVkMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2KHR-dstAccessMask-03907YNoneexplicitVkMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2KHR-dstAccessMask-03908YNoneexplicitVkMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2KHR-dstAccessMask-03909YNoneexplicitVkMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages
VUID-VkMemoryBarrier2KHR-dstAccessMask-03910YNoneexplicitVkMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkMemoryBarrier2KHR-dstAccessMask-03911YNoneexplicitVkMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkMemoryBarrier2KHR-dstAccessMask-03912YNoneexplicitVkMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkMemoryBarrier2KHR-dstAccessMask-03913YNoneexplicitVkMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkMemoryBarrier2KHR-dstAccessMask-03914YNoneexplicitVkMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
VUID-VkMemoryBarrier2KHR-dstAccessMask-03915YNoneexplicitVkMemoryBarrier2KHR(VK_KHR_synchronization2)If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_BLIT_BIT_KH