## Valid Usage Database (1.3.216)

VUID NAMECHECKEDSPIRV-TOOLTESTTYPEAPI/STRUCTEXTENSIONVUID TEXT
VUID-BaryCoordKHR-BaryCoordKHR-04155NNoneexplicitBaryCoordKHR(VK_NV_fragment_shader_barycentric,VK_KHR_fragment_shader_barycentric)The variable decorated with BaryCoordKHR must be declared using the Input {StorageClass}
VUID-BaryCoordKHR-BaryCoordKHR-04156NNoneexplicitBaryCoordKHR(VK_NV_fragment_shader_barycentric,VK_KHR_fragment_shader_barycentric)The variable decorated with BaryCoordKHR must be declared as a three-component vector of 32-bit floating-point values
VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04157NNoneexplicitBaryCoordNoPerspAMD(VK_AMD_shader_explicit_vertex_parameter)The BaryCoordNoPerspAMD decoration must be used only within the Fragment {ExecutionModel}
VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04158NNoneexplicitBaryCoordNoPerspAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordNoPerspAMD must be declared using the Input {StorageClass}
VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04159NNoneexplicitBaryCoordNoPerspAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordNoPerspAMD must be declared as a two-component vector of 32-bit floating-point values
VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04163NNoneexplicitBaryCoordNoPerspCentroidAMD(VK_AMD_shader_explicit_vertex_parameter)The BaryCoordNoPerspCentroidAMD decoration must be used only within the Fragment {ExecutionModel}
VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04164NNoneexplicitBaryCoordNoPerspCentroidAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordNoPerspCentroidAMD must be declared using the Input {StorageClass}
VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04165NNoneexplicitBaryCoordNoPerspCentroidAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordNoPerspCentroidAMD must be declared as a three-component vector of 32-bit floating-point values
VUID-BaryCoordNoPerspKHR-BaryCoordNoPerspKHR-04161NNoneexplicitBaryCoordNoPerspKHR(VK_NV_fragment_shader_barycentric,VK_KHR_fragment_shader_barycentric)The variable decorated with BaryCoordNoPerspKHR must be declared using the Input {StorageClass}
VUID-BaryCoordNoPerspKHR-BaryCoordNoPerspKHR-04162NNoneexplicitBaryCoordNoPerspKHR(VK_NV_fragment_shader_barycentric,VK_KHR_fragment_shader_barycentric)The variable decorated with BaryCoordNoPerspKHR must be declared as a three-component vector of 32-bit floating-point values
VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04166NNoneexplicitBaryCoordNoPerspSampleAMD(VK_AMD_shader_explicit_vertex_parameter)The BaryCoordNoPerspSampleAMD decoration must be used only within the Fragment {ExecutionModel}
VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04167NNoneexplicitBaryCoordNoPerspSampleAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordNoPerspSampleAMD must be declared using the Input {StorageClass}
VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04168NNoneexplicitBaryCoordNoPerspSampleAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordNoPerspSampleAMD must be declared as a two-component vector of 32-bit floating-point values
VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04169NNoneexplicitBaryCoordPullModelAMD(VK_AMD_shader_explicit_vertex_parameter)The BaryCoordPullModelAMD decoration must be used only within the Fragment {ExecutionModel}
VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04170NNoneexplicitBaryCoordPullModelAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordPullModelAMD must be declared using the Input {StorageClass}
VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04171NNoneexplicitBaryCoordPullModelAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordPullModelAMD must be declared as a three-component vector of 32-bit floating-point values
VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04172NNoneexplicitBaryCoordSmoothAMD(VK_AMD_shader_explicit_vertex_parameter)The BaryCoordSmoothAMD decoration must be used only within the Fragment {ExecutionModel}
VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04173NNoneexplicitBaryCoordSmoothAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordSmoothAMD must be declared using the Input {StorageClass}
VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04174NNoneexplicitBaryCoordSmoothAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordSmoothAMD must be declared as a two-component vector of 32-bit floating-point values
VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04175NNoneexplicitBaryCoordSmoothCentroidAMD(VK_AMD_shader_explicit_vertex_parameter)The BaryCoordSmoothCentroidAMD decoration must be used only within the Fragment {ExecutionModel}
VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04176NNoneexplicitBaryCoordSmoothCentroidAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordSmoothCentroidAMD must be declared using the Input {StorageClass}
VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04177NNoneexplicitBaryCoordSmoothCentroidAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordSmoothCentroidAMD must be declared as a two-component vector of 32-bit floating-point values
VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04178NNoneexplicitBaryCoordSmoothSampleAMD(VK_AMD_shader_explicit_vertex_parameter)The BaryCoordSmoothSampleAMD decoration must be used only within the Fragment {ExecutionModel}
VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04179NNoneexplicitBaryCoordSmoothSampleAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordSmoothSampleAMD must be declared using the Input {StorageClass}
VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04180NNoneexplicitBaryCoordSmoothSampleAMD(VK_AMD_shader_explicit_vertex_parameter)The variable decorated with BaryCoordSmoothSampleAMD must be declared as a two-component vector of 32-bit floating-point values
VUID-BaseInstance-BaseInstance-04181NNoneexplicitBaseInstance(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)The BaseInstance decoration must be used only within the Vertex {ExecutionModel}
VUID-BaseInstance-BaseInstance-04182NNoneexplicitBaseInstance(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)The variable decorated with BaseInstance must be declared using the Input {StorageClass}
VUID-BaseInstance-BaseInstance-04183NNoneexplicitBaseInstance(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)The variable decorated with BaseInstance must be declared as a scalar 32-bit integer value
VUID-BaseVertex-BaseVertex-04184NNoneexplicitBaseVertex(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)The BaseVertex decoration must be used only within the Vertex {ExecutionModel}
VUID-BaseVertex-BaseVertex-04185NNoneexplicitBaseVertex(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)The variable decorated with BaseVertex must be declared using the Input {StorageClass}
VUID-BaseVertex-BaseVertex-04186NNoneexplicitBaseVertex(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)The variable decorated with BaseVertex must be declared as a scalar 32-bit integer value
VUID-ClipDistance-ClipDistance-04187NNoneexplicitClipDistancecoreThe ClipDistance decoration must be used only within the 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, then either the MeshShadingNV, 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-RayGeometryIndexKHR-RayGeometryIndexKHR-04345NNoneexplicitRayGeometryIndexKHR(VK_KHR_ray_tracing_pipeline)The RayGeometryIndexKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel}
VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04346NNoneexplicitRayGeometryIndexKHR(VK_KHR_ray_tracing_pipeline)The variable decorated with RayGeometryIndexKHR must be declared using the Input {StorageClass}
VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04347NNoneexplicitRayGeometryIndexKHR(VK_KHR_ray_tracing_pipeline)The variable decorated with RayGeometryIndexKHR must be declared as a scalar 32-bit integer value
VUID-RayTmaxKHR-RayTmaxKHR-04348NNoneexplicitRayTmaxKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The RayTmaxKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR {ExecutionModel}
VUID-RayTmaxKHR-RayTmaxKHR-04349NNoneexplicitRayTmaxKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with RayTmaxKHR must be declared using the Input {StorageClass}
VUID-RayTmaxKHR-RayTmaxKHR-04350NNoneexplicitRayTmaxKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with RayTmaxKHR must be declared as a scalar 32-bit floating-point value
VUID-RayTminKHR-RayTminKHR-04351NNoneexplicitRayTminKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The RayTminKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR {ExecutionModel}
VUID-RayTminKHR-RayTminKHR-04352NNoneexplicitRayTminKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with RayTminKHR must be declared using the Input {StorageClass}
VUID-RayTminKHR-RayTminKHR-04353NNoneexplicitRayTminKHR(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)The variable decorated with RayTminKHR must be declared as a scalar 32-bit floating-point value
VUID-RuntimeSpirv-DescriptorSet-06323NNoneexplicitRuntimeSpirvcoreDescriptorSet and Binding decorations must obey the constraints on storage class, type, and descriptor type described in DescriptorSet and Binding Assignment
VUID-RuntimeSpirv-Fragment-06427YTestMaxFragmentDualSrcAttachmentsexplicitRuntimeSpirvcoreWhen blending is enabled and one of the dual source blend modes is in use, the maximum number of output attachments written to in the Fragment {ExecutionModel} must be less than or equal to maxFragmentDualSrcAttachments
VUID-RuntimeSpirv-LocalSizeId-06433YTestLocalSizeIdExecutionModeexplicitRuntimeSpirv!(VK_VERSION_1_3,VK_KHR_maintenance4)The execution mode LocalSizeId must not be used
VUID-RuntimeSpirv-LocalSizeId-06434YTestLocalSizeIdExecutionModeexplicitRuntimeSpirv(VK_VERSION_1_3,VK_KHR_maintenance4)if execution mode LocalSizeId is used, maintenance4 must be enabled
VUID-RuntimeSpirv-Location-06272YCreatePipelineExceedFragmentMaxComponentsWithBuiltins, CreatePipelineExceedVertexMaxComponentsWithBuiltins, CreatePipelineExceedMaxTessellationControlInputOutputComponents, CreatePipelineExceedMaxVertexOutputComponents, CreatePipelineExceedMaxGeometryInputOutputComponents, CreatePipelineExceedMaxComponentsBlocks, CreatePipelineExceedMaxFragmentInputComponents, CreatePipelineExceedMaxTessellationEvaluationInputOutputComponentsexplicitRuntimeSpirvcoreThe sum of Location and the number of locations the variable it decorates consumes must be less than or equal to the value for the matching {ExecutionModel} defined in Shader Input and Output Locations
VUID-RuntimeSpirv-Location-06428NNoneexplicitRuntimeSpirvcoreThe maximum number of storage buffers, storage images, and output Location decorated color attachments written to in the Fragment {ExecutionModel} must be less than or equal to maxFragmentCombinedOutputResources
VUID-RuntimeSpirv-NonUniform-06274NNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If an instruction loads from or stores to a resource (including atomics and image instructions) and the resource descriptor being accessed is not dynamically uniform, then the operand corresponding to that resource (e.g. the pointer or sampled image operand) must be decorated with NonUniform.
VUID-RuntimeSpirv-NonWritable-06340YFragmentStoresAndAtomicsFeatureDisableexplicitRuntimeSpirvcoreIf fragmentStoresAndAtomics is not enabled, then all storage image, storage texel buffer, and storage buffer variables in the fragment stage must be decorated with the NonWritable decoration.
VUID-RuntimeSpirv-NonWritable-06341YVertexStoresAndAtomicsFeatureDisableexplicitRuntimeSpirvcoreIf vertexPipelineStoresAndAtomics is not enabled, then all storage image, storage texel buffer, and storage buffer variables in the vertex, tessellation, and geometry stages must be decorated with the NonWritable decoration.
VUID-RuntimeSpirv-None-06275YSubgroupExtendedTypesDisabledexplicitRuntimeSpirv(VK_VERSION_1_1)+(VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types)shaderSubgroupExtendedTypes must be enabled for group operations to use 8-bit integer, 16-bit integer, 64-bit integer, 16-bit floating-point, and vectors of these types
VUID-RuntimeSpirv-None-06278YShaderAtomicInt64explicitRuntimeSpirv(VK_KHR_shader_atomic_int64)shaderBufferInt64Atomics must be enabled for 64-bit integer atomic operations to be supported on a Pointer with a Storage Class of StorageBuffer or Uniform.
VUID-RuntimeSpirv-None-06279YShaderAtomicInt64explicitRuntimeSpirv(VK_KHR_shader_atomic_int64)shaderSharedInt64Atomics must be enabled for 64-bit integer atomic operations to be supported on a Pointer with a Storage Class of Workgroup.
VUID-RuntimeSpirv-None-06287NNoneexplicitRuntimeSpirv(VK_EXT_shader_atomic_float2)sparseImageFloat32Atomics, or sparseImageFloat32AtomicAdd, or sparseImageFloat32AtomicMinMax must be enabled for 32-bit floating-point atomics to be supported on sparse images.
VUID-RuntimeSpirv-None-06288YShaderImageAtomicInt64explicitRuntimeSpirv(VK_EXT_shader_image_atomic_int64)shaderImageInt64Atomics must be enabled for 64-bit integer atomic operations to be supported on a Pointer with a Storage Class of Image.
VUID-RuntimeSpirv-None-06342YSubgroupSupportedPropertiesexplicitRuntimeSpirvcoreIf subgroupQuadOperationsInAllStages is VK_FALSE, then quad subgroup operations must not be used except for in fragment and compute stages.
VUID-RuntimeSpirv-None-06343YSubgroupSupportedPropertiesexplicitRuntimeSpirv(VK_VERSION_1_1)Group operations with subgroup scope must not be used if the shader stage is not in subgroupSupportedStages.
VUID-RuntimeSpirv-Offset-06308YTestRuntimeSpirvTransformFeedbackexplicitRuntimeSpirv(VK_EXT_transform_feedback)The Offset plus size of the type of each variable, in the output interface of the entry point being compiled, decorated with XfbBuffer must not be greater than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferDataSize
VUID-RuntimeSpirv-Offset-06344NNoneexplicitRuntimeSpirvcoreThe first element of the Offset operand of InterpolateAtOffset must be greater than or equal to:
VUID-RuntimeSpirv-Offset-06345NNoneexplicitRuntimeSpirvcoreThe first element of the Offset operand of InterpolateAtOffset must be less than or equal to:
VUID-RuntimeSpirv-Offset-06346NNoneexplicitRuntimeSpirvcoreThe second element of the Offset operand of InterpolateAtOffset must be greater than or equal to:
VUID-RuntimeSpirv-Offset-06347NNoneexplicitRuntimeSpirvcoreThe second element of the Offset operand of InterpolateAtOffset must be less than or equal to:
VUID-RuntimeSpirv-OpCooperativeMatrixLoadNV-06324NNoneexplicitRuntimeSpirv(VK_NV_cooperative_matrix)For OpCooperativeMatrixLoadNV and OpCooperativeMatrixStoreNV instructions, the Pointer and Stride operands must be aligned to at least the lesser of 16 bytes or the natural alignment of a row or column (depending on ColumnMajor) of the matrix (where the natural alignment is the number of columns/rows multiplied by the component size).
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06317NNoneexplicitRuntimeSpirv(VK_NV_cooperative_matrix)For OpCooperativeMatrixMulAddNV, the type of A must have VkCooperativeMatrixPropertiesNV::MSize rows and VkCooperativeMatrixPropertiesNV::KSize columns and have a component type that matches VkCooperativeMatrixPropertiesNV::AType.
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06318NNoneexplicitRuntimeSpirv(VK_NV_cooperative_matrix)For OpCooperativeMatrixMulAddNV, the type of B must have VkCooperativeMatrixPropertiesNV::KSize rows and VkCooperativeMatrixPropertiesNV::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesNV::BType.
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06319NNoneexplicitRuntimeSpirv(VK_NV_cooperative_matrix)For OpCooperativeMatrixMulAddNV, the type of C must have VkCooperativeMatrixPropertiesNV::MSize rows and VkCooperativeMatrixPropertiesNV::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesNV::CType.
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06320NNoneexplicitRuntimeSpirv(VK_NV_cooperative_matrix)For OpCooperativeMatrixMulAddNV, the type of Result must have VkCooperativeMatrixPropertiesNV::MSize rows and VkCooperativeMatrixPropertiesNV::NSize columns and have a component type that matches VkCooperativeMatrixPropertiesNV::DType.
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06321NNoneexplicitRuntimeSpirv(VK_NV_cooperative_matrix)For OpCooperativeMatrixMulAddNV, the type of A, B, C, and Result must all have a scope of scope.
VUID-RuntimeSpirv-OpEmitStreamVertex-06310YTestRuntimeSpirvTransformFeedbackexplicitRuntimeSpirv(VK_EXT_transform_feedback)The Stream value to OpEmitStreamVertex and OpEndStreamPrimitive must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams
VUID-RuntimeSpirv-OpImage-06376YTestMinAndMaxTexelGatherOffsetexplicitRuntimeSpirvcoreIf an OpImage*Gather operation has an image operand of Offset, ConstOffset, or ConstOffsets the offset value must be greater than or equal to minTexelGatherOffset
VUID-RuntimeSpirv-OpImage-06377YTestMinAndMaxTexelGatherOffsetexplicitRuntimeSpirvcoreIf an OpImage*Gather operation has an image operand of Offset, ConstOffset, or ConstOffsets the offset value must be less than or equal to maxTexelGatherOffset
VUID-RuntimeSpirv-OpImageSample-06435YTestMinAndMaxTexelOffsetexplicitRuntimeSpirvcoreIf an OpImageSample* or OpImageFetch* operation has an image operand of ConstOffset then the offset value must be greater than or equal to minTexelOffset
VUID-RuntimeSpirv-OpImageSample-06436YTestMinAndMaxTexelOffsetexplicitRuntimeSpirvcoreIf an OpImageSample* or OpImageFetch* operation has an image operand of ConstOffset then the offset value must be less than or equal to maxTexelOffset
VUID-RuntimeSpirv-OpRayQueryGenerateIntersectionKHR-06353NNoneexplicitRuntimeSpirv(VK_KHR_ray_query)For OpRayQueryGenerateIntersectionKHR instructions, Hit T must satisfy the condition RayTmin {leq} Hit T {leq} RayTmax, where RayTmin is equal to the value returned by OpRayQueryGetRayTMinKHR with the same ray query object, and RayTmax is equal to the value of OpRayQueryGetIntersectionTKHR for the current committed intersection with the same ray query object.
VUID-RuntimeSpirv-OpRayQueryGenerateIntersectionKHR-06354NNoneexplicitRuntimeSpirv(VK_KHR_ray_query)+(VK_NV_ray_tracing_motion_blur)For OpRayQueryGenerateIntersectionKHR instructions, Acceleration Structure must not be built with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags.
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06348NNoneexplicitRuntimeSpirv(VK_KHR_ray_query)For OpRayQueryInitializeKHR instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values.
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06349NNoneexplicitRuntimeSpirv(VK_KHR_ray_query)For OpRayQueryInitializeKHR instructions, the RayTmin and RayTmax operands must be non-negative floating-point values.
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06350NNoneexplicitRuntimeSpirv(VK_KHR_ray_query)For OpRayQueryInitializeKHR instructions, the RayTmin operand must be less than or equal to the RayTmax operand.
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06351NNoneexplicitRuntimeSpirv(VK_KHR_ray_query)For OpRayQueryInitializeKHR instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs.
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06352NNoneexplicitRuntimeSpirv(VK_KHR_ray_query)For OpRayQueryInitializeKHR instructions, Acceleration Structure must be an acceleration structure built as a top-level acceleration structure.
VUID-RuntimeSpirv-OpTraceRayKHR-06355NNoneexplicitRuntimeSpirv(VK_KHR_ray_tracing_pipeline)For OpTraceRayKHR instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values.
VUID-RuntimeSpirv-OpTraceRayKHR-06356NNoneexplicitRuntimeSpirv(VK_KHR_ray_tracing_pipeline)For OpTraceRayKHR instructions, the RayTmin and RayTmax operands must be non-negative floating-point values.
VUID-RuntimeSpirv-OpTraceRayKHR-06357NNoneexplicitRuntimeSpirv(VK_KHR_ray_tracing_pipeline)For OpTraceRayKHR instructions, the RayTmin operand must be less than or equal to the RayTmax operand.
VUID-RuntimeSpirv-OpTraceRayKHR-06358NNoneexplicitRuntimeSpirv(VK_KHR_ray_tracing_pipeline)For OpTraceRayKHR instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs.
VUID-RuntimeSpirv-OpTraceRayKHR-06359NNoneexplicitRuntimeSpirv(VK_KHR_ray_tracing_pipeline)For OpTraceRayKHR instructions, Acceleration Structure must be an acceleration structure built as a top-level acceleration structure.
VUID-RuntimeSpirv-OpTraceRayKHR-06360NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_motion_blur)For OpTraceRayKHR instructions, if Acceleration Structure was built with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags, the pipeline must have been created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV set
VUID-RuntimeSpirv-OpTraceRayKHR-06552NNoneexplicitRuntimeSpirv(VK_KHR_ray_tracing_pipeline)For OpTraceRayKHR instructions, the Rayflags operand must not contain both SkipTrianglesKHR and SkipAABBsKHR
VUID-RuntimeSpirv-OpTraceRayKHR-06553NNoneexplicitRuntimeSpirv(VK_KHR_ray_tracing_pipeline)For OpTraceRayKHR instructions, if the Rayflags operand contains SkipTrianglesKHR, the pipeline must not have been created with VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR set
VUID-RuntimeSpirv-OpTraceRayKHR-06554NNoneexplicitRuntimeSpirv(VK_KHR_ray_tracing_pipeline)For OpTraceRayKHR instructions, if the Rayflags operand contains SkipAABBsKHR, the pipeline must not have been created with VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR set
VUID-RuntimeSpirv-OpTraceRayMotionNV-06361NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_motion_blur)For OpTraceRayMotionNV instructions, all components of the RayOrigin and RayDirection operands must be finite floating-point values.
VUID-RuntimeSpirv-OpTraceRayMotionNV-06362NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_motion_blur)For OpTraceRayMotionNV instructions, the RayTmin and RayTmax operands must be non-negative floating-point values.
VUID-RuntimeSpirv-OpTraceRayMotionNV-06363NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_motion_blur)For OpTraceRayMotionNV instructions, the RayTmin operand must be less than or equal to the RayTmax operand.
VUID-RuntimeSpirv-OpTraceRayMotionNV-06364NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_motion_blur)For OpTraceRayMotionNV instructions, RayOrigin, RayDirection, RayTmin, and RayTmax operands must not contain NaNs.
VUID-RuntimeSpirv-OpTraceRayMotionNV-06365NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_motion_blur)For OpTraceRayMotionNV instructions, Acceleration Structure must be an acceleration structure built as a top-level acceleration structure with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV in flags
VUID-RuntimeSpirv-OpTraceRayMotionNV-06366NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_motion_blur)For OpTraceRayMotionNV instructions the time operand must be between 0.0 and 1.0
VUID-RuntimeSpirv-OpTraceRayMotionNV-06367NNoneexplicitRuntimeSpirv(VK_NV_ray_tracing_motion_blur)For OpTraceRayMotionNV instructions the pipeline must have been created with VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV set
VUID-RuntimeSpirv-OpTypeCooperativeMatrixNV-06316NNoneexplicitRuntimeSpirv(VK_NV_cooperative_matrix)For OpTypeCooperativeMatrixNV, the component type, scope, number of rows, and number of columns must match one of the matrices in any of the supported VkCooperativeMatrixPropertiesNV.
VUID-RuntimeSpirv-OpTypeCooperativeMatrixNV-06322YNoneexplicitRuntimeSpirv(VK_NV_cooperative_matrix)OpTypeCooperativeMatrixNV and OpCooperativeMatrix* instructions must not be used in shader stages not included in VkPhysicalDeviceCooperativeMatrixPropertiesNV::cooperativeMatrixSupportedStages.
VUID-RuntimeSpirv-OpTypeImage-06269YMissingNonWritableDecorationStorageImageFormatWriteexplicitRuntimeSpirv!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If shaderStorageImageWriteWithoutFormat is not enabled, any variable created with a "Type" of OpTypeImage that has a "Sampled" operand of 2 and an "Image Format" operand of Unknown must be decorated with NonWritable.
VUID-RuntimeSpirv-OpTypeImage-06270YMissingNonReadableDecorationStorageImageFormatReadexplicitRuntimeSpirv!(VK_VERSION_1_3,VK_KHR_format_feature_flags2)If shaderStorageImageReadWithoutFormat is not enabled, any variable created with a "Type" of OpTypeImage that has a "Sampled" operand of 2 and an "Image Format" operand of Unknown must be decorated with NonReadable.
VUID-RuntimeSpirv-OpVariable-06373YTestShaderZeroInitializeWorkgroupMemoryexplicitRuntimeSpirv!(VK_VERSION_1_3,VK_KHR_zero_initialize_workgroup_memory)Any OpVariable with Workgroup as its Storage Class must not have an Initializer operand
VUID-RuntimeSpirv-PhysicalStorageBuffer64-06314NNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)If the PhysicalStorageBuffer64 addressing model is enabled any load or store through a physical pointer type must be aligned to a multiple of the size of the largest scalar type in the pointed-to type.
VUID-RuntimeSpirv-PhysicalStorageBuffer64-06315NNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)If the PhysicalStorageBuffer64 addressing model is enabled the pointer value of a memory access instruction must be at least as aligned as specified by the Aligned memory access operand.
VUID-RuntimeSpirv-Stream-06312YTestRuntimeSpirvTransformFeedbackexplicitRuntimeSpirv(VK_EXT_transform_feedback)The stream number value to Stream must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams
VUID-RuntimeSpirv-SubgroupUniformControlFlowKHR-06379YTestSubgroupUniformControlFlowexplicitRuntimeSpirv(VK_KHR_shader_subgroup_uniform_control_flow)The execution mode SubgroupUniformControlFlowKHR must not be applied to an entry point unless shaderSubgroupUniformControlFlow is enabled and the corresponding shader stage bit is set in subgroup supportedStages and the entry point does not execute any invocation repack instructions.
VUID-RuntimeSpirv-Workgroup-06530YComputeSharedMemoryOverLimitWorkgroupMemoryExplicitLayout, ComputeSharedMemoryOverLimitexplicitRuntimeSpirvcoreThe sum of size in bytes for variables and padding in the Workgroup storage class in the GLCompute {ExecutionModel} must be less than or equal to maxComputeSharedMemorySize
VUID-RuntimeSpirv-XfbBuffer-06309YTestRuntimeSpirvTransformFeedbackexplicitRuntimeSpirv(VK_EXT_transform_feedback)For any given XfbBuffer value, define the buffer data size to be smallest number of bytes such that, for all outputs decorated with the same XfbBuffer value, the size of the output interface variable plus the Offset is less than or equal to the buffer data size. For a given Stream, the sum of all the buffer data sizes for all buffers writing to that stream the must not exceed VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreamDataSize
VUID-RuntimeSpirv-XfbStride-06313YTestRuntimeSpirvTransformFeedbackexplicitRuntimeSpirv(VK_EXT_transform_feedback)The XFB Stride value to XfbStride must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferDataStride
VUID-RuntimeSpirv-denormBehaviorIndependence-06289YNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If denormBehaviorIndependence is VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY, then the entry point must use the same denormals execution mode for both 16-bit and 64-bit floating-point types.
VUID-RuntimeSpirv-denormBehaviorIndependence-06290YNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If denormBehaviorIndependence is VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE, then the entry point must use the same denormals execution mode for all floating-point types.
VUID-RuntimeSpirv-roundingModeIndependence-06291YNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If roundingModeIndependence is VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY, then the entry point must use the same rounding execution mode for both 16-bit and 64-bit floating-point types.
VUID-RuntimeSpirv-roundingModeIndependence-06292YNoneexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_shader_float_controls)If roundingModeIndependence is VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE, then the entry point must use the same rounding execution mode for all floating-point types.
VUID-RuntimeSpirv-shaderSampleRateInterpolationFunctions-06325YResolveInvalidUsageexplicitRuntimeSpirv(VK_KHR_portability_subset)If the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::shaderSampleRateInterpolationFunctions is VK_FALSE, then GLSL.std.450 fragment interpolation functions are not supported by the implementation and OpCapability must not be set to InterpolationFunction.
VUID-RuntimeSpirv-shaderZeroInitializeWorkgroupMemory-06372YTestShaderZeroInitializeWorkgroupMemoryexplicitRuntimeSpirv(VK_VERSION_1_3,VK_KHR_zero_initialize_workgroup_memory)If shaderZeroInitializeWorkgroupMemory is not enabled, any OpVariable with Workgroup as its Storage Class must not have an Initializer operand
VUID-RuntimeSpirv-storageBuffer16BitAccess-06331NNoneexplicitRuntimeSpirv(VK_KHR_16bit_storage)If storageBuffer16BitAccess is VK_FALSE, then objects containing 16-bit integer or 16-bit floating-point elements must not have storage class of StorageBuffer, ShaderRecordBufferKHR, or PhysicalStorageBuffer.
VUID-RuntimeSpirv-storageBuffer8BitAccess-06328NNoneexplicitRuntimeSpirv(VK_KHR_8bit_storage)If storageBuffer8BitAccess is VK_FALSE, then objects containing an 8-bit integer element must not have storage class of StorageBuffer, ShaderRecordBufferKHR, or PhysicalStorageBuffer.
VUID-RuntimeSpirv-storageInputOutput16-06334NNoneexplicitRuntimeSpirv(VK_KHR_16bit_storage)If storageInputOutput16 is VK_FALSE, then objects containing 16-bit integer or 16-bit floating-point elements must not have storage class of Input or Output.
VUID-RuntimeSpirv-storagePushConstant16-06333NNoneexplicitRuntimeSpirv(VK_KHR_16bit_storage)If storagePushConstant16 is VK_FALSE, then objects containing 16-bit integer or 16-bit floating-point elements must not have storage class of PushConstant.
VUID-RuntimeSpirv-storagePushConstant8-06330NNoneexplicitRuntimeSpirv(VK_KHR_8bit_storage)If storagePushConstant8 is VK_FALSE, then objects containing an 8-bit integer element must not have storage class of PushConstant.
VUID-RuntimeSpirv-subgroupBroadcastDynamicId-06276NNoneexplicitRuntimeSpirv(VK_VERSION_1_2)If subgroupBroadcastDynamicId is VK_TRUE, and the shader module version is 1.5 or higher, the "Index" for OpGroupNonUniformQuadBroadcast must be dynamically uniform within the derivative group. Otherwise, "Index" must be a constant.
VUID-RuntimeSpirv-subgroupBroadcastDynamicId-06277NNoneexplicitRuntimeSpirv(VK_VERSION_1_2)If subgroupBroadcastDynamicId is VK_TRUE, and the shader module version is 1.5 or higher, the "Id" for OpGroupNonUniformBroadcast must be dynamically uniform within the subgroup. Otherwise, "Id" must be a constant.
VUID-RuntimeSpirv-tessellationShader-06326YResolveInvalidUsageexplicitRuntimeSpirv(VK_KHR_portability_subset)If tessellationShader is enabled, and the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::tessellationIsolines is VK_FALSE, then OpExecutionMode must not be set to IsoLines.
VUID-RuntimeSpirv-tessellationShader-06327YResolveInvalidUsageexplicitRuntimeSpirv(VK_KHR_portability_subset)If tessellationShader is enabled, and the VK_KHR_portability_subset extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::tessellationPointMode is VK_FALSE, then OpExecutionMode must not be set to PointMode.
VUID-RuntimeSpirv-transformFeedbackStreamsLinesTriangles-06311YTestRuntimeSpirvTransformFeedbackexplicitRuntimeSpirv(VK_EXT_transform_feedback)If the geometry shader emits to more than one vertex stream and VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackStreamsLinesTriangles is VK_FALSE, then execution mode must be OutputPoints
VUID-RuntimeSpirv-uniformAndStorageBuffer16BitAccess-06332NNoneexplicitRuntimeSpirv(VK_KHR_16bit_storage)If uniformAndStorageBuffer16BitAccess is VK_FALSE, then objects in the Uniform storage class with the Block decoration must not have 16-bit integer or 16-bit floating-point members.
VUID-RuntimeSpirv-uniformAndStorageBuffer8BitAccess-06329NNoneexplicitRuntimeSpirv(VK_KHR_8bit_storage)If uniformAndStorageBuffer8BitAccess is VK_FALSE, then objects in the Uniform storage class with the Block decoration must not have an 8-bit integer member.
VUID-RuntimeSpirv-vulkanMemoryModel-06265YDeviceMemoryScopeexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_vulkan_memory_model)If vulkanMemoryModel is enabled and vulkanMemoryModelDeviceScope is not enabled, Device memory scope must not be used.
VUID-RuntimeSpirv-vulkanMemoryModel-06266YQueueFamilyMemoryScopeexplicitRuntimeSpirv(VK_VERSION_1_2,VK_KHR_vulkan_memory_model)If vulkanMemoryModel is not enabled, QueueFamily memory scope must not be used.
VUID-RuntimeSpirv-x-06429YComputeWorkGroupSizeLocalSizeIdSpecConstantDefault, ComputeWorkGroupSizeSpecConstant, ComputeWorkGroupSizeLocalSizeIdSpecConstantSet, ComputeWorkGroupSizeLocalSizeId, ComputeWorkGroupSizeConstantDefault, ComputeWorkGroupSizeSpecConstantDefault, CmdDispatchExceedLimitsexplicitRuntimeSpirvcoreThe x size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]
VUID-RuntimeSpirv-x-06432YComputeWorkGroupSizeLocalSizeIdSpecConstantDefault, ComputeWorkGroupSizeSpecConstant, ComputeWorkGroupSizeLocalSizeIdSpecConstantSet, TestComputeLocalWorkgroupSize, ComputeWorkGroupSizeLocalSizeId, ComputeWorkGroupSizeConstantDefault, ComputeWorkGroupSizeSpecConstantDefault, CmdDispatchExceedLimitsexplicitRuntimeSpirvcoreThe product of x size, y size, and z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupInvocations
VUID-RuntimeSpirv-y-06430YCmdDispatchExceedLimits, ComputeWorkGroupSizeSpecConstantexplicitRuntimeSpirvcoreThe y size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]
VUID-RuntimeSpirv-z-06431YCmdDispatchExceedLimitsexplicitRuntimeSpirvcoreThe z size in LocalSize or LocalSizeId must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2]
VUID-SMCountNV-SMCountNV-04363NNoneexplicitSMCountNV(VK_NV_shader_sm_builtins)The variable decorated with SMCountNV must be declared using the Input {StorageClass}
VUID-SMCountNV-SMCountNV-04364NNoneexplicitSMCountNV(VK_NV_shader_sm_builtins)The variable decorated with SMCountNV must be declared as a scalar 32-bit integer value
VUID-SMIDNV-SMIDNV-04365NNoneexplicitSMIDNV(VK_NV_shader_sm_builtins)The variable decorated with SMIDNV must be declared using the Input {StorageClass}
VUID-SMIDNV-SMIDNV-04366NNoneexplicitSMIDNV(VK_NV_shader_sm_builtins)The variable decorated with SMIDNV must be declared as a scalar 32-bit integer value
VUID-SampleId-SampleId-04354NNoneexplicitSampleIdcoreThe SampleId decoration must be used only within the Fragment {ExecutionModel}
VUID-SampleId-SampleId-04355NNoneexplicitSampleIdcoreThe variable decorated with SampleId must be declared using the Input {StorageClass}
VUID-SampleId-SampleId-04356NNoneexplicitSampleIdcoreThe variable decorated with SampleId must be declared as a scalar 32-bit integer value
VUID-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-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-DescriptorSet-06491NNoneexplicitStandaloneSpirvcoreIf a variable is decorated by DescriptorSet or Binding, the storage class must correspond to an entry in Shader Resource and Storage Class Correspondence
VUID-StandaloneSpirv-FPRoundingMode-04675NNoneexplicitStandaloneSpirvcoreRounding modes other than round-to-nearest-even and round-towards-zero must not be used for the FPRoundingMode decoration
VUID-StandaloneSpirv-Flat-04670NNoneexplicitStandaloneSpirvcoreThe Flat, NoPerspective, Sample, and Centroid decorations must only be used on variables with the Output or Input storage class
VUID-StandaloneSpirv-Flat-04744NNoneexplicitStandaloneSpirvcoreAny variable with integer or double-precision floating-point type and with Input storage class in a fragment shader, must be decorated Flat
VUID-StandaloneSpirv-Flat-06201NNoneexplicitStandaloneSpirvcoreThe Flat, NoPerspective, Sample, and Centroid decorations must not be used on variables with the Output storage class in a fragment shader
VUID-StandaloneSpirv-Flat-06202NNoneexplicitStandaloneSpirvcoreThe Flat, NoPerspective, Sample, and Centroid decorations must not be used on variables with the Input storage class in a vertex shader
VUID-StandaloneSpirv-Function-04681NNoneexplicitStandaloneSpirvcoreA type T that is an array sized with a specialization constant must neither be, nor be contained in, the type T2 of a variable V, unless either: a) T is equal to T2, b) V is declared in the Function, or Private storage classes, c) V is a non-Block variable in the Workgroup storage class, or d) V is an interface variable with an additional level of arrayness, as described in interface matching, and T is the member type of the array type T2
VUID-StandaloneSpirv-GLSLShared-04669NNoneexplicitStandaloneSpirvcoreThe GLSLShared and GLSLPacked decorations must not be used
VUID-StandaloneSpirv-HitAttributeKHR-04701NNoneexplicitStandaloneSpirvcoreHitAttributeKHR storage class must only be used in intersection, any-hit, or closest hit shaders
VUID-StandaloneSpirv-HitAttributeKHR-04702NNoneexplicitStandaloneSpirvcoreThere must be at most one variable with the HitAttributeKHR storage class in the input interface of an entry point
VUID-StandaloneSpirv-HitAttributeKHR-04703NNoneexplicitStandaloneSpirvcoreA variable with HitAttributeKHR storage class must only be written to in an intersection shader
VUID-StandaloneSpirv-Image-04965NNoneexplicitStandaloneSpirvcoreThe converted bit width, signedness, and numeric type of the Image Format operand of an OpTypeImage must match the Sampled Type, as defined in Image Format and Type Matching
VUID-StandaloneSpirv-IncomingCallableDataKHR-04705NNoneexplicitStandaloneSpirvcoreIncomingCallableDataKHR storage class must only be used in callable shaders
VUID-StandaloneSpirv-IncomingCallableDataKHR-04706NNoneexplicitStandaloneSpirvcoreThere must be at most one variable with the IncomingCallableDataKHR storage class in the input interface of an entry point
VUID-StandaloneSpirv-IncomingRayPayloadKHR-04700NNoneexplicitStandaloneSpirvcoreThere must be at most one variable with the IncomingRayPayloadKHR storage class in the input interface of an entry point
VUID-StandaloneSpirv-Input-06778NNoneexplicitStandaloneSpirv(VK_NV_fragment_shader_barycentric,VK_KHR_fragment_shader_barycentric)Variables with a storage class of Input in a fragment shader stage that are decorated with perVertexKHR must be declared as arrays
VUID-StandaloneSpirv-InputAttachmentIndex-06678NNoneexplicitStandaloneSpirvcoreVariables decorated with InputAttachmentIndex must be in the UniformConstant storage class
VUID-StandaloneSpirv-Invariant-04677NNoneexplicitStandaloneSpirvcoreVariables decorated with Invariant and variables with structure types that have any members decorated with Invariant must be in the Output or Input storage class, Invariant used on an Input storage class variable or structure member has no effect
VUID-StandaloneSpirv-LocalSize-06426NNoneexplicitStandaloneSpirvcoreFor each compute shader entry point, either a LocalSize or LocalSizeId execution mode, or an object decorated with the WorkgroupSize decoration must be specified
VUID-StandaloneSpirv-Location-04915NNoneexplicitStandaloneSpirvcoreThe Location or Component decorations must not be used with BuiltIn
VUID-StandaloneSpirv-Location-04916NNoneexplicitStandaloneSpirvcoreThe Location decorations must be used on user-defined variables
VUID-StandaloneSpirv-Location-04917NNoneexplicitStandaloneSpirvcoreThe Location decorations must be used on an OpVariable with a structure type that is not a block
VUID-StandaloneSpirv-Location-04918NNoneexplicitStandaloneSpirvcoreThe Location decorations must not be used on the members of OpVariable with a structure type that is decorated with Location
VUID-StandaloneSpirv-Location-04919NNoneexplicitStandaloneSpirvcoreThe Location decorations must be used on each member of OpVariable with a structure type that is a block not decorated with Location
VUID-StandaloneSpirv-Location-06672NNoneexplicitStandaloneSpirvcoreThe Location or Component decorations must only be used with the Input, Output, RayPayloadKHR, IncomingRayPayloadKHR, HitAttributeKHR, CallableDataKHR, IncomingCallableDataKHR, or ShaderRecordBufferKHR storage classes
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-04642NNoneexplicitStandaloneSpirv(VK_VERSION_1_1)Scope for group operations must be limited to Subgroup
VUID-StandaloneSpirv-None-04643NNoneexplicitStandaloneSpirvcoreStorage Class must be limited to UniformConstant, Input, Uniform, Output, Workgroup, Private, Function, PushConstant, Image, StorageBuffer, RayPayloadKHR, IncomingRayPayloadKHR, HitAttributeKHR, CallableDataKHR, IncomingCallableDataKHR, ShaderRecordBufferKHR, or PhysicalStorageBuffer
VUID-StandaloneSpirv-None-04644NNoneexplicitStandaloneSpirvcoreIf the Storage Class is Output, then it must not be used in the GlCompute, RayGenerationKHR, IntersectionKHR, AnyHitKHR, ClosestHitKHR, MissKHR, or CallableKHR execution models
VUID-StandaloneSpirv-None-04645NNoneexplicitStandaloneSpirvcoreIf the Storage Class is Workgroup, then it must only be used in the task, mesh, or compute execution models
VUID-StandaloneSpirv-None-04667NNoneexplicitStandaloneSpirvcoreStructure types must not contain opaque types
VUID-StandaloneSpirv-None-04686NNoneexplicitStandaloneSpirvcoreThe Pointer operand of all atomic instructions must have a Storage Class limited to Uniform, Workgroup, Image, StorageBuffer, 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 specifying a Offset decoration must specify a Offset value that is aligned to an 8 byte boundary if that block contains any member decorated with Offset and is a 64-bit type
VUID-StandaloneSpirv-Offset-04691NNoneexplicitStandaloneSpirvcoreOutput variables or block members decorated with Offset that have a 32-bit type, or a composite type contains a 32-bit type, must specify an Offset value aligned to a 4 byte boundary
VUID-StandaloneSpirv-Offset-04692NNoneexplicitStandaloneSpirvcoreOutput variables, blocks or block members decorated with Offset must only contain base types that have components that are either 32-bit or 64-bit in size
VUID-StandaloneSpirv-Offset-04716NNoneexplicitStandaloneSpirvcoreOnly variables or block members in the output interface decorated with Offset can be captured for transform feedback, and those variables or block members must also be decorated with XfbBuffer and XfbStride, or inherit XfbBuffer and XfbStride decorations from a block containing them
VUID-StandaloneSpirv-Offset-04865NNoneexplicitStandaloneSpirvcoreAny image instruction which uses an Offset, ConstOffset, or ConstOffsets image operand, must only consume a "Sampled Image" operand whose type has its "Sampled" operand set to 1
VUID-StandaloneSpirv-OpAtomicStore-04730NNoneexplicitStandaloneSpirvcoreOpAtomicStore must not use Acquire, AcquireRelease, or SequentiallyConsistent memory semantics
VUID-StandaloneSpirv-OpControlBarrier-04650NNoneexplicitStandaloneSpirvcoreIf the semantics for OpControlBarrier includes one of Acquire, Release, AcquireRelease, or SequentiallyConsistent memory semantics, then it must include at least one storage class
VUID-StandaloneSpirv-OpControlBarrier-04682NNoneexplicitStandaloneSpirvcoreIf OpControlBarrier is used in ray generation, intersection, any-hit, closest hit, miss, fragment, vertex, tessellation evaluation, or geometry shaders, the execution Scope must be Subgroup
VUID-StandaloneSpirv-OpEntryPoint-06674NNoneexplicitStandaloneSpirvcoreEach OpEntryPoint must not statically use more than one OpVariable in the PushConstant storage class
VUID-StandaloneSpirv-OpGroupNonUniformBallotBitCount-04685NNoneexplicitStandaloneSpirvcoreIf OpGroupNonUniformBallotBitCount is used, the group operation must be limited to Reduce, InclusiveScan, or ExclusiveScan
VUID-StandaloneSpirv-OpImage-04777NNoneexplicitStandaloneSpirvcoreOpImage*Dref* instructions must not consume an image whose Dim is 3D
VUID-StandaloneSpirv-OpImageGather-04664NNoneexplicitStandaloneSpirvcoreThe "Component" operand of OpImageGather, and OpImageSparseGather must be the of a constant instruction
VUID-StandaloneSpirv-OpImageQuerySizeLod-04659NNoneexplicitStandaloneSpirvcoreOpImageQuerySizeLod, OpImageQueryLod, and OpImageQueryLevels must only consume an "Image" operand whose type has its "Sampled" operand set to 1
VUID-StandaloneSpirv-OpImageTexelPointer-04658NNoneexplicitStandaloneSpirvcoreIf an OpImageTexelPointer is used in an atomic operation, the image type of the image parameter to OpImageTexelPointer must have an image format of R64i, R64ui, R32f, R32i, or R32ui
VUID-StandaloneSpirv-OpMemoryBarrier-04732NNoneexplicitStandaloneSpirvcoreOpMemoryBarrier must use one of Acquire, Release, AcquireRelease, or SequentiallyConsistent memory semantics
VUID-StandaloneSpirv-OpMemoryBarrier-04733NNoneexplicitStandaloneSpirvcoreOpMemoryBarrier must include at least one storage class
VUID-StandaloneSpirv-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-OpTypeImage-06214NNoneexplicitStandaloneSpirvcoreAn OpTypeImage with a "Dim" operand of SubpassData must have an "Arrayed" operand of 0 (non-arrayed) and a "Sampled" operand of 2 (storage image)
VUID-StandaloneSpirv-OpTypeRuntimeArray-04680NNoneexplicitStandaloneSpirvcoreOpTypeRuntimeArray must only be used for the last member of a Block-decorated OpTypeStruct in StorageBuffer or PhysicalStorageBuffer storage classes; BufferBlock-decorated OpTypeStruct in Uniform storage class; the outermost dimension of an arrayed variable in the StorageBuffer, Uniform, or UniformConstant storage classes.
VUID-StandaloneSpirv-OpTypeSampledImage-06671NNoneexplicitStandaloneSpirvcoreOpTypeSampledImage must have a OpTypeImage with a "Sampled" operand of 1 (sampled image)
VUID-StandaloneSpirv-OpVariable-04651NNoneexplicitStandaloneSpirvcoreAny OpVariable with an Initializer operand must have Output, Private, Function, or Workgroup as its Storage Class operand
VUID-StandaloneSpirv-OpVariable-04734NNoneexplicitStandaloneSpirvcoreAny OpVariable with an Initializer operand and Workgroup as its Storage Class operand must use OpConstantNull as the initializer
VUID-StandaloneSpirv-OpVariable-06673NNoneexplicitStandaloneSpirvcoreThere must not be more than one OpVariable in the PushConstant storage class listed in the Interface for each OpEntryPoint
VUID-StandaloneSpirv-OriginLowerLeft-04653NNoneexplicitStandaloneSpirvcoreThe OriginLowerLeft execution mode must not be used; fragment entry points must declare OriginUpperLeft
VUID-StandaloneSpirv-PerVertexKHR-06777NNoneexplicitStandaloneSpirvcoreThe PerVertexKHR decoration must only be used on variables with the Input storage class in a fragment shader
VUID-StandaloneSpirv-PhysicalStorageBuffer64-04708NNoneexplicitStandaloneSpirvcoreIf the PhysicalStorageBuffer64 addressing model is enabled, all instructions that support memory access operands and that use a physical pointer must include the Aligned operand
VUID-StandaloneSpirv-PhysicalStorageBuffer64-04709NNoneexplicitStandaloneSpirvcoreIf the PhysicalStorageBuffer64 addressing model is enabled, any access chain instruction that accesses into a RowMajor matrix must only be used as the Pointer operand to OpLoad or OpStore
VUID-StandaloneSpirv-PhysicalStorageBuffer64-04710NNoneexplicitStandaloneSpirvcoreIf the PhysicalStorageBuffer64 addressing model is enabled, OpConvertUToPtr and OpConvertPtrToU must use an integer type whose Width is 64
VUID-StandaloneSpirv-PixelCenterInteger-04654NNoneexplicitStandaloneSpirvcoreThe PixelCenterInteger execution mode must not be used (pixels are always centered at half-integer coordinates)
VUID-StandaloneSpirv-PushConstant-06675NNoneexplicitStandaloneSpirvcoreAny variable in the PushConstant or StorageBuffer storage class must be decorated as Block
VUID-StandaloneSpirv-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-Uniform-06676NNoneexplicitStandaloneSpirvcoreAny variable in the Uniform storage class must be decorated as Block or BufferBlock
VUID-StandaloneSpirv-UniformConstant-04655NNoneexplicitStandaloneSpirvcoreAny variable in the UniformConstant storage class must be typed as either OpTypeImage, OpTypeSampler, OpTypeSampledImage, OpTypeAccelerationStructureKHR, or an array of one of these types
VUID-StandaloneSpirv-UniformConstant-06677NNoneexplicitStandaloneSpirvcoreAny variable in the UniformConstant, StorageBuffer, or Uniform storage class must be decorated with DescriptorSet and Binding
VUID-StandaloneSpirv-ViewportMaskNV-04674NNoneexplicitStandaloneSpirvcoreThe ViewportMaskNV and ViewportIndex decorations must not both be statically used by one or more OpEntryPoint's that form the pre-rasterization shader stages of a graphics pipeline
VUID-StandaloneSpirv-ViewportRelativeNV-04672NNoneexplicitStandaloneSpirvcoreThe ViewportRelativeNV decoration must only be used on a variable decorated with Layer in the vertex, tessellation evaluation, or geometry shader stages
VUID-StandaloneSpirv-ViewportRelativeNV-04673NNoneexplicitStandaloneSpirvcoreThe ViewportRelativeNV decoration must not be used unless a variable decorated with one of ViewportIndex or ViewportMaskNV is also statically used by the same OpEntryPoint
VUID-StandaloneSpirv-VulkanMemoryModel-04678NNoneexplicitStandaloneSpirvcore If the VulkanMemoryModel capability is not declared, the Volatile decoration must be used on any variable declaration that includes one of the SMIDNV, WarpIDNV, SubgroupSize, SubgroupLocalInvocationId, SubgroupEqMask, SubgroupGeMask, SubgroupGtMask, SubgroupLeMask, or SubgroupLtMask BuiltIn decorations when used in the ray generation, closest hit, miss, intersection, or callable shaders, or with the RayTmaxKHR Builtin decoration when used in an intersection shader
VUID-StandaloneSpirv-VulkanMemoryModel-04679NNoneexplicitStandaloneSpirvcoreIf the VulkanMemoryModel capability is declared, the OpLoad instruction must use the Volatile memory semantics when it accesses into any variable that includes one of the SMIDNV, WarpIDNV, SubgroupSize, SubgroupLocalInvocationId, SubgroupEqMask, SubgroupGeMask, SubgroupGtMask, SubgroupLeMask, or SubgroupLtMask BuiltIn decorations when used in the ray generation, closest hit, miss, intersection, or callable shaders, or with the RayTmaxKHR Builtin decoration when used in an intersection shader
VUID-StandaloneSpirv-XfbBuffer-04693NNoneexplicitStandaloneSpirvcoreAll variables or block members in the output interface of the entry point being compiled decorated with a specific XfbBuffer value must all be decorated with identical XfbStride values
VUID-StandaloneSpirv-XfbBuffer-04696NNoneexplicitStandaloneSpirvcoreFor any two variables or block members in the output interface of the entry point being compiled with the same XfbBuffer value, the ranges determined by the Offset decoration and the size of the type must not overlap
VUID-StandaloneSpirv-XfbBuffer-04697NNoneexplicitStandaloneSpirvcoreAll block members in the output interface of the entry point being compiled that are in the same block and have a declared or inherited XfbBuffer decoration must specify the same XfbBuffer value
VUID-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-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-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-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-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-03613YValidateCreateAccelerationStructureKHRReplayFeatureexplicitVkAccelerationStructureCreateInfoKHR(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-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-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-04623YValidateCreateAccelerationStructureNVexplicitVkAccelerationStructureInfoNV(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-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-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 \times \mathtt{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-fence-01289NNoneexplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If fence is not VK_NULL_HANDLE it must be unsignaled and must not be associated with any other queue command that has not yet completed execution on that queue
VUID-VkAcquireNextImageInfoKHR-fence-parameterYNoneimplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle
VUID-VkAcquireNextImageInfoKHR-pNext-pNextYNoneimplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)pNext must be NULL
VUID-VkAcquireNextImageInfoKHR-sType-sTypeYNoneimplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)sType must be VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR
VUID-VkAcquireNextImageInfoKHR-semaphore-01288YSwapchainAcquireImageWithSignaledSemaphoreexplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If semaphore is not VK_NULL_HANDLE it must be unsignaled
VUID-VkAcquireNextImageInfoKHR-semaphore-01781NNoneexplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If semaphore is not VK_NULL_HANDLE it must not have any uncompleted signal or wait operations pending
VUID-VkAcquireNextImageInfoKHR-semaphore-01782YSwapchainAcquireImageNoSync2KHRexplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)semaphore and fence must not both be equal to VK_NULL_HANDLE
VUID-VkAcquireNextImageInfoKHR-semaphore-03266YSwapchainAcquireImageNoBinarySemaphore2KHRexplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)semaphore must have a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY
VUID-VkAcquireNextImageInfoKHR-semaphore-parameterYNoneimplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle
VUID-VkAcquireNextImageInfoKHR-swapchain-01675YSwapchainAcquireImageRetiredexplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)swapchain must not be in the retired state
VUID-VkAcquireNextImageInfoKHR-swapchain-parameterYNoneimplicitVkAcquireNextImageInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)swapchain must be a valid VkSwapchainKHR handle
VUID-VkAcquireProfilingLockInfoKHR-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-VkAndroidHardwareBufferFormatProperties2ANDROID-sType-sTypeYNoneimplicitVkAndroidHardwareBufferFormatProperties2ANDROID(VK_ANDROID_external_memory_android_hardware_buffer)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID
VUID-VkAndroidHardwareBufferFormatPropertiesANDROID-sType-sTypeYNoneimplicitVkAndroidHardwareBufferFormatPropertiesANDROID(VK_ANDROID_external_memory_android_hardware_buffer)sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID
VUID-VkAndroidHardwareBufferPropertiesANDROID-pNext-pNextYNoneimplicitVkAndroidHardwareBufferPropertiesANDROID(VK_ANDROID_external_memory_android_hardware_buffer)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkAndroidHardwareBufferFormatProperties2ANDROID or VkAndroidHardwareBufferFormatPropertiesANDROID
VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-sTypeYNoneimplicitVkAndroidHardwareBufferPropertiesANDROID(VK_ANDROID_external_memory_android_hardware_buffer)sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID
VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-uniqueYNoneimplicitVkAndroidHardwareBufferPropertiesANDROID(VK_ANDROID_external_memory_android_hardware_buffer)The sType value of each struct in the pNext chain must be unique
VUID-VkAndroidHardwareBufferUsageANDROID-sType-sTypeYNoneimplicitVkAndroidHardwareBufferUsageANDROID(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_ANDROID_external_memory_android_hardware_buffer)sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID
VUID-VkAndroidSurfaceCreateInfoKHR-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-VkAttachmentDescription-finalLayout-00843YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescriptioncorefinalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED
VUID-VkAttachmentDescription-finalLayout-parameterYNoneimplicitVkAttachmentDescriptioncorefinalLayout must be a valid VkImageLayout value
VUID-VkAttachmentDescription-flags-parameterYNoneimplicitVkAttachmentDescriptioncoreflags must be a valid combination of VkAttachmentDescriptionFlagBits values
VUID-VkAttachmentDescription-format-03280YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescriptioncoreIf format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-03281YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescriptioncoreIf format is a depth/stencil format, initialLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
VUID-VkAttachmentDescription-format-03282YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescriptioncoreIf format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-03283YInvalidImageLayout, RenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescriptioncoreIf format is a depth/stencil format, finalLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
VUID-VkAttachmentDescription-format-03286YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-03287YRenderPassCreateAttachmentDescriptionInvalidFinalLayoutexplicitVkAttachmentDescription(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription-format-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-06487YNoneexplicitVkAttachmentDescription(VK_VERSION_1_1,VK_KHR_maintenance2)If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
VUID-VkAttachmentDescription-format-06488YNoneexplicitVkAttachmentDescription(VK_VERSION_1_1,VK_KHR_maintenance2)If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
VUID-VkAttachmentDescription-format-06698YAttachmentDescriptionUndefinedFormat, InvalidRenderPassAttachmentFormatexplicitVkAttachmentDescriptioncoreformat must not be VK_FORMAT_UNDEFINED
VUID-VkAttachmentDescription-format-06699YInvalidRenderPassAttachmentUndefinedLayoutexplicitVkAttachmentDescriptioncoreIf format includes a color or depth aspect and loadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then initialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED
VUID-VkAttachmentDescription-format-parameterYNoneimplicitVkAttachmentDescriptioncoreformat must be a valid VkFormat value
VUID-VkAttachmentDescription-initialLayout-parameterYNoneimplicitVkAttachmentDescriptioncoreinitialLayout must be a valid VkImageLayout 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-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-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-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-06701YRenderPassCreate2SubpassInvalidInputAttachmentParameters, InvalidRenderPassAttachmentFormatexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)format must not be VK_FORMAT_UNDEFINED
VUID-VkAttachmentDescription2-format-06702YInvalidRenderPassAttachmentUndefinedLayoutexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)If format includes a color or depth aspect and loadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then initialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED
VUID-VkAttachmentDescription2-format-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-pNext-06704YCreateRenderPassWithInvalidStencilLoadOpexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If the pNext chain does not include a VkAttachmentDescriptionStencilLayout structure, format includes a stencil aspect, and stencilLoadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then initialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED
VUID-VkAttachmentDescription2-pNext-06705YCreateRenderPassWithInvalidStencilLoadOpexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If the pNext chain does includes a VkAttachmentDescriptionStencilLayout structure, format includes a stencil aspect, and stencilLoadOp is VK_ATTACHMENT_LOAD_OP_LOAD, then VkAttachmentDescriptionStencilLayout::stencilInitialLayout must not be VK_IMAGE_LAYOUT_UNDEFINED
VUID-VkAttachmentDescription2-pNext-pNextYNoneimplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)pNext must be NULL or a pointer to a valid instance of VkAttachmentDescriptionStencilLayout
VUID-VkAttachmentDescription2-sType-sTypeYNoneimplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)sType must be VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2
VUID-VkAttachmentDescription2-sType-uniqueYNoneimplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)The sType value of each struct in the pNext chain must be unique
VUID-VkAttachmentDescription2-samples-parameterYNoneimplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)samples must be a valid VkSampleCountFlagBits value
VUID-VkAttachmentDescription2-separateDepthStencilLayouts-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-separateDepthStencilLayouts-06556YRenderPassCreateAttachmentReferenceInvalidLayoutexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If the separateDepthStencilLayouts feature is enabled and format is a depth/stencil format that includes a depth aspect and the pNext chain includes a VkAttachmentDescriptionStencilLayout structure, initialLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
VUID-VkAttachmentDescription2-separateDepthStencilLayouts-06557YRenderPassCreateAttachmentReferenceInvalidLayoutexplicitVkAttachmentDescription2(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)If the separateDepthStencilLayouts feature is enabled and format is a depth/stencil format that includes a depth aspect and the pNext chain includes a VkAttachmentDescriptionStencilLayout structure, finalLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
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-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-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-parameterYNoneimplicitVkAttachmentReferenceStencilLayout(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)stencilLayout must be a valid VkImageLayout value
VUID-VkAttachmentSampleCountInfoAMD-sType-sTypeYNoneimplicitVkAttachmentSampleCountInfoAMD(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)sType must be VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD
VUID-VkAttachmentSampleLocationsEXT-attachmentIndex-01531YRenderPassBeginSampleLocationsInvalidIndicesEXTexplicitVkAttachmentSampleLocationsEXT(VK_EXT_sample_locations)attachmentIndex must be less than the attachmentCount specified in VkRenderPassCreateInfo the render pass specified by VkRenderPassBeginInfo::renderPass was created with
VUID-VkAttachmentSampleLocationsEXT-sampleLocationsInfo-parameterNNoneimplicitVkAttachmentSampleLocationsEXT(VK_EXT_sample_locations)sampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure
VUID-VkBindAccelerationStructureMemoryInfoNV-accelerationStructure-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-01606YTestBindBufferMemoryDeviceGroupexplicitVkBindBufferMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)deviceIndexCount must either be zero or equal to the number of physical devices in the logical device
VUID-VkBindBufferMemoryDeviceGroupInfo-pDeviceIndices-01607YTestBindBufferMemoryDeviceGroupexplicitVkBindBufferMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)All elements of pDeviceIndices must be valid device indices
VUID-VkBindBufferMemoryDeviceGroupInfo-pDeviceIndices-parameterYNoneimplicitVkBindBufferMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)If deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values
VUID-VkBindBufferMemoryDeviceGroupInfo-sType-sTypeYNoneimplicitVkBindBufferMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)sType must be VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO
VUID-VkBindBufferMemoryInfo-None-01898YNoneexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1)If buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit set, the buffer must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT
VUID-VkBindBufferMemoryInfo-None-01899YNoneexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1)If buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit not set, the buffer must not be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT
VUID-VkBindBufferMemoryInfo-buffer-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-06408NNoneexplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_FUCHSIA_buffer_collection)If buffer was created with VkBufferCollectionBufferCreateInfoFUCHSIA chained to VkBufferCreateInfo::pNext, memory must be allocated with a VkImportMemoryBufferCollectionFUCHSIA chained to VkMemoryAllocateInfo::pNext
VUID-VkBindBufferMemoryInfo-buffer-parameterYNoneimplicitVkBindBufferMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)buffer must be a valid VkBuffer handle
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-01633YInvalidImageSplitInstanceBindRegionCount, InvalidBindIMageMemoryDeviceGroupInfoexplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)At least one of deviceIndexCount and splitInstanceBindRegionCount must be zero
VUID-VkBindImageMemoryDeviceGroupInfo-deviceIndexCount-01634YTestBindBufferMemoryDeviceGroupexplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)deviceIndexCount must either be zero or equal to the number of physical devices in the logical device
VUID-VkBindImageMemoryDeviceGroupInfo-extent-01640NNoneexplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)The extent.width member of any element of pSplitInstanceBindRegions must either be a multiple of the sparse image block width of all non-metadata aspects of the image, or else extent.width + offset.x must equal the width of the image subresource
VUID-VkBindImageMemoryDeviceGroupInfo-extent-01641NNoneexplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)The extent.height member of any element of pSplitInstanceBindRegions must either be a multiple of the sparse image block height of all non-metadata aspects of the image, or else extent.height + offset.y must equal the height of the image subresource
VUID-VkBindImageMemoryDeviceGroupInfo-offset-01638NNoneexplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)The offset.x member of any element of pSplitInstanceBindRegions must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of all non-metadata aspects of the image
VUID-VkBindImageMemoryDeviceGroupInfo-offset-01639NNoneexplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)The offset.y member of any element of pSplitInstanceBindRegions must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of all non-metadata aspects of the image
VUID-VkBindImageMemoryDeviceGroupInfo-pDeviceIndices-01635NNoneexplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)All elements of pDeviceIndices must be valid device indices
VUID-VkBindImageMemoryDeviceGroupInfo-pDeviceIndices-parameterYNoneimplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)If deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values
VUID-VkBindImageMemoryDeviceGroupInfo-pSplitInstanceBindRegions-01637NNoneexplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)Elements of pSplitInstanceBindRegions that correspond to the same instance of an image must not overlap
VUID-VkBindImageMemoryDeviceGroupInfo-pSplitInstanceBindRegions-parameterYNoneimplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)If splitInstanceBindRegionCount is not 0, pSplitInstanceBindRegions must be a valid pointer to an array of splitInstanceBindRegionCount VkRect2D structures
VUID-VkBindImageMemoryDeviceGroupInfo-sType-sTypeYNoneimplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO
VUID-VkBindImageMemoryDeviceGroupInfo-splitInstanceBindRegionCount-01636YInvalidImageSplitInstanceBindRegionCountWithDeviceGroupexplicitVkBindImageMemoryDeviceGroupInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)splitInstanceBindRegionCount must either be zero or equal to the number of physical devices in the logical device squared
VUID-VkBindImageMemoryInfo-None-01901YNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1)If image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit set, the image must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT
VUID-VkBindImageMemoryInfo-None-01902YNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1)If image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit not set, the image must not be bound to a memory object created with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT
VUID-VkBindImageMemoryInfo-commonparentYNoneimplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)Both of image, and memory that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkBindImageMemoryInfo-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-01612YValidateImportMemoryHandleType, BindInvalidMemory2DisjointexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with image
VUID-VkBindImageMemoryInfo-memory-01614YValidateImportMemoryHandleType, BindInvalidMemory2DisjointexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)The difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with the same image
VUID-VkBindImageMemoryInfo-memory-01625NNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+!(VK_VERSION_1_1+VK_KHR_swapchain)+!(VK_KHR_device_group+VK_KHR_swapchain)memory must be a valid VkDeviceMemory handle
VUID-VkBindImageMemoryInfo-memory-02628NNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_NV_dedicated_allocation_image_aliasing)If the 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-01615YAndroidHardwareBufferImportImageHandleType, BindInvalidMemory2DisjointexplicitVkBindImageMemoryInfo(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-01617YAndroidHardwareBufferImportImageHandleType, BindInvalidMemory2DisjointexplicitVkBindImageMemoryInfo(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-01619YBindInvalidMemoryYcbcr, BindInvalidMemory2DisjointexplicitVkBindImageMemoryInfo(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-01620YBindInvalidMemoryNoCheck, BindInvalidMemory2DisjointexplicitVkBindImageMemoryInfo(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-01621YBindInvalidMemoryYcbcr, BindInvalidMemory2DisjointexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the pNext chain includes a VkBindImagePlaneMemoryInfo structure, the difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with the same image and where VkBindImagePlaneMemoryInfo::planeAspect corresponds to the VkImagePlaneMemoryRequirementsInfo::planeAspect in the VkImageMemoryRequirementsInfo2 structure's pNext chain
VUID-VkBindImageMemoryInfo-pNext-01626NNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)If the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, all instances of memory specified by VkBindImageMemoryDeviceGroupInfo::pDeviceIndices must have been allocated
VUID-VkBindImageMemoryInfo-pNext-01627YInvalidImageSplitInstanceBindRegionCountexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)If the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, and VkBindImageMemoryDeviceGroupInfo::splitInstanceBindRegionCount is not zero, then image must have been created with the VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT bit set
VUID-VkBindImageMemoryInfo-pNext-01628NNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)If the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, all elements of VkBindImageMemoryDeviceGroupInfo::pSplitInstanceBindRegions must be valid rectangles contained within the dimensions of image
VUID-VkBindImageMemoryInfo-pNext-01629NNoneexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)If the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, the union of the areas of all elements of VkBindImageMemoryDeviceGroupInfo::pSplitInstanceBindRegions that correspond to the same instance of image must cover the entire image
VUID-VkBindImageMemoryInfo-pNext-01631YBindImageMemorySwapchainexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)If the pNext chain includes a VkBindImageMemorySwapchainInfoKHR structure, memory must be VK_NULL_HANDLE
VUID-VkBindImageMemoryInfo-pNext-01632YBindImageMemorySwapchainexplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)If the pNext chain does not include a VkBindImageMemorySwapchainInfoKHR structure, memory must be a valid VkDeviceMemory handle
VUID-VkBindImageMemoryInfo-pNext-pNextYNoneimplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkBindImageMemoryDeviceGroupInfo, VkBindImageMemorySwapchainInfoKHR, or VkBindImagePlaneMemoryInfo
VUID-VkBindImageMemoryInfo-sType-sTypeYNoneimplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO
VUID-VkBindImageMemoryInfo-sType-uniqueYNoneimplicitVkBindImageMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)The sType value of each struct in the pNext chain must be unique
VUID-VkBindImageMemorySwapchainInfoKHR-imageIndex-01644YBindImageMemorySwapchainexplicitVkBindImageMemorySwapchainInfoKHR(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)imageIndex must be less than the number of images in swapchain
VUID-VkBindImageMemorySwapchainInfoKHR-sType-sTypeYNoneimplicitVkBindImageMemorySwapchainInfoKHR(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR
VUID-VkBindImageMemorySwapchainInfoKHR-swapchain-parameterNNoneimplicitVkBindImageMemorySwapchainInfoKHR(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)swapchain must be a valid VkSwapchainKHR handle
VUID-VkBindImagePlaneMemoryInfo-planeAspect-02283YBindInvalidMemoryYcbcrexplicitVkBindImagePlaneMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the image's tiling is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, then planeAspect must be a single valid format plane for the image (that is, for a two-plane image planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT, and for a three-plane image planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT or VK_IMAGE_ASPECT_PLANE_2_BIT)
VUID-VkBindImagePlaneMemoryInfo-planeAspect-02284NNoneexplicitVkBindImagePlaneMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier)If the image's tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then planeAspect must be a single valid memory plane for the image (that is, aspectMask must specify a plane index that is less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image's format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier)
VUID-VkBindImagePlaneMemoryInfo-planeAspect-parameterYNoneimplicitVkBindImagePlaneMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)planeAspect must be a valid VkImageAspectFlagBits value
VUID-VkBindImagePlaneMemoryInfo-sType-sTypeYNoneimplicitVkBindImagePlaneMemoryInfo(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO
VUID-VkBindIndexBufferIndirectCommandNV-None-02946NNoneexplicitVkBindIndexBufferIndirectCommandNV(VK_NV_device_generated_commands)The buffer's usage flag from which the address was acquired must have the VK_BUFFER_USAGE_INDEX_BUFFER_BIT bit set
VUID-VkBindIndexBufferIndirectCommandNV-None-02948NNoneexplicitVkBindIndexBufferIndirectCommandNV(VK_NV_device_generated_commands)Each element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBindIndexBufferIndirectCommandNV-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-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-VkBlitImageInfo2-aspectMask-00241YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage
VUID-VkBlitImageInfo2-aspectMask-00242YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage
VUID-VkBlitImageInfo2-commonparentYNoneimplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-VkBlitImageInfo2-dstImage-00224YCopyCommands2V13explicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkBlitImageInfo2-dstImage-00225YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBlitImageInfo2-dstImage-00234YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT
VUID-VkBlitImageInfo2-dstImage-00250YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffsets[0].y must be 0 and dstOffsets[1].y must be 1
VUID-VkBlitImageInfo2-dstImage-00252YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffsets[0].z must be 0 and dstOffsets[1].z must be 1
VUID-VkBlitImageInfo2-dstImage-02000YBlitImageFormatTypesexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The format features of dstImage must contain VK_FORMAT_FEATURE_BLIT_DST_BIT
VUID-VkBlitImageInfo2-dstImage-02545YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkBlitImageInfo2-dstImage-06422YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)dstImage must not use a format that requires a sampler {YCbCr} conversion
VUID-VkBlitImageInfo2-dstImage-parameterYNoneimplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImage must be a valid VkImage handle
VUID-VkBlitImageInfo2-dstImageLayout-00226YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice
VUID-VkBlitImageInfo2-dstImageLayout-00227YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkBlitImageInfo2-dstImageLayout-01399YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkBlitImageInfo2-dstImageLayout-parameterYNoneimplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImageLayout must be a valid VkImageLayout value
VUID-VkBlitImageInfo2-dstOffset-00248YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, dstOffsets[0].x and dstOffsets[1].x must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage
VUID-VkBlitImageInfo2-dstOffset-00249YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, dstOffsets[0].y and dstOffsets[1].y must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage
VUID-VkBlitImageInfo2-dstOffset-00251YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, dstOffsets[0].z and dstOffsets[1].z must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage
VUID-VkBlitImageInfo2-dstSubresource-01706YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-VkBlitImageInfo2-dstSubresource-01708YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created
VUID-VkBlitImageInfo2-filter-00237YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If filter is VK_FILTER_CUBIC_EXT, srcImage must be of type VK_IMAGE_TYPE_2D
VUID-VkBlitImageInfo2-filter-02001YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If filter is VK_FILTER_LINEAR, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VUID-VkBlitImageInfo2-filter-02002YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)If filter is VK_FILTER_CUBIC_EXT, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
VUID-VkBlitImageInfo2-filter-parameterYNoneimplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)filter must be a valid VkFilter value
VUID-VkBlitImageInfo2-pNext-pNextYNoneimplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)pNext must be NULL
VUID-VkBlitImageInfo2-pRegions-00215YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The source region specified by each element of pRegions must be a region that is contained within srcImage
VUID-VkBlitImageInfo2-pRegions-00216YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The destination region specified by each element of pRegions must be a region that is contained within dstImage
VUID-VkBlitImageInfo2-pRegions-00217YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The union of all destination regions, specified by the elements of pRegions, must not overlap in memory with any texel that may be sampled during the blit operation
VUID-VkBlitImageInfo2-pRegions-04561NNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage and dstImage must not be block-compressed images
VUID-VkBlitImageInfo2-pRegions-parameterYNoneimplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)pRegions must be a valid pointer to an array of regionCount valid VkImageBlit2 structures
VUID-VkBlitImageInfo2-regionCount-arraylengthYNoneimplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)regionCount must be greater than 0
VUID-VkBlitImageInfo2-sType-sTypeYNoneimplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2
VUID-VkBlitImageInfo2-srcImage-00219YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkBlitImageInfo2-srcImage-00220YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBlitImageInfo2-srcImage-00229YBlitImageFormatTypesexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If either of srcImage or dstImage was created with a signed integer VkFormat, the other must also have been created with a signed integer VkFormat
VUID-VkBlitImageInfo2-srcImage-00230YBlitImageFormatTypesexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If either of srcImage or dstImage was created with an unsigned integer VkFormat, the other must also have been created with an unsigned integer VkFormat
VUID-VkBlitImageInfo2-srcImage-00231YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If either of srcImage or dstImage was created with a depth/stencil format, the other must have exactly the same format
VUID-VkBlitImageInfo2-srcImage-00232YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If srcImage was created with a depth/stencil format, filter must be VK_FILTER_NEAREST
VUID-VkBlitImageInfo2-srcImage-00233YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT
VUID-VkBlitImageInfo2-srcImage-00240YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If either srcImage or dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must each be 0, and srcSubresource.layerCount and dstSubresource.layerCount must each be 1
VUID-VkBlitImageInfo2-srcImage-00245YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffsets[0].y must be 0 and srcOffsets[1].y must be 1
VUID-VkBlitImageInfo2-srcImage-00247YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffsets[0].z must be 0 and srcOffsets[1].z must be 1
VUID-VkBlitImageInfo2-srcImage-01999YBlitImageFormatTypesexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The format features of srcImage must contain VK_FORMAT_FEATURE_BLIT_SRC_BIT
VUID-VkBlitImageInfo2-srcImage-06421YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)srcImage must not use a format that requires a sampler {YCbCr} conversion
VUID-VkBlitImageInfo2-srcImage-parameterYNoneimplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImage must be a valid VkImage handle
VUID-VkBlitImageInfo2-srcImageLayout-00221YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice
VUID-VkBlitImageInfo2-srcImageLayout-00222YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkBlitImageInfo2-srcImageLayout-01398YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkBlitImageInfo2-srcImageLayout-parameterYNoneimplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImageLayout must be a valid VkImageLayout value
VUID-VkBlitImageInfo2-srcOffset-00243YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, srcOffsets[0].x and srcOffsets[1].x must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage
VUID-VkBlitImageInfo2-srcOffset-00244YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, srcOffsets[0].y and srcOffsets[1].y must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage
VUID-VkBlitImageInfo2-srcOffset-00246YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, srcOffsets[0].z and srcOffsets[1].z must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage
VUID-VkBlitImageInfo2-srcSubresource-01705YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-VkBlitImageInfo2-srcSubresource-01707YNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created
VUID-VkBlitImageInfo2KHR-pRegions-06207NNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must be of type VK_IMAGE_TYPE_2D
VUID-VkBlitImageInfo2KHR-pRegions-06208NNoneexplicitVkBlitImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must not have a multi-planar format
VUID-VkBufferCollectionBufferCreateInfoFUCHSIA-collection-parameterNNoneimplicitVkBufferCollectionBufferCreateInfoFUCHSIA(VK_FUCHSIA_buffer_collection)collection must be a valid VkBufferCollectionFUCHSIA handle
VUID-VkBufferCollectionBufferCreateInfoFUCHSIA-index-06388NNoneexplicitVkBufferCollectionBufferCreateInfoFUCHSIA(VK_FUCHSIA_buffer_collection)index must be less than VkBufferCollectionPropertiesFUCHSIA::bufferCount
VUID-VkBufferCollectionBufferCreateInfoFUCHSIA-sType-sTypeYNoneimplicitVkBufferCollectionBufferCreateInfoFUCHSIA(VK_FUCHSIA_buffer_collection)sType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA
VUID-VkBufferCollectionConstraintsInfoFUCHSIA-pNext-pNextYNoneimplicitVkBufferCollectionConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)pNext must be NULL
VUID-VkBufferCollectionConstraintsInfoFUCHSIA-sType-sTypeYNoneimplicitVkBufferCollectionConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)sType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA
VUID-VkBufferCollectionCreateInfoFUCHSIA-collectionToken-06393NNoneexplicitVkBufferCollectionCreateInfoFUCHSIA(VK_FUCHSIA_buffer_collection)collectionToken must be a valid zx_handle_t to a Zircon channel allocated from Sysmem (fuchsia.sysmem.Allocator/AllocateSharedCollection) with ZX_DEFAULT_CHANNEL_RIGHTS rights
VUID-VkBufferCollectionCreateInfoFUCHSIA-pNext-pNextYNoneimplicitVkBufferCollectionCreateInfoFUCHSIA(VK_FUCHSIA_buffer_collection)pNext must be NULL
VUID-VkBufferCollectionCreateInfoFUCHSIA-sType-sTypeYNoneimplicitVkBufferCollectionCreateInfoFUCHSIA(VK_FUCHSIA_buffer_collection)sType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA
VUID-VkBufferCollectionImageCreateInfoFUCHSIA-collection-parameterNNoneimplicitVkBufferCollectionImageCreateInfoFUCHSIA(VK_FUCHSIA_buffer_collection)collection must be a valid VkBufferCollectionFUCHSIA handle
VUID-VkBufferCollectionImageCreateInfoFUCHSIA-index-06391NNoneexplicitVkBufferCollectionImageCreateInfoFUCHSIA(VK_FUCHSIA_buffer_collection)index must be less than VkBufferCollectionPropertiesFUCHSIA::bufferCount
VUID-VkBufferCollectionImageCreateInfoFUCHSIA-sType-sTypeYNoneimplicitVkBufferCollectionImageCreateInfoFUCHSIA(VK_FUCHSIA_buffer_collection)sType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA
VUID-VkBufferCollectionPropertiesFUCHSIA-formatFeatures-parameterNNoneimplicitVkBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)formatFeatures must be a valid combination of VkFormatFeatureFlagBits values
VUID-VkBufferCollectionPropertiesFUCHSIA-pNext-pNextNNoneimplicitVkBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)pNext must be NULL
VUID-VkBufferCollectionPropertiesFUCHSIA-sType-sTypeYNoneimplicitVkBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)sType must be VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA
VUID-VkBufferCollectionPropertiesFUCHSIA-samplerYcbcrConversionComponents-parameterNNoneimplicitVkBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)samplerYcbcrConversionComponents must be a valid VkComponentMapping structure
VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedXChromaOffset-parameterNNoneimplicitVkBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)suggestedXChromaOffset must be a valid VkChromaLocation value
VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedYChromaOffset-parameterNNoneimplicitVkBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)suggestedYChromaOffset must be a valid VkChromaLocation value
VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedYcbcrModel-parameterNNoneimplicitVkBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)suggestedYcbcrModel must be a valid VkSamplerYcbcrModelConversion value
VUID-VkBufferCollectionPropertiesFUCHSIA-suggestedYcbcrRange-parameterNNoneimplicitVkBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)suggestedYcbcrRange must be a valid VkSamplerYcbcrRange value
VUID-VkBufferCollectionPropertiesFUCHSIA-sysmemColorSpaceIndex-parameterNNoneimplicitVkBufferCollectionPropertiesFUCHSIA(VK_FUCHSIA_buffer_collection)sysmemColorSpaceIndex must be a valid VkSysmemColorSpaceFUCHSIA structure
VUID-VkBufferConstraintsInfoFUCHSIA-bufferCollectionConstraints-parameterNNoneimplicitVkBufferConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)bufferCollectionConstraints must be a valid VkBufferCollectionConstraintsInfoFUCHSIA structure
VUID-VkBufferConstraintsInfoFUCHSIA-createInfo-parameterNNoneimplicitVkBufferConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)createInfo must be a valid VkBufferCreateInfo structure
VUID-VkBufferConstraintsInfoFUCHSIA-pNext-pNextYNoneimplicitVkBufferConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)pNext must be NULL
VUID-VkBufferConstraintsInfoFUCHSIA-requiredFormatFeatures-06404NNoneexplicitVkBufferConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)The requiredFormatFeatures bitmask of VkFormatFeatureFlagBits must be chosen from among the buffer compatible format features listed in buffer compatible format features
VUID-VkBufferConstraintsInfoFUCHSIA-requiredFormatFeatures-parameterYNoneimplicitVkBufferConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)requiredFormatFeatures must be a valid combination of VkFormatFeatureFlagBits values
VUID-VkBufferConstraintsInfoFUCHSIA-sType-sTypeYNoneimplicitVkBufferConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)sType must be VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA
VUID-VkBufferCopy-size-01988YBufferExtentsexplicitVkBufferCopycoreThe size must be greater than 0
VUID-VkBufferCopy2-pNext-pNextYNoneimplicitVkBufferCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)pNext must be NULL
VUID-VkBufferCopy2-sType-sTypeYNoneimplicitVkBufferCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_BUFFER_COPY_2
VUID-VkBufferCopy2-size-01988YNoneexplicitVkBufferCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)The size must be greater than 0
VUID-VkBufferCreateInfo-None-01888YInvalidProtectedMemoryexplicitVkBufferCreateInfo(VK_VERSION_1_1)If any of the bits VK_BUFFER_CREATE_SPARSE_BINDING_BIT, VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT, or VK_BUFFER_CREATE_SPARSE_ALIASED_BIT are set, VK_BUFFER_CREATE_PROTECTED_BIT must not also be set
VUID-VkBufferCreateInfo-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-01887YInvalidProtectedSubmitexplicitVkBufferCreateInfo(VK_VERSION_1_1)If the protected memory feature is not enabled, flags must not contain VK_BUFFER_CREATE_PROTECTED_BIT
VUID-VkBufferCreateInfo-flags-parameterYNoneimplicitVkBufferCreateInfocoreflags must be a valid combination of VkBufferCreateFlagBits values
VUID-VkBufferCreateInfo-pNext-00920NNoneexplicitVkBufferCreateInfo(VK_VERSION_1_1,VK_KHR_external_memory)If the pNext chain includes a VkExternalMemoryBufferCreateInfo structure, its handleTypes member must only contain bits that are also in VkExternalBufferProperties::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceExternalBufferProperties with pExternalBufferInfo->handleType equal to any one of the handle types specified in VkExternalMemoryBufferCreateInfo::handleTypes
VUID-VkBufferCreateInfo-pNext-01571YDedicatedAllocationBufferWithInvalidFlagsexplicitVkBufferCreateInfo(VK_NV_dedicated_allocation)If the pNext chain includes a VkDedicatedAllocationBufferCreateInfoNV structure, and the dedicatedAllocation member of the chained structure is VK_TRUE, then flags must not include VK_BUFFER_CREATE_SPARSE_BINDING_BIT, VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT, or VK_BUFFER_CREATE_SPARSE_ALIASED_BIT
VUID-VkBufferCreateInfo-pNext-pNextYNoneimplicitVkBufferCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkBufferCollectionBufferCreateInfoFUCHSIA, VkBufferDeviceAddressCreateInfoEXT, VkBufferOpaqueCaptureAddressCreateInfo, VkDedicatedAllocationBufferCreateInfoNV, VkExternalMemoryBufferCreateInfo, VkVideoDecodeH264ProfileEXT, VkVideoDecodeH265ProfileEXT, VkVideoEncodeH264ProfileEXT, VkVideoEncodeH265ProfileEXT, 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-01391YInvalidQueueFamilyIndexexplicitVkBufferCreateInfo!(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the physicalDevice that was used to create device
VUID-VkBufferCreateInfo-sharingMode-01419YInvalidQueueFamilyIndexexplicitVkBufferCreateInfo(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by either vkGetPhysicalDeviceQueueFamilyProperties or vkGetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create device
VUID-VkBufferCreateInfo-sharingMode-parameterYNoneimplicitVkBufferCreateInfocoresharingMode must be a valid VkSharingMode value
VUID-VkBufferCreateInfo-size-00912YInvalidCreateBufferSizeexplicitVkBufferCreateInfocoresize must be greater than 0
VUID-VkBufferCreateInfo-size-06409YNoneexplicitVkBufferCreateInfo(VK_VERSION_1_3,VK_KHR_maintenance4)size must be less than or equal to VkPhysicalDeviceMaintenance4Properties::maxBufferSize
VUID-VkBufferCreateInfo-usage-04813YVideoBufferUsageexplicitVkBufferCreateInfo(VK_KHR_video_decode_queue)If usage includes VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR, VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR, then the pNext chain must include a valid VkVideoProfilesKHR structure which includes at least one VkVideoProfileKHR with a decode codec-operation
VUID-VkBufferCreateInfo-usage-04814YVideoBufferUsageexplicitVkBufferCreateInfo(VK_KHR_video_encode_queue)If usage includes VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR, VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR, then the pNext chain must include a valid VkVideoProfilesKHR structure which includes at least one VkVideoProfileKHR with a encode codec-operation
VUID-VkBufferCreateInfo-usage-parameterYTransformFeedbackCmdEndTransformFeedbackEXT, TransformFeedbackCmdBindTransformFeedbackBuffersEXT, TransformFeedbackCmdBeginTransformFeedbackEXTimplicitVkBufferCreateInfocoreusage must be a valid combination of VkBufferUsageFlagBits values
VUID-VkBufferImageCopy-aspectMask-00212YImageBufferCopyTestsexplicitVkBufferImageCopycoreThe aspectMask member of imageSubresource must only have a single bit set
VUID-VkBufferImageCopy-bufferImageHeight-00196YMiscImageLayerTestsexplicitVkBufferImageCopycorebufferImageHeight must be 0, or greater than or equal to the height member of imageExtent
VUID-VkBufferImageCopy-bufferRowLength-00195YMiscImageLayerTestsexplicitVkBufferImageCopycorebufferRowLength must be 0, or greater than or equal to the width member of imageExtent
VUID-VkBufferImageCopy-imageExtent-06659YImageBufferCopyTestsexplicitVkBufferImageCopycoreimageExtent.width must not be 0
VUID-VkBufferImageCopy-imageExtent-06660YCopyImageZeroSizeexplicitVkBufferImageCopycoreimageExtent.height must not be 0
VUID-VkBufferImageCopy-imageExtent-06661YCopyImageZeroSize, MiscImageLayerTestsexplicitVkBufferImageCopycoreimageExtent.depth must not be 0
VUID-VkBufferImageCopy-imageSubresource-parameterNNoneimplicitVkBufferImageCopycoreimageSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkBufferImageCopy2-aspectMask-00212YNoneexplicitVkBufferImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)The aspectMask member of imageSubresource must only have a single bit set
VUID-VkBufferImageCopy2-bufferImageHeight-00196YNoneexplicitVkBufferImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent
VUID-VkBufferImageCopy2-bufferRowLength-00195YNoneexplicitVkBufferImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)bufferRowLength must be 0, or greater than or equal to the width member of imageExtent
VUID-VkBufferImageCopy2-imageExtent-06659YNoneexplicitVkBufferImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)imageExtent.width must not be 0
VUID-VkBufferImageCopy2-imageExtent-06660YNoneexplicitVkBufferImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)imageExtent.height must not be 0
VUID-VkBufferImageCopy2-imageExtent-06661YNoneexplicitVkBufferImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)imageExtent.depth must not be 0
VUID-VkBufferImageCopy2-imageSubresource-parameterNNoneimplicitVkBufferImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)imageSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkBufferImageCopy2-pNext-pNextYNoneimplicitVkBufferImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)pNext must be NULL or a pointer to a valid instance of VkCopyCommandTransformInfoQCOM
VUID-VkBufferImageCopy2-sType-sTypeYNoneimplicitVkBufferImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2
VUID-VkBufferImageCopy2-sType-uniqueYNoneimplicitVkBufferImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)The sType value of each struct in the pNext chain must be unique
VUID-VkBufferMemoryBarrier-buffer-01931YNoneexplicitVkBufferMemoryBarriercoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBufferMemoryBarrier-buffer-04086YInvalidBarrierQueueFamilyexplicitVkBufferMemoryBarrier!(VK_VERSION_1_1,VK_KHR_external_memory)If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must be valid queue families
VUID-VkBufferMemoryBarrier-buffer-04088YInvalidBarrierQueueFamilyWithMemExtexplicitVkBufferMemoryBarrier(VK_VERSION_1_1,VK_KHR_external_memory)If buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, and one of srcQueueFamilyIndex and dstQueueFamilyIndex is one of the special queue family values reserved for external memory transfers, the other must be VK_QUEUE_FAMILY_IGNORED
VUID-VkBufferMemoryBarrier-buffer-04089YInvalidBarrierQueueFamilyWithMemExtexplicitVkBufferMemoryBarrier(VK_VERSION_1_1,VK_KHR_external_memory)If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in Queue Family Ownership Transfer
VUID-VkBufferMemoryBarrier-buffer-parameterYNoneimplicitVkBufferMemoryBarriercorebuffer must be a valid VkBuffer handle
VUID-VkBufferMemoryBarrier-offset-01187YInvalidBarriersexplicitVkBufferMemoryBarriercoreoffset must be less than the size of buffer
VUID-VkBufferMemoryBarrier-pNext-pNextYNoneimplicitVkBufferMemoryBarriercorepNext must be NULL
VUID-VkBufferMemoryBarrier-sType-sTypeYNoneimplicitVkBufferMemoryBarriercoresType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
VUID-VkBufferMemoryBarrier-size-01188YInvalidBarriersexplicitVkBufferMemoryBarriercoreIf size is not equal to VK_WHOLE_SIZE, size must be greater than 0
VUID-VkBufferMemoryBarrier-size-01189YInvalidBarriersexplicitVkBufferMemoryBarriercoreIf size is not equal to VK_WHOLE_SIZE, size must be less than or equal to than the size of buffer minus offset
VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-04087YTestInvalidBarrierQueuesexplicitVkBufferMemoryBarrier(VK_VERSION_1_1,VK_KHR_external_memory)If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one must not be a special queue family reserved for external memory ownership transfers, as described in Queue Family Ownership Transfer
VUID-VkBufferMemoryBarrier-synchronization2-03852YInvalidBarrierQueueFamilyexplicitVkBufferMemoryBarrier!(VK_VERSION_1_1,VK_KHR_external_memory)If the synchronization2 feature is not enabled, and buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex must both be VK_QUEUE_FAMILY_IGNORED
VUID-VkBufferMemoryBarrier-synchronization2-03853YSync2InvalidBarrierQueueFamily, InvalidBarrierQueueFamilyWithMemExtexplicitVkBufferMemoryBarrier(VK_VERSION_1_1,VK_KHR_external_memory)If the synchronization2 feature is not enabled, and buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, at least one of srcQueueFamilyIndex and dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED
VUID-VkBufferMemoryBarrier2-buffer-01931YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBufferMemoryBarrier2-buffer-04086YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+!(VK_VERSION_1_1,VK_KHR_external_memory)If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must be valid queue families
VUID-VkBufferMemoryBarrier2-buffer-04088YSync2InvalidBarrierQueueFamilyexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory)If buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, and one of srcQueueFamilyIndex and dstQueueFamilyIndex is one of the special queue family values reserved for external memory transfers, the other must be VK_QUEUE_FAMILY_IGNORED
VUID-VkBufferMemoryBarrier2-buffer-04089YSync2InvalidBarrierQueueFamilyexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory)If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in Queue Family Ownership Transfer
VUID-VkBufferMemoryBarrier2-buffer-parameterYNoneimplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)buffer must be a valid VkBuffer handle
VUID-VkBufferMemoryBarrier2-dstStageMask-03931YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,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-VkBufferMemoryBarrier2-dstStageMask-03932YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,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-VkBufferMemoryBarrier2-dstStageMask-03933YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,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-VkBufferMemoryBarrier2-offset-01187YSync2InvalidBarriersexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)offset must be less than the size of buffer
VUID-VkBufferMemoryBarrier2-pNext-pNextYNoneimplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)pNext must be NULL
VUID-VkBufferMemoryBarrier2-sType-sTypeYNoneimplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2
VUID-VkBufferMemoryBarrier2-size-01188YSync2InvalidBarriersexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If size is not equal to VK_WHOLE_SIZE, size must be greater than 0
VUID-VkBufferMemoryBarrier2-size-01189YSync2InvalidBarriersexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)If size is not equal to VK_WHOLE_SIZE, size must be less than or equal to than the size of buffer minus offset
VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-04087YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory)If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one must not be a special queue family reserved for external memory ownership transfers, as described in Queue Family Ownership Transfer
VUID-VkBufferMemoryBarrier2-srcStageMask-03931YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,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-VkBufferMemoryBarrier2-srcStageMask-03932YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,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-VkBufferMemoryBarrier2-srcStageMask-03933YNoneexplicitVkBufferMemoryBarrier2(VK_VERSION_1_3,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-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-VkBufferViewCreateInfo-buffer-00932YInvalidBufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocorebuffer must have been created with a usage value containing at least one of VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT or VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT
VUID-VkBufferViewCreateInfo-buffer-00933YInvalidBufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocoreIf buffer was created with usage containing VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, format must be supported for uniform texel buffers, as specified by the VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT flag in VkFormatProperties::bufferFeatures returned by vkGetPhysicalDeviceFormatProperties
VUID-VkBufferViewCreateInfo-buffer-00934YInvalidStorageAtomicOperation, InvalidBufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocoreIf buffer was created with usage containing VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, format must be supported for storage texel buffers, as specified by the VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT flag in VkFormatProperties::bufferFeatures returned by vkGetPhysicalDeviceFormatProperties
VUID-VkBufferViewCreateInfo-buffer-00935YNoneexplicitVkBufferViewCreateInfocoreIf buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkBufferViewCreateInfo-buffer-02750YInvalidTexelBufferAlignmentexplicitVkBufferViewCreateInfo(VK_VERSION_1_3,VK_EXT_texel_buffer_alignment)If the texelBufferAlignment feature is enabled and if buffer was created with usage containing VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, offset must be a multiple of the lesser of VkPhysicalDeviceTexelBufferAlignmentProperties::storageTexelBufferOffsetAlignmentBytes or, if VkPhysicalDeviceTexelBufferAlignmentProperties::storageTexelBufferOffsetSingleTexelAlignment is VK_TRUE, the size of a texel of the requested format. If the size of a texel is a multiple of three bytes, then the size of a single component of format is used instead
VUID-VkBufferViewCreateInfo-buffer-02751YInvalidTexelBufferAlignmentexplicitVkBufferViewCreateInfo(VK_VERSION_1_3,VK_EXT_texel_buffer_alignment)If the texelBufferAlignment feature is enabled and if buffer was created with usage containing VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, offset must be a multiple of the lesser of VkPhysicalDeviceTexelBufferAlignmentProperties::uniformTexelBufferOffsetAlignmentBytes or, if VkPhysicalDeviceTexelBufferAlignmentProperties::uniformTexelBufferOffsetSingleTexelAlignment is VK_TRUE, the size of a texel of the requested format. If the size of a texel is a multiple of three bytes, then the size of a single component of format is used instead
VUID-VkBufferViewCreateInfo-buffer-parameterYNoneimplicitVkBufferViewCreateInfocorebuffer must be a valid VkBuffer handle
VUID-VkBufferViewCreateInfo-format-parameterYNoneimplicitVkBufferViewCreateInfocoreformat must be a valid VkFormat value
VUID-VkBufferViewCreateInfo-offset-00925YInvalidBufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocoreoffset must be less than the size of buffer
VUID-VkBufferViewCreateInfo-offset-00926YInvalidBufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfo!(VK_VERSION_1_3,VK_EXT_texel_buffer_alignment)offset must be a multiple of VkPhysicalDeviceLimits::minTexelBufferOffsetAlignment
VUID-VkBufferViewCreateInfo-offset-00931YInvalidBufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfocoreIf range is not equal to VK_WHOLE_SIZE, the sum of offset and range must be less than or equal to the size of buffer
VUID-VkBufferViewCreateInfo-offset-02749YInvalidBufferViewCreateInfoEntriesexplicitVkBufferViewCreateInfo(VK_VERSION_1_3,VK_EXT_texel_buffer_alignment)If the texelBufferAlignment feature is not enabled, offset must be a multiple of VkPhysicalDeviceLimits::minTexelBufferOffsetAlignment
VUID-VkBufferViewCreateInfo-pNext-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_VERSION_1_3,VK_KHR_synchronization2)pNext must be NULL
VUID-VkCheckpointData2NV-sType-sTypeYNoneimplicitVkCheckpointData2NV(VK_NV_device_diagnostic_checkpoints)+(VK_VERSION_1_3,VK_KHR_synchronization2)sType must be VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV
VUID-VkCheckpointDataNV-pNext-pNextYNoneimplicitVkCheckpointDataNV(VK_NV_device_diagnostic_checkpoints)pNext must be NULL
VUID-VkCheckpointDataNV-sType-sTypeYNoneimplicitVkCheckpointDataNV(VK_NV_device_diagnostic_checkpoints)sType must be VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV
VUID-VkClearAttachment-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-arraylengthYNoneimplicitVkCoarseSampleOrderCustomNV(VK_NV_shading_rate_image)sampleLocationCount must be greater than 0
VUID-VkCommandBufferAllocateInfo-commandPool-parameterYNoneimplicitVkCommandBufferAllocateInfocorecommandPool must be a valid VkCommandPool handle
VUID-VkCommandBufferAllocateInfo-level-parameterYNoneimplicitVkCommandBufferAllocateInfocorelevel must be a valid VkCommandBufferLevel value
VUID-VkCommandBufferAllocateInfo-pNext-pNextYNoneimplicitVkCommandBufferAllocateInfocorepNext must be NULL
VUID-VkCommandBufferAllocateInfo-sType-sTypeYNoneimplicitVkCommandBufferAllocateInfocoresType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
VUID-VkCommandBufferBeginInfo-flags-00053YDynamicRenderingBufferBeginInfoLegacyexplicitVkCommandBufferBeginInfo!(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, the renderPass member of pInheritanceInfo must be a valid VkRenderPass
VUID-VkCommandBufferBeginInfo-flags-00054YDynamicRenderingBufferBeginInfoLegacyexplicitVkCommandBufferBeginInfo!(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, the subpass member of pInheritanceInfo must be a valid subpass index within the renderPass member of pInheritanceInfo
VUID-VkCommandBufferBeginInfo-flags-00055YNoneexplicitVkCommandBufferBeginInfocoreIf flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, the framebuffer member of pInheritanceInfo must be either VK_NULL_HANDLE, or a valid VkFramebuffer that is compatible with the renderPass member of pInheritanceInfo
VUID-VkCommandBufferBeginInfo-flags-06000YDynamicRenderingSecondaryCommandBufferexplicitVkCommandBufferBeginInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT and the renderPass member of pInheritanceInfo is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass
VUID-VkCommandBufferBeginInfo-flags-06001YDynamicRenderingSecondaryCommandBufferexplicitVkCommandBufferBeginInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT and the renderPass member of pInheritanceInfo is not VK_NULL_HANDLE, the subpass member of pInheritanceInfo must be a valid subpass index within the renderPass member of pInheritanceInfo
VUID-VkCommandBufferBeginInfo-flags-06002YDynamicRenderingSecondaryCommandBufferexplicitVkCommandBufferBeginInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT and the renderPass member of pInheritanceInfo is VK_NULL_HANDLE, the pNext chain of pInheritanceInfo must include a VkCommandBufferInheritanceRenderingInfo structure
VUID-VkCommandBufferBeginInfo-flags-06003YDynamicRenderingCommandBufferInheritanceRenderingInfoexplicitVkCommandBufferBeginInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, the renderPass member of pInheritanceInfo is VK_NULL_HANDLE, and the pNext chain of pInheritanceInfo includes a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, the colorAttachmentCount member of that structure must be equal to the value of VkCommandBufferInheritanceRenderingInfo::colorAttachmentCount
VUID-VkCommandBufferBeginInfo-flags-parameterYNoneimplicitVkCommandBufferBeginInfocoreflags must be a valid combination of VkCommandBufferUsageFlagBits values
VUID-VkCommandBufferBeginInfo-pNext-pNextYNoneimplicitVkCommandBufferBeginInfocorepNext must be NULL or a pointer to a valid instance of VkDeviceGroupCommandBufferBeginInfo
VUID-VkCommandBufferBeginInfo-sType-sTypeYNoneimplicitVkCommandBufferBeginInfocoresType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
VUID-VkCommandBufferBeginInfo-sType-uniqueYNoneimplicitVkCommandBufferBeginInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-conditionalRenderingEnable-01977YNoneexplicitVkCommandBufferInheritanceConditionalRenderingInfoEXT(VK_EXT_conditional_rendering)If the 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 VkAttachmentSampleCountInfoAMD, VkCommandBufferInheritanceConditionalRenderingInfoEXT, VkCommandBufferInheritanceRenderPassTransformInfoQCOM, VkCommandBufferInheritanceRenderingInfo, VkCommandBufferInheritanceViewportScissorInfoNV, or VkMultiviewPerViewAttributesInfoNVX
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-VkCommandBufferInheritanceRenderingInfo-colorAttachmentCount-06004YDynamicRenderingCommandBufferInheritanceRenderingInfoexplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If colorAttachmentCount is not 0, rasterizationSamples must be a valid VkSampleCountFlagBits value
VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06007YDynamicRenderingCommandBufferInheritanceRenderingInfoexplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If depthAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format with potential format features that include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06200YDynamicRenderingCommandBufferInheritanceRenderingInfoexplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If depthAttachmentFormat is not VK_FORMAT_UNDEFINED and stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, depthAttachmentFormat must equal stencilAttachmentFormat
VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-06540YTestCommandBufferInheritanceWithInvalidDepthFormat, DynamicRenderingCommandBufferInheritanceRenderingInfoexplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If depthAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format that includes a depth aspect
VUID-VkCommandBufferInheritanceRenderingInfo-depthAttachmentFormat-parameterYNoneimplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)depthAttachmentFormat must be a valid VkFormat value
VUID-VkCommandBufferInheritanceRenderingInfo-flags-parameterYNoneimplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)flags must be a valid combination of VkRenderingFlagBits values
VUID-VkCommandBufferInheritanceRenderingInfo-multiview-06008YDynamicRenderingCommandBufferInheritanceRenderingInfoexplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the multiview feature is not enabled, viewMask must be 0
VUID-VkCommandBufferInheritanceRenderingInfo-pColorAttachmentFormats-06006YDynamicRenderingCommandBufferInheritanceRenderingInfoexplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If any element of pColorAttachmentFormats is not VK_FORMAT_UNDEFINED, it must be a format with potential format features that include VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VUID-VkCommandBufferInheritanceRenderingInfo-pColorAttachmentFormats-parameterNNoneimplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If colorAttachmentCount is not 0, pColorAttachmentFormats must be a valid pointer to an array of colorAttachmentCount valid VkFormat values
VUID-VkCommandBufferInheritanceRenderingInfo-rasterizationSamples-parameterYNoneimplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If rasterizationSamples is not 0, rasterizationSamples must be a valid VkSampleCountFlagBits value
VUID-VkCommandBufferInheritanceRenderingInfo-sType-sTypeYNoneimplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO
VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-06199YDynamicRenderingCommandBufferInheritanceRenderingInfoexplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format with potential format features that include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-06541YTestInheritanceRenderingInfoStencilAttachmentFormat, DynamicRenderingCommandBufferInheritanceRenderingInfoexplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format that includes a stencil aspect
VUID-VkCommandBufferInheritanceRenderingInfo-stencilAttachmentFormat-parameterYNoneimplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)stencilAttachmentFormat must be a valid VkFormat value
VUID-VkCommandBufferInheritanceRenderingInfo-variableMultisampleRate-06005YDynamicRenderingCommandBufferInheritanceRenderingInfoexplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the variableMultisampleRate feature is not enabled, rasterizationSamples must be a valid VkSampleCountFlagBits value
VUID-VkCommandBufferInheritanceRenderingInfo-viewMask-06009YDynamicRenderingCommandBufferInheritanceRenderingInfoexplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_VERSION_1_1,VK_KHR_multiview)The index of the most significant bit in viewMask must be less than maxMultiviewViewCount
VUID-VkCommandBufferInheritanceRenderingInfoKHR-pColorAttachmentFormats-06492NNoneexplicitVkCommandBufferInheritanceRenderingInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_NV_linear_color_attachment)When rendering to a Linear Color attachment, if any element of pColorAttachmentFormats is not VK_FORMAT_UNDEFINED, it must be a format with potential format features that include VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
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-04783YViewportInheritanceScissorMissingFeatureexplicitVkCommandBufferInheritanceViewportScissorInfoNV(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-VkCommandBufferSubmitInfo-commandBuffer-03890YSync2SecondaryCommandbufferAsPrimaryexplicitVkCommandBufferSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)commandBuffer must not have been allocated with VK_COMMAND_BUFFER_LEVEL_SECONDARY
VUID-VkCommandBufferSubmitInfo-commandBuffer-parameterYNoneimplicitVkCommandBufferSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)commandBuffer must be a valid VkCommandBuffer handle
VUID-VkCommandBufferSubmitInfo-pNext-pNextYNoneimplicitVkCommandBufferSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)pNext must be NULL
VUID-VkCommandBufferSubmitInfo-sType-sTypeYNoneimplicitVkCommandBufferSubmitInfo(VK_VERSION_1_3,VK_KHR_synchronization2)sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO
VUID-VkCommandPoolCreateInfo-flags-02860YInvalidProtectedSubmitexplicitVkCommandPoolCreateInfo(VK_VERSION_1_1)If the 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-00698YCreateComputesPipelineWithBadBasePointerexplicitVkComputePipelineCreateInfocoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command's pCreateInfos parameter
VUID-VkComputePipelineCreateInfo-flags-00699YCreateComputesPipelineWithBadBasePointerexplicitVkComputePipelineCreateInfocoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is not -1, basePipelineHandle must be VK_NULL_HANDLE
VUID-VkComputePipelineCreateInfo-flags-00700YCreateComputesPipelineWithBadBasePointerexplicitVkComputePipelineCreateInfocoreIf flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is not VK_NULL_HANDLE, basePipelineIndex must be -1
VUID-VkComputePipelineCreateInfo-flags-02874YComputePipelineInvalidFlagsexplicitVkComputePipelineCreateInfo(VK_NV_device_generated_commands)flags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV
VUID-VkComputePipelineCreateInfo-flags-03364YComputePipelineInvalidFlagsexplicitVkComputePipelineCreateInfo(VK_KHR_pipeline_library)flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-VkComputePipelineCreateInfo-flags-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-04945YComputePipelineInvalidFlagsexplicitVkComputePipelineCreateInfo(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, VkPipelineCreationFeedbackCreateInfo, or VkSubpassShadingPipelineCreateInfoHUAWEI
VUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875YPipelineCreationCacheControlexplicitVkComputePipelineCreateInfo(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT
VUID-VkComputePipelineCreateInfo-pipelineStageCreationFeedbackCount-06566YComputePipelineStageCreationFeedbackCountexplicitVkComputePipelineCreateInfo(VK_EXT_pipeline_creation_feedback,VK_VERSION_1_3)If VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be 1
VUID-VkComputePipelineCreateInfo-sType-sTypeYNoneimplicitVkComputePipelineCreateInfocoresType must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
VUID-VkComputePipelineCreateInfo-sType-uniqueYNoneimplicitVkComputePipelineCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkComputePipelineCreateInfo-stage-00702NNoneexplicitVkComputePipelineCreateInfocoreThe shader code for the entry point identified by stage and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter
VUID-VkComputePipelineCreateInfo-stage-parameterNNoneimplicitVkComputePipelineCreateInfocorestage must be a valid VkPipelineShaderStageCreateInfo structure
VUID-VkConditionalRenderingBeginInfoEXT-buffer-01981NNoneexplicitVkConditionalRenderingBeginInfoEXT(VK_EXT_conditional_rendering)If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkConditionalRenderingBeginInfoEXT-buffer-01982YInvalidConditionalRenderingBufferUsageexplicitVkConditionalRenderingBeginInfoEXT(VK_EXT_conditional_rendering)buffer must have been created with the VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT bit set
VUID-VkConditionalRenderingBeginInfoEXT-buffer-parameterYNoneimplicitVkConditionalRenderingBeginInfoEXT(VK_EXT_conditional_rendering)buffer must be a valid VkBuffer handle
VUID-VkConditionalRenderingBeginInfoEXT-flags-parameterYNoneimplicitVkConditionalRenderingBeginInfoEXT(VK_EXT_conditional_rendering)flags must be a valid combination of VkConditionalRenderingFlagBitsEXT values
VUID-VkConditionalRenderingBeginInfoEXT-offset-01983YInvalidConditionalRenderingOffsetexplicitVkConditionalRenderingBeginInfoEXT(VK_EXT_conditional_rendering)offset must be less than the size of buffer by at least 32 bits
VUID-VkConditionalRenderingBeginInfoEXT-offset-01984YInvalidConditionalRenderingOffsetexplicitVkConditionalRenderingBeginInfoEXT(VK_EXT_conditional_rendering)offset must be a multiple of 4
VUID-VkConditionalRenderingBeginInfoEXT-pNext-pNextYNoneimplicitVkConditionalRenderingBeginInfoEXT(VK_EXT_conditional_rendering)pNext must be NULL
VUID-VkConditionalRenderingBeginInfoEXT-sType-sTypeYNoneimplicitVkConditionalRenderingBeginInfoEXT(VK_EXT_conditional_rendering)sType must be VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT
VUID-VkCooperativeMatrixPropertiesNV-AType-parameterNNoneimplicitVkCooperativeMatrixPropertiesNV(VK_NV_cooperative_matrix)AType must be a valid VkComponentTypeNV value
VUID-VkCooperativeMatrixPropertiesNV-BType-parameterNNoneimplicitVkCooperativeMatrixPropertiesNV(VK_NV_cooperative_matrix)BType must be a valid VkComponentTypeNV value
VUID-VkCooperativeMatrixPropertiesNV-CType-parameterNNoneimplicitVkCooperativeMatrixPropertiesNV(VK_NV_cooperative_matrix)CType must be a valid VkComponentTypeNV value
VUID-VkCooperativeMatrixPropertiesNV-DType-parameterNNoneimplicitVkCooperativeMatrixPropertiesNV(VK_NV_cooperative_matrix)DType must be a valid VkComponentTypeNV value
VUID-VkCooperativeMatrixPropertiesNV-pNext-pNextNNoneimplicitVkCooperativeMatrixPropertiesNV(VK_NV_cooperative_matrix)pNext must be NULL
VUID-VkCooperativeMatrixPropertiesNV-sType-sTypeYNoneimplicitVkCooperativeMatrixPropertiesNV(VK_NV_cooperative_matrix)sType must be VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV
VUID-VkCooperativeMatrixPropertiesNV-scope-parameterNNoneimplicitVkCooperativeMatrixPropertiesNV(VK_NV_cooperative_matrix)scope must be a valid VkScopeNV value
VUID-VkCopyAccelerationStructureInfoKHR-buffer-03718YCmdCopyUnboundAccelerationStructure, CopyUnboundAccelerationStructureexplicitVkCopyAccelerationStructureInfoKHR(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-03719YCmdCopyUnboundAccelerationStructure, CopyUnboundAccelerationStructureexplicitVkCopyAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The buffer used to create dst must be bound to device memory
VUID-VkCopyAccelerationStructureInfoKHR-commonparentYNoneimplicitVkCopyAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)Both of dst, and src must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyAccelerationStructureInfoKHR-dst-parameterYNoneimplicitVkCopyAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)dst must be a valid VkAccelerationStructureKHR handle
VUID-VkCopyAccelerationStructureInfoKHR-mode-03410YNoneexplicitVkCopyAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR or VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR
VUID-VkCopyAccelerationStructureInfoKHR-mode-parameterYNoneimplicitVkCopyAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)mode must be a valid VkCopyAccelerationStructureModeKHR value
VUID-VkCopyAccelerationStructureInfoKHR-pNext-pNextYNoneimplicitVkCopyAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)pNext must be NULL
VUID-VkCopyAccelerationStructureInfoKHR-sType-sTypeYNoneimplicitVkCopyAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)sType must be VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR
VUID-VkCopyAccelerationStructureInfoKHR-src-03411YNoneexplicitVkCopyAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)If mode is VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR, src must have been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR in the build
VUID-VkCopyAccelerationStructureInfoKHR-src-04963NNoneexplicitVkCopyAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)The source acceleration structure src must have been constructed prior to the execution of this command
VUID-VkCopyAccelerationStructureInfoKHR-src-parameterYNoneimplicitVkCopyAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)src must be a valid VkAccelerationStructureKHR handle
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-dst-03561NNoneexplicitVkCopyAccelerationStructureToMemoryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The memory pointed to by dst must be at least as large as the serialization size of src, as reported by vkWriteAccelerationStructuresPropertiesKHR or vkCmdWriteAccelerationStructuresPropertiesKHR with a query type of VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-mode-03412YNoneexplicitVkCopyAccelerationStructureToMemoryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-mode-parameterYNoneimplicitVkCopyAccelerationStructureToMemoryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)mode must be a valid VkCopyAccelerationStructureModeKHR value
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-pNext-pNextYNoneimplicitVkCopyAccelerationStructureToMemoryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pNext must be NULL
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-sType-sTypeYNoneimplicitVkCopyAccelerationStructureToMemoryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)sType must be VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-src-04959NNoneexplicitVkCopyAccelerationStructureToMemoryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The source acceleration structure src must have been constructed prior to the execution of this command
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-src-parameterYNoneimplicitVkCopyAccelerationStructureToMemoryInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)src must be a valid VkAccelerationStructureKHR handle
VUID-VkCopyBufferInfo2-commonparentYNoneimplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)Both of dstBuffer, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyBufferInfo2-dstBuffer-00120YNoneexplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkCopyBufferInfo2-dstBuffer-00121YNoneexplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyBufferInfo2-dstBuffer-parameterYNoneimplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstBuffer must be a valid VkBuffer handle
VUID-VkCopyBufferInfo2-dstOffset-00114YBufferExtentsexplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The dstOffset member of each element of pRegions must be less than the size of dstBuffer
VUID-VkCopyBufferInfo2-pNext-pNextYNoneimplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)pNext must be NULL
VUID-VkCopyBufferInfo2-pRegions-00117YNoneexplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The union of the source regions, and the union of the destination regions, specified by the elements of pRegions, must not overlap in memory
VUID-VkCopyBufferInfo2-pRegions-parameterYNoneimplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)pRegions must be a valid pointer to an array of regionCount valid VkBufferCopy2 structures
VUID-VkCopyBufferInfo2-regionCount-arraylengthYNoneimplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)regionCount must be greater than 0
VUID-VkCopyBufferInfo2-sType-sTypeYNoneimplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2
VUID-VkCopyBufferInfo2-size-00115YBufferExtentsexplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The size member of each element of pRegions must be less than or equal to the size of srcBuffer minus srcOffset
VUID-VkCopyBufferInfo2-size-00116YBufferExtentsexplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The size member of each element of pRegions must be less than or equal to the size of dstBuffer minus dstOffset
VUID-VkCopyBufferInfo2-srcBuffer-00118YCopyCommands2V13explicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkCopyBufferInfo2-srcBuffer-00119YNoneexplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyBufferInfo2-srcBuffer-parameterYNoneimplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcBuffer must be a valid VkBuffer handle
VUID-VkCopyBufferInfo2-srcOffset-00113YBufferExtentsexplicitVkCopyBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The srcOffset member of each element of pRegions must be less than the size of srcBuffer
VUID-VkCopyBufferToImageInfo2-None-00214NNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_EXT_depth_range_unrestricted)For each element of pRegions whose imageSubresource contains a depth aspect, the data in srcBuffer must be in the range [0,1]
VUID-VkCopyBufferToImageInfo2-aspectMask-00211YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, imageSubresource.aspectMask must specify aspects present in pname:dstImage
VUID-VkCopyBufferToImageInfo2-aspectMask-01560YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If pname:dstImage has a multi-planar format, then for each element of pRegions, 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-VkCopyBufferToImageInfo2-baseArrayLayer-00213YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:dstImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1
VUID-VkCopyBufferToImageInfo2-bufferImageHeight-00204YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:dstImage is a blocked image, for each element of pRegions, bufferImageHeight must be a multiple of the compressed texel block height
VUID-VkCopyBufferToImageInfo2-bufferOffset-00193YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If pname:dstImage does not have a depth/stencil format, then for each element of pRegions, bufferOffset must be a multiple of the format's texel block size
VUID-VkCopyBufferToImageInfo2-bufferOffset-00206YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:dstImage is a blocked image, for each element of pRegions, bufferOffset must be a multiple of the compressed texel block size in bytes
VUID-VkCopyBufferToImageInfo2-bufferOffset-01558YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If pname:dstImage does not have either a depth/stencil or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the format's texel block size
VUID-VkCopyBufferToImageInfo2-bufferOffset-01559YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If pname:dstImage has a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible formats of planes of multi-planar formats
VUID-VkCopyBufferToImageInfo2-bufferRowLength-00203YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:dstImage is a blocked image, for each element of pRegions, bufferRowLength must be a multiple of the compressed texel block width
VUID-VkCopyBufferToImageInfo2-commandBuffer-04052YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pRegions must be a multiple of 4
VUID-VkCopyBufferToImageInfo2-commandBuffer-04477YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT, for each element of pRegions, the aspectMask member of imageSubresource must not be VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT
VUID-VkCopyBufferToImageInfo2-commonparentYNoneimplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)Both of dstImage, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyBufferToImageInfo2-dstImage-00177YInvalidUsageBits, CopyCommands2V13explicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkCopyBufferToImageInfo2-dstImage-00178YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyBufferToImageInfo2-dstImage-00179YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-VkCopyBufferToImageInfo2-dstImage-01997YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-VkCopyBufferToImageInfo2-dstImage-02543YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkCopyBufferToImageInfo2-dstImage-parameterYNoneimplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImage must be a valid VkImage handle
VUID-VkCopyBufferToImageInfo2-dstImageLayout-00180YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice
VUID-VkCopyBufferToImageInfo2-dstImageLayout-00181YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkCopyBufferToImageInfo2-dstImageLayout-01396YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
VUID-VkCopyBufferToImageInfo2-dstImageLayout-parameterYNoneimplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImageLayout must be a valid VkImageLayout value
VUID-VkCopyBufferToImageInfo2-imageExtent-00207YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:dstImage 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 pname:dstImage
VUID-VkCopyBufferToImageInfo2-imageExtent-00208YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:dstImage 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 pname:dstImage
VUID-VkCopyBufferToImageInfo2-imageExtent-00209YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:dstImage 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 pname:dstImage
VUID-VkCopyBufferToImageInfo2-imageOffset-00200YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of pname:dstImage
VUID-VkCopyBufferToImageInfo2-imageOffset-00205YCompressedImageMipCopyTestsexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:dstImage 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-VkCopyBufferToImageInfo2-imageOffset-01793YCompressedImageMipCopyTestsexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,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-VkCopyBufferToImageInfo2-imageSubresource-01701YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-VkCopyBufferToImageInfo2-imageSubresource-01702YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created
VUID-VkCopyBufferToImageInfo2-pNext-pNextYNoneimplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)pNext must be NULL
VUID-VkCopyBufferToImageInfo2-pRegions-00171YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions
VUID-VkCopyBufferToImageInfo2-pRegions-00172YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_QCOM_rotated_copy_commands)The image region specified by each element of pRegions must be contained within the specified imageSubresource of dstImage
VUID-VkCopyBufferToImageInfo2-pRegions-00173NNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory
VUID-VkCopyBufferToImageInfo2-pRegions-04565NNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If the image region specified by each element of pRegions does not contain VkCopyCommandTransformInfoQCOM in its pNext chain, it must be a region that is contained within the specified imageSubresource of dstImage
VUID-VkCopyBufferToImageInfo2-pRegions-04725NNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:dstImage is not a blocked image, for each element of pRegions, bufferRowLength multiplied by the texel block size of pname:dstImage must be less than or equal to 231-1
VUID-VkCopyBufferToImageInfo2-pRegions-04726NNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:dstImage 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 pname:dstImage must be less than or equal to 231-1
VUID-VkCopyBufferToImageInfo2-pRegions-06223YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions not containing VkCopyCommandTransformInfoQCOM in its pNext chain, imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified imageSubresource of dstImage
VUID-VkCopyBufferToImageInfo2-pRegions-06224YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions not containing VkCopyCommandTransformInfoQCOM in its pNext chain, imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified imageSubresource of dstImage
VUID-VkCopyBufferToImageInfo2-pRegions-parameterYNoneimplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy2 structures
VUID-VkCopyBufferToImageInfo2-regionCount-arraylengthYNoneimplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)regionCount must be greater than 0
VUID-VkCopyBufferToImageInfo2-sType-sTypeYNoneimplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2
VUID-VkCopyBufferToImageInfo2-srcBuffer-00174YInvalidUsageBitsexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkCopyBufferToImageInfo2-srcBuffer-00176YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyBufferToImageInfo2-srcBuffer-parameterYNoneimplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcBuffer must be a valid VkBuffer handle
VUID-VkCopyBufferToImageInfo2-srcImage-00199YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1
VUID-VkCopyBufferToImageInfo2-srcImage-00201YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1
VUID-VkCopyBufferToImageInfo2-srcImage-04053YNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:dstImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4
VUID-VkCopyBufferToImageInfo2KHR-pRegions-04554NNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If the image region specified by each element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, the rotated destination region as described in Buffer and Image Addressing with Rotation must be contained within dstImage
VUID-VkCopyBufferToImageInfo2KHR-pRegions-04555NNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then dstImage must not be a blocked image
VUID-VkCopyBufferToImageInfo2KHR-pRegions-06203NNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then dstImage must be of type VK_IMAGE_TYPE_2D
VUID-VkCopyBufferToImageInfo2KHR-pRegions-06204NNoneexplicitVkCopyBufferToImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then dstImage must not have a multi-planar format
VUID-VkCopyCommandTransformInfoQCOM-sType-sTypeYNoneimplicitVkCopyCommandTransformInfoQCOM(VK_QCOM_rotated_copy_commands)sType must be VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM
VUID-VkCopyCommandTransformInfoQCOM-transform-04560NNoneexplicitVkCopyCommandTransformInfoQCOM(VK_QCOM_rotated_copy_commands)transform must be VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR
VUID-VkCopyDescriptorSet-commonparentYNoneimplicitVkCopyDescriptorSetcoreBoth of dstSet, and srcSet must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyDescriptorSet-dstArrayElement-00348YNoneexplicitVkCopyDescriptorSetcoreThe sum of dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding specified by dstBinding, and all applicable consecutive bindings, as described by consecutive binding updates
VUID-VkCopyDescriptorSet-dstBinding-00347YNoneexplicitVkCopyDescriptorSetcoredstBinding must be a valid binding within dstSet
VUID-VkCopyDescriptorSet-dstBinding-02224YInlineUniformBlockEXTexplicitVkCopyDescriptorSet(VK_VERSION_1_3,VK_EXT_inline_uniform_block)If the descriptor type of the descriptor set binding specified by dstBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, dstArrayElement must be an integer multiple of 4
VUID-VkCopyDescriptorSet-dstBinding-02632YNoneexplicitVkCopyDescriptorSetcoreThe type of dstBinding within dstSet must be equal to the type of srcBinding within srcSet
VUID-VkCopyDescriptorSet-dstBinding-02753YCopyDescriptorUpdateErrorsexplicitVkCopyDescriptorSetcoreIf the descriptor type of the descriptor set binding specified by dstBinding is VK_DESCRIPTOR_TYPE_SAMPLER, then dstSet must not have been allocated with a layout that included immutable samplers for dstBinding
VUID-VkCopyDescriptorSet-dstSet-04612YCopyMutableDescriptorsexplicitVkCopyDescriptorSet(VK_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-04614YCopyMutableDescriptorsexplicitVkCopyDescriptorSet(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_VERSION_1_3,VK_EXT_inline_uniform_block)If the descriptor type of the descriptor set binding specified by srcBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, srcArrayElement must be an integer multiple of 4
VUID-VkCopyDescriptorSet-srcBinding-02225YInlineUniformBlockEXTexplicitVkCopyDescriptorSet(VK_VERSION_1_3,VK_EXT_inline_uniform_block)If the descriptor type of the descriptor set binding specified by either srcBinding or dstBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, descriptorCount must be an integer multiple of 4
VUID-VkCopyDescriptorSet-srcSet-00349YNoneexplicitVkCopyDescriptorSetcoreIf srcSet is equal to dstSet, then the source and destination ranges of descriptors must not overlap, where the ranges may include array elements from consecutive bindings as described by consecutive binding updates
VUID-VkCopyDescriptorSet-srcSet-01918YNoneexplicitVkCopyDescriptorSet(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If srcSet's layout was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT flag set, then dstSet's layout must also have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT flag set
VUID-VkCopyDescriptorSet-srcSet-01920YNoneexplicitVkCopyDescriptorSet(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If the descriptor pool from which srcSet was allocated was created with the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set, then the descriptor pool from which dstSet was allocated must also have been created with the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set
VUID-VkCopyDescriptorSet-srcSet-04613YCopyMutableDescriptorsexplicitVkCopyDescriptorSet(VK_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-VkCopyImageInfo2-None-01549YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)In a copy to or from a plane of a multi-planar image, the VkFormat of the image and plane must be compatible according to the description of compatible planes for the plane being copied
VUID-VkCopyImageInfo2-aspect-06662NNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If the aspect member of any element of pRegions includes any flag other than VK_IMAGE_ASPECT_STENCIL_BIT or srcImage was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_SRC_BIT must have been included in the VkImageCreateInfo::usage used to create srcImage
VUID-VkCopyImageInfo2-aspect-06663NNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If the aspect member of any element of pRegions includes any flag other than VK_IMAGE_ASPECT_STENCIL_BIT or dstImage was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageCreateInfo::usage used to create dstImage
VUID-VkCopyImageInfo2-aspect-06664NNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If the aspect member of any element of pRegions includes VK_IMAGE_ASPECT_STENCIL_BIT, and srcImage was created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_SRC_BIT must have been included in the VkImageStencilUsageCreateInfo::stencilUsage used to create srcImage
VUID-VkCopyImageInfo2-aspect-06665NNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If the aspect member of any element of pRegions includes VK_IMAGE_ASPECT_STENCIL_BIT, and dstImage was created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageStencilUsageCreateInfo::stencilUsage used to create dstImage
VUID-VkCopyImageInfo2-aspectMask-00142YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage
VUID-VkCopyImageInfo2-aspectMask-00143YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage
VUID-VkCopyImageInfo2-commonparentYNoneimplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyImageInfo2-dstImage-00131YCopyCommands2V13explicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkCopyImageInfo2-dstImage-00132YCopyInvalidImageMemoryexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyImageInfo2-dstImage-00152YCopyImageTypeExtentMismatchexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.y must be 0 and extent.height must be 1
VUID-VkCopyImageInfo2-dstImage-01547YCopyInvalidImageMemoryexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If dstImage is non-sparse then the image or disjoint plane that is the destination of the copy must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyImageInfo2-dstImage-01554YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If dstImage has a VkFormat with two planes then for each element of pRegions, dstSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT
VUID-VkCopyImageInfo2-dstImage-01555YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If dstImage has a VkFormat with three planes then for each element of pRegions, dstSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT
VUID-VkCopyImageInfo2-dstImage-01557YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If dstImage has a multi-planar image format and the srcImage does not have a multi-planar image format, then for each element of pRegions, srcSubresource.aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkCopyImageInfo2-dstImage-01731YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,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-VkCopyImageInfo2-dstImage-01732YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,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-VkCopyImageInfo2-dstImage-01733YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,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-VkCopyImageInfo2-dstImage-01734YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,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-VkCopyImageInfo2-dstImage-01786YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1
VUID-VkCopyImageInfo2-dstImage-01788YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0
VUID-VkCopyImageInfo2-dstImage-01792YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)If dstImage is of type VK_IMAGE_TYPE_2D, and srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, extent.depth must equal dstSubresource.layerCount
VUID-VkCopyImageInfo2-dstImage-01996YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT
VUID-VkCopyImageInfo2-dstImage-02542YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkCopyImageInfo2-dstImage-04444YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)If dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1
VUID-VkCopyImageInfo2-dstImage-parameterYNoneimplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImage must be a valid VkImage handle
VUID-VkCopyImageInfo2-dstImageLayout-00133YInvalidImageLayoutexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice
VUID-VkCopyImageInfo2-dstImageLayout-00134YInvalidImageLayoutexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkCopyImageInfo2-dstImageLayout-01395YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
VUID-VkCopyImageInfo2-dstImageLayout-parameterYNoneimplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstImageLayout must be a valid VkImageLayout value
VUID-VkCopyImageInfo2-dstOffset-00150YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, dstOffset.x and (extent.width + dstOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage
VUID-VkCopyImageInfo2-dstOffset-00151YCopyImageTypeExtentMismatchexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, dstOffset.y and (extent.height + dstOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage
VUID-VkCopyImageInfo2-dstOffset-00153YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstOffset.z and (extent.depth + dstOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage
VUID-VkCopyImageInfo2-dstOffset-01784YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The dstOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties
VUID-VkCopyImageInfo2-dstSubresource-01697YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created
VUID-VkCopyImageInfo2-dstSubresource-01699YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created
VUID-VkCopyImageInfo2-pNext-pNextYNoneimplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)pNext must be NULL
VUID-VkCopyImageInfo2-pRegions-00124YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory
VUID-VkCopyImageInfo2-pRegions-parameterYNoneimplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)pRegions must be a valid pointer to an array of regionCount valid VkImageCopy2 structures
VUID-VkCopyImageInfo2-regionCount-arraylengthYNoneimplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)regionCount must be greater than 0
VUID-VkCopyImageInfo2-sType-sTypeYNoneimplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2
VUID-VkCopyImageInfo2-srcImage-00126YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkCopyImageInfo2-srcImage-00127YCopyInvalidImageMemoryexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyImageInfo2-srcImage-00135YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)The VkFormat of each of srcImage and dstImage must be compatible, as defined above
VUID-VkCopyImageInfo2-srcImage-00136YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The sample count of srcImage and dstImage must match
VUID-VkCopyImageInfo2-srcImage-00139YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_maintenance1)If either srcImage or dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must each be 0, and srcSubresource.layerCount and dstSubresource.layerCount must each be 1
VUID-VkCopyImageInfo2-srcImage-00146YCopyImageTypeExtentMismatchexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1
VUID-VkCopyImageInfo2-srcImage-01546YCopyInvalidImageMemoryexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If srcImage is non-sparse then the image or disjoint plane to be copied must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyImageInfo2-srcImage-01548YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the VkFormat of each of srcImage and dstImage is not a multi-planar format, the VkFormat of each of srcImage and dstImage must be compatible, as defined above
VUID-VkCopyImageInfo2-srcImage-01551YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If neither srcImage nor dstImage has a multi-planar image format then for each element of pRegions, srcSubresource.aspectMask and dstSubresource.aspectMask must match
VUID-VkCopyImageInfo2-srcImage-01552YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If srcImage has a VkFormat with two planes then for each element of pRegions, srcSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT
VUID-VkCopyImageInfo2-srcImage-01553YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If srcImage has a VkFormat with three planes then for each element of pRegions, srcSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT
VUID-VkCopyImageInfo2-srcImage-01556YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If srcImage has a multi-planar image format and the dstImage does not have a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT
VUID-VkCopyImageInfo2-srcImage-01727YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,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-VkCopyImageInfo2-srcImage-01728YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,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-VkCopyImageInfo2-srcImage-01729YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,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-VkCopyImageInfo2-srcImage-01730YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,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-VkCopyImageInfo2-srcImage-01785YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1
VUID-VkCopyImageInfo2-srcImage-01787YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If srcImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0
VUID-VkCopyImageInfo2-srcImage-01789YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_maintenance1)If srcImage or dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1
VUID-VkCopyImageInfo2-srcImage-01790YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)If srcImage and dstImage are both of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1
VUID-VkCopyImageInfo2-srcImage-01791YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)If srcImage is of type VK_IMAGE_TYPE_2D, and dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, extent.depth must equal srcSubresource.layerCount
VUID-VkCopyImageInfo2-srcImage-01995YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
VUID-VkCopyImageInfo2-srcImage-04443YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)If srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and srcSubresource.layerCount must be 1
VUID-VkCopyImageInfo2-srcImage-parameterYNoneimplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImage must be a valid VkImage handle
VUID-VkCopyImageInfo2-srcImageLayout-00128YInvalidImageLayoutexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice
VUID-VkCopyImageInfo2-srcImageLayout-00129YInvalidImageLayoutexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkCopyImageInfo2-srcImageLayout-01917YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
VUID-VkCopyImageInfo2-srcImageLayout-parameterYNoneimplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImageLayout must be a valid VkImageLayout value
VUID-VkCopyImageInfo2-srcOffset-00144YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage
VUID-VkCopyImageInfo2-srcOffset-00145YCopyImageTypeExtentMismatchexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage
VUID-VkCopyImageInfo2-srcOffset-00147YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage
VUID-VkCopyImageInfo2-srcOffset-01783YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The srcOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties
VUID-VkCopyImageInfo2-srcSubresource-01696YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-VkCopyImageInfo2-srcSubresource-01698YNoneexplicitVkCopyImageInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created
VUID-VkCopyImageToBufferInfo2-aspectMask-00211YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, imageSubresource.aspectMask must specify aspects present in pname:srcImage
VUID-VkCopyImageToBufferInfo2-aspectMask-01560YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If pname:srcImage has a multi-planar format, then for each element of pRegions, 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-VkCopyImageToBufferInfo2-baseArrayLayer-00213YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:srcImage is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1
VUID-VkCopyImageToBufferInfo2-bufferImageHeight-00204YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:srcImage is a blocked image, for each element of pRegions, bufferImageHeight must be a multiple of the compressed texel block height
VUID-VkCopyImageToBufferInfo2-bufferOffset-00193YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If pname:srcImage does not have a depth/stencil format, then for each element of pRegions, bufferOffset must be a multiple of the format's texel block size
VUID-VkCopyImageToBufferInfo2-bufferOffset-00206YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:srcImage is a blocked image, for each element of pRegions, bufferOffset must be a multiple of the compressed texel block size in bytes
VUID-VkCopyImageToBufferInfo2-bufferOffset-01558YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If pname:srcImage does not have either a depth/stencil or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the format's texel block size
VUID-VkCopyImageToBufferInfo2-bufferOffset-01559YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If pname:srcImage has a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible formats of planes of multi-planar formats
VUID-VkCopyImageToBufferInfo2-bufferRowLength-00203YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:srcImage is a blocked image, for each element of pRegions, bufferRowLength must be a multiple of the compressed texel block width
VUID-VkCopyImageToBufferInfo2-commandBuffer-04052YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pRegions must be a multiple of 4
VUID-VkCopyImageToBufferInfo2-commonparentYNoneimplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)Both of dstBuffer, and srcImage must have been created, allocated, or retrieved from the same VkDevice
VUID-VkCopyImageToBufferInfo2-dstBuffer-00191YCopyCommands2V13explicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
VUID-VkCopyImageToBufferInfo2-dstBuffer-00192NNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyImageToBufferInfo2-dstBuffer-parameterYNoneimplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstBuffer must be a valid VkBuffer handle
VUID-VkCopyImageToBufferInfo2-imageExtent-00207YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:srcImage 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 pname:srcImage
VUID-VkCopyImageToBufferInfo2-imageExtent-00208YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:srcImage 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 pname:srcImage
VUID-VkCopyImageToBufferInfo2-imageExtent-00209YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:srcImage 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 pname:srcImage
VUID-VkCopyImageToBufferInfo2-imageOffset-00197YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions not containing VkCopyCommandTransformInfoQCOM in its pNext chain, imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified imageSubresource of srcImage
VUID-VkCopyImageToBufferInfo2-imageOffset-00198YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions not containing VkCopyCommandTransformInfoQCOM in its pNext chain, imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified imageSubresource of srcImage
VUID-VkCopyImageToBufferInfo2-imageOffset-00200YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of pname:srcImage
VUID-VkCopyImageToBufferInfo2-imageOffset-00205YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:srcImage 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-VkCopyImageToBufferInfo2-imageOffset-01794YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,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-VkCopyImageToBufferInfo2-imageSubresource-01703YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created
VUID-VkCopyImageToBufferInfo2-imageSubresource-01704YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created
VUID-VkCopyImageToBufferInfo2-pNext-pNextYNoneimplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)pNext must be NULL
VUID-VkCopyImageToBufferInfo2-pRegions-00182YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_QCOM_rotated_copy_commands)The image region specified by each element of pRegions must be contained within the specified imageSubresource of srcImage
VUID-VkCopyImageToBufferInfo2-pRegions-00183YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions
VUID-VkCopyImageToBufferInfo2-pRegions-00184NNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory
VUID-VkCopyImageToBufferInfo2-pRegions-04566NNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If the image region specified by each element of pRegions does not contain VkCopyCommandTransformInfoQCOM in its pNext chain, it must be contained within the specified imageSubresource of srcImage
VUID-VkCopyImageToBufferInfo2-pRegions-04725NNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:srcImage is not a blocked image, for each element of pRegions, bufferRowLength multiplied by the texel block size of pname:srcImage must be less than or equal to 231-1
VUID-VkCopyImageToBufferInfo2-pRegions-04726NNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:srcImage 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 pname:srcImage must be less than or equal to 231-1
VUID-VkCopyImageToBufferInfo2-pRegions-parameterYNoneimplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy2 structures
VUID-VkCopyImageToBufferInfo2-regionCount-arraylengthYNoneimplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)regionCount must be greater than 0
VUID-VkCopyImageToBufferInfo2-sType-sTypeYNoneimplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2
VUID-VkCopyImageToBufferInfo2-srcImage-00186YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
VUID-VkCopyImageToBufferInfo2-srcImage-00187YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object
VUID-VkCopyImageToBufferInfo2-srcImage-00188YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT
VUID-VkCopyImageToBufferInfo2-srcImage-00199YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1
VUID-VkCopyImageToBufferInfo2-srcImage-00201YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1
VUID-VkCopyImageToBufferInfo2-srcImage-01998YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
VUID-VkCopyImageToBufferInfo2-srcImage-02544YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map)srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
VUID-VkCopyImageToBufferInfo2-srcImage-04053YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)If pname:srcImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4
VUID-VkCopyImageToBufferInfo2-srcImage-parameterYNoneimplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImage must be a valid VkImage handle
VUID-VkCopyImageToBufferInfo2-srcImageLayout-00189YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice
VUID-VkCopyImageToBufferInfo2-srcImageLayout-00190YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
VUID-VkCopyImageToBufferInfo2-srcImageLayout-01397YNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image)srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
VUID-VkCopyImageToBufferInfo2-srcImageLayout-parameterYNoneimplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcImageLayout must be a valid VkImageLayout value
VUID-VkCopyImageToBufferInfo2KHR-pRegions-04557NNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If the image region specified by each element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, the rotated source region as described in Buffer and Image Addressing with Rotation must be contained within srcImage
VUID-VkCopyImageToBufferInfo2KHR-pRegions-04558NNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must not be a blocked image
VUID-VkCopyImageToBufferInfo2KHR-pRegions-06205NNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must be of type VK_IMAGE_TYPE_2D
VUID-VkCopyImageToBufferInfo2KHR-pRegions-06206NNoneexplicitVkCopyImageToBufferInfo2(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage must not have a multi-planar format
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-dst-03746NNoneexplicitVkCopyMemoryToAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)dst must have been created with a size greater than or equal to that used to serialize the data in src
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-dst-parameterYNoneimplicitVkCopyMemoryToAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)dst must be a valid VkAccelerationStructureKHR handle
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-03413YNoneexplicitVkCopyMemoryToAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-parameterYNoneimplicitVkCopyMemoryToAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)mode must be a valid VkCopyAccelerationStructureModeKHR value
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pInfo-03414NNoneexplicitVkCopyMemoryToAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The data in src must have a format compatible with the destination physical device as returned by vkGetDeviceAccelerationStructureCompatibilityKHR
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pNext-pNextYNoneimplicitVkCopyMemoryToAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)pNext must be NULL
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-sType-sTypeYNoneimplicitVkCopyMemoryToAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)sType must be VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-src-04960NNoneexplicitVkCopyMemoryToAccelerationStructureInfoKHR(VK_NV_ray_tracing,VK_KHR_acceleration_structure)The source memory pointed to by src must contain data previously serialized using vkCmdCopyAccelerationStructureToMemoryKHR, potentially modified to relocate acceleration structure references as described in that command
VUID-VkCuFunctionCreateInfoNVX-module-parameterYNoneimplicitVkCuFunctionCreateInfoNVX(VK_NVX_binary_import)module must be a valid VkCuModuleNVX handle
VUID-VkCuFunctionCreateInfoNVX-pName-parameterYNoneimplicitVkCuFunctionCreateInfoNVX(VK_NVX_binary_import)pName must be a null-terminated UTF-8 string
VUID-VkCuFunctionCreateInfoNVX-pNext-pNextYNoneimplicitVkCuFunctionCreateInfoNVX(VK_NVX_binary_import)pNext must be NULL
VUID-VkCuFunctionCreateInfoNVX-sType-sTypeYNoneimplicitVkCuFunctionCreateInfoNVX(VK_NVX_binary_import)sType must be VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX
VUID-VkCuLaunchInfoNVX-function-parameterYNoneimplicitVkCuLaunchInfoNVX(VK_NVX_binary_import)function must be a valid VkCuFunctionNVX handle
VUID-VkCuLaunchInfoNVX-pExtras-parameterYNoneimplicitVkCuLaunchInfoNVX(VK_NVX_binary_import)If extraCount is not 0, pExtras must be a valid pointer to an array of extraCount bytes
VUID-VkCuLaunchInfoNVX-pNext-pNextYNoneimplicitVkCuLaunchInfoNVX(VK_NVX_binary_import)pNext must be NULL
VUID-VkCuLaunchInfoNVX-pParams-parameterYNoneimplicitVkCuLaunchInfoNVX(VK_NVX_binary_import)If paramCount is not 0, pParams must be a valid pointer to an array of paramCount bytes
VUID-VkCuLaunchInfoNVX-sType-sTypeYNoneimplicitVkCuLaunchInfoNVX(VK_NVX_binary_import)sType must be VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX
VUID-VkCuModuleCreateInfoNVX-dataSize-arraylengthYNoneimplicitVkCuModuleCreateInfoNVX(VK_NVX_binary_import)dataSize must be greater than 0
VUID-VkCuModuleCreateInfoNVX-pData-parameterYNoneimplicitVkCuModuleCreateInfoNVX(VK_NVX_binary_import)pData must be a valid pointer to an array of dataSize bytes
VUID-VkCuModuleCreateInfoNVX-pNext-pNextYNoneimplicitVkCuModuleCreateInfoNVX(VK_NVX_binary_import)pNext must be NULL
VUID-VkCuModuleCreateInfoNVX-sType-sTypeYNoneimplicitVkCuModuleCreateInfoNVX(VK_NVX_binary_import)sType must be VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX
VUID-VkD3D12FenceSubmitInfoKHR-pSignalSemaphoreValues-parameterNNoneimplicitVkD3D12FenceSubmitInfoKHR(VK_KHR_external_semaphore_win32)If signalSemaphoreValuesCount is not 0, and pSignalSemaphoreValues is not NULL, pSignalSemaphoreValues must be a valid pointer to an array of signalSemaphoreValuesCount uint64_t values
VUID-VkD3D12FenceSubmitInfoKHR-pWaitSemaphoreValues-parameterNNoneimplicitVkD3D12FenceSubmitInfoKHR(VK_KHR_external_semaphore_win32)If waitSemaphoreValuesCount is not 0, and pWaitSemaphoreValues is not NULL, pWaitSemaphoreValues must be a valid pointer to an array of waitSemaphoreValuesCount uint64_t values
VUID-VkD3D12FenceSubmitInfoKHR-sType-sTypeYNoneimplicitVkD3D12FenceSubmitInfoKHR(VK_KHR_external_semaphore_win32)sType must be VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR
VUID-VkD3D12FenceSubmitInfoKHR-signalSemaphoreValuesCount-00080NNoneexplicitVkD3D12FenceSubmitInfoKHR(VK_KHR_external_semaphore_win32)signalSemaphoreValuesCount must be the same value as VkSubmitInfo::signalSemaphoreCount, where VkSubmitInfo is in the pNext chain of this VkD3D12FenceSubmitInfoKHR structure
VUID-VkD3D12FenceSubmitInfoKHR-waitSemaphoreValuesCount-00079NNoneexplicitVkD3D12FenceSubmitInfoKHR(VK_KHR_external_semaphore_win32)waitSemaphoreValuesCount must be the same value as VkSubmitInfo::waitSemaphoreCount, where VkSubmitInfo is in the pNext chain of this VkD3D12FenceSubmitInfoKHR structure
VUID-VkDebugMarkerMarkerInfoEXT-pMarkerName-parameterYNoneimplicitVkDebugMarkerMarkerInfoEXT(VK_EXT_debug_marker)pMarkerName must be a null-terminated UTF-8 string
VUID-VkDebugMarkerMarkerInfoEXT-pNext-pNextYNoneimplicitVkDebugMarkerMarkerInfoEXT(VK_EXT_debug_marker)pNext must be NULL
VUID-VkDebugMarkerMarkerInfoEXT-sType-sTypeYNoneimplicitVkDebugMarkerMarkerInfoEXT(VK_EXT_debug_marker)sType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT
VUID-VkDebugMarkerObjectNameInfoEXT-object-01491NNoneexplicitVkDebugMarkerObjectNameInfoEXT(VK_EXT_debug_marker)object must not be VK_NULL_HANDLE
VUID-VkDebugMarkerObjectNameInfoEXT-object-01492NNoneexplicitVkDebugMarkerObjectNameInfoEXT(VK_EXT_debug_marker)object must be a Vulkan object of the type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship
VUID-VkDebugMarkerObjectNameInfoEXT-objectType-01490NNoneexplicitVkDebugMarkerObjectNameInfoEXT(VK_EXT_debug_marker)objectType must not be VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT
VUID-VkDebugMarkerObjectNameInfoEXT-objectType-parameterYNoneimplicitVkDebugMarkerObjectNameInfoEXT(VK_EXT_debug_marker)objectType must be a valid VkDebugReportObjectTypeEXT value
VUID-VkDebugMarkerObjectNameInfoEXT-pNext-pNextYNoneimplicitVkDebugMarkerObjectNameInfoEXT(VK_EXT_debug_marker)pNext must be NULL
VUID-VkDebugMarkerObjectNameInfoEXT-pObjectName-parameterYNoneimplicitVkDebugMarkerObjectNameInfoEXT(VK_EXT_debug_marker)pObjectName must be a null-terminated UTF-8 string
VUID-VkDebugMarkerObjectNameInfoEXT-sType-sTypeYNoneimplicitVkDebugMarkerObjectNameInfoEXT(VK_EXT_debug_marker)sType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT
VUID-VkDebugMarkerObjectTagInfoEXT-object-01494NNoneexplicitVkDebugMarkerObjectTagInfoEXT(VK_EXT_debug_marker)object must not be VK_NULL_HANDLE
VUID-VkDebugMarkerObjectTagInfoEXT-object-01495NNoneexplicitVkDebugMarkerObjectTagInfoEXT(VK_EXT_debug_marker)object must be a Vulkan object of the type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship
VUID-VkDebugMarkerObjectTagInfoEXT-objectType-01493NNoneexplicitVkDebugMarkerObjectTagInfoEXT(VK_EXT_debug_marker)objectType must not be VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT
VUID-VkDebugMarkerObjectTagInfoEXT-objectType-parameterYNoneimplicitVkDebugMarkerObjectTagInfoEXT(VK_EXT_debug_marker)objectType must be a valid VkDebugReportObjectTypeEXT value
VUID-VkDebugMarkerObjectTagInfoEXT-pNext-pNextYNoneimplicitVkDebugMarkerObjectTagInfoEXT(VK_EXT_debug_marker)pNext must be NULL
VUID-VkDebugMarkerObjectTagInfoEXT-pTag-parameterYNoneimplicitVkDebugMarkerObjectTagInfoEXT(VK_EXT_debug_marker)pTag must be a valid pointer to an array of tagSize bytes
VUID-VkDebugMarkerObjectTagInfoEXT-sType-sTypeYNoneimplicitVkDebugMarkerObjectTagInfoEXT(VK_EXT_debug_marker)sType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT
VUID-VkDebugMarkerObjectTagInfoEXT-tagSize-arraylengthYNoneimplicitVkDebugMarkerObjectTagInfoEXT(VK_EXT_debug_marker)tagSize must be greater than 0
VUID-VkDebugReportCallbackCreateInfoEXT-flags-parameterYNoneimplicitVkDebugReportCallbackCreateInfoEXT(VK_EXT_debug_report)flags must be a valid combination of VkDebugReportFlagBitsEXT values
VUID-VkDebugReportCallbackCreateInfoEXT-pfnCallback-parameterYNoneimplicitVkDebugReportCallbackCreateInfoEXT(VK_EXT_debug_report)pfnCallback must be a valid PFN_vkDebugReportCallbackEXT value
VUID-VkDebugReportCallbackCreateInfoEXT-sType-sTypeYNoneimplicitVkDebugReportCallbackCreateInfoEXT(VK_EXT_debug_report)sType must be VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
VUID-VkDebugUtilsLabelEXT-pLabelName-parameterYNoneimplicitVkDebugUtilsLabelEXT(VK_EXT_debug_utils)pLabelName must be a null-terminated UTF-8 string
VUID-VkDebugUtilsLabelEXT-pNext-pNextYNoneimplicitVkDebugUtilsLabelEXT(VK_EXT_debug_utils)pNext must be NULL
VUID-VkDebugUtilsLabelEXT-sType-sTypeYNoneimplicitVkDebugUtilsLabelEXT(VK_EXT_debug_utils)sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT
VUID-VkDebugUtilsMessengerCallbackDataEXT-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-messageSeverity-parameterYNoneimplicitVkDebugUtilsMessengerCreateInfoEXT(VK_EXT_debug_utils)messageSeverity must be a valid combination of VkDebugUtilsMessageSeverityFlagBitsEXT values
VUID-VkDebugUtilsMessengerCreateInfoEXT-messageType-parameterYNoneimplicitVkDebugUtilsMessengerCreateInfoEXT(VK_EXT_debug_utils)messageType must be a valid combination of VkDebugUtilsMessageTypeFlagBitsEXT values
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-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-VkDependencyInfo-dependencyFlags-parameterYNoneimplicitVkDependencyInfo(VK_VERSION_1_3,VK_KHR_synchronization2)dependencyFlags must be a valid combination of VkDependencyFlagBits values
VUID-VkDependencyInfo-pBufferMemoryBarriers-parameterYNoneimplicitVkDependencyInfo(VK_VERSION_1_3,VK_KHR_synchronization2)If bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier2 structures
VUID-VkDependencyInfo-pImageMemoryBarriers-parameterYNoneimplicitVkDependencyInfo(VK_VERSION_1_3,VK_KHR_synchronization2)If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier2 structures
VUID-VkDependencyInfo-pMemoryBarriers-parameterYNoneimplicitVkDependencyInfo(VK_VERSION_1_3,VK_KHR_synchronization2)If memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier2 structures
VUID-VkDependencyInfo-pNext-pNextYNoneimplicitVkDependencyInfo(VK_VERSION_1_3,VK_KHR_synchronization2)pNext must be NULL
VUID-VkDependencyInfo-sType-sTypeYNoneimplicitVkDependencyInfo(VK_VERSION_1_3,VK_KHR_synchronization2)sType must be VK_STRUCTURE_TYPE_DEPENDENCY_INFO
VUID-VkDescriptorBufferInfo-buffer-02998YDynamicOffsetWithNullBuffer, NullDescriptorsDisabledexplicitVkDescriptorBufferInfocoreIf the nullDescriptor feature is not enabled, buffer must not be VK_NULL_HANDLE
VUID-VkDescriptorBufferInfo-buffer-02999YNullDescriptorsEnabledexplicitVkDescriptorBufferInfo(VK_EXT_robustness2)If buffer is VK_NULL_HANDLE, offset must be zero and range must be VK_WHOLE_SIZE
VUID-VkDescriptorBufferInfo-buffer-parameterYNoneimplicitVkDescriptorBufferInfocoreIf buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle
VUID-VkDescriptorBufferInfo-offset-00340YDSBufferInfoErrorsexplicitVkDescriptorBufferInfocoreoffset must be less than the size of buffer
VUID-VkDescriptorBufferInfo-range-00341YDSBufferInfoErrorsexplicitVkDescriptorBufferInfocoreIf range is not equal to VK_WHOLE_SIZE, range must be greater than 0
VUID-VkDescriptorBufferInfo-range-00342YDSBufferInfoErrorsexplicitVkDescriptorBufferInfocoreIf range is not equal to VK_WHOLE_SIZE, range must be less than or equal to the size of buffer minus offset
VUID-VkDescriptorImageInfo-commonparentYNoneimplicitVkDescriptorImageInfocoreBoth of imageView, and sampler that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkDescriptorImageInfo-descriptorType-06713YImage2DViewOf3DFeatureexplicitVkDescriptorImageInfo(VK_VERSION_1_1,VK_KHR_maintenance1)+(VK_EXT_image_2d_view_of_3d)If the image2DViewOf3D feature is not enabled and descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE then imageView must not be a 2D view created from a 3D image
VUID-VkDescriptorImageInfo-descriptorType-06714YImage2DViewOf3DFeatureexplicitVkDescriptorImageInfo(VK_VERSION_1_1,VK_KHR_maintenance1)+(VK_EXT_image_2d_view_of_3d)If the sampler2DViewOf3D feature is not enabled and descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER then imageView must not be a 2D view created from a 3D image
VUID-VkDescriptorImageInfo-imageLayout-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-01976YDSAspectBitsErrorsexplicitVkDescriptorImageInfocoreIf imageView is created from a depth/stencil image, the aspectMask used to create the imageView must include either VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT but not both
VUID-VkDescriptorImageInfo-imageView-06711YMaint1BindingSliceOf3DImageexplicitVkDescriptorImageInfo(VK_VERSION_1_1,VK_KHR_maintenance1)+!(VK_EXT_image_2d_view_of_3d)imageView must not be 2D image view created from a 3D image
VUID-VkDescriptorImageInfo-imageView-06712YImage2DViewOf3DexplicitVkDescriptorImageInfo(VK_VERSION_1_1,VK_KHR_maintenance1)imageView must not be a 2D array image view created from a 3D image
VUID-VkDescriptorImageInfo-mutableComparisonSamplers-04450YResolveInvalidUsageexplicitVkDescriptorImageInfo(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-04607YInvalidCreateDescriptorPoolFlagsexplicitVkDescriptorPoolCreateInfo(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-04609YMissingMutableDescriptorTypeFeatureexplicitVkDescriptorPoolCreateInfo(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-04608YMissingMutableDescriptorTypeFeatureexplicitVkDescriptorPoolCreateInfo(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 VkDescriptorPoolInlineUniformBlockCreateInfo or VkMutableDescriptorTypeCreateInfoVALVE
VUID-VkDescriptorPoolCreateInfo-pPoolSizes-04787YMutableDescriptorPoolsWithPartialOverlapexplicitVkDescriptorPoolCreateInfo(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-parameterYNoneimplicitVkDescriptorPoolCreateInfocoreIf poolSizeCount is not 0, pPoolSizes must be a valid pointer to an array of poolSizeCount valid VkDescriptorPoolSize structures
VUID-VkDescriptorPoolCreateInfo-sType-sTypeYNoneimplicitVkDescriptorPoolCreateInfocoresType must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
VUID-VkDescriptorPoolCreateInfo-sType-uniqueYNoneimplicitVkDescriptorPoolCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkDescriptorPoolInlineUniformBlockCreateInfo-sType-sTypeYNoneimplicitVkDescriptorPoolInlineUniformBlockCreateInfo(VK_VERSION_1_3,VK_EXT_inline_uniform_block)sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO
VUID-VkDescriptorPoolSize-descriptorCount-00302YInvalidCreateDescriptorPoolexplicitVkDescriptorPoolSizecoredescriptorCount must be greater than 0
VUID-VkDescriptorPoolSize-type-02218YInlineUniformBlockEXTexplicitVkDescriptorPoolSize(VK_VERSION_1_3,VK_EXT_inline_uniform_block)If type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK then descriptorCount must be a multiple of 4
VUID-VkDescriptorPoolSize-type-parameterYNoneimplicitVkDescriptorPoolSizecoretype must be a valid VkDescriptorType value
VUID-VkDescriptorSetAllocateInfo-commonparentYNoneimplicitVkDescriptorSetAllocateInfocoreBoth of descriptorPool, and the elements of pSetLayouts must have been created, allocated, or retrieved from the same VkDevice
VUID-VkDescriptorSetAllocateInfo-descriptorPool-00307YAllocDescriptorFromEmptyPoolexplicitVkDescriptorSetAllocateInfo!(VK_VERSION_1_1,VK_KHR_maintenance1)descriptorPool must have enough free descriptor capacity remaining to allocate the descriptor sets of the specified layouts
VUID-VkDescriptorSetAllocateInfo-descriptorPool-parameterYNoneimplicitVkDescriptorSetAllocateInfocoredescriptorPool must be a valid VkDescriptorPool handle
VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-00306YAllocDescriptorFromEmptyPoolexplicitVkDescriptorSetAllocateInfo!(VK_VERSION_1_1,VK_KHR_maintenance1)descriptorSetCount must not be greater than the number of sets that are currently available for allocation in descriptorPool
VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-arraylengthNNoneimplicitVkDescriptorSetAllocateInfocoredescriptorSetCount must be greater than 0
VUID-VkDescriptorSetAllocateInfo-pNext-pNextYNoneimplicitVkDescriptorSetAllocateInfocorepNext must be NULL or a pointer to a valid instance of VkDescriptorSetVariableDescriptorCountAllocateInfo
VUID-VkDescriptorSetAllocateInfo-pSetLayouts-00308YAllocatePushDescriptorSetexplicitVkDescriptorSetAllocateInfo(VK_KHR_push_descriptor)Each element of pSetLayouts must not have been created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set
VUID-VkDescriptorSetAllocateInfo-pSetLayouts-03044YDescriptorIndexingSetLayoutexplicitVkDescriptorSetAllocateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If any element of pSetLayouts was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set, descriptorPool must have been created with the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set
VUID-VkDescriptorSetAllocateInfo-pSetLayouts-04610YInvalidCreateDescriptorPoolAllocateFlagsexplicitVkDescriptorSetAllocateInfo(VK_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-VkDescriptorSetBindingReferenceVALVE-descriptorSetLayout-parameterYNoneimplicitVkDescriptorSetBindingReferenceVALVE(VK_VALVE_descriptor_set_host_mapping)descriptorSetLayout must be a valid VkDescriptorSetLayout handle
VUID-VkDescriptorSetBindingReferenceVALVE-pNext-pNextYNoneimplicitVkDescriptorSetBindingReferenceVALVE(VK_VALVE_descriptor_set_host_mapping)pNext must be NULL
VUID-VkDescriptorSetBindingReferenceVALVE-sType-sTypeYNoneimplicitVkDescriptorSetBindingReferenceVALVE(VK_VALVE_descriptor_set_host_mapping)sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE
VUID-VkDescriptorSetLayoutBinding-descriptorCount-00283YNoneexplicitVkDescriptorSetLayoutBindingcoreIf descriptorCount is not 0, stageFlags must be a valid combination of VkShaderStageFlagBits values
VUID-VkDescriptorSetLayoutBinding-descriptorType-00282YNoneexplicitVkDescriptorSetLayoutBindingcoreIf descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and descriptorCount is not 0 and pImmutableSamplers is not NULL, pImmutableSamplers must be a valid pointer to an array of descriptorCount valid VkSampler handles
VUID-VkDescriptorSetLayoutBinding-descriptorType-01510YDescriptorSetLayoutMiscexplicitVkDescriptorSetLayoutBindingcoreIf descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT and descriptorCount is not 0, then stageFlags must be 0 or VK_SHADER_STAGE_FRAGMENT_BIT
VUID-VkDescriptorSetLayoutBinding-descriptorType-02209YInlineUniformBlockEXTexplicitVkDescriptorSetLayoutBinding(VK_VERSION_1_3,VK_EXT_inline_uniform_block)If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK then descriptorCount must be a multiple of 4
VUID-VkDescriptorSetLayoutBinding-descriptorType-02210YInlineUniformBlockEXTexplicitVkDescriptorSetLayoutBinding(VK_VERSION_1_3,VK_EXT_inline_uniform_block)If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK then descriptorCount must be less than or equal to VkPhysicalDeviceInlineUniformBlockProperties::maxInlineUniformBlockSize
VUID-VkDescriptorSetLayoutBinding-descriptorType-04604YInlineUniformBlockEXTFeatureexplicitVkDescriptorSetLayoutBinding(VK_VERSION_1_3,VK_EXT_inline_uniform_block)If the inlineUniformBlock feature is not enabled, descriptorType must not be VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
VUID-VkDescriptorSetLayoutBinding-descriptorType-04605YInvalidDescriptorSetLayoutBindingexplicitVkDescriptorSetLayoutBinding(VK_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-03570YValidateDescriptorBindingUpdateAfterBindWithAccelerationStructureexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_KHR_acceleration_structure)If VkPhysicalDeviceAccelerationStructureFeaturesKHR::descriptorBindingAccelerationStructureUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR or VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingInlineUniformBlockUpdateAfterBind-02211YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)If VkPhysicalDeviceInlineUniformBlockFeatures::descriptorBindingInlineUniformBlockUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingPartiallyBound-03013YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingPartiallyBound is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingSampledImageUpdateAfterBind-03006YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingSampledImageUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_SAMPLER, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageBufferUpdateAfterBind-03008YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageImageUpdateAfterBind-03007YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageImageUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageTexelBufferUpdateAfterBind-03010YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageTexelBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUniformBufferUpdateAfterBind-03005YDescriptorIndexingSetLayoutexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUniformBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUniformTexelBufferUpdateAfterBind-03009YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUniformTexelBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUpdateUnusedWhilePending-03012YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUpdateUnusedWhilePending is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingVariableDescriptorCount-03014YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingVariableDescriptorCount is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-flags-03003YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_KHR_push_descriptor)If VkDescriptorSetLayoutCreateInfo::flags includes VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT, VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT, or VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-03004YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If an element of pBindingFlags includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, then all other elements of VkDescriptorSetLayoutCreateInfo::pBindings must have a smaller value of binding
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-03015YNoneexplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If an element of pBindingFlags includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, that element's descriptorType must not be VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-parameterNNoneimplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If bindingCount is not 0, pBindingFlags must be a valid pointer to an array of bindingCount valid combinations of VkDescriptorBindingFlagBits values
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-sType-sTypeYNoneimplicitVkDescriptorSetLayoutBindingFlagsCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO
VUID-VkDescriptorSetLayoutCreateInfo-binding-00279YDuplicateDescriptorBindingexplicitVkDescriptorSetLayoutCreateInfocoreThe VkDescriptorSetLayoutBinding::binding members of the elements of the pBindings array must each have different values
VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-03001YInvalidDescriptorSetLayoutBindingsexplicitVkDescriptorSetLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If any binding has the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT bit set, then all bindings must not have descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-04593YMutableDescriptorSetLayoutexplicitVkDescriptorSetLayoutCreateInfo(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-04594YMutableDescriptorSetLayout, InvalidDescriptorSetLayoutBindingexplicitVkDescriptorSetLayoutCreateInfo(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_VERSION_1_3,VK_EXT_inline_uniform_block)If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements of pBindings must not have a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
VUID-VkDescriptorSetLayoutCreateInfo-flags-03000YDescriptorIndexingSetLayoutexplicitVkDescriptorSetLayoutCreateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If any binding has the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT bit set, flags must include VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
VUID-VkDescriptorSetLayoutCreateInfo-flags-04590YMutableDescriptorSetLayoutexplicitVkDescriptorSetLayoutCreateInfo(VK_KHR_push_descriptor)+(VK_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-04591YMutableDescriptorSetLayoutexplicitVkDescriptorSetLayoutCreateInfo(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-04592YMutableDescriptorSetLayoutexplicitVkDescriptorSetLayoutCreateInfo(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-04596YMutableDescriptorSetLayoutMissingFeatureexplicitVkDescriptorSetLayoutCreateInfo(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-04595YMutableDescriptorSetLayoutMissingFeatureexplicitVkDescriptorSetLayoutCreateInfo(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-VkDescriptorSetLayoutHostMappingInfoVALVE-pNext-pNextNNoneimplicitVkDescriptorSetLayoutHostMappingInfoVALVE(VK_VALVE_descriptor_set_host_mapping)pNext must be NULL
VUID-VkDescriptorSetLayoutHostMappingInfoVALVE-sType-sTypeYNoneimplicitVkDescriptorSetLayoutHostMappingInfoVALVE(VK_VALVE_descriptor_set_host_mapping)sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE
VUID-VkDescriptorSetLayoutSupport-pNext-pNextYNoneimplicitVkDescriptorSetLayoutSupport(VK_VERSION_1_1,VK_KHR_maintenance3)pNext must be NULL or a pointer to a valid instance of VkDescriptorSetVariableDescriptorCountLayoutSupport
VUID-VkDescriptorSetLayoutSupport-sType-sTypeYNoneimplicitVkDescriptorSetLayoutSupport(VK_VERSION_1_1,VK_KHR_maintenance3)sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT
VUID-VkDescriptorSetLayoutSupport-sType-uniqueYNoneimplicitVkDescriptorSetLayoutSupport(VK_VERSION_1_1,VK_KHR_maintenance3)The sType value of each struct in the pNext chain must be unique
VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-descriptorSetCount-03045YNoneexplicitVkDescriptorSetVariableDescriptorCountAllocateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If descriptorSetCount is not zero, descriptorSetCount must equal VkDescriptorSetAllocateInfo::descriptorSetCount
VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-pDescriptorCounts-parameterYNoneimplicitVkDescriptorSetVariableDescriptorCountAllocateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If descriptorSetCount is not 0, pDescriptorCounts must be a valid pointer to an array of descriptorSetCount uint32_t values
VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-pSetLayouts-03046YDescriptorIndexingSetLayoutexplicitVkDescriptorSetVariableDescriptorCountAllocateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)If VkDescriptorSetAllocateInfo::pSetLayouts[i] has a variable-sized descriptor binding, then pDescriptorCounts[i] must be less than or equal to the descriptor count specified for that binding when the descriptor set layout was created
VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-sType-sTypeYNoneimplicitVkDescriptorSetVariableDescriptorCountAllocateInfo(VK_VERSION_1_2,VK_EXT_descriptor_indexing)sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO
VUID-VkDescriptorSetVariableDescriptorCountLayoutSupport-sType-sTypeYNoneimplicitVkDescriptorSetVariableDescriptorCountLayoutSupport(VK_VERSION_1_2,VK_EXT_descriptor_indexing)sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT
VUID-VkDescriptorUpdateTemplateCreateInfo-commonparentYNoneimplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)Both of descriptorSetLayout, and pipelineLayout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkDescriptorUpdateTemplateCreateInfo-descriptorUpdateEntryCount-arraylengthYNoneimplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)descriptorUpdateEntryCount must be greater than 0
VUID-VkDescriptorUpdateTemplateCreateInfo-pDescriptorUpdateEntries-parameterYNoneimplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)pDescriptorUpdateEntries must be a valid pointer to an array of descriptorUpdateEntryCount valid VkDescriptorUpdateTemplateEntry structures
VUID-VkDescriptorUpdateTemplateCreateInfo-pNext-pNextYNoneimplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)pNext must be NULL
VUID-VkDescriptorUpdateTemplateCreateInfo-sType-sTypeYNoneimplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00350YCreateDescriptorUpdateTemplateexplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, descriptorSetLayout must be a valid VkDescriptorSetLayout handle
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00351YCreateDescriptorUpdateTemplateexplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_KHR_push_descriptor)If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, pipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00352YCreateDescriptorUpdateTemplateexplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_KHR_push_descriptor)If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, pipelineLayout must be a valid VkPipelineLayout handle
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00353YCreateDescriptorUpdateTemplateexplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_KHR_push_descriptor)If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, set must be the unique set number in the pipeline layout that uses a descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-04615YDescriptorUpdateTemplateexplicitVkDescriptorUpdateTemplateCreateInfo(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_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-02226YDescriptorUpdateTemplateEntryWithInlineUniformBlockexplicitVkDescriptorUpdateTemplateEntry(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)If descriptor type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, dstArrayElement must be an integer multiple of 4
VUID-VkDescriptorUpdateTemplateEntry-descriptor-02227YDescriptorUpdateTemplateEntryWithInlineUniformBlockexplicitVkDescriptorUpdateTemplateEntry(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)If descriptor type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, descriptorCount must be an integer multiple of 4
VUID-VkDescriptorUpdateTemplateEntry-descriptorType-parameterYNoneimplicitVkDescriptorUpdateTemplateEntry(VK_VERSION_1_1,VK_KHR_descriptor_update_template)descriptorType must be a valid VkDescriptorType value
VUID-VkDescriptorUpdateTemplateEntry-dstArrayElement-00355NNoneexplicitVkDescriptorUpdateTemplateEntry(VK_VERSION_1_1,VK_KHR_descriptor_update_template)dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding implicitly specified when using a descriptor update template to update descriptors, and all applicable consecutive bindings, as described by consecutive binding updates
VUID-VkDescriptorUpdateTemplateEntry-dstBinding-00354NNoneexplicitVkDescriptorUpdateTemplateEntry(VK_VERSION_1_1,VK_KHR_descriptor_update_template)dstBinding must be a valid binding in the descriptor set layout implicitly specified when using a descriptor update template to update descriptors
VUID-VkDeviceBufferMemoryRequirements-pCreateInfo-parameterYNoneimplicitVkDeviceBufferMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)pCreateInfo must be a valid pointer to a valid VkBufferCreateInfo structure
VUID-VkDeviceBufferMemoryRequirements-pNext-pNextYNoneimplicitVkDeviceBufferMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)pNext must be NULL
VUID-VkDeviceBufferMemoryRequirements-sType-sTypeYNoneimplicitVkDeviceBufferMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)sType must be VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS
VUID-VkDeviceCreateInfo-pEnabledFeatures-parameterNNoneimplicitVkDeviceCreateInfocoreIf pEnabledFeatures is not NULL, pEnabledFeatures must be a valid pointer to a valid VkPhysicalDeviceFeatures structure
VUID-VkDeviceCreateInfo-pNext-00373YNoneexplicitVkDeviceCreateInfo(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)If the pNext chain includes a VkPhysicalDeviceFeatures2 structure, then pEnabledFeatures must be NULL
VUID-VkDeviceCreateInfo-pNext-02829YFeatures12Features13AndpNextexplicitVkDeviceCreateInfo(VK_VERSION_1_2)If the pNext chain includes a VkPhysicalDeviceVulkan11Features structure, then it must not include a VkPhysicalDevice16BitStorageFeatures, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceSamplerYcbcrConversionFeatures, or VkPhysicalDeviceShaderDrawParametersFeatures structure
VUID-VkDeviceCreateInfo-pNext-02830YFeatures12Features13AndpNextexplicitVkDeviceCreateInfo(VK_VERSION_1_2)If the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then it must not include a VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceBufferDeviceAddressFeatures, or VkPhysicalDeviceVulkanMemoryModelFeatures structure
VUID-VkDeviceCreateInfo-pNext-04748YFeatures12AndppEnabledExtensionNamesexplicitVkDeviceCreateInfo(VK_VERSION_1_2)+(VK_EXT_buffer_device_address)if the pNext chain includes a VkPhysicalDeviceVulkan12Features structure and VkPhysicalDeviceVulkan12Features::bufferDeviceAddress is VK_TRUE, ppEnabledExtensionNames must not contain VK_EXT_buffer_device_address
VUID-VkDeviceCreateInfo-pNext-06532YFeatures12Features13AndpNextexplicitVkDeviceCreateInfo(VK_VERSION_1_3)If the pNext chain includes a VkPhysicalDeviceVulkan13Features structure, then it must not include a VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceMaintenance4Features, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, or VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures structure
VUID-VkDeviceCreateInfo-pProperties-04451YResolveInvalidUsageexplicitVkDeviceCreateInfo(VK_KHR_portability_subset)If the VK_KHR_portability_subset extension is included in pProperties of vkEnumerateDeviceExtensionProperties, ppEnabledExtensionNames must include "VK_KHR_portability_subset"
VUID-VkDeviceCreateInfo-pQueueCreateInfos-06654YMismatchedDeviceQueueGlobalPriorityexplicitVkDeviceCreateInfo(VK_VERSION_1_1)+(VK_KHR_global_priority,VK_EXT_global_priority)If multiple elements of pQueueCreateInfos share the same queueFamilyIndex, then all of such elements must have the same global priority level, which can be specified explicitly by the including a VkDeviceQueueGlobalPriorityCreateInfoKHR structure in the pNext chain, or by the implicit default value
VUID-VkDeviceCreateInfo-pQueueCreateInfos-06755NNoneexplicitVkDeviceCreateInfo(VK_VERSION_1_1)If multiple elements of pQueueCreateInfos share the same queueFamilyIndex, the sum of their queueCount members must be less than or equal to the queueCount member of the VkQueueFamilyProperties structure, as returned by vkGetPhysicalDeviceQueueFamilyProperties in the pQueueFamilyProperties[queueFamilyIndex]
VUID-VkDeviceCreateInfo-pQueueCreateInfos-parameterYNoneimplicitVkDeviceCreateInfocorepQueueCreateInfos must be a valid pointer to an array of queueCreateInfoCount valid VkDeviceQueueCreateInfo structures
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-00374YMaintenance1AndNegativeViewportexplicitVkDeviceCreateInfo(VK_AMD_negative_viewport_height)+!(VK_VERSION_1_1)+(VK_KHR_maintenance1)ppEnabledExtensionNames must not contain both VK_KHR_maintenance1 and VK_AMD_negative_viewport_height
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-01840YApiVersion1_1AndNegativeViewportexplicitVkDeviceCreateInfo(VK_AMD_negative_viewport_height)+(VK_VERSION_1_1)ppEnabledExtensionNames must not contain VK_AMD_negative_viewport_height
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02831YRequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfo(VK_VERSION_1_2)+(VK_KHR_draw_indirect_count)If ppEnabledExtensionNames contains "VK_KHR_draw_indirect_count" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::drawIndirectCount must be VK_TRUE
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02832YRequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfo(VK_VERSION_1_2)+(VK_KHR_sampler_mirror_clamp_to_edge)If ppEnabledExtensionNames contains "VK_KHR_sampler_mirror_clamp_to_edge" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::samplerMirrorClampToEdge must be VK_TRUE
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02833YRequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfo(VK_VERSION_1_2)+(VK_EXT_descriptor_indexing)If ppEnabledExtensionNames contains "VK_EXT_descriptor_indexing" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::descriptorIndexing must be VK_TRUE
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02834YRequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfo(VK_VERSION_1_2)+(VK_EXT_sampler_filter_minmax)If ppEnabledExtensionNames contains "VK_EXT_sampler_filter_minmax" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::samplerFilterMinmax must be VK_TRUE
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-04476YRequiredPromotedFeaturesExtensionsexplicitVkDeviceCreateInfo(VK_VERSION_1_2)+(VK_KHR_shader_draw_parameters)If ppEnabledExtensionNames contains "VK_KHR_shader_draw_parameters" and the pNext chain includes a VkPhysicalDeviceVulkan11Features structure, then VkPhysicalDeviceVulkan11Features::shaderDrawParameters must be VK_TRUE
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-parameterYNoneimplicitVkDeviceCreateInfocoreIf enabledExtensionCount is not 0, ppEnabledExtensionNames must be a valid pointer to an array of enabledExtensionCount null-terminated UTF-8 strings
VUID-VkDeviceCreateInfo-ppEnabledLayerNames-parameterYNoneimplicitVkDeviceCreateInfocoreIf enabledLayerCount is not 0, ppEnabledLayerNames must be a valid pointer to an array of enabledLayerCount null-terminated UTF-8 strings
VUID-VkDeviceCreateInfo-queueCreateInfoCount-arraylengthYNoneimplicitVkDeviceCreateInfocorequeueCreateInfoCount must be greater than 0
VUID-VkDeviceCreateInfo-queueFamilyIndex-00372YUniqueQueueDeviceCreationexplicitVkDeviceCreateInfo!(VK_VERSION_1_1)The queueFamilyIndex member of each element of pQueueCreateInfos must be unique within pQueueCreateInfos
VUID-VkDeviceCreateInfo-queueFamilyIndex-02802YMismatchedDeviceQueueGlobalPriority, UniqueQueueDeviceCreation, UniqueQueueDeviceCreationBothProtectedexplicitVkDeviceCreateInfo(VK_VERSION_1_1)The queueFamilyIndex member of each element of pQueueCreateInfos must be unique within pQueueCreateInfos, except that two members can share the same queueFamilyIndex if one describes protected-capable queues and one describes queues that are not protected-capable
VUID-VkDeviceCreateInfo-sType-sTypeYNoneimplicitVkDeviceCreateInfocoresType must be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
VUID-VkDeviceCreateInfo-sType-uniqueYNoneimplicitVkDeviceCreateInfocoreThe sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkDeviceDeviceMemoryReportCreateInfoEXT or VkDevicePrivateDataCreateInfo
VUID-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-sType-sTypeYNoneimplicitVkDeviceGroupCommandBufferBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO
VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-00375YDuplicatePhysicalDevicesexplicitVkDeviceGroupDeviceCreateInfo(VK_VERSION_1_1,VK_KHR_device_group_creation)Each element of pPhysicalDevices must be unique
VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-00376NNoneexplicitVkDeviceGroupDeviceCreateInfo(VK_VERSION_1_1,VK_KHR_device_group_creation)All elements of pPhysicalDevices must be in the same device group as enumerated by vkEnumeratePhysicalDeviceGroups
VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-parameterYNoneimplicitVkDeviceGroupDeviceCreateInfo(VK_VERSION_1_1,VK_KHR_device_group_creation)If physicalDeviceCount is not 0, pPhysicalDevices must be a valid pointer to an array of physicalDeviceCount valid VkPhysicalDevice handles
VUID-VkDeviceGroupDeviceCreateInfo-physicalDeviceCount-00377NNoneexplicitVkDeviceGroupDeviceCreateInfo(VK_VERSION_1_1,VK_KHR_device_group_creation)If physicalDeviceCount is not 0, the physicalDevice parameter of vkCreateDevice must be an element of pPhysicalDevices
VUID-VkDeviceGroupDeviceCreateInfo-sType-sTypeYNoneimplicitVkDeviceGroupDeviceCreateInfo(VK_VERSION_1_1,VK_KHR_device_group_creation)sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO
VUID-VkDeviceGroupPresentCapabilitiesKHR-pNext-pNextYNoneimplicitVkDeviceGroupPresentCapabilitiesKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)pNext must be NULL
VUID-VkDeviceGroupPresentCapabilitiesKHR-sType-sTypeYNoneimplicitVkDeviceGroupPresentCapabilitiesKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR
VUID-VkDeviceGroupPresentInfoKHR-mode-01298NNoneexplicitVkDeviceGroupPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If mode is VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR, then each element of pDeviceMasks must have exactly one bit set, and the corresponding element of VkDeviceGroupPresentCapabilitiesKHR::presentMask must be non-zero
VUID-VkDeviceGroupPresentInfoKHR-mode-01299NNoneexplicitVkDeviceGroupPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If mode is VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR, then each element of pDeviceMasks must have exactly one bit set, and some physical device in the logical device must include that bit in its VkDeviceGroupPresentCapabilitiesKHR::presentMask
VUID-VkDeviceGroupPresentInfoKHR-mode-01300NNoneexplicitVkDeviceGroupPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If mode is VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR, then each element of pDeviceMasks must have a value for which all set bits are set in one of the elements of VkDeviceGroupPresentCapabilitiesKHR::presentMask
VUID-VkDeviceGroupPresentInfoKHR-mode-01301NNoneexplicitVkDeviceGroupPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If mode is VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR, then for each bit set in each element of pDeviceMasks, the corresponding element of VkDeviceGroupPresentCapabilitiesKHR::presentMask must be non-zero
VUID-VkDeviceGroupPresentInfoKHR-mode-01303NNoneexplicitVkDeviceGroupPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)mode must have exactly one bit set, and that bit must have been included in VkDeviceGroupSwapchainCreateInfoKHR::modes
VUID-VkDeviceGroupPresentInfoKHR-mode-parameterYNoneimplicitVkDeviceGroupPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)mode must be a valid VkDeviceGroupPresentModeFlagBitsKHR value
VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-01302NNoneexplicitVkDeviceGroupPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)The value of each element of pDeviceMasks must be equal to the device mask passed in VkAcquireNextImageInfoKHR::deviceMask when the image index was last acquired
VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-parameterYNoneimplicitVkDeviceGroupPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)If swapchainCount is not 0, pDeviceMasks must be a valid pointer to an array of swapchainCount uint32_t values
VUID-VkDeviceGroupPresentInfoKHR-sType-sTypeYNoneimplicitVkDeviceGroupPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR
VUID-VkDeviceGroupPresentInfoKHR-swapchainCount-01297NNoneexplicitVkDeviceGroupPresentInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)swapchainCount must equal 0 or VkPresentInfoKHR::swapchainCount
VUID-VkDeviceGroupRenderPassBeginInfo-deviceRenderAreaCount-00908YInvalidDeviceMaskexplicitVkDeviceGroupRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)deviceRenderAreaCount must either be zero or equal to the number of physical devices in the logical device
VUID-VkDeviceGroupRenderPassBeginInfo-offset-06166YInvalidDeviceGroupRenderAreaDynamicRendering, InvalidDeviceGroupRenderAreaexplicitVkDeviceGroupRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)The offset.x member of any element of pDeviceRenderAreas must be greater than or equal to 0
VUID-VkDeviceGroupRenderPassBeginInfo-offset-06167YInvalidDeviceGroupRenderAreaDynamicRendering, InvalidDeviceGroupRenderAreaexplicitVkDeviceGroupRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)The offset.y member of any element of pDeviceRenderAreas must be greater than or equal to 0
VUID-VkDeviceGroupRenderPassBeginInfo-offset-06168YInvalidDeviceGroupRenderAreaDynamicRenderingexplicitVkDeviceGroupRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)The sum of the offset.x and extent.width members of any element of pDeviceRenderAreas must be less than or equal to maxFramebufferWidth
VUID-VkDeviceGroupRenderPassBeginInfo-offset-06169YInvalidDeviceGroupRenderAreaDynamicRenderingexplicitVkDeviceGroupRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)The sum of the offset.y and extent.height members of any element of pDeviceRenderAreas must be less than or equal to maxFramebufferHeight
VUID-VkDeviceGroupRenderPassBeginInfo-pDeviceRenderAreas-parameterYNoneimplicitVkDeviceGroupRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)If deviceRenderAreaCount is not 0, pDeviceRenderAreas must be a valid pointer to an array of deviceRenderAreaCount VkRect2D structures
VUID-VkDeviceGroupRenderPassBeginInfo-sType-sTypeYNoneimplicitVkDeviceGroupRenderPassBeginInfo(VK_VERSION_1_1,VK_KHR_device_group)sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO
VUID-VkDeviceGroupSubmitInfo-commandBufferCount-00083YDeviceGroupSubmitInfoSemaphoreCountexplicitVkDeviceGroupSubmitInfo(VK_VERSION_1_1,VK_KHR_device_group)commandBufferCount must equal VkSubmitInfo::commandBufferCount
VUID-VkDeviceGroupSubmitInfo-pCommandBufferDeviceMasks-parameterYNoneimplicitVkDeviceGroupSubmitInfo(VK_VERSION_1_1,VK_KHR_device_group)If commandBufferCount is not 0, pCommandBufferDeviceMasks must be a valid pointer to an array of commandBufferCount uint32_t values
VUID-VkDeviceGroupSubmitInfo-pSignalSemaphoreDeviceIndices-parameterYNoneimplicitVkDeviceGroupSubmitInfo(VK_VERSION_1_1,VK_KHR_device_group)If signalSemaphoreCount is not 0, pSignalSemaphoreDeviceIndices must be a valid pointer to an array of signalSemaphoreCount uint32_t values
VUID-VkDeviceGroupSubmitInfo-pWaitSemaphoreDeviceIndices-00085NNoneexplicitVkDeviceGroupSubmitInfo(VK_VERSION_1_1,VK_KHR_device_group)All elements of pWaitSemaphoreDeviceIndices and pSignalSemaphoreDeviceIndices must be valid device indices
VUID-VkDeviceGroupSubmitInfo-pWaitSemaphoreDeviceIndices-parameterYNoneimplicitVkDeviceGroupSubmitInfo(VK_VERSION_1_1,VK_KHR_device_group)If waitSemaphoreCount is not 0, pWaitSemaphoreDeviceIndices must be a valid pointer to an array of waitSemaphoreCount uint32_t values
VUID-VkDeviceGroupSubmitInfo-sType-sTypeYNoneimplicitVkDeviceGroupSubmitInfo(VK_VERSION_1_1,VK_KHR_device_group)sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO
VUID-VkDeviceGroupSubmitInfo-signalSemaphoreCount-00084YDeviceGroupSubmitInfoSemaphoreCountexplicitVkDeviceGroupSubmitInfo(VK_VERSION_1_1,VK_KHR_device_group)signalSemaphoreCount must equal VkSubmitInfo::signalSemaphoreCount
VUID-VkDeviceGroupSubmitInfo-waitSemaphoreCount-00082YDeviceGroupSubmitInfoSemaphoreCountexplicitVkDeviceGroupSubmitInfo(VK_VERSION_1_1,VK_KHR_device_group)waitSemaphoreCount must equal VkSubmitInfo::waitSemaphoreCount
VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-parameterYNoneimplicitVkDeviceGroupSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)modes must be a valid combination of VkDeviceGroupPresentModeFlagBitsKHR values
VUID-VkDeviceGroupSwapchainCreateInfoKHR-sType-sTypeYNoneimplicitVkDeviceGroupSwapchainCreateInfoKHR(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR
VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06776YValidateDeviceImageMemoryRequirementsDrmFormatModifierexplicitVkDeviceImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_image_drm_format_modifier)The pCreateInfo::pNext chain must not contain a VkImageDrmFormatModifierExplicitCreateInfoEXT structure.
VUID-VkDeviceImageMemoryRequirements-pCreateInfo-parameterYNoneimplicitVkDeviceImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)pCreateInfo must be a valid pointer to a valid VkImageCreateInfo structure
VUID-VkDeviceImageMemoryRequirements-pNext-pNextYNoneimplicitVkDeviceImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)pNext must be NULL
VUID-VkDeviceImageMemoryRequirements-planeAspect-parameterYNoneimplicitVkDeviceImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)If planeAspect is not 0, planeAspect must be a valid VkImageAspectFlagBits value
VUID-VkDeviceImageMemoryRequirements-sType-sTypeYNoneimplicitVkDeviceImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)sType must be VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS
VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06416YValidateDeviceImageMemoryRequirementsSwapchainexplicitVkDeviceImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)The pCreateInfo::pNext chain must not contain a VkImageSwapchainCreateInfoKHR structure
VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06417NNoneexplicitVkDeviceImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)If pCreateInfo::format specifies a multi-planar format and pCreateInfo::flags has VK_IMAGE_CREATE_DISJOINT_BIT set then planeAspect must not be VK_IMAGE_ASPECT_NONE_KHR
VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06419NNoneexplicitVkDeviceImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)If pCreateInfo::flags has VK_IMAGE_CREATE_DISJOINT_BIT set and if the pCreateInfo::tiling is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, then planeAspect must be a single valid format plane for the image (that is, for a two-plane image planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT, and for a three-plane image planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT or VK_IMAGE_ASPECT_PLANE_2_BIT)
VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06420NNoneexplicitVkDeviceImageMemoryRequirements(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)+(VK_EXT_image_drm_format_modifier)If pCreateInfo::tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then planeAspect must be a single valid memory plane for the image (that is, aspectMask must specify a plane index that is less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image's format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier)
VUID-VkDeviceMemoryOverallocationCreateInfoAMD-overallocationBehavior-parameterYNoneimplicitVkDeviceMemoryOverallocationCreateInfoAMD(VK_AMD_memory_overallocation_behavior)overallocationBehavior must be a valid VkMemoryOverallocationBehaviorAMD value
VUID-VkDeviceMemoryOverallocationCreateInfoAMD-sType-sTypeYNoneimplicitVkDeviceMemoryOverallocationCreateInfoAMD(VK_AMD_memory_overallocation_behavior)sType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD
VUID-VkDeviceMemoryReportCallbackDataEXT-pNext-pNextNNoneimplicitVkDeviceMemoryReportCallbackDataEXT(VK_EXT_device_memory_report)pNext must be NULL
VUID-VkDeviceMemoryReportCallbackDataEXT-sType-sTypeNNoneimplicitVkDeviceMemoryReportCallbackDataEXT(VK_EXT_device_memory_report)sType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT
VUID-VkDevicePrivateDataCreateInfo-sType-sTypeYNoneimplicitVkDevicePrivateDataCreateInfo(VK_VERSION_1_3,VK_EXT_private_data)sType must be VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO
VUID-VkDeviceQueueCreateInfo-flags-02861YInvalidGetDeviceQueueexplicitVkDeviceQueueCreateInfo(VK_VERSION_1_1)If the protected memory feature is not enabled, the VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT bit of flags must not be set
VUID-VkDeviceQueueCreateInfo-flags-06449YInvalidProtectedQueueexplicitVkDeviceQueueCreateInfo(VK_VERSION_1_1)If flags includes VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT, queueFamilyIndex must be the index of a queue family that includes the VK_QUEUE_PROTECTED_BIT capability
VUID-VkDeviceQueueCreateInfo-flags-parameterYNoneimplicitVkDeviceQueueCreateInfocoreflags must be a valid combination of VkDeviceQueueCreateFlagBits values
VUID-VkDeviceQueueCreateInfo-pNext-pNextYNoneimplicitVkDeviceQueueCreateInfocorepNext must be NULL or a pointer to a valid instance of VkDeviceQueueGlobalPriorityCreateInfoKHR
VUID-VkDeviceQueueCreateInfo-pQueuePriorities-00383YNoneexplicitVkDeviceQueueCreateInfocoreEach element of pQueuePriorities must be between 0.0 and 1.0 inclusive
VUID-VkDeviceQueueCreateInfo-pQueuePriorities-parameterYNoneimplicitVkDeviceQueueCreateInfocorepQueuePriorities must be a valid pointer to an array of queueCount float values
VUID-VkDeviceQueueCreateInfo-queueCount-00382YNoneexplicitVkDeviceQueueCreateInfocorequeueCount must be less than or equal to the queueCount member of the VkQueueFamilyProperties structure, as returned by vkGetPhysicalDeviceQueueFamilyProperties in the pQueueFamilyProperties[queueFamilyIndex]
VUID-VkDeviceQueueCreateInfo-queueCount-arraylengthYNoneimplicitVkDeviceQueueCreateInfocorequeueCount must be greater than 0
VUID-VkDeviceQueueCreateInfo-queueFamilyIndex-00381YInvalidDeviceQueueFamilyIndexexplicitVkDeviceQueueCreateInfocorequeueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties
VUID-VkDeviceQueueCreateInfo-sType-sTypeYNoneimplicitVkDeviceQueueCreateInfocoresType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
VUID-VkDeviceQueueCreateInfo-sType-uniqueYNoneimplicitVkDeviceQueueCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkDeviceQueueGlobalPriorityCreateInfoKHR-globalPriority-parameterYNoneimplicitVkDeviceQueueGlobalPriorityCreateInfoKHR(VK_EXT_global_priority,VK_KHR_global_priority)globalPriority must be a valid VkQueueGlobalPriorityKHR value
VUID-VkDeviceQueueGlobalPriorityCreateInfoKHR-sType-sTypeYNoneimplicitVkDeviceQueueGlobalPriorityCreateInfoKHR(VK_EXT_global_priority,VK_KHR_global_priority)sType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR
VUID-VkDeviceQueueInfo2-flags-06225YInvalidGetDeviceQueueexplicitVkDeviceQueueInfo2(VK_VERSION_1_1)flags must be equal to VkDeviceQueueCreateInfo::flags for a VkDeviceQueueCreateInfo structure for the queue family indicated by queueFamilyIndex when device was created
VUID-VkDeviceQueueInfo2-flags-parameterYNoneimplicitVkDeviceQueueInfo2(VK_VERSION_1_1)flags must be a valid combination of VkDeviceQueueCreateFlagBits values
VUID-VkDeviceQueueInfo2-pNext-pNextYNoneimplicitVkDeviceQueueInfo2(VK_VERSION_1_1)pNext must be NULL
VUID-VkDeviceQueueInfo2-queueFamilyIndex-01842YInvalidGetDeviceQueueexplicitVkDeviceQueueInfo2(VK_VERSION_1_1)queueFamilyIndex must be one of the queue family indices specified when device was created, via the VkDeviceQueueCreateInfo structure
VUID-VkDeviceQueueInfo2-queueIndex-01843YInvalidGetDeviceQueueexplicitVkDeviceQueueInfo2(VK_VERSION_1_1)queueIndex must be less than VkDeviceQueueCreateInfo::queueCount for the corresponding queue family and flags indicated by queueFamilyIndex and flags when device was created
VUID-VkDeviceQueueInfo2-sType-sTypeYNoneimplicitVkDeviceQueueInfo2(VK_VERSION_1_1)sType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2
VUID-VkDirectFBSurfaceCreateInfoEXT-dfb-04117NNoneexplicitVkDirectFBSurfaceCreateInfoEXT(VK_KHR_surface)+(VK_EXT_directfb_surface)dfb must point to a valid DirectFB IDirectFB
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-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-01257YNoneexplicitVkDisplayPresentInfoKHR(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-pNext-pNextYNoneimplicitVkDisplaySurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)pNext must be NULL
VUID-VkDisplaySurfaceCreateInfoKHR-planeIndex-01252YDisplayPlaneSurfaceexplicitVkDisplaySurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)planeIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR
VUID-VkDisplaySurfaceCreateInfoKHR-planeReorderPossible-01253NNoneexplicitVkDisplaySurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)If the planeReorderPossible member of the VkDisplayPropertiesKHR structure returned by vkGetPhysicalDeviceDisplayPropertiesKHR for the display corresponding to displayMode is VK_TRUE then planeStackIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR; otherwise planeStackIndex must equal the currentStackIndex member of VkDisplayPlanePropertiesKHR returned by vkGetPhysicalDeviceDisplayPlanePropertiesKHR for the display plane corresponding to displayMode
VUID-VkDisplaySurfaceCreateInfoKHR-sType-sTypeYNoneimplicitVkDisplaySurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)sType must be VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR
VUID-VkDisplaySurfaceCreateInfoKHR-transform-06740NNoneexplicitVkDisplaySurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)transform must be one of the bits present in the supportedTransforms member of VkDisplayPropertiesKHR for the display corresponding to displayMode
VUID-VkDisplaySurfaceCreateInfoKHR-transform-parameterYNoneimplicitVkDisplaySurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)transform must be a valid VkSurfaceTransformFlagBitsKHR value
VUID-VkDisplaySurfaceCreateInfoKHR-width-01256YDisplayPlaneSurfaceexplicitVkDisplaySurfaceCreateInfoKHR(VK_KHR_surface)+(VK_KHR_display)The width and height members of imageExtent must be less than or equal to VkPhysicalDeviceLimits::maxImageDimension2D
VUID-VkDrawIndexedIndirectCommand-None-00552NNoneexplicitVkDrawIndexedIndirectCommandcoreFor a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description
VUID-VkDrawIndexedIndirectCommand-firstInstance-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-VkDrmFormatModifierPropertiesList2EXT-sType-sTypeYNoneimplicitVkDrmFormatModifierPropertiesList2EXT(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)sType must be VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT
VUID-VkDrmFormatModifierPropertiesListEXT-sType-sTypeYNoneimplicitVkDrmFormatModifierPropertiesListEXT(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)sType must be VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT
VUID-VkEventCreateInfo-flags-parameterYNoneimplicitVkEventCreateInfocoreflags must be a valid combination of VkEventCreateFlagBits values
VUID-VkEventCreateInfo-pNext-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, 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 VkDrmFormatModifierPropertiesList2EXT, VkDrmFormatModifierPropertiesListEXT, VkFormatProperties3, VkVideoDecodeH264ProfileEXT, VkVideoDecodeH265ProfileEXT, VkVideoEncodeH264ProfileEXT, VkVideoEncodeH265ProfileEXT, 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-VkFormatProperties3-sType-sTypeYNoneimplicitVkFormatProperties3(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_3,VK_KHR_format_feature_flags2)sType must be VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3
VUID-VkFramebufferAttachmentImageInfo-flags-parameterYNoneimplicitVkFramebufferAttachmentImageInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)flags must be a valid combination of VkImageCreateFlagBits values
VUID-VkFramebufferAttachmentImageInfo-pNext-pNextYFramebufferAttachmentImageInfoPNextimplicitVkFramebufferAttachmentImageInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)pNext must be NULL
VUID-VkFramebufferAttachmentImageInfo-pViewFormats-parameterNNoneimplicitVkFramebufferAttachmentImageInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If viewFormatCount is not 0, pViewFormats must be a valid pointer to an array of viewFormatCount valid VkFormat values
VUID-VkFramebufferAttachmentImageInfo-sType-sTypeYNoneimplicitVkFramebufferAttachmentImageInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO
VUID-VkFramebufferAttachmentImageInfo-usage-parameterYNoneimplicitVkFramebufferAttachmentImageInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)usage must be a valid combination of VkImageUsageFlagBits values
VUID-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 a VkFramebufferAttachmentsCreateInfo structure
VUID-VkFramebufferCreateInfo-flags-03191YImagelessFramebufferCreationTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the attachmentImageInfoCount member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain must be equal to either zero or attachmentCount
VUID-VkFramebufferCreateInfo-flags-03196NNoneexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_EXT_fragment_density_map)If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is referenced by VkRenderPassFragmentDensityMapCreateInfoEXT::fragmentDensityMapAttachment in renderPass must be greater than or equal to the ceiling of width/maxFragmentDensityTexelSize.width
VUID-VkFramebufferCreateInfo-flags-03197NNoneexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_EXT_fragment_density_map)If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that is referenced by VkRenderPassFragmentDensityMapCreateInfoEXT::fragmentDensityMapAttachment in renderPass must be greater than or equal to the ceiling of height/maxFragmentDensityTexelSize.height
VUID-VkFramebufferCreateInfo-flags-03201YImagelessFramebufferAttachmentImageUsageMismatchTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a color attachment or resolve attachment by renderPass must include VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
VUID-VkFramebufferCreateInfo-flags-03202YImagelessFramebufferAttachmentImageUsageMismatchTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a depth/stencil attachment by renderPass must include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkFramebufferCreateInfo-flags-03203YImagelessFramebufferDepthStencilResolveAttachmentTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_KHR_depth_stencil_resolve)If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a depth/stencil resolve attachment by renderPass must include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkFramebufferCreateInfo-flags-03204YImagelessFramebufferAttachmentImageUsageMismatchTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as an input attachment by renderPass must include VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VUID-VkFramebufferCreateInfo-flags-03205YImagelessFramebufferCreationTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, at least one element of the pViewFormats member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain must be equal to the corresponding value of VkAttachmentDescription::format used to create renderPass
VUID-VkFramebufferCreateInfo-flags-04113YImagelessFramebufferRenderPassBeginImageView3DexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with VkImageViewCreateInfo::viewType not equal to VK_IMAGE_VIEW_TYPE_3D
VUID-VkFramebufferCreateInfo-flags-04533YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have been created with a VkImageCreateInfo::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 a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as an input, color, resolve or depth/stencil attachment in renderPass must be greater than or equal to width
VUID-VkFramebufferCreateInfo-flags-04542YImagelessFramebufferCreationTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as an input, color, resolve or depth/stencil attachment in renderPass must be greater than or equal to height
VUID-VkFramebufferCreateInfo-flags-04543YInvalidFragmentShadingRateImagelessFramebufferDimensionsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_KHR_fragment_shading_rate)If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as a fragment shading rate attachment must be greater than or equal to {lceil}width / texelWidth{rceil}, where texelWidth is the largest value of shadingRateAttachmentTexelSize.width in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment
VUID-VkFramebufferCreateInfo-flags-04544YInvalidFragmentShadingRateImagelessFramebufferDimensionsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_KHR_fragment_shading_rate)If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as a fragment shading rate attachment must be greater than or equal to {lceil}height / texelHeight{rceil}, where texelHeight is the largest value of shadingRateAttachmentTexelSize.height in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment
VUID-VkFramebufferCreateInfo-flags-04545YInvalidFragmentShadingRateImagelessFramebufferDimensionsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_KHR_fragment_shading_rate)If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as a fragment shading rate attachment must be either 1, or greater than or equal to layers
VUID-VkFramebufferCreateInfo-flags-04547YImagelessFramebufferCreationTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+!(VK_VERSION_1_1,VK_KHR_multiview)If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain used as an input, color, resolve, or depth/stencil attachment in pRenderPass must be greater than or equal to layers
VUID-VkFramebufferCreateInfo-flags-04548YInvalidFragmentShadingRateFramebufferUsageexplicitVkFramebufferCreateInfo(VK_KHR_fragment_shading_rate)If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkFramebufferCreateInfo-flags-04549YInvalidFragmentShadingRateImagelessFramebufferUsageexplicitVkFramebufferCreateInfo(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a fragment shading rate attachment by renderPass must include VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
VUID-VkFramebufferCreateInfo-flags-04587NNoneexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_KHR_fragment_shading_rate)If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT and renderPass was specified with non-zero view masks, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have a layerCount that is either 1, or greater than the index of the most significant bit set in any of those view masks
VUID-VkFramebufferCreateInfo-flags-parameterYNoneimplicitVkFramebufferCreateInfocoreflags must be a valid combination of VkFramebufferCreateFlagBits values
VUID-VkFramebufferCreateInfo-height-00887YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocoreheight must be greater than 0
VUID-VkFramebufferCreateInfo-height-00888YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocoreheight must be less than or equal to maxFramebufferHeight
VUID-VkFramebufferCreateInfo-layers-00889YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocorelayers must be greater than 0
VUID-VkFramebufferCreateInfo-layers-00890YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocorelayers must be less than or equal to maxFramebufferLayers
VUID-VkFramebufferCreateInfo-pAttachments-00877YNoneexplicitVkFramebufferCreateInfocoreIf flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a color attachment or resolve attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
VUID-VkFramebufferCreateInfo-pAttachments-00879YNoneexplicitVkFramebufferCreateInfocoreIf renderpass is not VK_NULL_HANDLE, flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VUID-VkFramebufferCreateInfo-pAttachments-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-02744YRenderPassCreateFragmentDensityMapReferenceToInvalidAttachmentexplicitVkFramebufferCreateInfo(VK_EXT_fragment_density_map)+!(VK_VERSION_1_1,VK_KHR_multiview)Each element of pAttachments that is referenced by fragmentDensityMapAttachment must have a layerCount equal to 1
VUID-VkFramebufferCreateInfo-pNext-pNextYNoneimplicitVkFramebufferCreateInfocorepNext must be NULL or a pointer to a valid instance of VkFramebufferAttachmentsCreateInfo
VUID-VkFramebufferCreateInfo-renderPass-02531YFramebufferCreateErrorsexplicitVkFramebufferCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If renderPass was specified with non-zero view masks, layers must be 1
VUID-VkFramebufferCreateInfo-renderPass-02553NNoneexplicitVkFramebufferCreateInfo(VK_EXT_fragment_density_map)If renderPass has a fragment density map attachment and 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-02746YInvalidFragmentDensityMapLayerCountexplicitVkFramebufferCreateInfo(VK_EXT_fragment_density_map)+(VK_VERSION_1_1,VK_KHR_multiview)If renderPass was specified with non-zero view masks, each element of pAttachments that is referenced by fragmentDensityMapAttachment must have a layerCount equal to 1 or greater than the index of the most significant bit set in any of those view masks
VUID-VkFramebufferCreateInfo-renderPass-02747YInvalidFragmentDensityMapLayerCountexplicitVkFramebufferCreateInfo(VK_EXT_fragment_density_map)+(VK_VERSION_1_1,VK_KHR_multiview)If renderPass was not specified with non-zero view masks, each element of pAttachments that is referenced by fragmentDensityMapAttachment must have a layerCount equal to 1
VUID-VkFramebufferCreateInfo-renderPass-03198YImagelessFramebufferDepthStencilResolveAttachmentTests, ImagelessFramebufferAttachmentMultiviewImageLayerCountMismatchTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_VERSION_1_1,VK_KHR_multiview)If multiview is enabled for renderPass and flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain used as an input, color, resolve, or depth/stencil attachment in renderPass must be greater than the maximum bit index set in the view mask in the subpasses in which it is used in renderPass
VUID-VkFramebufferCreateInfo-renderPass-04536YFramebufferCreateErrorsexplicitVkFramebufferCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If renderPass was specified with non-zero view masks, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have a layerCount greater than the index of the most significant bit set in any of those view masks
VUID-VkFramebufferCreateInfo-renderPass-04546YImagelessFramebufferCreationTestsexplicitVkFramebufferCreateInfo(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_VERSION_1_1,VK_KHR_multiview)If multiview is not enabled for renderPass and flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain used as an input, color, resolve, or depth/stencil attachment in renderPass must be greater than or equal to layers
VUID-VkFramebufferCreateInfo-renderPass-06502YInvalidRenderPassEndFragmentDensityMapOffsetQCOMexplicitVkFramebufferCreateInfo(VK_EXT_fragment_density_map)+(VK_QCOM_fragment_density_map_offset)If renderPass was created with fragment density map offsets other than (0,0), each element of pAttachments must have been created with a flags value including VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM.
VUID-VkFramebufferCreateInfo-renderPass-parameterYNoneimplicitVkFramebufferCreateInfocorerenderPass must be a valid VkRenderPass handle
VUID-VkFramebufferCreateInfo-sType-sTypeYNoneimplicitVkFramebufferCreateInfocoresType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
VUID-VkFramebufferCreateInfo-sType-uniqueYNoneimplicitVkFramebufferCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkFramebufferCreateInfo-width-00885YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocorewidth must be greater than 0
VUID-VkFramebufferCreateInfo-width-00886YFramebufferCreateErrorsexplicitVkFramebufferCreateInfocorewidth must be less than or equal to maxFramebufferWidth
VUID-VkFramebufferMixedSamplesCombinationNV-pNext-pNextYNoneimplicitVkFramebufferMixedSamplesCombinationNV(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)pNext must be NULL
VUID-VkFramebufferMixedSamplesCombinationNV-sType-sTypeYNoneimplicitVkFramebufferMixedSamplesCombinationNV(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV
VUID-VkGeneratedCommandsInfoNV-commonparentYNoneimplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)Each of indirectCommandsLayout, pipeline, preprocessBuffer, sequencesCountBuffer, and sequencesIndexBuffer that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02913NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)If the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV, then the pipeline must have been created with multiple shader groups
VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02914NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)If the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV, then the pipeline must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV set in VkGraphicsPipelineCreateInfo::flags
VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02915NNoneexplicitVkGeneratedCommandsInfoNV(VK_NV_device_generated_commands)If the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, then the pipelines 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 requirements 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-Input-06632NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with fragment shader state with a fragment shader that either enables sample shading or decorates any variable in the Input storage class with Sample, then pMultisampleState must not be NULL
VUID-VkGraphicsPipelineCreateInfo-None-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-04889NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and fragment shader state, the fragment shader and last pre-rasterization shader stage and any relevant state must adhere to the pipeline linking rules described in the Shader Interfaces chapter
VUID-VkGraphicsPipelineCreateInfo-None-06573YNoneexplicitVkGraphicsPipelineCreateInfo!(VK_EXT_graphics_pipeline_library)The pipeline must be created with a complete set of state
VUID-VkGraphicsPipelineCreateInfo-PrimitiveId-06264NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NV_mesh_shader)If the pipeline is being created with pre-rasterization shader state, it includes a mesh shader and the fragment shader code reads from an input variable that is decorated with PrimitiveId, then the mesh shader code must write to a matching output variable, decorated with PrimitiveId, in all execution paths
VUID-VkGraphicsPipelineCreateInfo-commonparentYNoneimplicitVkGraphicsPipelineCreateInfocoreEach of basePipelineHandle, layout, and renderPass that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06759NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_conservative_rasterization)If conservativePointAndLineRasterization is not supported; the pipeline is being created with vertex input state and pre-rasterization shader state; the pipeline does not include a geometry shader; and the value of VkPipelineInputAssemblyStateCreateInfo::topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, or VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, then VkPipelineRasterizationConservativeStateCreateInfoEXT::conservativeRasterizationMode must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06760NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_conservative_rasterization)If conservativePointAndLineRasterization is not supported, the pipeline is being created with pre-rasterization shader state, and the pipeline includes a geometry shader with either the OutputPoints or OutputLineStrip execution modes, VkPipelineRasterizationConservativeStateCreateInfoEXT::conservativeRasterizationMode must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06761NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_conservative_rasterization)+(VK_NV_mesh_shader)If conservativePointAndLineRasterization is not supported, the pipeline is being created with pre-rasterization shader state, and the pipeline includes a mesh shader with either the OutputPoints or OutputLinesNV execution modes, VkPipelineRasterizationConservativeStateCreateInfoEXT::conservativeRasterizationMode must be VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VUID-VkGraphicsPipelineCreateInfo-coverageReductionMode-02722YFramebufferMixedSamplesCoverageReductionexplicitVkGraphicsPipelineCreateInfo(VK_NV_coverage_reduction_mode)If the pipeline is being created with fragment output interface state, and the VK_NV_coverage_reduction_mode extension is enabled, the coverage reduction mode specified by VkPipelineCoverageReductionStateCreateInfoNV::coverageReductionMode, the rasterizationSamples member of pMultisampleState and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
VUID-VkGraphicsPipelineCreateInfo-depthStencilAttachmentSamples-06593YCreateGraphicsPipelineWithInvalidAttachmentSampleCountexplicitVkGraphicsPipelineCreateInfo(VK_ARM_rasterization_order_attachment_access)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If the fragment output interface state and the depthStencilAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV is not 0, it must be a valid VkSampleCountFlagBits value
VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06576YCreatePipelineUsingDynamicRenderingWithoutFeatureexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the dynamicRendering feature is not enabled and the pipeline is being created with pre-rasterization shader state, fragment shader state, or fragment output interface state, renderPass must not be VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-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)+!(VK_EXT_graphics_pipeline_library)flags must not include VK_PIPELINE_CREATE_LIBRARY_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-04901NNoneexplicitVkGraphicsPipelineCreateInfo(VK_QCOM_render_pass_shader_resolve)If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, then the subpass must be the last subpass in a subpass dependency chain
VUID-VkGraphicsPipelineCreateInfo-flags-04902NNoneexplicitVkGraphicsPipelineCreateInfo(VK_QCOM_render_pass_shader_resolve)If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, and if pResolveAttachments is not NULL, then each resolve attachment must be VK_ATTACHMENT_UNUSED
VUID-VkGraphicsPipelineCreateInfo-flags-04947YGraphicsPipelineInvalidFlagsexplicitVkGraphicsPipelineCreateInfo(VK_NV_ray_tracing_motion_blur)flags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
VUID-VkGraphicsPipelineCreateInfo-flags-06482YDynamicRenderingGraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfo(VK_ARM_rasterization_order_attachment_access)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with fragment output interface state and the flags member of VkPipelineColorBlendStateCreateInfo includes VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM, renderpass must not be VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-flags-06483YDynamicRenderingGraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfo(VK_ARM_rasterization_order_attachment_access)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with fragment output interface state and the flags member of VkPipelineDepthStencilStateCreateInfo includes VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM or VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM, renderpass must not be VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-flags-06484YCreateGraphicsPipelineRasterizationOrderAttachmentAccessNoSubpassFlagsexplicitVkGraphicsPipelineCreateInfo(VK_ARM_rasterization_order_attachment_access)If the pipeline is being created with fragment output interface state and the flags member of VkPipelineColorBlendStateCreateInfo includes VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM subpass must have been created with VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM
VUID-VkGraphicsPipelineCreateInfo-flags-06485YCreateGraphicsPipelineRasterizationOrderAttachmentAccessNoSubpassFlagsexplicitVkGraphicsPipelineCreateInfo(VK_ARM_rasterization_order_attachment_access)If the pipeline is being created with fragment output interface state and the flags member of VkPipelineDepthStencilStateCreateInfo includes VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM, subpass must have been created with VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM
VUID-VkGraphicsPipelineCreateInfo-flags-06486YCreateGraphicsPipelineRasterizationOrderAttachmentAccessNoSubpassFlagsexplicitVkGraphicsPipelineCreateInfo(VK_ARM_rasterization_order_attachment_access)If the pipeline is being created with fragment output interface state and the flags member of VkPipelineDepthStencilStateCreateInfo includes VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM, subpass must have been created with VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM
VUID-VkGraphicsPipelineCreateInfo-flags-06591YCreateGraphicsPipelineRasterizationOrderAttachmentAccessNoSubpassFlagsexplicitVkGraphicsPipelineCreateInfo(VK_ARM_rasterization_order_attachment_access)If the pipeline is being created with fragment shader state, and the fragment shader code enables early fragment tests, the flags member of VkPipelineDepthStencilStateCreateInfo must not include VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM or VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM
VUID-VkGraphicsPipelineCreateInfo-flags-06596NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NVX_multiview_per_view_attributes)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, the value of VkMultiviewPerViewAttributesInfoNVX::perViewAttributes specified in both this pipeline and the library must be equal
VUID-VkGraphicsPipelineCreateInfo-flags-06598NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NVX_multiview_per_view_attributes)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, the value of VkMultiviewPerViewAttributesInfoNVX::perViewAttributesPositionXOnly specified in both this pipeline and the library must be equal
VUID-VkGraphicsPipelineCreateInfo-flags-06608YImagelessFramebufferWith3DImageexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If the pipeline is being created with all possible state subsets, flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-06609YImagelessFramebufferWith3DImageexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If flags includes VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT, pipeline libraries included via VkPipelineLibraryCreateInfoKHR must have been created with VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-flags-06610YImagelessFramebufferWith3DImageexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If flags includes VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT, pipeline libraries included via VkPipelineLibraryCreateInfoKHR must have been created with VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-flags-06612NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, and layout was not created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then the layout used by this pipeline and the library must be identically defined
VUID-VkGraphicsPipelineCreateInfo-flags-06614YImagelessFramebufferWith3DImageexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and layout was created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then the layout used by the library must also have been created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-flags-06616NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and layout was created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, elements of the pSetLayouts array which layout was created with that are not VK_NULL_HANDLE must be identically defined to the element at the same index of pSetLayouts used to create the library's layout
VUID-VkGraphicsPipelineCreateInfo-flags-06618NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, any descriptor set layout N specified by layout in both this pipeline and the library which include bindings accessed by shader stages in each must be identically defined
VUID-VkGraphicsPipelineCreateInfo-flags-06620NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, push constants specified in layout in both this pipeline and the library which are available to shader stages in each must be identically defined
VUID-VkGraphicsPipelineCreateInfo-flags-06626YInvalidDynamicRenderingLibraryViewMaskexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, and renderPass is VK_NULL_HANDLE, the value of VkPipelineRenderingCreateInfo::viewMask used by this pipeline and that specified by the library must be identical
VUID-VkGraphicsPipelineCreateInfo-flags-06633NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT with a pMultisampleState that was not NULL, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, pMultisampleState must be identically defined to that used to create the library
VUID-VkGraphicsPipelineCreateInfo-flags-06637NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, pMultisampleState->sampleShading is VK_TRUE, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the pMultisampleState used to create that library must be identically defined pMultisampleState
VUID-VkGraphicsPipelineCreateInfo-flags-06638NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_KHR_fragment_shading_rate)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other flag, values specified in VkPipelineFragmentShadingRateStateCreateInfoKHR for both this pipeline and that library must be identical
VUID-VkGraphicsPipelineCreateInfo-flags-06640NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures
VUID-VkGraphicsPipelineCreateInfo-flags-06641NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, pRasterizationState must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-flags-06642NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, layout must be a valid VkPipelineLayout handle
VUID-VkGraphicsPipelineCreateInfo-flags-06643NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and renderPass is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass handle
VUID-VkGraphicsPipelineCreateInfo-flags-06644NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, stageCount must be greater than 0
VUID-VkGraphicsPipelineCreateInfo-flags-06645NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_KHR_pipeline_executable_properties)If VkGraphicsPipelineLibraryCreateInfoEXT::flags is non-zero, if flags includes VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR, any libraries must have also been created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-flags-06679NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and any element of the pSetLayouts array which layout was created with was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create the library's layout must not be VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-flags-06680NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and any element of the pSetLayouts array used to create the library's layout was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create this pipeline's layout must not be VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-flags-06682NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes both VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, layout must have been created with no elements of the pSetLayouts array set to VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-flags-06683NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and pRasterizationState->rasterizerDiscardEnable is VK_TRUE, layout must have been created with no elements of the pSetLayouts array set to VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-flags-06684NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, the value of subpass must be equal to that used to create the library
VUID-VkGraphicsPipelineCreateInfo-flags-06729NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If flags includes VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT, the pipeline includes a complete set of state specified entirely by libraries, and each library was created with a VkPipelineLayout created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then layout must be a valid VkPipelineLayout that is compatible with the union of the libraries' pipeline layouts other than the inclusion/exclusion of VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-flags-06730NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If flags does not include VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT, the pipeline includes a complete set of state specified entirely by libraries, and each library was created with a VkPipelineLayout created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then layout must be a valid VkPipelineLayout that is compatible with the union of the libraries' pipeline layouts
VUID-VkGraphicsPipelineCreateInfo-flags-06756YImagelessFramebufferWith3DImageexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and any element of the pSetLayouts array which layout was created with was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create the library's layout must not have shader bindings for shaders in the other subset
VUID-VkGraphicsPipelineCreateInfo-flags-06757YImagelessFramebufferWith3DImageexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If VkGraphicsPipelineLibraryCreateInfoEXT::flags includes only one of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes the other subset, and any element of the pSetLayouts array used to create the library's layout was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create this pipeline's layout must not have shader bindings for shaders in the other subset
VUID-VkGraphicsPipelineCreateInfo-flags-parameterYNoneimplicitVkGraphicsPipelineCreateInfocoreflags must be a valid combination of VkPipelineCreateFlagBits values
VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_transform_feedback)If the pipeline is being created with pre-rasterization shader state, and the last pre-rasterization shader stage is a geometry shader, and that geometry shader uses the GeometryStreams capability, then VkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreams feature must be enabled
VUID-VkGraphicsPipelineCreateInfo-graphicsPipelineLibrary-06606YImagelessFramebufferWith3DImageexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If the graphicsPipelineLibrary feature is not enabled, flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-graphicsPipelineLibrary-06607YImagelessFramebufferWith3DImageexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If the graphicsPipelineLibrary feature is not enabled, the pipeline must be created with a complete set of state
VUID-VkGraphicsPipelineCreateInfo-layout-00756YDrawWithoutUpdatePushConstants, CreatePipelinePushConstantsNotInLayout, SubpassInputNotBoundDescriptorSet, CreatePipelineCheckShaderPushConstantNotDeclaredexplicitVkGraphicsPipelineCreateInfocorelayout 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-06602YImagelessFramebufferWith3DImageexplicitVkGraphicsPipelineCreateInfo!(VK_EXT_graphics_pipeline_library)layout must be a valid VkPipelineLayout handle
VUID-VkGraphicsPipelineCreateInfo-libraryCount-06648NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_NV_device_generated_commands)If the pipeline is not created with a complete set of state, or VkPipelineLibraryCreateInfoKHR::libraryCount is not 0, VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCount and VkGraphicsPipelineShaderGroupsCreateInfoNV::pipelineCount must be 0
VUID-VkGraphicsPipelineCreateInfo-libraryCount-06649NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_NV_device_generated_commands)If the pipeline is created with a complete set of state, VkPipelineLibraryCreateInfoKHR::libraryCount is 0, and the pNext chain includes an instance of VkGraphicsPipelineShaderGroupsCreateInfoNV, VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCount must be greater than 0
VUID-VkGraphicsPipelineCreateInfo-lineRasterizationMode-02766YCreatePipelineCheckLineRasterizationexplicitVkGraphicsPipelineCreateInfo(VK_EXT_line_rasterization)If the pipeline is being created with pre-rasterization shader state and at least one of fragment output interface state or fragment shader state, and pMultisampleState is not NULL, the lineRasterizationMode member of a VkPipelineRasterizationLineStateCreateInfoEXT structure included in the pNext chain of pRasterizationState is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the alphaToCoverageEnable, alphaToOneEnable, and sampleShadingEnable members of pMultisampleState must all be VK_FALSE
VUID-VkGraphicsPipelineCreateInfo-multiview-06577YDynamicRenderingGraphicsPipelineCreateInfo, InvalidPipelineRenderingParametersexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the multiview feature is not enabled, the pipeline is being created with pre-rasterization shader state, fragment shader state, or fragment output interface state, and renderPass is VK_NULL_HANDLE, VkPipelineRenderingCreateInfo::viewMask must be 0
VUID-VkGraphicsPipelineCreateInfo-pColorAttachmentSamples-06592YInvalidAttachmentSampleCountexplicitVkGraphicsPipelineCreateInfo(VK_ARM_rasterization_order_attachment_access)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If the fragment output interface state, elements of the pColorAttachmentSamples member of VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV must be valid VkSampleCountFlagBits values
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-parameterYNoneimplicitVkGraphicsPipelineCreateInfocoreIf pDynamicState is not NULL, pDynamicState must be a valid pointer to a valid VkPipelineDynamicStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00747YPSOViewportStateTests, PSOViewportStateMultiViewportTestsexplicitVkGraphicsPipelineCreateInfo!(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the pipeline is being created with pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT, the pViewports member of pViewportState must be a valid pointer to an array of pViewportState->viewportCount valid VkViewport structures
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00748YPSOViewportStateTests, PSOViewportStateMultiViewportTestsexplicitVkGraphicsPipelineCreateInfo!(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the pipeline is being created with pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SCISSOR, the pScissors member of pViewportState must be a valid pointer to an array of pViewportState->scissorCount VkRect2D structures
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749YPSOLineWidthInvalidexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state, and the 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 or fragment output interface state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01522YInvalidSampleLocationsexplicitVkGraphicsPipelineCreateInfo(VK_EXT_sample_locations)If the pipeline is being created with fragment shader state or fragment output interface state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01523YInvalidSampleLocationsexplicitVkGraphicsPipelineCreateInfo(VK_EXT_sample_locations)If the pipeline is being created with fragment shader state or fragment output interface state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715YViewportWScalingNVexplicitVkGraphicsPipelineCreateInfo(VK_NV_clip_space_w_scaling)If the pipeline is being created with pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV, and the viewportWScalingEnable member of a VkPipelineViewportWScalingStateCreateInfoNV structure, included in the pNext chain of pViewportState, is VK_TRUE, the pViewportWScalings member of the VkPipelineViewportWScalingStateCreateInfoNV must be a pointer to an array of VkPipelineViewportWScalingStateCreateInfoNV::viewportCount valid VkViewportWScalingNV structures
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-02510YSetDepthRangeUnrestrictedexplicitVkGraphicsPipelineCreateInfo(VK_EXT_depth_range_unrestricted)If the pipeline is being created with fragment shader state, and the VK_EXT_depth_range_unrestricted extension is not enabled and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DEPTH_BOUNDS, and the depthBoundsTestEnable member of pDepthStencilState is VK_TRUE, the minDepthBounds and maxDepthBounds members of pDepthStencilState must be between 0.0 and 1.0, inclusive
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03378YValidateExtendedDynamicStateDisabledexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)+!(VK_VERSION_1_3)If the extendedDynamicState feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_CULL_MODE, VK_DYNAMIC_STATE_FRONT_FACE, VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY, VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT, VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT, VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE, VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE, VK_DYNAMIC_STATE_DEPTH_COMPARE_OP, VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE, or VK_DYNAMIC_STATE_STENCIL_OP
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379YValidateExtendedDynamicStateEnabledexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the pipeline is being created with pre-rasterization shader state, and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT is included in the pDynamicStates array then viewportCount must be zero
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380YNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the pipeline is being created with pre-rasterization shader state, and VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT is included in the pDynamicStates array then scissorCount must be zero
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03578YNonGraphicsDynamicStatesexplicitVkGraphicsPipelineCreateInfo(VK_KHR_ray_tracing_pipeline)All elements of the pDynamicStates member of pDynamicState must not be VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056YExclusiveScissorNVexplicitVkGraphicsPipelineCreateInfo(VK_NV_scissor_exclusive)If the pipeline is being created with pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV, and if pViewportState->pNext chain includes a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure, and if its exclusiveScissorCount member is not 0, then its pExclusiveScissors member must be a valid pointer to an array of exclusiveScissorCount VkRect2D structures
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04057YShadingRateImageNVexplicitVkGraphicsPipelineCreateInfo(VK_NV_shading_rate_image)If the pipeline is being created with pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV, and if pViewportState->pNext chain includes a VkPipelineViewportShadingRateImageStateCreateInfoNV structure, then its pShadingRatePalettes member must be a valid pointer to an array of viewportCount valid VkShadingRatePaletteNV structures
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04058NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_discard_rectangles)If the pipeline is being created with pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT, and if pNext chain includes a VkPipelineDiscardRectangleStateCreateInfoEXT structure, and if its discardRectangleCount member is not 0, then its pDiscardRectangles member must be a valid pointer to an array of discardRectangleCount VkRect2D structures
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04130NNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the pipeline is being created with pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT or VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT, the pViewports member of pViewportState must be a valid pointer to an array of pViewportState->viewportCount valid VkViewport structures
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04131NNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the pipeline is being created with pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SCISSOR or VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT, the pScissors member of pViewportState must be a valid pointer to an array of pViewportState->scissorCount VkRect2D structures
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132YValidateExtendedDynamicStateEnabledexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the pipeline is being created with pre-rasterization shader state, and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT is included in the pDynamicStates array then VK_DYNAMIC_STATE_VIEWPORT must not be present
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133YValidateExtendedDynamicStateEnabledexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the pipeline is being created with pre-rasterization shader state, and VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT is included in the pDynamicStates array then VK_DYNAMIC_STATE_SCISSOR must not be present
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04800YValidateColorWriteDynamicStateDisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_color_write_enable)If the colorWriteEnable feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04807YValidateVertexInputDynamicStateDisabledexplicitVkGraphicsPipelineCreateInfo(VK_EXT_vertex_input_dynamic_state)If the pipeline is being created with pre-rasterization shader state and the vertexInputDynamicState feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_VERTEX_INPUT_EXT
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04868YValidateExtendedDynamicState2DisabledexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)+!(VK_VERSION_1_3)If the extendedDynamicState2 feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE, VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, or VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04869YValidateExtendedDynamicState2LogicOpDisabledexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the extendedDynamicState2LogicOp feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_LOGIC_OP_EXT
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04870YValidateExtendedDynamicState2PatchControlPointsDisabledexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the extendedDynamicState2PatchControlPoints feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06597NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NVX_multiview_per_view_attributes)If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the value of VkMultiviewPerViewAttributesInfoNVX::perViewAttributes specified in both libraries must be equal
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06599NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NVX_multiview_per_view_attributes)If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the value of VkMultiviewPerViewAttributesInfoNVX::perViewAttributesPositionXOnly specified in both libraries must be equal
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06611NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)Any pipeline libraries included via VkPipelineLibraryCreateInfoKHR::pLibraries must not include any state subset already defined by this structure or defined by any other pipeline library in VkPipelineLibraryCreateInfoKHR::pLibraries
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06613NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and the layout specified by either library was not created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then the layout used by each library must be identically defined
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06615YImagelessFramebufferWith3DImageexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and the layout specified by either library was created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, then the layout used by both libaries must have been created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06617NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and the layout specified by either library was created with VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, elements of the pSetLayouts array which either layout was created with that are not VK_NULL_HANDLE must be identically defined to the element at the same index of pSetLayouts used to create the other library's layout
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06619NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, any descriptor set layout N specified by layout in both libraries which include bindings accessed by shader stages in each must be identically defined
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06621NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, push constants specified in layout in both this pipeline and the library which are available to shader stages in each must be identically defined
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06623NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and another element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, the value of subpass used to create each library must be identical
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06627YInvalidDynamicRenderingLibrariesViewMaskexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, another element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, and renderPass was VK_NULL_HANDLE for both libraries, the value of VkPipelineRenderingCreateInfo::viewMask set by each library must be identical
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06628NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and another element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, the renderPass objects used to create each library must be compatible or all equal to VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06634NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If an element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT with a pMultisampleState that was not NULL, and if VkGraphicsPipelineLibraryCreateInfoEXT::flags includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, pMultisampleState must be identically defined to that used to create the library
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06635NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If one element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT with a pMultisampleState that was not NULL, and if a different element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, the pMultisampleState used to create each library must be identically defined
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06636NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If one element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT and a value of pMultisampleState->sampleShading equal VK_TRUE, and if a different element of VkPipelineLibraryCreateInfoKHR::pLibraries was created with VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, the pMultisampleState used to create each library must be identically defined
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06639NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_KHR_fragment_shading_rate)If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, values specified in VkPipelineFragmentShadingRateStateCreateInfoKHR for both this pipeline and that library must be identical
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06646NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_KHR_pipeline_executable_properties)If VkPipelineLibraryCreateInfoKHR::pLibraries includes more than one library, and any library was created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR, all libraries must have also been created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06647NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_KHR_pipeline_executable_properties)If VkPipelineLibraryCreateInfoKHR::pLibraries includes at least one library, VkGraphicsPipelineLibraryCreateInfoEXT::flags is non-zero, and any library was created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR, flags must include VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06681NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and any element of the pSetLayouts array used to create each library's layout was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create the other library's layout must not be VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-pLibraries-06758YImagelessFramebufferWith3DImageexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If one element of VkPipelineLibraryCreateInfoKHR::pLibraries includes VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT and another element includes VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, and any element of the pSetLayouts array used to create each library's layout was VK_NULL_HANDLE, then the corresponding element of the pSetLayouts array used to create the other library's layout must not have shader bindings for shaders in the other subset
VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-06629NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If the pipeline is being created with fragment shader state pMultisampleState must be NULL or a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-06630YImagelessFramebufferWith3DImageexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+!(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with fragment shader state pMultisampleState must not be NULL
VUID-VkGraphicsPipelineCreateInfo-pNext-06605NNoneexplicitVkGraphicsPipelineCreateInfo!(VK_EXT_graphics_pipeline_library)+(VK_NV_device_generated_commands)If the pNext chain includes an instance of VkGraphicsPipelineShaderGroupsCreateInfoNV, its groupCount member must be greater than 0
VUID-VkGraphicsPipelineCreateInfo-pNext-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 VkAttachmentSampleCountInfoAMD, VkGraphicsPipelineLibraryCreateInfoEXT, VkGraphicsPipelineShaderGroupsCreateInfoNV, VkMultiviewPerViewAttributesInfoNVX, VkPipelineCompilerControlCreateInfoAMD, VkPipelineCreationFeedbackCreateInfo, VkPipelineDiscardRectangleStateCreateInfoEXT, VkPipelineFragmentShadingRateEnumStateCreateInfoNV, VkPipelineFragmentShadingRateStateCreateInfoKHR, VkPipelineLibraryCreateInfoKHR, VkPipelineRenderingCreateInfo, or VkPipelineRepresentativeFragmentTestStateCreateInfoNV
VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-06601YNoneexplicitVkGraphicsPipelineCreateInfo!(VK_EXT_graphics_pipeline_library)pRasterizationState must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pStages-00729YCreatePipelineTessErrorsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and pStages includes a tessellation control shader stage, it must include a tessellation evaluation shader stage
VUID-VkGraphicsPipelineCreateInfo-pStages-00730YCreatePipelineTessErrorsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and pStages includes a tessellation evaluation shader stage, it must include a tessellation control shader stage
VUID-VkGraphicsPipelineCreateInfo-pStages-00731YCreatePipelineTessErrorsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and pStages includes a tessellation control shader stage and a tessellation evaluation shader stage, pTessellationState must be a valid pointer to a valid VkPipelineTessellationStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pStages-00732NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and pStages includes tessellation shader stages, the shader code of at least one stage must contain an OpExecutionMode instruction specifying the type of subdivision in the pipeline
VUID-VkGraphicsPipelineCreateInfo-pStages-00733NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and pStages includes tessellation shader stages, and the shader code of both stages contain an OpExecutionMode instruction specifying the type of subdivision in the pipeline, they must both specify the same subdivision mode
VUID-VkGraphicsPipelineCreateInfo-pStages-00734NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and pStages includes tessellation shader stages, the shader code of at least one stage must contain an OpExecutionMode instruction specifying the output patch size in the pipeline
VUID-VkGraphicsPipelineCreateInfo-pStages-00735NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and pStages includes tessellation shader stages, and the shader code of both contain an OpExecutionMode instruction specifying the out patch size in the pipeline, they must both specify the same patch size
VUID-VkGraphicsPipelineCreateInfo-pStages-00736YCreatePipelineTessErrorsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and pStages includes tessellation shader stages, the topology member of pInputAssembly must be VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
VUID-VkGraphicsPipelineCreateInfo-pStages-00738NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and pStages includes a geometry shader stage, and does not include any tessellation shader stages, its shader code must contain an OpExecutionMode instruction specifying an input primitive type that is compatible with the primitive topology specified in pInputAssembly
VUID-VkGraphicsPipelineCreateInfo-pStages-00739NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and pStages includes a geometry shader stage, and also includes tessellation shader stages, its shader code must contain an OpExecutionMode instruction specifying an input primitive type that is compatible with the primitive topology that is output by the tessellation stages
VUID-VkGraphicsPipelineCreateInfo-pStages-00740NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and fragment shader state, it includes both a fragment shader and a geometry shader, and the fragment shader code reads from an input variable that is decorated with PrimitiveId, then the geometry shader code must write to a matching output variable, decorated with PrimitiveId, in all execution paths
VUID-VkGraphicsPipelineCreateInfo-pStages-00742NNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and multiple pre-rasterization shader stages are included in pStages, the shader code for the entry points identified by those pStages and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter
VUID-VkGraphicsPipelineCreateInfo-pStages-01565NNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2,VK_KHR_create_renderpass2)If the pipeline is being created with fragment shader state and an input attachment was referenced by an aspectMask at renderPass creation time, the fragment shader must only read from the aspects that were specified for that input attachment
VUID-VkGraphicsPipelineCreateInfo-pStages-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 pre-rasterization shader stage
VUID-VkGraphicsPipelineCreateInfo-pStages-06600YImagelessFramebufferWith3DImageexplicitVkGraphicsPipelineCreateInfo!(VK_EXT_graphics_pipeline_library)pStages 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_VERSION_1_3,VK_EXT_extended_dynamic_state2)If the pipeline is being created with pre-rasterization shader state, and the graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled, pViewportState must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878YPipelineCreationCacheControlexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT
VUID-VkGraphicsPipelineCreateInfo-pipelineStageCreationFeedbackCount-06594YGraphicsPipelineStageCreationFeedbackCountexplicitVkGraphicsPipelineCreateInfo(VK_EXT_pipeline_creation_feedback,VK_VERSION_1_3)If VkPipelineCreationFeedbackCreateInfo::pipelineStageCreationFeedbackCount is not 0, it must be equal to stageCount
VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503YInvalidPrimitiveFragmentShadingRateWriteMultiViewportLimitexplicitVkGraphicsPipelineCreateInfo(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_3,VK_EXT_extended_dynamic_state)If the pipeline is being created with pre-rasterization shader state and the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT is not included in pDynamicState->pDynamicStates, and VkPipelineViewportStateCreateInfo::viewportCount is greater than 1, entry points specified in pStages must not write to the PrimitiveShadingRateKHR built-in
VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04504YInvalidPrimitiveFragmentShadingRateWriteMultiViewportLimitexplicitVkGraphicsPipelineCreateInfo(VK_KHR_fragment_shading_rate)If the pipeline is being created with pre-rasterization shader state and the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and entry points specified in pStages write to the ViewportIndex built-in, they must not also write to the PrimitiveShadingRateKHR built-in
VUID-VkGraphicsPipelineCreateInfo-rasterizationSamples-04899YInvalidPipelineRenderPassShaderResolveQCOMexplicitVkGraphicsPipelineCreateInfo(VK_QCOM_render_pass_shader_resolve)If the pipeline is being created with fragment shader state, and the VK_QCOM_render_pass_shader_resolve extension is enabled, and if subpass has any input attachments, and if the subpass description contains VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then the sample count of the input attachments must equal rasterizationSamples
VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02319NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_transform_feedback)If the pipeline is being created with pre-rasterization shader state, and a VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream value other than zero is specified, all variables in the output interface of the entry point being compiled decorated with Position, PointSize, ClipDistance, or CullDistance must be decorated with identical Stream values that match the rasterizationStream
VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_transform_feedback)If the pipeline is being created with pre-rasterization shader state, and VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream is zero, or not specified, all variables in the output interface of the entry point being compiled decorated with Position, PointSize, ClipDistance, or CullDistance must be decorated with a Stream value of zero, or must not specify the Stream decoration
VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00750YPSOViewportStateTestsexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state, and the rasterizerDiscardEnable member of pRasterizationState is VK_FALSE, pViewportState must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00751YNoneexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with fragment output interface state, pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-renderPass-06038NNoneexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE and the pipeline is being created with fragment shader state the fragment shader must not read from any input attachment that is defined as VK_ATTACHMENT_UNUSED in subpass
VUID-VkGraphicsPipelineCreateInfo-renderPass-06039YInvalidDepthStencilStateForReadOnlyLayoutexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE, 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-renderPass-06040YInvalidDepthStencilStateForReadOnlyLayoutexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE, 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-renderPass-06041YBlendingOnFormatWithoutBlendingSupportexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE, and the pipeline is being created with fragment output interface state, then for each color attachment in the subpass, if the potential format features of the format of the corresponding attachment description do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-VkGraphicsPipelineCreateInfo-renderPass-06042YTestMismatchedRenderPassAndPipelineAttachments, NumBlendAttachMismatchexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE, and the pipeline is being created with fragment output interface state, and the subpass uses color attachments, the attachmentCount member of pColorBlendState must be equal to the colorAttachmentCount used to create subpass
VUID-VkGraphicsPipelineCreateInfo-renderPass-06043YNoneexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE, the pipeline is being created with fragment shader state, and subpass uses a depth/stencil attachment, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-renderPass-06044YPipelineRenderpassCompatibilityexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is not VK_NULL_HANDLE, the pipeline is being created with fragment output interface state, and subpass uses color attachments, pColorBlendState must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-renderPass-06046YNoneexplicitVkGraphicsPipelineCreateInfocoreIf renderPass is a valid renderPass, subpass must be a valid subpass within renderPass
VUID-VkGraphicsPipelineCreateInfo-renderPass-06047YTestUsingDisabledMultiviewFeaturesexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If renderPass is a valid renderPass, 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-06048YTestUsingDisabledMultiviewFeaturesexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If renderPass is a valid renderPass, 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-06049NNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If renderPass is a valid renderPass, 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-06050NNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_1,VK_KHR_multiview)If renderPass is a valid renderPass and 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-06053YDynamicRenderingGraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If renderPass is VK_NULL_HANDLE, the pipeline is being created with fragment shader state and fragment output interface state, and either of VkPipelineRenderingCreateInfo::depthAttachmentFormat or VkPipelineRenderingCreateInfo::stencilAttachmentFormat are not VK_FORMAT_UNDEFINED, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-renderPass-06054YDynamicRenderingGraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If renderPass is VK_NULL_HANDLE, the pipeline is being created with fragment output interface state, and VkPipelineRenderingCreateInfo::colorAttachmentCount is not equal to 0, pColorBlendState must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-renderPass-06055YDynamicRenderingGraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If renderPass is VK_NULL_HANDLE and the pipeline is being created with fragment output interface state, pColorBlendState->attachmentCount must be equal to VkPipelineRenderingCreateInfo::colorAttachmentCount
VUID-VkGraphicsPipelineCreateInfo-renderPass-06056NNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If renderPass is VK_NULL_HANDLE and the pipeline is being created with fragment shader state the fragment shader must not read from any input attachment
VUID-VkGraphicsPipelineCreateInfo-renderPass-06057YDynamicRenderingGraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_multiview,VK_VERSION_1_1)If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, the viewMask member of a VkPipelineRenderingCreateInfo structure included in the pNext chain is not 0, and the multiviewTessellationShader feature is not enabled, then pStages must not include tessellation shaders
VUID-VkGraphicsPipelineCreateInfo-renderPass-06058YDynamicRenderingGraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_multiview,VK_VERSION_1_1)If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, the viewMask member of a VkPipelineRenderingCreateInfo structure included in the pNext chain is not 0, and the multiviewGeometryShader feature is not enabled, then pStages must not include a geometry shader
VUID-VkGraphicsPipelineCreateInfo-renderPass-06059YDynamicRenderingWithInvalidShaderLayerBuiltInexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_multiview,VK_VERSION_1_1)If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state, and the viewMask member of a VkPipelineRenderingCreateInfo structure included in the pNext chain is not 0, shaders in pStages must not include variables decorated with the Layer built-in decoration in their interfaces
VUID-VkGraphicsPipelineCreateInfo-renderPass-06060YDynamicRenderingGraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_multiview,VK_VERSION_1_1)If the pipeline is being created with fragment output interface state and renderPass is VK_NULL_HANDLE, pColorBlendState->attachmentCount must be equal to the colorAttachmentCount member of the VkPipelineRenderingCreateInfo structure included in the pNext chain
VUID-VkGraphicsPipelineCreateInfo-renderPass-06061YCreateGraphicsPipelineDynamicRenderingNoInfo, CreateGraphicsPipelineDynamicRendering, DynamicRenderingWithInputAttachmentCapabilityexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_multiview,VK_VERSION_1_1)If the pipeline is being created with fragment shader state and renderPass is VK_NULL_HANDLE, fragment shaders in pStages must not include the InputAttachment capability
VUID-VkGraphicsPipelineCreateInfo-renderPass-06062YDynamicRenderingGraphicsPipelineCreateInfoexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_KHR_multiview,VK_VERSION_1_1)If the pipeline is being created with fragment output interface state and renderPass is VK_NULL_HANDLE, for each color attachment format defined by the pColorAttachmentFormats member of VkPipelineRenderingCreateInfo, if its potential format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE
VUID-VkGraphicsPipelineCreateInfo-renderPass-06063YDynamicRenderingWithMismatchingMixedAttachmentSamplesexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples)If the pipeline is being created with fragment output interface state and renderPass is VK_NULL_HANDLE, if the pNext chain includes VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV, the colorAttachmentCount member of that structure must be equal to the value of VkPipelineRenderingCreateInfo::colorAttachmentCount
VUID-VkGraphicsPipelineCreateInfo-renderPass-06574YCreateGraphicsPipelineNullRenderPass, ImagelessFramebufferWith3DImageexplicitVkGraphicsPipelineCreateInfo!(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with pre-rasterization shader state, fragment shader state, or fragment output interface state, renderPass must be a valid render pass object
VUID-VkGraphicsPipelineCreateInfo-renderPass-06575YNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with pre-rasterization shader state, fragment shader state, or fragment output interface state, renderPass must be VK_NULL_HANDLE or a valid render pass object
VUID-VkGraphicsPipelineCreateInfo-renderPass-06578YInvalidPipelineRenderingViewMaskParameterexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with pre-rasterization shader state, fragment shader state, or fragment output interface state, and renderPass is VK_NULL_HANDLE, the index of the most significant bit in VkPipelineRenderingCreateInfo::viewMask must be less than maxMultiviewViewCount
VUID-VkGraphicsPipelineCreateInfo-renderPass-06579YInvalidRenderingInfoColorAttachmentFormat, InvalidPipelineRenderingParametersexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with fragment output interface state, and renderPass is VK_NULL_HANDLE, and VkPipelineRenderingCreateInfo::colorAttachmentCount is not 0, VkPipelineRenderingCreateInfo::pColorAttachmentFormats must be a valid pointer to an array of colorAttachmentCount valid VkFormat values
VUID-VkGraphicsPipelineCreateInfo-renderPass-06580YInvalidRenderingInfoColorAttachmentFormatexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with fragment output interface state, and renderPass is VK_NULL_HANDLE, each element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats must be a valid VkFormat value
VUID-VkGraphicsPipelineCreateInfo-renderPass-06581YDynamicRenderingGraphicsPipelineCreateInfo, InvalidPipelineRenderingParametersexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+!(VK_NV_linear_color_attachment)If the pipeline is being created with fragment output interface state, renderPass is VK_NULL_HANDLE, and any element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats is not VK_FORMAT_UNDEFINED, that format must be a format with potential format features that include VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VUID-VkGraphicsPipelineCreateInfo-renderPass-06582YInvalidRenderingColorAttachmentFormatexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_NV_linear_color_attachment)If the pipeline is being created with fragment output interface state, renderPass is VK_NULL_HANDLE, and any element of VkPipelineRenderingCreateInfo::pColorAttachmentFormats is not VK_FORMAT_UNDEFINED, that format must be a format with potential format features that include VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
VUID-VkGraphicsPipelineCreateInfo-renderPass-06583YNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with fragment output interface state, and renderPass is VK_NULL_HANDLE, VkPipelineRenderingCreateInfo::depthAttachmentFormat must be a valid VkFormat value
VUID-VkGraphicsPipelineCreateInfo-renderPass-06584YNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with fragment output interface state, and renderPass is VK_NULL_HANDLE, VkPipelineRenderingCreateInfo::stencilAttachmentFormat must be a valid VkFormat value
VUID-VkGraphicsPipelineCreateInfo-renderPass-06585YNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with fragment output interface state, renderPass is VK_NULL_HANDLE, and VkPipelineRenderingCreateInfo::depthAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format with potential format features that include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkGraphicsPipelineCreateInfo-renderPass-06586YNoneexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with fragment output interface state, renderPass is VK_NULL_HANDLE, and VkPipelineRenderingCreateInfo::stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format with potential format features that include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkGraphicsPipelineCreateInfo-renderPass-06587YInvalidPipelineRenderingParametersexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with fragment output interface state, renderPass is VK_NULL_HANDLE, and VkPipelineRenderingCreateInfo::depthAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format that includes a depth aspect
VUID-VkGraphicsPipelineCreateInfo-renderPass-06588YInvalidPipelineRenderingParametersexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with fragment output interface state, renderPass is VK_NULL_HANDLE, and VkPipelineRenderingCreateInfo::stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, it must be a format that includes a stencil aspect
VUID-VkGraphicsPipelineCreateInfo-renderPass-06589YInvalidPipelineRenderingParametersexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with fragment output interface state, renderPass is VK_NULL_HANDLE, VkPipelineRenderingCreateInfo::depthAttachmentFormat is not VK_FORMAT_UNDEFINED, and VkPipelineRenderingCreateInfo::stencilAttachmentFormat is not VK_FORMAT_UNDEFINED, depthAttachmentFormat must equal stencilAttachmentFormat
VUID-VkGraphicsPipelineCreateInfo-renderPass-06590YImagelessFramebufferWith3DImageexplicitVkGraphicsPipelineCreateInfo(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_graphics_pipeline_library)If renderPass is VK_NULL_HANDLE and the pipeline is being created with fragment shader state but not fragment output interface state, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure
VUID-VkGraphicsPipelineCreateInfo-renderPass-06595NNoneexplicitVkGraphicsPipelineCreateInfo(VK_NVX_multiview_per_view_attributes)If renderPass is VK_NULL_HANDLE, the pipeline is being created with pre-rasterization shader state or fragment shader state, and VkMultiviewPerViewAttributesInfoNVX::perViewAttributesPositionXOnly is VK_TRUE then VkMultiviewPerViewAttributesInfoNVX::perViewAttributes must also be VK_TRUE
VUID-VkGraphicsPipelineCreateInfo-renderPass-06603YCreateGraphicsPipelineNullRenderPass, ImagelessFramebufferWith3DImageexplicitVkGraphicsPipelineCreateInfo!(VK_EXT_graphics_pipeline_library)If renderPass is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass handle
VUID-VkGraphicsPipelineCreateInfo-renderpass-06624NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)If renderpass is not VK_NULL_HANDLE, VkGraphicsPipelineLibraryCreateInfoEXT::flags includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, renderPass must be compatible with that used to create the library
VUID-VkGraphicsPipelineCreateInfo-renderpass-06625YInvalidDynamicRenderingLibraryRenderPassexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If renderpass is VK_NULL_HANDLE, VkGraphicsPipelineLibraryCreateInfoEXT::flags includes at least one of and no more than two of VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT, or VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, and an element of VkPipelineLibraryCreateInfoKHR::pLibraries includes one of the other flags, the value of renderPass used to create that library must also be VK_NULL_HANDLE
VUID-VkGraphicsPipelineCreateInfo-renderpass-06631YPipelineMissingMultisampleStateexplicitVkGraphicsPipelineCreateInfo(VK_EXT_graphics_pipeline_library)+(VK_VERSION_1_3,VK_KHR_dynamic_rendering)If the pipeline is being created with fragment shader state and renderpass is not VK_NULL_HANDLE, then pMultisampleState must not be NULL
VUID-VkGraphicsPipelineCreateInfo-sType-sTypeYNoneimplicitVkGraphicsPipelineCreateInfocoresType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
VUID-VkGraphicsPipelineCreateInfo-sType-uniqueYNoneimplicitVkGraphicsPipelineCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524NNoneexplicitVkGraphicsPipelineCreateInfo(VK_EXT_sample_locations)If the pipeline is being created with fragment shader state, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, the fragment shader code must not statically use the extended instruction InterpolateAtSample
VUID-VkGraphicsPipelineCreateInfo-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-stageCount-06604YImagelessFramebufferWith3DImageexplicitVkGraphicsPipelineCreateInfo!(VK_EXT_graphics_pipeline_library)stageCount must be greater than 0
VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767YCreatePipelineCheckLineRasterizationexplicitVkGraphicsPipelineCreateInfo(VK_EXT_line_rasterization)If the pipeline is being created with pre-rasterization shader state, the stippledLineEnable member of VkPipelineRasterizationLineStateCreateInfoEXT is VK_TRUE, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_LINE_STIPPLE_EXT, then the lineStippleFactor member of VkPipelineRasterizationLineStateCreateInfoEXT must be in the range [1,256]
VUID-VkGraphicsPipelineCreateInfo-subpass-00757YFramebufferMixedSamples, InvalidSampleLocations, FramebufferMixedSamplesNV, NumSamplesMismatchexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with fragment output interface 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 output interface state, and subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must follow the rules for a zero-attachment subpass
VUID-VkGraphicsPipelineCreateInfo-subpass-01411YFramebufferMixedSamplesNVexplicitVkGraphicsPipelineCreateInfo(VK_NV_framebuffer_mixed_samples)If the pipeline is being created with fragment output interface state, and the VK_NV_framebuffer_mixed_samples extension is enabled, and if subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled, then the rasterizationSamples member of pMultisampleState must be the same as the sample count of the depth/stencil attachment
VUID-VkGraphicsPipelineCreateInfo-subpass-01412YFramebufferMixedSamplesNVexplicitVkGraphicsPipelineCreateInfo(VK_NV_framebuffer_mixed_samples)If the pipeline is being created with fragment output interface state, and the VK_NV_framebuffer_mixed_samples extension is enabled, and if subpass has any color attachments, then the rasterizationSamples member of pMultisampleState must be greater than or equal to the sample count for those subpass attachments
VUID-VkGraphicsPipelineCreateInfo-subpass-01505YAMDMixedAttachmentSamplesValidateGraphicsPipelineexplicitVkGraphicsPipelineCreateInfo(VK_AMD_mixed_attachment_samples)If the pipeline is being created with fragment output interface state, and the VK_AMD_mixed_attachment_samples extension is enabled, and if subpass uses color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must equal the maximum of the sample counts of those subpass attachments
VUID-VkGraphicsPipelineCreateInfo-topology-00737YInvalidTopology, CreatePipelineTessErrors, PrimitiveTopologyListRestartexplicitVkGraphicsPipelineCreateInfocoreIf the pipeline is being created with pre-rasterization shader state and the topology member of pInputAssembly is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, pStages must include tessellation shader stages
VUID-VkGraphicsPipelineLibraryCreateInfoEXT-flags-parameterYNoneimplicitVkGraphicsPipelineLibraryCreateInfoEXT(VK_EXT_graphics_pipeline_library)flags must be a valid combination of VkGraphicsPipelineLibraryFlagBitsEXT values
VUID-VkGraphicsPipelineLibraryCreateInfoEXT-sType-sTypeYNoneimplicitVkGraphicsPipelineLibraryCreateInfoEXT(VK_EXT_graphics_pipeline_library)sType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT
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-parameterYNoneimplicitVkGraphicsPipelineShaderGroupsCreateInfoNV(VK_NV_device_generated_commands)If groupCount is not 0, pGroups must be a valid pointer to an array of groupCount valid VkGraphicsShaderGroupCreateInfoNV structures
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-02886NNoneexplicitVkGraphicsPipelineShaderGroupsCreateInfoNV(VK_NV_device_generated_commands)Each element of pPipelines must have been created with identical state to the pipeline currently created except the state that can be overridden by VkGraphicsShaderGroupCreateInfoNV
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-parameterYNoneimplicitVkGraphicsPipelineShaderGroupsCreateInfoNV(VK_NV_device_generated_commands)If pipelineCount is not 0, pPipelines must be a valid pointer to an array of pipelineCount valid VkPipeline handles
VUID-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-dstSubresource-parameterNNoneimplicitVkImageBlitcoredstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageBlit-layerCount-00239YMiscBlitImageTestsexplicitVkImageBlitcoreThe layerCount member of srcSubresource and dstSubresource must match
VUID-VkImageBlit-srcSubresource-parameterNNoneimplicitVkImageBlitcoresrcSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageBlit2-dstSubresource-parameterNNoneimplicitVkImageBlit2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageBlit2-layerCount-00239YNoneexplicitVkImageBlit2(VK_VERSION_1_3,VK_KHR_copy_commands2)The layerCount member of srcSubresource and dstSubresource must match
VUID-VkImageBlit2-pNext-pNextYNoneimplicitVkImageBlit2(VK_VERSION_1_3,VK_KHR_copy_commands2)pNext must be NULL or a pointer to a valid instance of VkCopyCommandTransformInfoQCOM
VUID-VkImageBlit2-sType-sTypeYNoneimplicitVkImageBlit2(VK_VERSION_1_3,VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_IMAGE_BLIT_2
VUID-VkImageBlit2-sType-uniqueYNoneimplicitVkImageBlit2(VK_VERSION_1_3,VK_KHR_copy_commands2)The sType value of each struct in the pNext chain must be unique
VUID-VkImageBlit2-srcSubresource-parameterNNoneimplicitVkImageBlit2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageCompressionControlEXT-flags-06747YInvalidImageCompressionControlexplicitVkImageCompressionControlEXT(VK_EXT_image_compression_control)flags must be one of VK_IMAGE_COMPRESSION_DEFAULT_EXT, VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT, VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, or VK_IMAGE_COMPRESSION_DISABLED_EXT
VUID-VkImageCompressionControlEXT-flags-06748YInvalidImageCompressionControlexplicitVkImageCompressionControlEXT(VK_EXT_image_compression_control)If flags includes VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, pFixedRateFlags must not be NULL
VUID-VkImageCompressionControlEXT-sType-sTypeYNoneimplicitVkImageCompressionControlEXT(VK_EXT_image_compression_control)sType must be VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT
VUID-VkImageCompressionPropertiesEXT-sType-sTypeYNoneimplicitVkImageCompressionPropertiesEXT(VK_EXT_image_compression_control)sType must be VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT
VUID-VkImageConstraintsInfoFUCHSIA-bufferCollectionConstraints-parameterNNoneimplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)bufferCollectionConstraints must be a valid VkBufferCollectionConstraintsInfoFUCHSIA structure
VUID-VkImageConstraintsInfoFUCHSIA-flags-parameterYNoneimplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)flags must be a valid combination of VkImageConstraintsInfoFlagBitsFUCHSIA values
VUID-VkImageConstraintsInfoFUCHSIA-formatConstraintsCount-arraylengthYNoneimplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)formatConstraintsCount must be greater than 0
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06395NNoneexplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)All elements of pFormatConstraints must have at least one bit set in its VkImageFormatConstraintsInfoFUCHSIA::requiredFormatFeatures
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06396NNoneexplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)If pFormatConstraints::imageCreateInfo::usage contains VK_IMAGE_USAGE_SAMPLED_BIT, then pFormatConstraints::requiredFormatFeatures must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06397NNoneexplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)If pFormatConstraints::imageCreateInfo::usage contains VK_IMAGE_USAGE_STORAGE_BIT, then pFormatConstraints::requiredFormatFeatures must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06398NNoneexplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)If pFormatConstraints::imageCreateInfo::usage contains VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, then pFormatConstraints::requiredFormatFeatures must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06399NNoneexplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)If pFormatConstraints::imageCreateInfo::usage contains VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, then pFormatConstraints::requiredFormatFeatures must contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-06400NNoneexplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)If pFormatConstraints::imageCreateInfo::usage contains VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, then pFormatConstraints::requiredFormatFeatures must contain at least one of VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageConstraintsInfoFUCHSIA-pFormatConstraints-parameterYNoneimplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)pFormatConstraints must be a valid pointer to an array of formatConstraintsCount valid VkImageFormatConstraintsInfoFUCHSIA structures
VUID-VkImageConstraintsInfoFUCHSIA-pNext-pNextYNoneimplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)pNext must be NULL
VUID-VkImageConstraintsInfoFUCHSIA-sType-sTypeYNoneimplicitVkImageConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)sType must be VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA
VUID-VkImageCopy-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-extent-06668YCopyImageZeroSizeexplicitVkImageCopycoreextent.width must not be 0
VUID-VkImageCopy-extent-06669YCopyImageZeroSizeexplicitVkImageCopycoreextent.height must not be 0
VUID-VkImageCopy-extent-06670YCopyImageZeroSizeexplicitVkImageCopycoreextent.depth must not be 0
VUID-VkImageCopy-layerCount-00138YCopyImageLayerCountMismatchexplicitVkImageCopy!(VK_VERSION_1_1,VK_KHR_maintenance1)The layerCount member of srcSubresource and dstSubresource must match
VUID-VkImageCopy-srcSubresource-parameterNNoneimplicitVkImageCopycoresrcSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageCopy2-dstSubresource-parameterNNoneimplicitVkImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)dstSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageCopy2-extent-00140YNoneexplicitVkImageCopy2(VK_VERSION_1_3,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-VkImageCopy2-extent-06668YNoneexplicitVkImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)extent.width must not be 0
VUID-VkImageCopy2-extent-06669YNoneexplicitVkImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)extent.height must not be 0
VUID-VkImageCopy2-extent-06670YNoneexplicitVkImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)extent.depth must not be 0
VUID-VkImageCopy2-layerCount-00138YNoneexplicitVkImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_maintenance1)The layerCount member of srcSubresource and dstSubresource must match
VUID-VkImageCopy2-pNext-pNextYNoneimplicitVkImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)pNext must be NULL
VUID-VkImageCopy2-sType-sTypeYNoneimplicitVkImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)sType must be VK_STRUCTURE_TYPE_IMAGE_COPY_2
VUID-VkImageCopy2-srcSubresource-parameterNNoneimplicitVkImageCopy2(VK_VERSION_1_3,VK_KHR_copy_commands2)srcSubresource must be a valid VkImageSubresourceLayers structure
VUID-VkImageCreateInfo-Format-02536YImageStencilCreateexplicitVkImageCreateInfo(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If Format is a depth-stencil format and the pNext chain includes a VkImageStencilUsageCreateInfo structure with its stencilUsage member including VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.width must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferWidth
VUID-VkImageCreateInfo-None-01891YInvalidProtectedMemoryexplicitVkImageCreateInfo(VK_VERSION_1_1)If any of the bits VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT are set, VK_IMAGE_CREATE_PROTECTED_BIT must not also be set
VUID-VkImageCreateInfo-None-01925YInvalidSparseImageUsageBitsexplicitVkImageCreateInfocoreIf any of the bits VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT are set, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT must not also be set
VUID-VkImageCreateInfo-arrayLayers-00948YCreateImageMinLimitsViolationexplicitVkImageCreateInfocorearrayLayers must be greater than 0
VUID-VkImageCreateInfo-arrayLayers-02256YCreateImageMaxLimitsViolationexplicitVkImageCreateInfocorearrayLayers must be less than or equal to imageCreateMaxArrayLayers (as defined in Image Creation Limits)
VUID-VkImageCreateInfo-extent-00944YCreateImageMinLimitsViolationexplicitVkImageCreateInfocoreextent.width must be greater than 0
VUID-VkImageCreateInfo-extent-00945YCreateImageMinLimitsViolationexplicitVkImageCreateInfocoreextent.height must be greater than 0
VUID-VkImageCreateInfo-extent-00946YCreateImageMinLimitsViolationexplicitVkImageCreateInfocoreextent.depth must be greater than 0
VUID-VkImageCreateInfo-extent-02252YCreateImageMaxLimitsViolationexplicitVkImageCreateInfocoreextent.width must be less than or equal to imageCreateMaxExtent.width (as defined in Image Creation Limits)
VUID-VkImageCreateInfo-extent-02253YCreateImageMaxLimitsViolation, CreateImageYcbcrFormatsexplicitVkImageCreateInfocoreextent.height must be less than or equal to imageCreateMaxExtent.height (as defined in Image Creation Limits)
VUID-VkImageCreateInfo-extent-02254YCreateImageMaxLimitsViolationexplicitVkImageCreateInfocoreextent.depth must be less than or equal to imageCreateMaxExtent.depth (as defined in Image Creation Limits)
VUID-VkImageCreateInfo-flags-00949YCreateImageMiscErrorsexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, imageType must be VK_IMAGE_TYPE_2D
VUID-VkImageCreateInfo-flags-00950YBad2DArrayImageTypeexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance1)If flags contains VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, imageType must be VK_IMAGE_TYPE_3D
VUID-VkImageCreateInfo-flags-00969YCreateImageMiscErrorsexplicitVkImageCreateInfocoreIf the sparse bindings feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT
VUID-VkImageCreateInfo-flags-00987YCreateImageViewInvalidSubresourceRange, SparseBindingImageBufferCreateexplicitVkImageCreateInfocoreIf flags contains VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, it must also contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT
VUID-VkImageCreateInfo-flags-01533YInvalidSampleLocationsexplicitVkImageCreateInfo(VK_EXT_sample_locations)If flags contains VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT format must be a depth or depth/stencil format
VUID-VkImageCreateInfo-flags-01572YNoneexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)If flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, then format must be a compressed image format
VUID-VkImageCreateInfo-flags-01573YNoneexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_maintenance2)If flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, then flags must also contain VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
VUID-VkImageCreateInfo-flags-01890YInvalidProtectedSubmitexplicitVkImageCreateInfo(VK_VERSION_1_1)If the 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-00943YCreateImageMiscErrors, ImageLayerUnsupportedFormatexplicitVkImageCreateInfo!(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-02795YImageStencilCreateexplicitVkImageCreateInfo(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If format is a depth-stencil format, usage includes VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageCreateInfo-format-02796YImageStencilCreateexplicitVkImageCreateInfo(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If format is a depth-stencil format, usage does not include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also not include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageCreateInfo-format-02797YImageStencilCreateexplicitVkImageCreateInfo(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If format is a depth-stencil format, usage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
VUID-VkImageCreateInfo-format-02798YImageStencilCreateexplicitVkImageCreateInfo(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)If format is a depth-stencil format, usage does not include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also not include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
VUID-VkImageCreateInfo-format-04712YCreateImageYcbcrFormatsexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If format has a _422 or _420 suffix, width must be a multiple of 2
VUID-VkImageCreateInfo-format-04713YCreateImageYcbcrFormatsexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If format has a _420 suffix, height must be a multiple of 2
VUID-VkImageCreateInfo-format-06410YCreateImageYcbcrFormatsexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the image format is one of the formats that require a sampler {YCbCr} conversion, mipLevels must be 1
VUID-VkImageCreateInfo-format-06411YCreateImageYcbcrFormatsexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the image format is one of the formats that require a sampler {YCbCr} conversion, samples must be VK_SAMPLE_COUNT_1_BIT
VUID-VkImageCreateInfo-format-06412YCreateImageYcbcrFormatsexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the image format is one of the formats that require a sampler {YCbCr} conversion, imageType must be VK_IMAGE_TYPE_2D
VUID-VkImageCreateInfo-format-06413YCreateImageYcbcrFormatsexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_ycbcr_image_arrays)If the image format is one of the formats that require a sampler {YCbCr} conversion, and the ycbcrImageArrays feature is not enabled, arrayLayers must be 1
VUID-VkImageCreateInfo-format-06414YCreateImageYcbcrFormatsexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_ycbcr_image_arrays)If the image format is one of the formats that require a sampler {YCbCr} conversion, arrayLayers must be 1
VUID-VkImageCreateInfo-format-parameterYNoneimplicitVkImageCreateInfocoreformat must be a valid VkFormat value
VUID-VkImageCreateInfo-fragmentDensityMapOffset-06514YCreateImageMaxLimitsViolationexplicitVkImageCreateInfo(VK_EXT_fragment_density_map)+(VK_QCOM_fragment_density_map_offset)If fragmentDensityMapOffset is not enabled and usage includes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.width must be less than or equal to the ceiling of maxFramebufferWidth/minFragmentDensityTexelSize.width
VUID-VkImageCreateInfo-fragmentDensityMapOffset-06515YCreateImageMaxLimitsViolationexplicitVkImageCreateInfo(VK_EXT_fragment_density_map)+(VK_QCOM_fragment_density_map_offset)If fragmentDensityMapOffset is not enabled and usage includes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.height must be less than or equal to the ceiling of maxFramebufferHeight/minFragmentDensityTexelSize.height
VUID-VkImageCreateInfo-imageCreateFormatFeatures-02260YCreateImageYcbcrFormatsexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If format is a multi-planar format, and if imageCreateFormatFeatures (as defined in Image Creation Limits) does not contain VK_FORMAT_FEATURE_DISJOINT_BIT, then flags must not contain VK_IMAGE_CREATE_DISJOINT_BIT
VUID-VkImageCreateInfo-imageCreateMaxMipLevels-02251YAndroidHardwareBufferImageCreateexplicitVkImageCreateInfocoreEach of the following values (as described in Image Creation Limits) must not be undefined : imageCreateMaxMipLevels, imageCreateMaxArrayLayers, imageCreateMaxExtent, and imageCreateSampleCounts
VUID-VkImageCreateInfo-imageType-00954YCreateImageMiscErrors, CreateImageMinLimitsViolationexplicitVkImageCreateInfocoreIf imageType is VK_IMAGE_TYPE_2D and flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height must be equal and arrayLayers must be greater than or equal to 6
VUID-VkImageCreateInfo-imageType-00956YCreateImageMinLimitsViolation, CreateImageYcbcrFormatsexplicitVkImageCreateInfocoreIf imageType is VK_IMAGE_TYPE_1D, both extent.height and extent.depth must be 1
VUID-VkImageCreateInfo-imageType-00957YCreateImageMinLimitsViolationexplicitVkImageCreateInfocoreIf imageType is VK_IMAGE_TYPE_2D, extent.depth must be 1
VUID-VkImageCreateInfo-imageType-00961YCreateImageMinLimitsViolationexplicitVkImageCreateInfocoreIf imageType is VK_IMAGE_TYPE_3D, arrayLayers must be 1
VUID-VkImageCreateInfo-imageType-00970YSparseResidencyImageCreateUnsupportedTypesexplicitVkImageCreateInfocoreIf imageType is VK_IMAGE_TYPE_1D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkImageCreateInfo-imageType-00971YSparseResidencyImageCreateUnsupportedTypesexplicitVkImageCreateInfocoreIf the 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-parameterYNoneimplicitVkImageCreateInfocoreimageType must be a valid VkImageType value
VUID-VkImageCreateInfo-imageView2DOn3DImage-04459YResolveInvalidUsageexplicitVkImageCreateInfo(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-04460YResolveInvalidUsageexplicitVkImageCreateInfo(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-00988YExternalMemoryAndExternalMemoryNVexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_NV_external_memory)If the pNext chain includes a VkExternalMemoryImageCreateInfoNV structure, it must not contain a VkExternalMemoryImageCreateInfo structure
VUID-VkImageCreateInfo-pNext-00990NNoneexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_external_memory)If the pNext chain includes a VkExternalMemoryImageCreateInfo structure, its handleTypes member must only contain bits that are also in VkExternalImageFormatProperties::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceImageFormatProperties2 with format, imageType, tiling, usage, and flags equal to those in this structure, and with a VkPhysicalDeviceExternalImageFormatInfo structure included in the pNext chain, with a handleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfo::handleTypes
VUID-VkImageCreateInfo-pNext-00991NNoneexplicitVkImageCreateInfo(VK_NV_external_memory+VK_NV_external_memory_capabilities)If the pNext chain includes a VkExternalMemoryImageCreateInfoNV structure, its handleTypes member must only contain bits that are also in VkExternalImageFormatPropertiesNV::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceExternalImageFormatPropertiesNV with format, imageType, tiling, usage, and flags equal to those in this structure, and with externalHandleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfoNV::handleTypes
VUID-VkImageCreateInfo-pNext-01443YValidateExternalMemoryImageLayoutexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_external_memory,VK_NV_external_memory)If the pNext chain includes a VkExternalMemoryImageCreateInfo or VkExternalMemoryImageCreateInfoNV structure whose handleTypes member is not 0, initialLayout must be VK_IMAGE_LAYOUT_UNDEFINED
VUID-VkImageCreateInfo-pNext-01974YAndroidHardwareBufferImageCreateexplicitVkImageCreateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If the pNext chain includes a VkExternalFormatANDROID structure, and its externalFormat member is non-zero the format must be VK_FORMAT_UNDEFINED
VUID-VkImageCreateInfo-pNext-01975YAndroidHardwareBufferImageCreateexplicitVkImageCreateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If the pNext chain does not include a VkExternalFormatANDROID structure, or does and its externalFormat member is 0, the format must not be VK_FORMAT_UNDEFINED
VUID-VkImageCreateInfo-pNext-02262YImageDrmFormatModiferexplicitVkImageCreateInfo(VK_EXT_image_drm_format_modifier)If the pNext chain includes a VkImageDrmFormatModifierListCreateInfoEXT or VkImageDrmFormatModifierExplicitCreateInfoEXT structure, then tiling must be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
VUID-VkImageCreateInfo-pNext-02393YAndroidHardwareBufferImageCreateexplicitVkImageCreateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If the pNext chain includes a VkExternalMemoryImageCreateInfo structure whose handleTypes member includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, imageType must be VK_IMAGE_TYPE_2D
VUID-VkImageCreateInfo-pNext-02394YAndroidHardwareBufferImageCreateexplicitVkImageCreateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If the pNext chain includes a VkExternalMemoryImageCreateInfo structure whose handleTypes member includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, mipLevels must either be 1 or equal to the number of levels in the complete mipmap chain based on extent.width, extent.height, and extent.depth
VUID-VkImageCreateInfo-pNext-02396YAndroidHardwareBufferImageCreateexplicitVkImageCreateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, flags must not include VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
VUID-VkImageCreateInfo-pNext-02397YAndroidHardwareBufferImageCreateexplicitVkImageCreateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, usage must not include any usages except VK_IMAGE_USAGE_SAMPLED_BIT
VUID-VkImageCreateInfo-pNext-02398YAndroidHardwareBufferImageCreateexplicitVkImageCreateInfo(VK_ANDROID_external_memory_android_hardware_buffer)If the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, tiling must be VK_IMAGE_TILING_OPTIMAL
VUID-VkImageCreateInfo-pNext-06390NNoneexplicitVkImageCreateInfo(VK_FUCHSIA_buffer_collection)If the VkImage is to be used to import memory from a VkBufferCollectionFUCHSIA, a VkBufferCollectionImageCreateInfoFUCHSIA structure must be chained to pNext.
VUID-VkImageCreateInfo-pNext-06722YInvalidImageFormatListSizeCompatible, InvalidImageFormatListexplicitVkImageCreateInfo(VK_VERSION_1_2,VK_KHR_image_format_list)If a VkImageFormatListCreateInfo structure was included in the pNext chain and VkImageFormatListCreateInfo::viewFormatCount is not zero, then each format in VkImageFormatListCreateInfo::pViewFormats must either be compatible with the format as described in the compatibility table or, if flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, be an uncompressed format that is size-compatible with format
VUID-VkImageCreateInfo-pNext-06743NNoneexplicitVkImageCreateInfo(VK_EXT_image_compression_control)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the pNext chain includes a VkImageCompressionControlEXT structure, format is a multi-planar format, and VkImageCompressionControlEXT::flags includes VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, then VkImageCompressionControlEXT::compressionControlPlaneCount must be equal to the number of planes in format
VUID-VkImageCreateInfo-pNext-06744NNoneexplicitVkImageCreateInfo(VK_EXT_image_compression_control)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the pNext chain includes a VkImageCompressionControlEXT structure, format is a not multi-planar format, and VkImageCompressionControlEXT::flags includes VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, then VkImageCompressionControlEXT::compressionControlPlaneCount must be 1
VUID-VkImageCreateInfo-pNext-06745NNoneexplicitVkImageCreateInfo(VK_EXT_image_compression_control)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)If the pNext chain includes a VkImageCompressionControlEXT structure, and VkImageCompressionControlEXT::flags includes VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, then VkImageCompressionControlEXT::compressionControlPlaneCount must be 1
VUID-VkImageCreateInfo-pNext-06746NNoneexplicitVkImageCreateInfo(VK_EXT_image_compression_control)+(VK_EXT_image_drm_format_modifier)If the pNext chain includes a VkImageCompressionControlEXT structure, it must not contain a VkImageDrmFormatModifierExplicitCreateInfoEXT structure
VUID-VkImageCreateInfo-pNext-pNextYNoneimplicitVkImageCreateInfocoreEach pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkBufferCollectionImageCreateInfoFUCHSIA, VkDedicatedAllocationImageCreateInfoNV, VkExternalFormatANDROID, VkExternalMemoryImageCreateInfo, VkExternalMemoryImageCreateInfoNV, VkImageCompressionControlEXT, VkImageDrmFormatModifierExplicitCreateInfoEXT, VkImageDrmFormatModifierListCreateInfoEXT, VkImageFormatListCreateInfo, VkImageStencilUsageCreateInfo, VkImageSwapchainCreateInfoKHR, VkVideoDecodeH264ProfileEXT, VkVideoDecodeH265ProfileEXT, VkVideoEncodeH264ProfileEXT, VkVideoEncodeH265ProfileEXT, VkVideoProfileKHR, or VkVideoProfilesKHR
VUID-VkImageCreateInfo-physicalDeviceCount-01421YInvalidImageCreateFlagWithPhysicalDeviceCountexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_device_group)If the logical device was created with VkDeviceGroupDeviceCreateInfo::physicalDeviceCount equal to 1, flags must not contain VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT
VUID-VkImageCreateInfo-sType-sTypeYNoneimplicitVkImageCreateInfocoresType must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
VUID-VkImageCreateInfo-sType-uniqueYNoneimplicitVkImageCreateInfocoreThe sType value of each struct in the pNext chain must be unique
VUID-VkImageCreateInfo-samples-02257YCreateImageMiscErrorsexplicitVkImageCreateInfocoreIf samples is not VK_SAMPLE_COUNT_1_BIT, then imageType must be VK_IMAGE_TYPE_2D, flags must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, mipLevels must be equal to 1, and imageCreateMaybeLinear (as defined in Image Creation Limits) must be VK_FALSE,
VUID-VkImageCreateInfo-samples-02258YCreateImageMaxLimitsViolation, CreateImageYcbcrFormatsexplicitVkImageCreateInfocoresamples must be a bit value that is set in imageCreateSampleCounts (as defined in Image Creation Limits)
VUID-VkImageCreateInfo-samples-02558YFragmentDensityMapEnabledexplicitVkImageCreateInfo(VK_EXT_fragment_density_map)If samples is not VK_SAMPLE_COUNT_1_BIT, usage must not contain VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
VUID-VkImageCreateInfo-samples-parameterYNoneimplicitVkImageCreateInfocoresamples must be a valid VkSampleCountFlagBits value
VUID-VkImageCreateInfo-sharingMode-00941YCreateImageMiscErrorsexplicitVkImageCreateInfocoreIf sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values
VUID-VkImageCreateInfo-sharingMode-00942YCreateImageMiscErrorsexplicitVkImageCreateInfocoreIf sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1
VUID-VkImageCreateInfo-sharingMode-01392YInvalidCreateImageQueueFamiliesexplicitVkImageCreateInfo!(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the physicalDevice that was used to create device
VUID-VkImageCreateInfo-sharingMode-01420YInvalidCreateImageQueueFamiliesexplicitVkImageCreateInfo(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by either vkGetPhysicalDeviceQueueFamilyProperties or vkGetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create device
VUID-VkImageCreateInfo-sharingMode-parameterYNoneimplicitVkImageCreateInfocoresharingMode must be a valid VkSharingMode value
VUID-VkImageCreateInfo-tiling-02261YImageDrmFormatModiferexplicitVkImageCreateInfo(VK_EXT_image_drm_format_modifier)If tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the pNext chain must include exactly one of VkImageDrmFormatModifierListCreateInfoEXT or VkImageDrmFormatModifierExplicitCreateInfoEXT structures
VUID-VkImageCreateInfo-tiling-02353NNoneexplicitVkImageCreateInfo(VK_EXT_image_drm_format_modifier)If tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and flags contains VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, then the pNext chain must include a VkImageFormatListCreateInfo structure with non-zero viewFormatCount
VUID-VkImageCreateInfo-tiling-04121YNoneexplicitVkImageCreateInfocoreIf tiling is VK_IMAGE_TILING_LINEAR, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
VUID-VkImageCreateInfo-tiling-parameterYNoneimplicitVkImageCreateInfocoretiling must be a valid VkImageTiling value
VUID-VkImageCreateInfo-usage-00963YCreateImageMiscErrorsexplicitVkImageCreateInfocoreIf usage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, then bits other than VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT must not be set
VUID-VkImageCreateInfo-usage-00964YCreateImageMaxLimitsViolationexplicitVkImageCreateInfocoreIf usage includes VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.width must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferWidth
VUID-VkImageCreateInfo-usage-00965YCreateImageMaxLimitsViolationexplicitVkImageCreateInfocoreIf usage includes VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.height must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferHeight
VUID-VkImageCreateInfo-usage-00966YCreateImageMiscErrorsexplicitVkImageCreateInfocoreIf usage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, usage must also contain at least one of VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VUID-VkImageCreateInfo-usage-00968YCreateImageMiscErrorsexplicitVkImageCreateInfocoreIf the 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-02559NNoneexplicitVkImageCreateInfo(VK_EXT_fragment_density_map)+!(VK_QCOM_fragment_density_map_offset)If usage includes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.width must be less than or equal to the ceiling of maxFramebufferWidth/minFragmentDensityTexelSize.width
VUID-VkImageCreateInfo-usage-02560NNoneexplicitVkImageCreateInfo(VK_EXT_fragment_density_map)+!(VK_QCOM_fragment_density_map_offset)If usage includes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.height must be less than or equal to the ceiling of maxFramebufferHeight/minFragmentDensityTexelSize.height
VUID-VkImageCreateInfo-usage-04815NNoneexplicitVkImageCreateInfo(VK_KHR_video_decode_queue)If usage includes VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR, then the pNext chain must include a valid 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-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-VkImageFormatConstraintsInfoFUCHSIA-colorSpaceCount-arraylengthYNoneimplicitVkImageFormatConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)colorSpaceCount must be greater than 0
VUID-VkImageFormatConstraintsInfoFUCHSIA-imageCreateInfo-parameterNNoneimplicitVkImageFormatConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)imageCreateInfo must be a valid VkImageCreateInfo structure
VUID-VkImageFormatConstraintsInfoFUCHSIA-pColorSpaces-parameterYNoneimplicitVkImageFormatConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)pColorSpaces must be a valid pointer to an array of colorSpaceCount valid VkSysmemColorSpaceFUCHSIA structures
VUID-VkImageFormatConstraintsInfoFUCHSIA-pNext-pNextYNoneimplicitVkImageFormatConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)pNext must be NULL
VUID-VkImageFormatConstraintsInfoFUCHSIA-requiredFormatFeatures-parameterYNoneimplicitVkImageFormatConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)requiredFormatFeatures must be a valid combination of VkFormatFeatureFlagBits values
VUID-VkImageFormatConstraintsInfoFUCHSIA-sType-sTypeYNoneimplicitVkImageFormatConstraintsInfoFUCHSIA(VK_FUCHSIA_buffer_collection)sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA
VUID-VkImageFormatListCreateInfo-pViewFormats-parameterNNoneimplicitVkImageFormatListCreateInfo(VK_VERSION_1_2,VK_KHR_image_format_list)If viewFormatCount is not 0, pViewFormats must be a valid pointer to an array of viewFormatCount valid VkFormat values
VUID-VkImageFormatListCreateInfo-sType-sTypeYNoneimplicitVkImageFormatListCreateInfo(VK_VERSION_1_2,VK_KHR_image_format_list)sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO
VUID-VkImageFormatProperties2-pNext-pNextYNoneimplicitVkImageFormatProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkAndroidHardwareBufferUsageANDROID, VkExternalImageFormatProperties, VkFilterCubicImageViewImageFormatPropertiesEXT, VkImageCompressionPropertiesEXT, VkSamplerYcbcrConversionImageFormatProperties, or VkTextureLODGatherFormatPropertiesAMD
VUID-VkImageFormatProperties2-sType-sTypeYNoneimplicitVkImageFormatProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2
VUID-VkImageFormatProperties2-sType-uniqueYNoneimplicitVkImageFormatProperties2(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)The sType value of each struct in the pNext chain must be unique
VUID-VkImageMemoryBarrier-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-01197YInvalidImageLayout, InvalidBarriersexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, oldLayout must be VK_IMAGE_LAYOUT_UNDEFINED or the current layout of the image subresources affected by the barrier
VUID-VkImageMemoryBarrier-oldLayout-01208YInvalidBarriersexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier-oldLayout-01209YInvalidBarriersexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier-oldLayout-01210YInvalidImageLayout, InvalidBarriersexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier-oldLayout-01211YInvalidBarriersexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier-oldLayout-01212YInvalidBarriersexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT
VUID-VkImageMemoryBarrier-oldLayout-01213YInvalidBarriersexplicitVkImageMemoryBarriercoreIf srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT
VUID-VkImageMemoryBarrier-oldLayout-01658YInvalidBarriersexplicitVkImageMemoryBarrier(VK_VERSION_1_1,VK_KHR_maintenance2)If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier-oldLayout-01659YInvalidBarriersexplicitVkImageMemoryBarrier(VK_VERSION_1_1,VK_KHR_maintenance2)If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier-oldLayout-02088YShadingRateImageNVexplicitVkImageMemoryBarrier(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image)If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR then image must have been created with VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR set
VUID-VkImageMemoryBarrier-oldLayout-parameterYNoneimplicitVkImageMemoryBarriercoreoldLayout must be a valid VkImageLayout value
VUID-VkImageMemoryBarrier-pNext-pNextYNoneimplicitVkImageMemoryBarriercorepNext must be NULL or a pointer to a valid instance of VkSampleLocationsInfoEXT
VUID-VkImageMemoryBarrier-sType-sTypeYNoneimplicitVkImageMemoryBarriercoresType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
VUID-VkImageMemoryBarrier-sType-uniqueYNoneimplicitVkImageMemoryBarriercoreThe sType value of each struct in the pNext chain must be unique
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-03938NNoneexplicitVkImageMemoryBarrier(VK_VERSION_1_3,VK_KHR_synchronization2)If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL, image must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-03939NNoneexplicitVkImageMemoryBarrier(VK_VERSION_1_3,VK_KHR_synchronization2)If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL, image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04065NNoneexplicitVkImageMemoryBarrier(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts)If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL then image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04066NNoneexplicitVkImageMemoryBarrier(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts)If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04067NNoneexplicitVkImageMemoryBarrier(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts)If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04068NNoneexplicitVkImageMemoryBarrier(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts)If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04070NNoneexplicitVkImageMemoryBarrier(VK_VERSION_1_1,VK_KHR_external_memory)If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one must not be a special queue family reserved for external memory ownership transfers, as described in Queue Family Ownership Transfer