Valid Usage Database (1.2.182)
VUID NAME | CHECKED | SPIRV-TOOL | TEST | TYPE | API/STRUCT | EXTENSION | VUID TEXT |
VUID-BaryCoordNV-BaryCoordNV-04154 | N | | None | explicit | BaryCoordNV | (VK_NV_fragment_shader_barycentric) | The BaryCoordNV decoration must be used only within the Fragment {ExecutionModel} |
VUID-BaryCoordNV-BaryCoordNV-04155 | N | | None | explicit | BaryCoordNV | (VK_NV_fragment_shader_barycentric) | The variable decorated with BaryCoordNV must be declared using the Input {StorageClass} |
VUID-BaryCoordNV-BaryCoordNV-04156 | N | | None | explicit | BaryCoordNV | (VK_NV_fragment_shader_barycentric) | The variable decorated with BaryCoordNV must be declared as a three-component vector of 32-bit floating-point values |
VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04157 | N | | None | explicit | BaryCoordNoPerspAMD | (VK_AMD_shader_explicit_vertex_parameter) | The BaryCoordNoPerspAMD decoration must be used only within the Fragment {ExecutionModel} |
VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04158 | N | | None | explicit | BaryCoordNoPerspAMD | (VK_AMD_shader_explicit_vertex_parameter) | The variable decorated with BaryCoordNoPerspAMD must be declared using the Input {StorageClass} |
VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04159 | N | | None | explicit | BaryCoordNoPerspAMD | (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-04163 | N | | None | explicit | BaryCoordNoPerspCentroidAMD | (VK_AMD_shader_explicit_vertex_parameter) | The BaryCoordNoPerspCentroidAMD decoration must be used only within the Fragment {ExecutionModel} |
VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04164 | N | | None | explicit | BaryCoordNoPerspCentroidAMD | (VK_AMD_shader_explicit_vertex_parameter) | The variable decorated with BaryCoordNoPerspCentroidAMD must be declared using the Input {StorageClass} |
VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04165 | N | | None | explicit | BaryCoordNoPerspCentroidAMD | (VK_AMD_shader_explicit_vertex_parameter) | The variable decorated with BaryCoordNoPerspCentroidAMD must be declared as a three-component vector of 32-bit floating-point values |
VUID-BaryCoordNoPerspNV-BaryCoordNoPerspNV-04160 | N | | None | explicit | BaryCoordNoPerspNV | (VK_NV_fragment_shader_barycentric) | The BaryCoordNoPerspNV decoration must be used only within the Fragment {ExecutionModel} |
VUID-BaryCoordNoPerspNV-BaryCoordNoPerspNV-04161 | N | | None | explicit | BaryCoordNoPerspNV | (VK_NV_fragment_shader_barycentric) | The variable decorated with BaryCoordNoPerspNV must be declared using the Input {StorageClass} |
VUID-BaryCoordNoPerspNV-BaryCoordNoPerspNV-04162 | N | | None | explicit | BaryCoordNoPerspNV | (VK_NV_fragment_shader_barycentric) | The variable decorated with BaryCoordNoPerspNV must be declared as a three-component vector of 32-bit floating-point values |
VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04166 | N | | None | explicit | BaryCoordNoPerspSampleAMD | (VK_AMD_shader_explicit_vertex_parameter) | The BaryCoordNoPerspSampleAMD decoration must be used only within the Fragment {ExecutionModel} |
VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04167 | N | | None | explicit | BaryCoordNoPerspSampleAMD | (VK_AMD_shader_explicit_vertex_parameter) | The variable decorated with BaryCoordNoPerspSampleAMD must be declared using the Input {StorageClass} |
VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04168 | N | | None | explicit | BaryCoordNoPerspSampleAMD | (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-04169 | N | | None | explicit | BaryCoordPullModelAMD | (VK_AMD_shader_explicit_vertex_parameter) | The BaryCoordPullModelAMD decoration must be used only within the Fragment {ExecutionModel} |
VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04170 | N | | None | explicit | BaryCoordPullModelAMD | (VK_AMD_shader_explicit_vertex_parameter) | The variable decorated with BaryCoordPullModelAMD must be declared using the Input {StorageClass} |
VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04171 | N | | None | explicit | BaryCoordPullModelAMD | (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-04172 | N | | None | explicit | BaryCoordSmoothAMD | (VK_AMD_shader_explicit_vertex_parameter) | The BaryCoordSmoothAMD decoration must be used only within the Fragment {ExecutionModel} |
VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04173 | N | | None | explicit | BaryCoordSmoothAMD | (VK_AMD_shader_explicit_vertex_parameter) | The variable decorated with BaryCoordSmoothAMD must be declared using the Input {StorageClass} |
VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04174 | N | | None | explicit | BaryCoordSmoothAMD | (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-04175 | N | | None | explicit | BaryCoordSmoothCentroidAMD | (VK_AMD_shader_explicit_vertex_parameter) | The BaryCoordSmoothCentroidAMD decoration must be used only within the Fragment {ExecutionModel} |
VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04176 | N | | None | explicit | BaryCoordSmoothCentroidAMD | (VK_AMD_shader_explicit_vertex_parameter) | The variable decorated with BaryCoordSmoothCentroidAMD must be declared using the Input {StorageClass} |
VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04177 | N | | None | explicit | BaryCoordSmoothCentroidAMD | (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-04178 | N | | None | explicit | BaryCoordSmoothSampleAMD | (VK_AMD_shader_explicit_vertex_parameter) | The BaryCoordSmoothSampleAMD decoration must be used only within the Fragment {ExecutionModel} |
VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04179 | N | | None | explicit | BaryCoordSmoothSampleAMD | (VK_AMD_shader_explicit_vertex_parameter) | The variable decorated with BaryCoordSmoothSampleAMD must be declared using the Input {StorageClass} |
VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04180 | N | | None | explicit | BaryCoordSmoothSampleAMD | (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-04181 | N | | None | explicit | BaseInstance | (VK_VERSION_1_1,VK_KHR_shader_draw_parameters) | The BaseInstance decoration must be used only within the Vertex {ExecutionModel} |
VUID-BaseInstance-BaseInstance-04182 | N | | None | explicit | BaseInstance | (VK_VERSION_1_1,VK_KHR_shader_draw_parameters) | The variable decorated with BaseInstance must be declared using the Input {StorageClass} |
VUID-BaseInstance-BaseInstance-04183 | N | | None | explicit | BaseInstance | (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-04184 | N | | None | explicit | BaseVertex | (VK_VERSION_1_1,VK_KHR_shader_draw_parameters) | The BaseVertex decoration must be used only within the Vertex {ExecutionModel} |
VUID-BaseVertex-BaseVertex-04185 | N | | None | explicit | BaseVertex | (VK_VERSION_1_1,VK_KHR_shader_draw_parameters) | The variable decorated with BaseVertex must be declared using the Input {StorageClass} |
VUID-BaseVertex-BaseVertex-04186 | N | | None | explicit | BaseVertex | (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-04187 | N | | None | explicit | ClipDistance | core | The ClipDistance decoration must be used only within the MeshNV, Vertex, Fragment, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel} |
VUID-ClipDistance-ClipDistance-04188 | N | | None | explicit | ClipDistance | core | The variable decorated with ClipDistance within the MeshNV or Vertex {ExecutionModel} must be declared using the Output {StorageClass} |
VUID-ClipDistance-ClipDistance-04189 | N | | None | explicit | ClipDistance | core | The variable decorated with ClipDistance within the Fragment {ExecutionModel} must be declared using the Input {StorageClass} |
VUID-ClipDistance-ClipDistance-04190 | N | | None | explicit | ClipDistance | core | The 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-04191 | N | | None | explicit | ClipDistance | core | The variable decorated with ClipDistance must be declared as an array of 32-bit floating-point values |
VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04192 | N | | None | explicit | ClipDistancePerViewNV | (VK_NV_mesh_shader) | The ClipDistancePerViewNV decoration must be used only within the MeshNV {ExecutionModel} |
VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04193 | N | | None | explicit | ClipDistancePerViewNV | (VK_NV_mesh_shader) | The variable decorated with ClipDistancePerViewNV must be declared using the Output {StorageClass} |
VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04194 | N | | None | explicit | ClipDistancePerViewNV | (VK_NV_mesh_shader) | The variable decorated with ClipDistancePerViewNV must also be decorated with the PerViewNV decoration. |
VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04195 | N | | None | explicit | ClipDistancePerViewNV | (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-04196 | N | | None | explicit | CullDistance | core | The CullDistance decoration must be used only within the MeshNV, Vertex, Fragment, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel} |
VUID-CullDistance-CullDistance-04197 | N | | None | explicit | CullDistance | core | The variable decorated with CullDistance within the MeshNV or Vertex {ExecutionModel} must be declared using the Output {StorageClass} |
VUID-CullDistance-CullDistance-04198 | N | | None | explicit | CullDistance | core | The variable decorated with CullDistance within the Fragment {ExecutionModel} must be declared using the Input {StorageClass} |
VUID-CullDistance-CullDistance-04199 | N | | None | explicit | CullDistance | core | The 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-04200 | N | | None | explicit | CullDistance | core | The variable decorated with CullDistance must be declared as an array of 32-bit floating-point values |
VUID-CullDistancePerViewNV-CullDistancePerViewNV-04201 | N | | None | explicit | CullDistancePerViewNV | (VK_NV_mesh_shader) | The CullDistancePerViewNV decoration must be used only within the MeshNV {ExecutionModel} |
VUID-CullDistancePerViewNV-CullDistancePerViewNV-04202 | N | | None | explicit | CullDistancePerViewNV | (VK_NV_mesh_shader) | The variable decorated with CullDistancePerViewNV must be declared using the Output {StorageClass} |
VUID-CullDistancePerViewNV-CullDistancePerViewNV-04203 | N | | None | explicit | CullDistancePerViewNV | (VK_NV_mesh_shader) | The variable decorated with CullDistancePerViewNV must also be decorated with the PerViewNV decoration. |
VUID-CullDistancePerViewNV-CullDistancePerViewNV-04204 | N | | None | explicit | CullDistancePerViewNV | (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-04942 | N | | None | explicit | CurrentRayTimeNV | (VK_NV_ray_tracing_motion_blur) | The CurrentRayTimeNV decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR {ExecutionModel} |
VUID-CurrentRayTimeNV-CurrentRayTimeNV-04943 | N | | None | explicit | CurrentRayTimeNV | (VK_NV_ray_tracing_motion_blur) | The variable decorated with CurrentRayTimeNV must be declared using the Input {StorageClass} |
VUID-CurrentRayTimeNV-CurrentRayTimeNV-04944 | N | | None | explicit | CurrentRayTimeNV | (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-04205 | N | | None | explicit | DeviceIndex | (VK_VERSION_1_1,VK_KHR_device_group) | The variable decorated with DeviceIndex must be declared using the Input {StorageClass} |
VUID-DeviceIndex-DeviceIndex-04206 | N | | None | explicit | DeviceIndex | (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-04207 | N | | None | explicit | DrawIndex | (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-04208 | N | | None | explicit | DrawIndex | (VK_VERSION_1_1,VK_KHR_shader_draw_parameters) | The variable decorated with DrawIndex must be declared using the Input {StorageClass} |
VUID-DrawIndex-DrawIndex-04209 | N | | None | explicit | DrawIndex | (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-04210 | N | | None | explicit | FragCoord | core | The FragCoord decoration must be used only within the Fragment {ExecutionModel} |
VUID-FragCoord-FragCoord-04211 | N | | None | explicit | FragCoord | core | The variable decorated with FragCoord must be declared using the Input {StorageClass} |
VUID-FragCoord-FragCoord-04212 | N | | None | explicit | FragCoord | core | The variable decorated with FragCoord must be declared as a four-component vector of 32-bit floating-point values |
VUID-FragDepth-FragDepth-04213 | N | | None | explicit | FragDepth | core | The FragDepth decoration must be used only within the Fragment {ExecutionModel} |
VUID-FragDepth-FragDepth-04214 | N | | None | explicit | FragDepth | core | The variable decorated with FragDepth must be declared using the Output {StorageClass} |
VUID-FragDepth-FragDepth-04215 | N | | None | explicit | FragDepth | core | The variable decorated with FragDepth must be declared as a scalar 32-bit floating-point value |
VUID-FragDepth-FragDepth-04216 | N | | None | explicit | FragDepth | core | If the shader dynamically writes to the variable decorated with FragDepth, the DepthReplacing {ExecutionMode} must be declared |
VUID-FragInvocationCountEXT-FragInvocationCountEXT-04217 | N | | None | explicit | FragInvocationCountEXT | (VK_EXT_fragment_density_map) | The FragInvocationCountEXT decoration must be used only within the Fragment {ExecutionModel} |
VUID-FragInvocationCountEXT-FragInvocationCountEXT-04218 | N | | None | explicit | FragInvocationCountEXT | (VK_EXT_fragment_density_map) | The variable decorated with FragInvocationCountEXT must be declared using the Input {StorageClass} |
VUID-FragInvocationCountEXT-FragInvocationCountEXT-04219 | N | | None | explicit | FragInvocationCountEXT | (VK_EXT_fragment_density_map) | The variable decorated with FragInvocationCountEXT must be declared as a scalar 32-bit integer value |
VUID-FragSizeEXT-FragSizeEXT-04220 | N | | None | explicit | FragSizeEXT | (VK_EXT_fragment_density_map) | The FragSizeEXT decoration must be used only within the Fragment {ExecutionModel} |
VUID-FragSizeEXT-FragSizeEXT-04221 | N | | None | explicit | FragSizeEXT | (VK_EXT_fragment_density_map) | The variable decorated with FragSizeEXT must be declared using the Input {StorageClass} |
VUID-FragSizeEXT-FragSizeEXT-04222 | N | | None | explicit | FragSizeEXT | (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-04223 | N | | None | explicit | FragStencilRefEXT | (VK_EXT_shader_stencil_export) | The FragStencilRefEXT decoration must be used only within the Fragment {ExecutionModel} |
VUID-FragStencilRefEXT-FragStencilRefEXT-04224 | N | | None | explicit | FragStencilRefEXT | (VK_EXT_shader_stencil_export) | The variable decorated with FragStencilRefEXT must be declared using the Output {StorageClass} |
VUID-FragStencilRefEXT-FragStencilRefEXT-04225 | N | | None | explicit | FragStencilRefEXT | (VK_EXT_shader_stencil_export) | The variable decorated with FragStencilRefEXT must be declared as a scalar integer value |
VUID-FragmentSizeNV-FragmentSizeNV-04226 | N | | None | explicit | FragmentSizeNV | (VK_NV_shading_rate_image) | The FragmentSizeNV decoration must be used only within the Fragment {ExecutionModel} |
VUID-FragmentSizeNV-FragmentSizeNV-04227 | N | | None | explicit | FragmentSizeNV | (VK_NV_shading_rate_image) | The variable decorated with FragmentSizeNV must be declared using the Input {StorageClass} |
VUID-FragmentSizeNV-FragmentSizeNV-04228 | N | | None | explicit | FragmentSizeNV | (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-04229 | N | | None | explicit | FrontFacing | core | The FrontFacing decoration must be used only within the Fragment {ExecutionModel} |
VUID-FrontFacing-FrontFacing-04230 | N | | None | explicit | FrontFacing | core | The variable decorated with FrontFacing must be declared using the Input {StorageClass} |
VUID-FrontFacing-FrontFacing-04231 | N | | None | explicit | FrontFacing | core | The variable decorated with FrontFacing must be declared as a boolean value |
VUID-FullyCoveredEXT-FullyCoveredEXT-04232 | N | | None | explicit | FullyCoveredEXT | (VK_EXT_conservative_rasterization) | The FullyCoveredEXT decoration must be used only within the Fragment {ExecutionModel} |
VUID-FullyCoveredEXT-FullyCoveredEXT-04233 | N | | None | explicit | FullyCoveredEXT | (VK_EXT_conservative_rasterization) | The variable decorated with FullyCoveredEXT must be declared using the Input {StorageClass} |
VUID-FullyCoveredEXT-FullyCoveredEXT-04234 | N | | None | explicit | FullyCoveredEXT | (VK_EXT_conservative_rasterization) | The variable decorated with FullyCoveredEXT must be declared as a boolean value |
VUID-FullyCoveredEXT-conservativeRasterizationPostDepthCoverage-04235 | N | | None | explicit | FullyCoveredEXT | (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-04236 | N | | None | explicit | GlobalInvocationId | core | The GlobalInvocationId decoration must be used only within the GLCompute, MeshNV, or TaskNV {ExecutionModel} |
VUID-GlobalInvocationId-GlobalInvocationId-04237 | N | | None | explicit | GlobalInvocationId | core | The variable decorated with GlobalInvocationId must be declared using the Input {StorageClass} |
VUID-GlobalInvocationId-GlobalInvocationId-04238 | N | | None | explicit | GlobalInvocationId | core | The variable decorated with GlobalInvocationId must be declared as a three-component vector of 32-bit integer values |
VUID-HelperInvocation-HelperInvocation-04239 | N | | None | explicit | HelperInvocation | core | The HelperInvocation decoration must be used only within the Fragment {ExecutionModel} |
VUID-HelperInvocation-HelperInvocation-04240 | N | | None | explicit | HelperInvocation | core | The variable decorated with HelperInvocation must be declared using the Input {StorageClass} |
VUID-HelperInvocation-HelperInvocation-04241 | N | | None | explicit | HelperInvocation | core | The variable decorated with HelperInvocation must be declared as a boolean value |
VUID-HitKindKHR-HitKindKHR-04242 | N | | None | explicit | HitKindKHR | (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-04243 | N | | None | explicit | HitKindKHR | (VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline) | The variable decorated with HitKindKHR must be declared using the Input {StorageClass} |
VUID-HitKindKHR-HitKindKHR-04244 | N | | None | explicit | HitKindKHR | (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-04245 | N | | None | explicit | HitTNV | (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-04246 | N | | None | explicit | HitTNV | (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-04247 | N | | None | explicit | HitTNV | (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-04248 | N | | None | explicit | IncomingRayFlagsKHR | (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-04249 | N | | None | explicit | IncomingRayFlagsKHR | (VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline) | The variable decorated with IncomingRayFlagsKHR must be declared using the Input {StorageClass} |
VUID-IncomingRayFlagsKHR-IncomingRayFlagsKHR-04250 | N | | None | explicit | IncomingRayFlagsKHR | (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-04251 | N | | None | explicit | InstanceCustomIndexKHR | (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-04252 | N | | None | explicit | InstanceCustomIndexKHR | (VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline) | The variable decorated with InstanceCustomIndexKHR must be declared using the Input {StorageClass} |
VUID-InstanceCustomIndexKHR-InstanceCustomIndexKHR-04253 | N | | None | explicit | InstanceCustomIndexKHR | (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-04254 | N | | None | explicit | InstanceId | (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-04255 | N | | None | explicit | InstanceId | (VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline) | The variable decorated with InstanceId must be declared using the Input {StorageClass} |
VUID-InstanceId-InstanceId-04256 | N | | None | explicit | InstanceId | (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-04263 | N | | None | explicit | InstanceIndex | core | The InstanceIndex decoration must be used only within the Vertex {ExecutionModel} |
VUID-InstanceIndex-InstanceIndex-04264 | N | | None | explicit | InstanceIndex | core | The variable decorated with InstanceIndex must be declared using the Input {StorageClass} |
VUID-InstanceIndex-InstanceIndex-04265 | N | | None | explicit | InstanceIndex | core | The variable decorated with InstanceIndex must be declared as a scalar 32-bit integer value |
VUID-InvocationId-InvocationId-04257 | N | | None | explicit | InvocationId | core | The InvocationId decoration must be used only within the TessellationControl or Geometry {ExecutionModel} |
VUID-InvocationId-InvocationId-04258 | N | | None | explicit | InvocationId | core | The variable decorated with InvocationId must be declared using the Input {StorageClass} |
VUID-InvocationId-InvocationId-04259 | N | | None | explicit | InvocationId | core | The variable decorated with InvocationId must be declared as a scalar 32-bit integer value |
VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04260 | N | | None | explicit | InvocationsPerPixelNV | (VK_NV_shading_rate_image) | The InvocationsPerPixelNV decoration must be used only within the Fragment {ExecutionModel} |
VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04261 | N | | None | explicit | InvocationsPerPixelNV | (VK_NV_shading_rate_image) | The variable decorated with InvocationsPerPixelNV must be declared using the Input {StorageClass} |
VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04262 | N | | None | explicit | InvocationsPerPixelNV | (VK_NV_shading_rate_image) | The variable decorated with InvocationsPerPixelNV must be declared as a scalar 32-bit integer value |
VUID-LaunchIdKHR-LaunchIdKHR-04266 | N | | None | explicit | LaunchIdKHR | (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-04267 | N | | None | explicit | LaunchIdKHR | (VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline) | The variable decorated with LaunchIdKHR must be declared using the Input {StorageClass} |
VUID-LaunchIdKHR-LaunchIdKHR-04268 | N | | None | explicit | LaunchIdKHR | (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-04269 | N | | None | explicit | LaunchSizeKHR | (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-04270 | N | | None | explicit | LaunchSizeKHR | (VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline) | The variable decorated with LaunchSizeKHR must be declared using the Input {StorageClass} |
VUID-LaunchSizeKHR-LaunchSizeKHR-04271 | N | | None | explicit | LaunchSizeKHR | (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-04272 | N | | None | explicit | Layer | core | The Layer decoration must be used only within the MeshNV, Vertex, TessellationEvaluation, Geometry, or Fragment {ExecutionModel} |
VUID-Layer-Layer-04273 | N | | None | explicit | Layer | (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-04274 | N | | None | explicit | Layer | core | The variable decorated with Layer within the MeshNV, Vertex, TessellationEvaluation, or Geometry {ExecutionModel} must be declared using the Output {StorageClass} |
VUID-Layer-Layer-04275 | N | | None | explicit | Layer | core | The variable decorated with Layer within the Fragment {ExecutionModel} must be declared using the Input {StorageClass} |
VUID-Layer-Layer-04276 | N | | None | explicit | Layer | core | The variable decorated with Layer must be declared as a scalar 32-bit integer value |
VUID-LayerPerViewNV-LayerPerViewNV-04277 | N | | None | explicit | LayerPerViewNV | (VK_NV_mesh_shader) | The LayerPerViewNV decoration must be used only within the MeshNV {ExecutionModel} |
VUID-LayerPerViewNV-LayerPerViewNV-04278 | N | | None | explicit | LayerPerViewNV | (VK_NV_mesh_shader) | The variable decorated with LayerPerViewNV must be declared using the Output {StorageClass} |
VUID-LayerPerViewNV-LayerPerViewNV-04279 | N | | None | explicit | LayerPerViewNV | (VK_NV_mesh_shader) | The variable decorated with LayerPerViewNV must also be decorated with the PerViewNV decoration. |
VUID-LayerPerViewNV-LayerPerViewNV-04280 | N | | None | explicit | LayerPerViewNV | (VK_NV_mesh_shader) | The variable decorated with LayerPerViewNV must be declared as an array of scalar 32-bit integer values |
VUID-LocalInvocationId-LocalInvocationId-04281 | N | | None | explicit | LocalInvocationId | core | The LocalInvocationId decoration must be used only within the GLCompute, MeshNV, or TaskNV {ExecutionModel} |
VUID-LocalInvocationId-LocalInvocationId-04282 | N | | None | explicit | LocalInvocationId | core | The variable decorated with LocalInvocationId must be declared using the Input {StorageClass} |
VUID-LocalInvocationId-LocalInvocationId-04283 | N | | None | explicit | LocalInvocationId | core | The variable decorated with LocalInvocationId must be declared as a three-component vector of 32-bit integer values |
VUID-LocalInvocationIndex-LocalInvocationIndex-04284 | N | | None | explicit | LocalInvocationIndex | core | The LocalInvocationIndex decoration must be used only within the GLCompute, MeshNV, or TaskNV {ExecutionModel} |
VUID-LocalInvocationIndex-LocalInvocationIndex-04285 | N | | None | explicit | LocalInvocationIndex | core | The variable decorated with LocalInvocationIndex must be declared using the Input {StorageClass} |
VUID-LocalInvocationIndex-LocalInvocationIndex-04286 | N | | None | explicit | LocalInvocationIndex | core | The variable decorated with LocalInvocationIndex must be declared as a scalar 32-bit integer value |
VUID-MeshViewCountNV-MeshViewCountNV-04287 | N | | None | explicit | MeshViewCountNV | (VK_NV_mesh_shader) | The MeshViewCountNV decoration must be used only within the MeshNV or TaskNV {ExecutionModel} |
VUID-MeshViewCountNV-MeshViewCountNV-04288 | N | | None | explicit | MeshViewCountNV | (VK_NV_mesh_shader) | The variable decorated with MeshViewCountNV must be declared using the Input {StorageClass} |
VUID-MeshViewCountNV-MeshViewCountNV-04289 | N | | None | explicit | MeshViewCountNV | (VK_NV_mesh_shader) | The variable decorated with MeshViewCountNV must be declared as a scalar 32-bit integer value |
VUID-MeshViewIndicesNV-MeshViewIndicesNV-04290 | N | | None | explicit | MeshViewIndicesNV | (VK_NV_mesh_shader) | The MeshViewIndicesNV decoration must be used only within the MeshNV or TaskNV {ExecutionModel} |
VUID-MeshViewIndicesNV-MeshViewIndicesNV-04291 | N | | None | explicit | MeshViewIndicesNV | (VK_NV_mesh_shader) | The variable decorated with MeshViewIndicesNV must be declared using the Input {StorageClass} |
VUID-MeshViewIndicesNV-MeshViewIndicesNV-04292 | N | | None | explicit | MeshViewIndicesNV | (VK_NV_mesh_shader) | The variable decorated with MeshViewIndicesNV must be declared as an array of scalar 32-bit integer values |
VUID-NumSubgroups-NumSubgroups-04293 | N | | None | explicit | NumSubgroups | (VK_VERSION_1_1) | The NumSubgroups decoration must be used only within the GLCompute, MeshNV, or TaskNV {ExecutionModel} |
VUID-NumSubgroups-NumSubgroups-04294 | N | | None | explicit | NumSubgroups | (VK_VERSION_1_1) | The variable decorated with NumSubgroups must be declared using the Input {StorageClass} |
VUID-NumSubgroups-NumSubgroups-04295 | N | | None | explicit | NumSubgroups | (VK_VERSION_1_1) | The variable decorated with NumSubgroups must be declared as a scalar 32-bit integer value |
VUID-NumWorkgroups-NumWorkgroups-04296 | N | | None | explicit | NumWorkgroups | core | The NumWorkgroups decoration must be used only within the GLCompute {ExecutionModel} |
VUID-NumWorkgroups-NumWorkgroups-04297 | N | | None | explicit | NumWorkgroups | core | The variable decorated with NumWorkgroups must be declared using the Input {StorageClass} |
VUID-NumWorkgroups-NumWorkgroups-04298 | N | | None | explicit | NumWorkgroups | core | The variable decorated with NumWorkgroups must be declared as a three-component vector of 32-bit integer values |
VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04299 | N | | None | explicit | ObjectRayDirectionKHR | (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-04300 | N | | None | explicit | ObjectRayDirectionKHR | (VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline) | The variable decorated with ObjectRayDirectionKHR must be declared using the Input {StorageClass} |
VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04301 | N | | None | explicit | ObjectRayDirectionKHR | (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-04302 | N | | None | explicit | ObjectRayOriginKHR | (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-04303 | N | | None | explicit | ObjectRayOriginKHR | (VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline) | The variable decorated with ObjectRayOriginKHR must be declared using the Input {StorageClass} |
VUID-ObjectRayOriginKHR-ObjectRayOriginKHR-04304 | N | | None | explicit | ObjectRayOriginKHR | (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-04305 | N | | None | explicit | ObjectToWorldKHR | (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-04306 | N | | None | explicit | ObjectToWorldKHR | (VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline) | The variable decorated with ObjectToWorldKHR must be declared using the Input {StorageClass} |
VUID-ObjectToWorldKHR-ObjectToWorldKHR-04307 | N | | None | explicit | ObjectToWorldKHR | (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-04769 | N | | None | explicit | PFN_vkDebugUtilsMessengerCallbackEXT | (VK_EXT_debug_utils) | The callback must not make calls to any Vulkan commands. |
VUID-PatchVertices-PatchVertices-04308 | N | | None | explicit | PatchVertices | core | The PatchVertices decoration must be used only within the TessellationControl or TessellationEvaluation {ExecutionModel} |
VUID-PatchVertices-PatchVertices-04309 | N | | None | explicit | PatchVertices | core | The variable decorated with PatchVertices must be declared using the Input {StorageClass} |
VUID-PatchVertices-PatchVertices-04310 | N | | None | explicit | PatchVertices | core | The variable decorated with PatchVertices must be declared as a scalar 32-bit integer value |
VUID-PointCoord-PointCoord-04311 | N | | None | explicit | PointCoord | core | The PointCoord decoration must be used only within the Fragment {ExecutionModel} |
VUID-PointCoord-PointCoord-04312 | N | | None | explicit | PointCoord | core | The variable decorated with PointCoord must be declared using the Input {StorageClass} |
VUID-PointCoord-PointCoord-04313 | N | | None | explicit | PointCoord | core | The variable decorated with PointCoord must be declared as a two-component vector of 32-bit floating-point values |
VUID-PointSize-PointSize-04314 | N | | None | explicit | PointSize | core | The PointSize decoration must be used only within the MeshNV, Vertex, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel} |
VUID-PointSize-PointSize-04315 | N | | None | explicit | PointSize | core | The variable decorated with PointSize within the MeshNV or Vertex {ExecutionModel} must be declared using the Output {StorageClass} |
VUID-PointSize-PointSize-04316 | N | | None | explicit | PointSize | core | The 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-04317 | N | | None | explicit | PointSize | core | The variable decorated with PointSize must be declared as a scalar 32-bit floating-point value |
VUID-Position-Position-04318 | N | | None | explicit | Position | core | The Position decoration must be used only within the MeshNV, Vertex, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel} |
VUID-Position-Position-04319 | N | | None | explicit | Position | core | The variable decorated with Position within MeshNV or Vertex {ExecutionModel} must be declared using the Output {StorageClass} |
VUID-Position-Position-04320 | N | | None | explicit | Position | core | The 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-04321 | N | | None | explicit | Position | core | The variable decorated with Position must be declared as a four-component vector of 32-bit floating-point values |
VUID-PositionPerViewNV-PositionPerViewNV-04322 | N | | None | explicit | PositionPerViewNV | (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-04323 | N | | None | explicit | PositionPerViewNV | (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-04324 | N | | None | explicit | PositionPerViewNV | (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-04325 | N | | None | explicit | PositionPerViewNV | (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-04326 | N | | None | explicit | PositionPerViewNV | (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-04327 | N | | None | explicit | PrimitiveCountNV | (VK_NV_mesh_shader) | The PrimitiveCountNV decoration must be used only within the MeshNV {ExecutionModel} |
VUID-PrimitiveCountNV-PrimitiveCountNV-04328 | N | | None | explicit | PrimitiveCountNV | (VK_NV_mesh_shader) | The variable decorated with PrimitiveCountNV must be declared using the Output {StorageClass} |
VUID-PrimitiveCountNV-PrimitiveCountNV-04329 | N | | None | explicit | PrimitiveCountNV | (VK_NV_mesh_shader) | The variable decorated with PrimitiveCountNV must be declared as a scalar 32-bit integer value |
VUID-PrimitiveId-Fragment-04331 | N | | None | explicit | PrimitiveId | core | If 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-04332 | N | | None | explicit | PrimitiveId | core | If 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-04333 | N | | None | explicit | PrimitiveId | core | If Fragment {ExecutionModel} contains a variable decorated with PrimitiveId either the Geometry or Tessellation capability must also be declared |
VUID-PrimitiveId-PrimitiveId-04330 | N | | None | explicit | PrimitiveId | core | The PrimitiveId decoration must be used only within the MeshNV, IntersectionKHR, AnyHitKHR, ClosestHitKHR, TessellationControl, TessellationEvaluation, Geometry, or Fragment {ExecutionModel} |
VUID-PrimitiveId-PrimitiveId-04334 | N | | None | explicit | PrimitiveId | core | The variable decorated with PrimitiveId within the TessellationControl, TessellationEvaluation, Fragment, IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel} must be declared using the Input {StorageClass} |
VUID-PrimitiveId-PrimitiveId-04335 | N | | None | explicit | PrimitiveId | core | The variable decorated with PrimitiveId within the Geometry {ExecutionModel} must be declared using the Input or Output {StorageClass} |
VUID-PrimitiveId-PrimitiveId-04336 | N | | None | explicit | PrimitiveId | core | The variable decorated with PrimitiveId within the MeshNV {ExecutionModel} must be declared using the Output {StorageClass} |
VUID-PrimitiveId-PrimitiveId-04337 | N | | None | explicit | PrimitiveId | core | The variable decorated with PrimitiveId must be declared as a scalar 32-bit integer value |
VUID-PrimitiveIndicesNV-OutputLinesNV-04343 | N | | None | explicit | PrimitiveIndicesNV | (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-04342 | N | | None | explicit | PrimitiveIndicesNV | (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-04344 | N | | None | explicit | PrimitiveIndicesNV | (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-04338 | N | | None | explicit | PrimitiveIndicesNV | (VK_NV_mesh_shader) | The PrimitiveIndicesNV decoration must be used only within the MeshNV {ExecutionModel} |
VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04339 | N | | None | explicit | PrimitiveIndicesNV | (VK_NV_mesh_shader) | The variable decorated with PrimitiveIndicesNV must be declared using the Output {StorageClass} |
VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04340 | N | | None | explicit | PrimitiveIndicesNV | (VK_NV_mesh_shader) | The variable decorated with PrimitiveIndicesNV must be declared as an array of scalar 32-bit integer values |
VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04341 | N | | None | explicit | PrimitiveIndicesNV | (VK_NV_mesh_shader) | All index values of the array decorated with PrimitiveIndicesNV must be in the range [0, N-1], where N is the value specified by the OutputVertices {ExecutionMode} |
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04484 | N | | None | explicit | PrimitiveShadingRateKHR | (VK_KHR_fragment_shading_rate) | The PrimitiveShadingRateKHR decoration must be used only within the MeshNV, Vertex, or Geometry {ExecutionModel} |
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04485 | N | | None | explicit | PrimitiveShadingRateKHR | (VK_KHR_fragment_shading_rate) | The variable decorated with PrimitiveShadingRateKHR must be declared using the Output {StorageClass} |
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04486 | N | | None | explicit | PrimitiveShadingRateKHR | (VK_KHR_fragment_shading_rate) | The variable decorated with PrimitiveShadingRateKHR must be declared as a scalar 32-bit integer value |
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04487 | N | | None | explicit | PrimitiveShadingRateKHR | (VK_KHR_fragment_shading_rate) | The value written to PrimitiveShadingRateKHR must include no more than one of Vertical2Pixels and Vertical4Pixels |
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04488 | N | | None | explicit | PrimitiveShadingRateKHR | (VK_KHR_fragment_shading_rate) | The value written to PrimitiveShadingRateKHR must include no more than one of Horizontal2Pixels and Horizontal4Pixels |
VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04489 | N | | None | explicit | PrimitiveShadingRateKHR | (VK_KHR_fragment_shading_rate) | The value written to PrimitiveShadingRateKHR must not have any bits set other than those defined by Fragment Shading Rate Flags enumerants in the SPIR-V specification |
VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04345 | N | | None | explicit | RayGeometryIndexKHR | (VK_KHR_ray_tracing_pipeline) | The RayGeometryIndexKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel} |
VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04346 | N | | None | explicit | RayGeometryIndexKHR | (VK_KHR_ray_tracing_pipeline) | The variable decorated with RayGeometryIndexKHR must be declared using the Input {StorageClass} |
VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04347 | N | | None | explicit | RayGeometryIndexKHR | (VK_KHR_ray_tracing_pipeline) | The variable decorated with RayGeometryIndexKHR must be declared as a scalar 32-bit integer value |
VUID-RayTmaxKHR-RayTmaxKHR-04348 | N | | None | explicit | RayTmaxKHR | (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-04349 | N | | None | explicit | RayTmaxKHR | (VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline) | The variable decorated with RayTmaxKHR must be declared using the Input {StorageClass} |
VUID-RayTmaxKHR-RayTmaxKHR-04350 | N | | None | explicit | RayTmaxKHR | (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-04351 | N | | None | explicit | RayTminKHR | (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-04352 | N | | None | explicit | RayTminKHR | (VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline) | The variable decorated with RayTminKHR must be declared using the Input {StorageClass} |
VUID-RayTminKHR-RayTminKHR-04353 | N | | None | explicit | RayTminKHR | (VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline) | The variable decorated with RayTminKHR must be declared as a scalar 32-bit floating-point value |
VUID-SMCountNV-SMCountNV-04363 | N | | None | explicit | SMCountNV | (VK_NV_shader_sm_builtins) | The variable decorated with SMCountNV must be declared using the Input {StorageClass} |
VUID-SMCountNV-SMCountNV-04364 | N | | None | explicit | SMCountNV | (VK_NV_shader_sm_builtins) | The variable decorated with SMCountNV must be declared as a scalar 32-bit integer value |
VUID-SMIDNV-SMIDNV-04365 | N | | None | explicit | SMIDNV | (VK_NV_shader_sm_builtins) | The variable decorated with SMIDNV must be declared using the Input {StorageClass} |
VUID-SMIDNV-SMIDNV-04366 | N | | None | explicit | SMIDNV | (VK_NV_shader_sm_builtins) | The variable decorated with SMIDNV must be declared as a scalar 32-bit integer value |
VUID-SampleId-SampleId-04354 | N | | None | explicit | SampleId | core | The SampleId decoration must be used only within the Fragment {ExecutionModel} |
VUID-SampleId-SampleId-04355 | N | | None | explicit | SampleId | core | The variable decorated with SampleId must be declared using the Input {StorageClass} |
VUID-SampleId-SampleId-04356 | N | | None | explicit | SampleId | core | The variable decorated with SampleId must be declared as a scalar 32-bit integer value |
VUID-SampleMask-SampleMask-04357 | N | | None | explicit | SampleMask | core | The SampleMask decoration must be used only within the Fragment {ExecutionModel} |
VUID-SampleMask-SampleMask-04358 | N | | None | explicit | SampleMask | core | The variable decorated with SampleMask must be declared using the Input or Output {StorageClass} |
VUID-SampleMask-SampleMask-04359 | N | | None | explicit | SampleMask | core | The variable decorated with SampleMask must be declared as an array of 32-bit integer values |
VUID-SamplePosition-SamplePosition-04360 | N | | None | explicit | SamplePosition | core | The SamplePosition decoration must be used only within the Fragment {ExecutionModel} |
VUID-SamplePosition-SamplePosition-04361 | N | | None | explicit | SamplePosition | core | The variable decorated with SamplePosition must be declared using the Input {StorageClass} |
VUID-SamplePosition-SamplePosition-04362 | N | | None | explicit | SamplePosition | core | The variable decorated with SamplePosition must be declared as a two-component vector of 32-bit floating-point values |
VUID-ShadingRateKHR-ShadingRateKHR-04490 | N | | None | explicit | ShadingRateKHR | (VK_KHR_fragment_shading_rate) | The ShadingRateKHR decoration must be used only within the Fragment {ExecutionModel} |
VUID-ShadingRateKHR-ShadingRateKHR-04491 | N | | None | explicit | ShadingRateKHR | (VK_KHR_fragment_shading_rate) | The variable decorated with ShadingRateKHR must be declared using the Input {StorageClass} |
VUID-ShadingRateKHR-ShadingRateKHR-04492 | N | | None | explicit | ShadingRateKHR | (VK_KHR_fragment_shading_rate) | The variable decorated with ShadingRateKHR must be declared as a scalar 32-bit integer value |
VUID-StandaloneSpirv-Base-04707 | N | | None | explicit | StandaloneSpirv | core | The 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-04781 | N | | None | explicit | StandaloneSpirv | core | The 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-04668 | N | | None | explicit | StandaloneSpirv | core | Any BuiltIn decoration not listed in Built-In Variables must not be used |
VUID-StandaloneSpirv-CallableDataKHR-04704 | N | | None | explicit | StandaloneSpirv | core | CallableDataKHR storage class must only be used in ray generation, closest hit, miss, and callable shaders |
VUID-StandaloneSpirv-Component-04920 | N | | None | explicit | StandaloneSpirv | core | The Component decoration value must not be greater than 3 |
VUID-StandaloneSpirv-Component-04921 | N | | None | explicit | StandaloneSpirv | core | If 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-04922 | N | | None | explicit | StandaloneSpirv | core | If 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-04923 | N | | None | explicit | StandaloneSpirv | core | The Component decorations value must not be 1 or 3 for scalar or two-component 64-bit data types |
VUID-StandaloneSpirv-Component-04924 | N | | None | explicit | StandaloneSpirv | core | The Component decorations must not used with any type that is not a scalar or vector |
VUID-StandaloneSpirv-DerivativeGroupLinearNV-04778 | N | | None | explicit | StandaloneSpirv | core | For 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-04684 | N | | None | explicit | StandaloneSpirv | core | For compute shaders using the DerivativeGroupQuadsNV execution mode, the first two dimensions of the local workgroup size must be a multiple of two |
VUID-StandaloneSpirv-FPRoundingMode-04675 | N | | None | explicit | StandaloneSpirv | core | Rounding modes other than round-to-nearest-even and round-towards-zero must not be used for the FPRoundingMode decoration |
VUID-StandaloneSpirv-FPRoundingMode-04676 | N | | None | explicit | StandaloneSpirv | core | The FPRoundingMode decoration must only be used for a width-only conversion instruction whose only uses are Object operands of OpStore instructions storing through a pointer to a 16-bit floating-point object in the StorageBuffer, PhysicalStorageBuffer, Uniform, or Output storage class |
VUID-StandaloneSpirv-Flat-04670 | N | | None | explicit | StandaloneSpirv | core | The Flat, NoPerspective, Sample, and Centroid decorations must not be used on variables with storage class other than Input or on variables used in the interface of non-fragment shader entry points |
VUID-StandaloneSpirv-Flat-04744 | N | | None | explicit | StandaloneSpirv | core | The Flat decorations must be used on variables with storage class of Input in a fragment shader stage that are a scalar integer, vector of integer, or any double-precision floating-point type |
VUID-StandaloneSpirv-Function-04681 | N | | None | explicit | StandaloneSpirv | core | A 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-04669 | N | | None | explicit | StandaloneSpirv | core | The GLSLShared and GLSLPacked decorations must not be used |
VUID-StandaloneSpirv-HitAttributeKHR-04701 | N | | None | explicit | StandaloneSpirv | core | HitAttributeKHR storage class must only be used in intersection, any-hit, or closest hit shaders |
VUID-StandaloneSpirv-HitAttributeKHR-04702 | N | | None | explicit | StandaloneSpirv | core | There must be at most one variable with the HitAttributeKHR storage class in the input interface of an entry point |
VUID-StandaloneSpirv-HitAttributeKHR-04703 | N | | None | explicit | StandaloneSpirv | core | A variable with HitAttributeKHR storage class must only be written to in an intersection shader |
VUID-StandaloneSpirv-IncomingCallableDataKHR-04705 | N | | None | explicit | StandaloneSpirv | core | IncomingCallableDataKHR storage class must only be used in callable shaders |
VUID-StandaloneSpirv-IncomingCallableDataKHR-04706 | N | | None | explicit | StandaloneSpirv | core | There must be at most one variable with the IncomingCallableDataKHR storage class in the input interface of an entry point |
VUID-StandaloneSpirv-IncomingRayPayloadKHR-04699 | N | | None | explicit | StandaloneSpirv | core | IncomingRayPayloadKHR storage class must only be used in closest hit, any-hit, or miss shaders |
VUID-StandaloneSpirv-IncomingRayPayloadKHR-04700 | N | | None | explicit | StandaloneSpirv | core | There must be at most one variable with the IncomingRayPayloadKHR storage class in the input interface of an entry point |
VUID-StandaloneSpirv-Invariant-04677 | N | | None | explicit | StandaloneSpirv | core | Variables 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-04683 | N | | None | explicit | StandaloneSpirv | core | For each compute shader entry point, either a LocalSize execution mode or an object decorated with the WorkgroupSize decoration must be specified |
VUID-StandaloneSpirv-Location-04915 | N | | None | explicit | StandaloneSpirv | core | The Location or Component decorations must not be used with BuiltIn |
VUID-StandaloneSpirv-Location-04916 | N | | None | explicit | StandaloneSpirv | core | The Location decorations must be used on user-defined variables |
VUID-StandaloneSpirv-Location-04917 | N | | None | explicit | StandaloneSpirv | core | The Location decorations must be used on an OpVariable with a structure type that is not a block |
VUID-StandaloneSpirv-Location-04918 | N | | None | explicit | StandaloneSpirv | core | The Location decorations must not be used on the members of OpVariable with a structure type that is a block decorated with Location |
VUID-StandaloneSpirv-Location-04919 | N | | None | explicit | StandaloneSpirv | core | The Location decorations must be used on each member of OpVariable with a structure type that is a block not decorated with Location |
VUID-StandaloneSpirv-None-04633 | N | | None | explicit | StandaloneSpirv | core | Every entry point must have no return value and accept no arguments |
VUID-StandaloneSpirv-None-04634 | N | | None | explicit | StandaloneSpirv | core | The static function-call graph for an entry point must not contain cycles; that is, static recursion is not allowed |
VUID-StandaloneSpirv-None-04635 | N | | None | explicit | StandaloneSpirv | core | The Logical or PhysicalStorageBuffer64 addressing model must be selected |
VUID-StandaloneSpirv-None-04636 | N | | None | explicit | StandaloneSpirv | core | Scope for execution must be limited to Workgroup or Subgroup |
VUID-StandaloneSpirv-None-04637 | N | | None | explicit | StandaloneSpirv | core | If 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-04638 | N | | None | explicit | StandaloneSpirv | core | Scope for memory must be limited to Device, QueueFamily, Workgroup, ShaderCallKHR, Subgroup, or Invocation |
VUID-StandaloneSpirv-None-04639 | N | | None | explicit | StandaloneSpirv | core | If the Scope for memory is Workgroup, then it must only be used in the task, mesh, or compute execution models |
VUID-StandaloneSpirv-None-04640 | N | | None | explicit | StandaloneSpirv | core | If 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-04641 | N | | None | explicit | StandaloneSpirv | core | If the Scope for memory is Invocation, then memory semantics must be None |
VUID-StandaloneSpirv-None-04642 | N | | None | explicit | StandaloneSpirv | core | Scope for Non Uniform Group Operations must be limited to Subgroup |
VUID-StandaloneSpirv-None-04643 | N | | None | explicit | StandaloneSpirv | core | Storage 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-04644 | N | | None | explicit | StandaloneSpirv | core | If 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-04645 | N | | None | explicit | StandaloneSpirv | core | If the Storage Class is Workgroup, then it must only be used in the task, mesh, or compute execution models |
VUID-StandaloneSpirv-None-04667 | N | | None | explicit | StandaloneSpirv | core | Structure types must not contain opaque types |
VUID-StandaloneSpirv-None-04686 | N | | None | explicit | StandaloneSpirv | core | The Pointer operand of all atomic instructions must have a Storage Class limited to Uniform, Workgroup, Image, StorageBuffer, or PhysicalStorageBuffer |
VUID-StandaloneSpirv-None-04745 | N | | None | explicit | StandaloneSpirv | core | All variables with a storage class of PushConstant declared as an array must only be accessed by dynamically uniform indices |
VUID-StandaloneSpirv-Offset-04662 | N | | None | explicit | StandaloneSpirv | core | Any image operation must use at most one of the Offset, ConstOffset, and ConstOffsets image operands |
VUID-StandaloneSpirv-Offset-04663 | N | | None | explicit | StandaloneSpirv | core | Image operand Offset must only be used with OpImage*Gather instructions |
VUID-StandaloneSpirv-Offset-04687 | N | | None | explicit | StandaloneSpirv | core | Output 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-04689 | N | | None | explicit | StandaloneSpirv | core | The 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-04690 | N | | None | explicit | StandaloneSpirv | core | The first member of an output block that specifies a Offset decoration must specify a Offset value that is aligned to an 8 byte boundary if that block contains any member decorated with Offset and is a 64-bit type |
VUID-StandaloneSpirv-Offset-04691 | N | | None | explicit | StandaloneSpirv | core | Output 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-04692 | N | | None | explicit | StandaloneSpirv | core | Output 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-04716 | N | | None | explicit | StandaloneSpirv | core | Only 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-04865 | N | | None | explicit | StandaloneSpirv | core | Any image instruction which uses an Offset, ConstOffset, or ConstOffsets image operand, must only consume a "Sampled Image" operand whose type has its "Sampled" operand set to 1 |
VUID-StandaloneSpirv-OpAtomicLoad-04731 | N | | None | explicit | StandaloneSpirv | core | OpAtomicLoad must not use Release, AcquireRelease, or SequentiallyConsistent memory semantics |
VUID-StandaloneSpirv-OpAtomicStore-04730 | N | | None | explicit | StandaloneSpirv | core | OpAtomicStore must not use Acquire, AcquireRelease, or SequentiallyConsistent memory semantics |
VUID-StandaloneSpirv-OpControlBarrier-04650 | N | | None | explicit | StandaloneSpirv | core | If 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-04682 | N | | None | explicit | StandaloneSpirv | core | If OpControlBarrier is used in ray generation, intersection, any-hit, closest hit, miss, fragment, vertex, tessellation evaluation, or geometry shaders, the execution Scope must be Subgroup |
VUID-StandaloneSpirv-OpGroupNonUniformBallotBitCount-04685 | N | | None | explicit | StandaloneSpirv | core | If OpGroupNonUniformBallotBitCount is used, the group operation must be limited to Reduce, InclusiveScan, or ExclusiveScan |
VUID-StandaloneSpirv-OpImage-04777 | N | | None | explicit | StandaloneSpirv | core | OpImage*Dref must not consume an image whose Dim is 3D. |
VUID-StandaloneSpirv-OpImageGather-04664 | N | | None | explicit | StandaloneSpirv | core | The "Component" operand of OpImageGather, and OpImageSparseGather must be the of a constant instruction |
VUID-StandaloneSpirv-OpImageQuerySizeLod-04659 | N | | None | explicit | StandaloneSpirv | core | OpImageQuerySizeLod, OpImageQueryLod, and OpImageQueryLevels must only consume an "Image" operand whose type has its "Sampled" operand set to 1 |
VUID-StandaloneSpirv-OpImageTexelPointer-04658 | N | | None | explicit | StandaloneSpirv | core | If 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-04732 | N | | None | explicit | StandaloneSpirv | core | OpMemoryBarrier must use one of Acquire, Release, AcquireRelease, or SequentiallyConsistent memory semantics |
VUID-StandaloneSpirv-OpMemoryBarrier-04733 | N | | None | explicit | StandaloneSpirv | core | OpMemoryBarrier must include at least one storage class |
VUID-StandaloneSpirv-OpReadClockKHR-04652 | N | | None | explicit | StandaloneSpirv | core | Scope for OpReadClockKHR must be limited to Subgroup or Device |
VUID-StandaloneSpirv-OpReportIntersectionKHR-04666 | N | | None | explicit | StandaloneSpirv | core | The value of the "Hit Kind" operand of OpReportIntersectionKHR must be in the range [0,127] |
VUID-StandaloneSpirv-OpTypeAccelerationStructureKHR-04665 | N | | None | explicit | StandaloneSpirv | core | Objects of types OpTypeAccelerationStructureKHR and arrays of this type must not be stored to or modified |
VUID-StandaloneSpirv-OpTypeForwardPointer-04711 | N | | None | explicit | StandaloneSpirv | core | OpTypeForwardPointer must have a storage class of PhysicalStorageBuffer |
VUID-StandaloneSpirv-OpTypeImage-04656 | N | | None | explicit | StandaloneSpirv | core | OpTypeImage 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-04657 | N | | None | explicit | StandaloneSpirv | core | OpTypeImage must have a "Sampled" operand of 1 (sampled image) or 2 (storage image) |
VUID-StandaloneSpirv-OpTypeImage-04661 | N | | None | explicit | StandaloneSpirv | core | Objects of types OpTypeImage, OpTypeSampler, OpTypeSampledImage, and arrays of these types must not be stored to or modified |
VUID-StandaloneSpirv-OpTypeRuntimeArray-04680 | N | | None | explicit | StandaloneSpirv | core | OpTypeRuntimeArray must only be used for the last member of an OpTypeStruct that is in the StorageBuffer or PhysicalStorageBuffer storage class decorated as Block, or that is in the Uniform storage class decorated as BufferBlock |
VUID-StandaloneSpirv-OpVariable-04651 | N | | None | explicit | StandaloneSpirv | core | Any OpVariable with an Initializer operand must have Output, Private, Function, or Workgroup as its Storage Class operand |
VUID-StandaloneSpirv-OpVariable-04734 | N | | None | explicit | StandaloneSpirv | core | Any OpVariable with an Initializer operand and Workgroup as its Storage Class operand must use OpConstantNull as the initializer. |
VUID-StandaloneSpirv-OriginLowerLeft-04653 | N | | None | explicit | StandaloneSpirv | core | The OriginLowerLeft execution mode must not be used; fragment entry points must declare OriginUpperLeft |
VUID-StandaloneSpirv-PhysicalStorageBuffer64-04708 | N | | None | explicit | StandaloneSpirv | core | If 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-04709 | N | | None | explicit | StandaloneSpirv | core | If 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-04710 | N | | None | explicit | StandaloneSpirv | core | If the PhysicalStorageBuffer64 addressing model is enabled, OpConvertUToPtr and OpConvertPtrToU must use an integer type whose Width is 64 |
VUID-StandaloneSpirv-PixelCenterInteger-04654 | N | | None | explicit | StandaloneSpirv | core | The PixelCenterInteger execution mode must not be used (pixels are always centered at half-integer coordinates) |
VUID-StandaloneSpirv-RayPayloadKHR-04698 | N | | None | explicit | StandaloneSpirv | core | RayPayloadKHR storage class must only be used in ray generation, closest hit or miss shaders |
VUID-StandaloneSpirv-Result-04780 | N | | None | explicit | StandaloneSpirv | core | The Result Type operand of any OpImageRead or OpImageSparseRead instruction must be a vector of four components |
VUID-StandaloneSpirv-Stream-04694 | N | | None | explicit | StandaloneSpirv | core | If 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-04660 | N | | None | explicit | StandaloneSpirv | core | The (u,v) coordinates used for a SubpassData must be the of a constant vector (0,0), or if a layer coordinate is used, must be a vector that was formed with constant 0 for the u and v components |
VUID-StandaloneSpirv-UniformConstant-04655 | N | | None | explicit | StandaloneSpirv | core | Any variable in the UniformConstant storage class must be typed as either OpTypeImage, OpTypeSampler, OpTypeSampledImage, OpTypeAccelerationStructureKHR, or an array of one of these types |
VUID-StandaloneSpirv-ViewportMaskNV-04674 | N | | None | explicit | StandaloneSpirv | core | The ViewportMaskNV and ViewportIndex decorations must not both be statically used by one or more OpEntryPoint's that form the vertex processing stages of a graphics pipeline |
VUID-StandaloneSpirv-ViewportRelativeNV-04672 | N | | None | explicit | StandaloneSpirv | core | The ViewportRelativeNV decoration must only be used on a variable decorated with Layer in the vertex, tessellation evaluation, or geometry shader stages |
VUID-StandaloneSpirv-ViewportRelativeNV-04673 | N | | None | explicit | StandaloneSpirv | core | The 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-04678 | N | | None | explicit | StandaloneSpirv | core | 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-04679 | N | | None | explicit | StandaloneSpirv | core | If 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-04693 | N | | None | explicit | StandaloneSpirv | core | All 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-04696 | N | | None | explicit | StandaloneSpirv | core | For 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-04697 | N | | None | explicit | StandaloneSpirv | core | All block members in the output interface of the entry point being compiled that are in the same block and have a declared or inherited XfbBuffer decoration must specify the same XfbBuffer value |
VUID-SubgroupEqMask-SubgroupEqMask-04370 | N | | None | explicit | SubgroupEqMask | (VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot) | The variable decorated with SubgroupEqMask must be declared using the Input {StorageClass} |
VUID-SubgroupEqMask-SubgroupEqMask-04371 | N | | None | explicit | SubgroupEqMask | (VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot) | The variable decorated with SubgroupEqMask must be declared as a four-component vector of 32-bit integer values |
VUID-SubgroupGeMask-SubgroupGeMask-04372 | N | | None | explicit | SubgroupGeMask | (VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot) | The variable decorated with SubgroupGeMask must be declared using the Input {StorageClass} |
VUID-SubgroupGeMask-SubgroupGeMask-04373 | N | | None | explicit | SubgroupGeMask | (VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot) | The variable decorated with SubgroupGeMask must be declared as a four-component vector of 32-bit integer values |
VUID-SubgroupGtMask-SubgroupGtMask-04374 | N | | None | explicit | SubgroupGtMask | (VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot) | The variable decorated with SubgroupGtMask must be declared using the Input {StorageClass} |
VUID-SubgroupGtMask-SubgroupGtMask-04375 | N | | None | explicit | SubgroupGtMask | (VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot) | The variable decorated with SubgroupGtMask must be declared as a four-component vector of 32-bit integer values |
VUID-SubgroupId-SubgroupId-04367 | N | | None | explicit | SubgroupId | (VK_VERSION_1_1) | The SubgroupId decoration must be used only within the GLCompute, MeshNV, or TaskNV {ExecutionModel} |
VUID-SubgroupId-SubgroupId-04368 | N | | None | explicit | SubgroupId | (VK_VERSION_1_1) | The variable decorated with SubgroupId must be declared using the Input {StorageClass} |
VUID-SubgroupId-SubgroupId-04369 | N | | None | explicit | SubgroupId | (VK_VERSION_1_1) | The variable decorated with SubgroupId must be declared as a scalar 32-bit integer value |
VUID-SubgroupLeMask-SubgroupLeMask-04376 | N | | None | explicit | SubgroupLeMask | (VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot) | The variable decorated with SubgroupLeMask must be declared using the Input {StorageClass} |
VUID-SubgroupLeMask-SubgroupLeMask-04377 | N | | None | explicit | SubgroupLeMask | (VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot) | The variable decorated with SubgroupLeMask must be declared as a four-component vector of 32-bit integer values |
VUID-SubgroupLocalInvocationId-SubgroupLocalInvocationId-04380 | N | | None | explicit | SubgroupLocalInvocationId | (VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot) | The variable decorated with SubgroupLocalInvocationId must be declared using the Input {StorageClass} |
VUID-SubgroupLocalInvocationId-SubgroupLocalInvocationId-04381 | N | | None | explicit | SubgroupLocalInvocationId | (VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot) | The variable decorated with SubgroupLocalInvocationId must be declared as a scalar 32-bit integer value |
VUID-SubgroupLtMask-SubgroupLtMask-04378 | N | | None | explicit | SubgroupLtMask | (VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot) | The variable decorated with SubgroupLtMask must be declared using the Input {StorageClass} |
VUID-SubgroupLtMask-SubgroupLtMask-04379 | N | | None | explicit | SubgroupLtMask | (VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot) | The variable decorated with SubgroupLtMask must be declared as a four-component vector of 32-bit integer values |
VUID-SubgroupSize-SubgroupSize-04382 | N | | None | explicit | SubgroupSize | (VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot) | The variable decorated with SubgroupSize must be declared using the Input {StorageClass} |
VUID-SubgroupSize-SubgroupSize-04383 | N | | None | explicit | SubgroupSize | (VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot) | The variable decorated with SubgroupSize must be declared as a scalar 32-bit integer value |
VUID-TaskCountNV-TaskCountNV-04384 | N | | None | explicit | TaskCountNV | (VK_NV_mesh_shader) | The TaskCountNV decoration must be used only within the TaskNV {ExecutionModel} |
VUID-TaskCountNV-TaskCountNV-04385 | N | | None | explicit | TaskCountNV | (VK_NV_mesh_shader) | The variable decorated with TaskCountNV must be declared using the Output {StorageClass} |
VUID-TaskCountNV-TaskCountNV-04386 | N | | None | explicit | TaskCountNV | (VK_NV_mesh_shader) | The variable decorated with TaskCountNV must be declared as a scalar 32-bit integer value |
VUID-TessCoord-TessCoord-04387 | N | | None | explicit | TessCoord | core | The TessCoord decoration must be used only within the TessellationEvaluation {ExecutionModel} |
VUID-TessCoord-TessCoord-04388 | N | | None | explicit | TessCoord | core | The variable decorated with TessCoord must be declared using the Input {StorageClass} |
VUID-TessCoord-TessCoord-04389 | N | | None | explicit | TessCoord | core | The variable decorated with TessCoord must be declared as a three-component vector of 32-bit floating-point values |
VUID-TessLevelInner-TessLevelInner-04394 | N | | None | explicit | TessLevelInner | core | The TessLevelInner decoration must be used only within the TessellationControl or TessellationEvaluation {ExecutionModel} |
VUID-TessLevelInner-TessLevelInner-04395 | N | | None | explicit | TessLevelInner | core | The variable decorated with TessLevelInner within the TessellationControl {ExecutionModel} must be declared using the Output {StorageClass} |
VUID-TessLevelInner-TessLevelInner-04396 | N | | None | explicit | TessLevelInner | core | The variable decorated with TessLevelInner within the TessellationEvaluation {ExecutionModel} must be declared using the Input {StorageClass} |
VUID-TessLevelInner-TessLevelInner-04397 | N | | None | explicit | TessLevelInner | core | The variable decorated with TessLevelInner must be declared as an array of size two, containing 32-bit floating-point values |
VUID-TessLevelOuter-TessLevelOuter-04390 | N | | None | explicit | TessLevelOuter | core | The TessLevelOuter decoration must be used only within the TessellationControl or TessellationEvaluation {ExecutionModel} |
VUID-TessLevelOuter-TessLevelOuter-04391 | N | | None | explicit | TessLevelOuter | core | The variable decorated with TessLevelOuter within the TessellationControl {ExecutionModel} must be declared using the Output {StorageClass} |
VUID-TessLevelOuter-TessLevelOuter-04392 | N | | None | explicit | TessLevelOuter | core | The variable decorated with TessLevelOuter within the TessellationEvaluation {ExecutionModel} must be declared using the Input {StorageClass} |
VUID-TessLevelOuter-TessLevelOuter-04393 | N | | None | explicit | TessLevelOuter | core | The variable decorated with TessLevelOuter must be declared as an array of size four, containing 32-bit floating-point values |
VUID-VertexIndex-VertexIndex-04398 | N | | None | explicit | VertexIndex | core | The VertexIndex decoration must be used only within the Vertex {ExecutionModel} |
VUID-VertexIndex-VertexIndex-04399 | N | | None | explicit | VertexIndex | core | The variable decorated with VertexIndex must be declared using the Input {StorageClass} |
VUID-VertexIndex-VertexIndex-04400 | N | | None | explicit | VertexIndex | core | The variable decorated with VertexIndex must be declared as a scalar 32-bit integer value |
VUID-ViewIndex-ViewIndex-04401 | N | | None | explicit | ViewIndex | (VK_VERSION_1_1,VK_KHR_multiview) | The ViewIndex decoration must not be used within the GLCompute {ExecutionModel} |
VUID-ViewIndex-ViewIndex-04402 | N | | None | explicit | ViewIndex | (VK_VERSION_1_1,VK_KHR_multiview) | The variable decorated with ViewIndex must be declared using the Input {StorageClass} |
VUID-ViewIndex-ViewIndex-04403 | N | | None | explicit | ViewIndex | (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-04404 | N | | None | explicit | ViewportIndex | core | The ViewportIndex decoration must be used only within the MeshNV, Vertex, TessellationEvaluation, Geometry, or Fragment {ExecutionModel} |
VUID-ViewportIndex-ViewportIndex-04405 | N | | None | explicit | ViewportIndex | (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-04406 | N | | None | explicit | ViewportIndex | core | The variable decorated with ViewportIndex within the MeshNV, Vertex, TessellationEvaluation, or Geometry {ExecutionModel} must be declared using the Output {StorageClass} |
VUID-ViewportIndex-ViewportIndex-04407 | N | | None | explicit | ViewportIndex | core | The variable decorated with ViewportIndex within the Fragment {ExecutionModel} must be declared using the Input {StorageClass} |
VUID-ViewportIndex-ViewportIndex-04408 | N | | None | explicit | ViewportIndex | core | The variable decorated with ViewportIndex must be declared as a scalar 32-bit integer value |
VUID-ViewportMaskNV-ViewportMaskNV-04409 | N | | None | explicit | ViewportMaskNV | (VK_NV_viewport_array2) | The ViewportMaskNV decoration must be used only within the Vertex, MeshNV, TessellationEvaluation, or Geometry {ExecutionModel} |
VUID-ViewportMaskNV-ViewportMaskNV-04410 | N | | None | explicit | ViewportMaskNV | (VK_NV_viewport_array2) | The variable decorated with ViewportMaskNV must be declared using the Output {StorageClass} |
VUID-ViewportMaskNV-ViewportMaskNV-04411 | N | | None | explicit | ViewportMaskNV | (VK_NV_viewport_array2) | The variable decorated with ViewportMaskNV must be declared as an array of 32-bit integer values |
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04412 | N | | None | explicit | ViewportMaskPerViewNV | (VK_NVX_multiview_per_view_attributes+VK_NV_viewport_array2) | The ViewportMaskPerViewNV decoration must be used only within the Vertex, MeshNV, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel} |
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04413 | N | | None | explicit | ViewportMaskPerViewNV | (VK_NVX_multiview_per_view_attributes+VK_NV_viewport_array2) | The variable decorated with ViewportMaskPerViewNV must be declared using the Output {StorageClass} |
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04414 | N | | None | explicit | ViewportMaskPerViewNV | (VK_NVX_multiview_per_view_attributes+VK_NV_viewport_array2) | The variable decorated with ViewportMaskPerViewNV must be declared as an array of 32-bit integer values |
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04415 | N | | None | explicit | ViewportMaskPerViewNV | (VK_NVX_multiview_per_view_attributes+VK_NV_viewport_array2) | The array decorated with ViewportMaskPerViewNV must be a size less than or equal to 32 |
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04416 | N | | None | explicit | ViewportMaskPerViewNV | (VK_NVX_multiview_per_view_attributes+VK_NV_viewport_array2) | The array decorated with ViewportMaskPerViewNV must be a size greater than the maximum view in the subpass's view mask |
VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04417 | N | | None | explicit | ViewportMaskPerViewNV | (VK_NVX_multiview_per_view_attributes+VK_NV_viewport_array2) | The array variable decorated with ViewportMaskPerViewNV must only be indexed by a constant or specialization constant. |
VUID-VkAabbPositionsKHR-minX-03546 | N | | None | explicit | VkAabbPositionsKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure) | minX must be less than or equal to maxX |
VUID-VkAabbPositionsKHR-minY-03547 | N | | None | explicit | VkAabbPositionsKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure) | minY must be less than or equal to maxY |
VUID-VkAabbPositionsKHR-minZ-03548 | N | | None | explicit | VkAabbPositionsKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure) | minZ must be less than or equal to maxZ |
VUID-VkAccelerationStructureBuildGeometryInfoKHR-commonparent | Y | | None | implicit | VkAccelerationStructureBuildGeometryInfoKHR | (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-04927 | N | | None | explicit | VkAccelerationStructureBuildGeometryInfoKHR | (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-03796 | Y | | None | explicit | VkAccelerationStructureBuildGeometryInfoKHR | (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-04928 | N | | None | explicit | VkAccelerationStructureBuildGeometryInfoKHR | (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-04929 | N | | None | explicit | VkAccelerationStructureBuildGeometryInfoKHR | (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-parameter | Y | | ValidateCmdBuildAccelerationStructuresKHR | implicit | VkAccelerationStructureBuildGeometryInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | flags must be a valid combination of VkBuildAccelerationStructureFlagBitsKHR values |
VUID-VkAccelerationStructureBuildGeometryInfoKHR-pGeometries-03788 | Y | | ValidateCmdBuildAccelerationStructuresKHR | explicit | VkAccelerationStructureBuildGeometryInfoKHR | (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-parameter | Y | | None | implicit | VkAccelerationStructureBuildGeometryInfoKHR | (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-pNext | Y | | None | implicit | VkAccelerationStructureBuildGeometryInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | pNext must be NULL |
VUID-VkAccelerationStructureBuildGeometryInfoKHR-ppGeometries-parameter | Y | | None | implicit | VkAccelerationStructureBuildGeometryInfoKHR | (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-sType | Y | | ValidateCmdBuildAccelerationStructuresKHR | implicit | VkAccelerationStructureBuildGeometryInfoKHR | (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-03654 | Y | | ValidateCmdBuildAccelerationStructuresKHR | explicit | VkAccelerationStructureBuildGeometryInfoKHR | (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-03789 | Y | | None | explicit | VkAccelerationStructureBuildGeometryInfoKHR | (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-03790 | Y | | None | explicit | VkAccelerationStructureBuildGeometryInfoKHR | (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-03791 | Y | | None | explicit | VkAccelerationStructureBuildGeometryInfoKHR | (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-03792 | Y | | None | explicit | VkAccelerationStructureBuildGeometryInfoKHR | (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-03793 | Y | | None | explicit | VkAccelerationStructureBuildGeometryInfoKHR | (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-03794 | N | | None | explicit | VkAccelerationStructureBuildGeometryInfoKHR | (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-03795 | N | | None | explicit | VkAccelerationStructureBuildGeometryInfoKHR | (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-parameter | Y | | ValidateCmdBuildAccelerationStructuresKHR | implicit | VkAccelerationStructureBuildGeometryInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | type must be a valid VkAccelerationStructureTypeKHR value |
VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03656 | N | | None | explicit | VkAccelerationStructureBuildRangeInfoKHR | (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-03657 | N | | None | explicit | VkAccelerationStructureBuildRangeInfoKHR | (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-03659 | N | | None | explicit | VkAccelerationStructureBuildRangeInfoKHR | (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-03660 | N | | None | explicit | VkAccelerationStructureBuildRangeInfoKHR | (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-03658 | N | | None | explicit | VkAccelerationStructureBuildRangeInfoKHR | (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-pNext | N | | None | implicit | VkAccelerationStructureBuildSizesInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | pNext must be NULL |
VUID-VkAccelerationStructureBuildSizesInfoKHR-sType-sType | Y | | None | implicit | VkAccelerationStructureBuildSizesInfoKHR | (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-03614 | Y | | ValidateCreateAccelerationStructureKHR | explicit | VkAccelerationStructureCreateInfoKHR | (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-03615 | Y | | None | explicit | VkAccelerationStructureCreateInfoKHR | (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-parameter | Y | | None | implicit | VkAccelerationStructureCreateInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | buffer must be a valid VkBuffer handle |
VUID-VkAccelerationStructureCreateInfoKHR-createFlags-03613 | Y | | None | explicit | VkAccelerationStructureCreateInfoKHR | (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-parameter | Y | | ValidateCreateAccelerationStructureKHR | implicit | VkAccelerationStructureCreateInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | createFlags must be a valid combination of VkAccelerationStructureCreateFlagBitsKHR values |
VUID-VkAccelerationStructureCreateInfoKHR-deviceAddress-03612 | Y | | ValidateCreateAccelerationStructureKHR | explicit | VkAccelerationStructureCreateInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | If deviceAddress is not zero, createFlags must include VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR |
VUID-VkAccelerationStructureCreateInfoKHR-flags-04954 | N | | None | explicit | VkAccelerationStructureCreateInfoKHR | (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-04955 | N | | None | explicit | VkAccelerationStructureCreateInfoKHR | (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-03616 | Y | | ValidateCreateAccelerationStructureKHR | explicit | VkAccelerationStructureCreateInfoKHR | (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-03734 | Y | | None | explicit | VkAccelerationStructureCreateInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | offset must be a multiple of 256 bytes |
VUID-VkAccelerationStructureCreateInfoKHR-pNext-pNext | Y | | None | implicit | VkAccelerationStructureCreateInfoKHR | (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-sType | Y | | ValidateCreateAccelerationStructureKHR | implicit | VkAccelerationStructureCreateInfoKHR | (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-unique | Y | | None | implicit | VkAccelerationStructureCreateInfoKHR | (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-parameter | Y | | ValidateCreateAccelerationStructureKHR | implicit | VkAccelerationStructureCreateInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | type must be a valid VkAccelerationStructureTypeKHR value |
VUID-VkAccelerationStructureCreateInfoNV-compactedSize-02421 | Y | | ValidateCreateAccelerationStructureNV | explicit | VkAccelerationStructureCreateInfoNV | (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-parameter | N | | None | implicit | VkAccelerationStructureCreateInfoNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | info must be a valid VkAccelerationStructureInfoNV structure |
VUID-VkAccelerationStructureCreateInfoNV-pNext-pNext | Y | | None | implicit | VkAccelerationStructureCreateInfoNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | pNext must be NULL |
VUID-VkAccelerationStructureCreateInfoNV-sType-sType | Y | | None | implicit | VkAccelerationStructureCreateInfoNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV |
VUID-VkAccelerationStructureDeviceAddressInfoKHR-accelerationStructure-parameter | N | | None | implicit | VkAccelerationStructureDeviceAddressInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | accelerationStructure must be a valid VkAccelerationStructureKHR handle |
VUID-VkAccelerationStructureDeviceAddressInfoKHR-pNext-pNext | Y | | None | implicit | VkAccelerationStructureDeviceAddressInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | pNext must be NULL |
VUID-VkAccelerationStructureDeviceAddressInfoKHR-sType-sType | Y | | None | implicit | VkAccelerationStructureDeviceAddressInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR |
VUID-VkAccelerationStructureGeometryAabbsDataKHR-pNext-pNext | Y | | None | implicit | VkAccelerationStructureGeometryAabbsDataKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | pNext must be NULL |
VUID-VkAccelerationStructureGeometryAabbsDataKHR-sType-sType | Y | | None | implicit | VkAccelerationStructureGeometryAabbsDataKHR | (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-03545 | N | | None | explicit | VkAccelerationStructureGeometryAabbsDataKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | stride must be a multiple of 8 |
VUID-VkAccelerationStructureGeometryAabbsDataKHR-stride-03820 | Y | | None | explicit | VkAccelerationStructureGeometryAabbsDataKHR | (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-pNext | Y | | None | implicit | VkAccelerationStructureGeometryInstancesDataKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | pNext must be NULL |
VUID-VkAccelerationStructureGeometryInstancesDataKHR-sType-sType | Y | | None | implicit | VkAccelerationStructureGeometryInstancesDataKHR | (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-parameter | Y | | None | implicit | VkAccelerationStructureGeometryKHR | (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-parameter | Y | | None | implicit | VkAccelerationStructureGeometryKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | flags must be a valid combination of VkGeometryFlagBitsKHR values |
VUID-VkAccelerationStructureGeometryKHR-geometryType-parameter | Y | | None | implicit | VkAccelerationStructureGeometryKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | geometryType must be a valid VkGeometryTypeKHR value |
VUID-VkAccelerationStructureGeometryKHR-instances-parameter | Y | | None | implicit | VkAccelerationStructureGeometryKHR | (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-pNext | Y | | None | implicit | VkAccelerationStructureGeometryKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | pNext must be NULL |
VUID-VkAccelerationStructureGeometryKHR-sType-sType | Y | | None | implicit | VkAccelerationStructureGeometryKHR | (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-parameter | Y | | None | implicit | VkAccelerationStructureGeometryKHR | (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-sType | Y | | None | implicit | VkAccelerationStructureGeometryMotionTrianglesDataNV | (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-03798 | Y | | ValidateCmdBuildAccelerationStructuresKHR | explicit | VkAccelerationStructureGeometryTrianglesDataKHR | (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-parameter | Y | | None | implicit | VkAccelerationStructureGeometryTrianglesDataKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | indexType must be a valid VkIndexType value |
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-pNext-pNext | Y | | None | implicit | VkAccelerationStructureGeometryTrianglesDataKHR | (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-sType | Y | | None | implicit | VkAccelerationStructureGeometryTrianglesDataKHR | (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-unique | N | | None | implicit | VkAccelerationStructureGeometryTrianglesDataKHR | (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-03797 | N | | None | explicit | VkAccelerationStructureGeometryTrianglesDataKHR | (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-parameter | Y | | None | implicit | VkAccelerationStructureGeometryTrianglesDataKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | vertexFormat must be a valid VkFormat value |
VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03735 | N | | None | explicit | VkAccelerationStructureGeometryTrianglesDataKHR | (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-03819 | Y | | ValidateCmdBuildAccelerationStructuresKHR | explicit | VkAccelerationStructureGeometryTrianglesDataKHR | (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-02592 | Y | | ValidateCreateAccelerationStructureNV | explicit | VkAccelerationStructureInfoNV | (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-parameter | Y | | None | implicit | VkAccelerationStructureInfoNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | flags must be a valid combination of VkBuildAccelerationStructureFlagBitsNV values |
VUID-VkAccelerationStructureInfoNV-geometryCount-02422 | Y | | None | explicit | VkAccelerationStructureInfoNV | (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-02423 | Y | | None | explicit | VkAccelerationStructureInfoNV | (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-02782 | Y | | ValidateCmdBuildAccelerationStructureNV | explicit | VkAccelerationStructureInfoNV | (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-02424 | Y | | None | explicit | VkAccelerationStructureInfoNV | (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-parameter | Y | | None | implicit | VkAccelerationStructureInfoNV | (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-pNext | Y | | None | implicit | VkAccelerationStructureInfoNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | pNext must be NULL |
VUID-VkAccelerationStructureInfoNV-sType-sType | Y | | None | implicit | VkAccelerationStructureInfoNV | (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-02781 | Y | | ValidateCmdBuildAccelerationStructureNV | explicit | VkAccelerationStructureInfoNV | (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-02425 | Y | | ValidateCreateAccelerationStructureNV | explicit | VkAccelerationStructureInfoNV | (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-02426 | Y | | ValidateCreateAccelerationStructureNV | explicit | VkAccelerationStructureInfoNV | (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-02786 | Y | | ValidateCreateAccelerationStructureNV | explicit | VkAccelerationStructureInfoNV | (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-04623 | N | | None | explicit | VkAccelerationStructureInfoNV | (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-parameter | Y | | None | implicit | VkAccelerationStructureInfoNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | type must be a valid VkAccelerationStructureTypeNV value |
VUID-VkAccelerationStructureInstanceKHR-flags-parameter | N | | None | implicit | VkAccelerationStructureInstanceKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure) | flags must be a valid combination of VkGeometryInstanceFlagBitsKHR values |
VUID-VkAccelerationStructureMatrixMotionInstanceNV-flags-parameter | N | | None | implicit | VkAccelerationStructureMatrixMotionInstanceNV | (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-parameter | Y | | None | implicit | VkAccelerationStructureMemoryRequirementsInfoNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | accelerationStructure must be a valid VkAccelerationStructureNV handle |
VUID-VkAccelerationStructureMemoryRequirementsInfoNV-pNext-pNext | Y | | None | implicit | VkAccelerationStructureMemoryRequirementsInfoNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | pNext must be NULL |
VUID-VkAccelerationStructureMemoryRequirementsInfoNV-sType-sType | Y | | None | implicit | VkAccelerationStructureMemoryRequirementsInfoNV | (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-parameter | Y | | None | implicit | VkAccelerationStructureMemoryRequirementsInfoNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | type must be a valid VkAccelerationStructureMemoryRequirementsTypeNV value |
VUID-VkAccelerationStructureMotionInfoNV-flags-zerobitmask | Y | | None | implicit | VkAccelerationStructureMotionInfoNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur) | flags must be 0 |
VUID-VkAccelerationStructureMotionInfoNV-sType-sType | Y | | None | implicit | VkAccelerationStructureMotionInfoNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur) | sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV |
VUID-VkAccelerationStructureMotionInstanceNV-flags-zerobitmask | N | | None | implicit | VkAccelerationStructureMotionInstanceNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur) | flags must be 0 |
VUID-VkAccelerationStructureMotionInstanceNV-matrixMotionInstance-parameter | N | | None | implicit | VkAccelerationStructureMotionInstanceNV | (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-parameter | N | | None | implicit | VkAccelerationStructureMotionInstanceNV | (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-parameter | N | | None | implicit | VkAccelerationStructureMotionInstanceNV | (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-parameter | N | | None | implicit | VkAccelerationStructureMotionInstanceNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing_motion_blur) | type must be a valid VkAccelerationStructureMotionInstanceTypeNV value |
VUID-VkAccelerationStructureSRTMotionInstanceNV-flags-parameter | N | | None | implicit | VkAccelerationStructureSRTMotionInstanceNV | (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-pNext | Y | | None | implicit | VkAccelerationStructureVersionInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure) | pNext must be NULL |
VUID-VkAccelerationStructureVersionInfoKHR-pVersionData-parameter | Y | | ValidateVkAccelerationStructureVersionInfoKHR | implicit | VkAccelerationStructureVersionInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure) | pVersionData must be a valid pointer to an array of 2*VK_UUID_SIZE uint8_t values |
VUID-VkAccelerationStructureVersionInfoKHR-sType-sType | Y | | ValidateVkAccelerationStructureVersionInfoKHR | implicit | VkAccelerationStructureVersionInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure) | sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR |
VUID-VkAcquireNextImageInfoKHR-commonparent | Y | | None | implicit | VkAcquireNextImageInfoKHR | (VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group) | Each of fence, semaphore, and swapchain that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkInstance |
VUID-VkAcquireNextImageInfoKHR-deviceMask-01290 | Y | | InvalidDeviceMask | explicit | VkAcquireNextImageInfoKHR | (VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group) | deviceMask must be a valid device mask |
VUID-VkAcquireNextImageInfoKHR-deviceMask-01291 | Y | | InvalidDeviceMask | explicit | VkAcquireNextImageInfoKHR | (VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group) | deviceMask must not be zero |
VUID-VkAcquireNextImageInfoKHR-fence-01289 | N | | None | explicit | VkAcquireNextImageInfoKHR | (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-parameter | Y | | None | implicit | VkAcquireNextImageInfoKHR | (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-pNext | Y | | None | implicit | VkAcquireNextImageInfoKHR | (VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group) | pNext must be NULL |
VUID-VkAcquireNextImageInfoKHR-sType-sType | Y | | None | implicit | VkAcquireNextImageInfoKHR | (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-01288 | N | | None | explicit | VkAcquireNextImageInfoKHR | (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-01781 | N | | None | explicit | VkAcquireNextImageInfoKHR | (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-01782 | Y | | SwapchainAcquireImageNoSync2KHR | explicit | VkAcquireNextImageInfoKHR | (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-03266 | Y | | SwapchainAcquireImageNoBinarySemaphore2KHR | explicit | VkAcquireNextImageInfoKHR | (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-parameter | Y | | None | implicit | VkAcquireNextImageInfoKHR | (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-01675 | N | | None | explicit | VkAcquireNextImageInfoKHR | (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-parameter | Y | | None | implicit | VkAcquireNextImageInfoKHR | (VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group) | swapchain must be a valid VkSwapchainKHR handle |
VUID-VkAcquireProfilingLockInfoKHR-flags-zerobitmask | Y | | None | implicit | VkAcquireProfilingLockInfoKHR | (VK_KHR_performance_query) | flags must be 0 |
VUID-VkAcquireProfilingLockInfoKHR-pNext-pNext | Y | | None | implicit | VkAcquireProfilingLockInfoKHR | (VK_KHR_performance_query) | pNext must be NULL |
VUID-VkAcquireProfilingLockInfoKHR-sType-sType | Y | | None | implicit | VkAcquireProfilingLockInfoKHR | (VK_KHR_performance_query) | sType must be VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR |
VUID-VkAllocationCallbacks-pfnAllocation-00632 | Y | | InvalidAllocationCallbacks | explicit | VkAllocationCallbacks | core | pfnAllocation must be a valid pointer to a valid user-defined PFN_vkAllocationFunction |
VUID-VkAllocationCallbacks-pfnFree-00634 | Y | | InvalidAllocationCallbacks | explicit | VkAllocationCallbacks | core | pfnFree must be a valid pointer to a valid user-defined PFN_vkFreeFunction |
VUID-VkAllocationCallbacks-pfnInternalAllocation-00635 | Y | | InvalidAllocationCallbacks | explicit | VkAllocationCallbacks | core | If either of pfnInternalAllocation or pfnInternalFree is not NULL, both must be valid callbacks |
VUID-VkAllocationCallbacks-pfnReallocation-00633 | Y | | InvalidAllocationCallbacks | explicit | VkAllocationCallbacks | core | pfnReallocation must be a valid pointer to a valid user-defined PFN_vkReallocationFunction |
VUID-VkAndroidHardwareBufferFormatPropertiesANDROID-sType-sType | Y | | None | implicit | VkAndroidHardwareBufferFormatPropertiesANDROID | (VK_ANDROID_external_memory_android_hardware_buffer) | sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID |
VUID-VkAndroidHardwareBufferPropertiesANDROID-pNext-pNext | Y | | None | implicit | VkAndroidHardwareBufferPropertiesANDROID | (VK_ANDROID_external_memory_android_hardware_buffer) | pNext must be NULL or a pointer to a valid instance of VkAndroidHardwareBufferFormatPropertiesANDROID |
VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-sType | Y | | None | implicit | VkAndroidHardwareBufferPropertiesANDROID | (VK_ANDROID_external_memory_android_hardware_buffer) | sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID |
VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-unique | Y | | None | implicit | VkAndroidHardwareBufferPropertiesANDROID | (VK_ANDROID_external_memory_android_hardware_buffer) | The sType value of each struct in the pNext chain must be unique |
VUID-VkAndroidHardwareBufferUsageANDROID-sType-sType | Y | | None | implicit | VkAndroidHardwareBufferUsageANDROID | (VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_ANDROID_external_memory_android_hardware_buffer) | sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID |
VUID-VkAndroidSurfaceCreateInfoKHR-flags-zerobitmask | Y | | None | implicit | VkAndroidSurfaceCreateInfoKHR | (VK_KHR_surface)+(VK_KHR_android_surface) | flags must be 0 |
VUID-VkAndroidSurfaceCreateInfoKHR-pNext-pNext | Y | | None | implicit | VkAndroidSurfaceCreateInfoKHR | (VK_KHR_surface)+(VK_KHR_android_surface) | pNext must be NULL |
VUID-VkAndroidSurfaceCreateInfoKHR-sType-sType | Y | | None | implicit | VkAndroidSurfaceCreateInfoKHR | (VK_KHR_surface)+(VK_KHR_android_surface) | sType must be VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR |
VUID-VkAndroidSurfaceCreateInfoKHR-window-01248 | N | | None | explicit | VkAndroidSurfaceCreateInfoKHR | (VK_KHR_surface)+(VK_KHR_android_surface) | window must point to a valid Android ANativeWindow |
VUID-VkApplicationInfo-apiVersion-04010 | Y | | None | explicit | VkApplicationInfo | core | If apiVersion is not 0, then it must be greater than or equal to VK_API_VERSION_1_0 |
VUID-VkApplicationInfo-pApplicationName-parameter | N | | None | implicit | VkApplicationInfo | core | If pApplicationName is not NULL, pApplicationName must be a null-terminated UTF-8 string |
VUID-VkApplicationInfo-pEngineName-parameter | N | | None | implicit | VkApplicationInfo | core | If pEngineName is not NULL, pEngineName must be a null-terminated UTF-8 string |
VUID-VkApplicationInfo-pNext-pNext | Y | | None | implicit | VkApplicationInfo | core | pNext must be NULL |
VUID-VkApplicationInfo-sType-sType | Y | | InstanceAppInfoBadStype | implicit | VkApplicationInfo | core | sType must be VK_STRUCTURE_TYPE_APPLICATION_INFO |
VUID-VkAttachmentDescription-finalLayout-00843 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription | core | finalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED |
VUID-VkAttachmentDescription-finalLayout-parameter | Y | | None | implicit | VkAttachmentDescription | core | finalLayout must be a valid VkImageLayout value |
VUID-VkAttachmentDescription-flags-parameter | Y | | None | implicit | VkAttachmentDescription | core | flags must be a valid combination of VkAttachmentDescriptionFlagBits values |
VUID-VkAttachmentDescription-format-03280 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription | core | If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL |
VUID-VkAttachmentDescription-format-03281 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription | core | If format is a depth/stencil format, initialLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL |
VUID-VkAttachmentDescription-format-03282 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription | core | If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL |
VUID-VkAttachmentDescription-format-03283 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout, InvalidImageLayout | explicit | VkAttachmentDescription | core | If format is a depth/stencil format, finalLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL |
VUID-VkAttachmentDescription-format-03286 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription | (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-03287 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription | (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-03288 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription | (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-03289 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription | (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-03290 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription | (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-03291 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription | (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-03292 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription | (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-03293 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription | (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-parameter | Y | | None | implicit | VkAttachmentDescription | core | format must be a valid VkFormat value |
VUID-VkAttachmentDescription-initialLayout-parameter | Y | | None | implicit | VkAttachmentDescription | core | initialLayout must be a valid VkImageLayout value |
VUID-VkAttachmentDescription-loadOp-parameter | Y | | None | implicit | VkAttachmentDescription | core | loadOp must be a valid VkAttachmentLoadOp value |
VUID-VkAttachmentDescription-samples-parameter | Y | | None | implicit | VkAttachmentDescription | core | samples must be a valid VkSampleCountFlagBits value |
VUID-VkAttachmentDescription-separateDepthStencilLayouts-03284 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription | (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-03285 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription | (VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts) | If the separateDepthStencilLayouts feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL |
VUID-VkAttachmentDescription-stencilLoadOp-parameter | Y | | None | implicit | VkAttachmentDescription | core | stencilLoadOp must be a valid VkAttachmentLoadOp value |
VUID-VkAttachmentDescription-stencilStoreOp-parameter | Y | | None | implicit | VkAttachmentDescription | core | stencilStoreOp must be a valid VkAttachmentStoreOp value |
VUID-VkAttachmentDescription-storeOp-parameter | Y | | None | implicit | VkAttachmentDescription | core | storeOp must be a valid VkAttachmentStoreOp value |
VUID-VkAttachmentDescription2-finalLayout-03061 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription2 | (VK_VERSION_1_2,VK_KHR_create_renderpass2) | finalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED |
VUID-VkAttachmentDescription2-finalLayout-parameter | Y | | None | implicit | VkAttachmentDescription2 | (VK_VERSION_1_2,VK_KHR_create_renderpass2) | finalLayout must be a valid VkImageLayout value |
VUID-VkAttachmentDescription2-flags-parameter | Y | | None | implicit | VkAttachmentDescription2 | (VK_VERSION_1_2,VK_KHR_create_renderpass2) | flags must be a valid combination of VkAttachmentDescriptionFlagBits values |
VUID-VkAttachmentDescription2-format-03294 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription2 | (VK_VERSION_1_2,VK_KHR_create_renderpass2) | If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL |
VUID-VkAttachmentDescription2-format-03295 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription2 | (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-03296 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription2 | (VK_VERSION_1_2,VK_KHR_create_renderpass2) | If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL |
VUID-VkAttachmentDescription2-format-03297 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription2 | (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-03300 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription2 | (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-03301 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription2 | (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-03302 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription2 | (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-03303 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription2 | (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-03304 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription2 | (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-03305 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription2 | (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-03306 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription2 | (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-03307 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription2 | (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-parameter | Y | | None | implicit | VkAttachmentDescription2 | (VK_VERSION_1_2,VK_KHR_create_renderpass2) | format must be a valid VkFormat value |
VUID-VkAttachmentDescription2-initialLayout-parameter | Y | | None | implicit | VkAttachmentDescription2 | (VK_VERSION_1_2,VK_KHR_create_renderpass2) | initialLayout must be a valid VkImageLayout value |
VUID-VkAttachmentDescription2-loadOp-parameter | Y | | None | implicit | VkAttachmentDescription2 | (VK_VERSION_1_2,VK_KHR_create_renderpass2) | loadOp must be a valid VkAttachmentLoadOp value |
VUID-VkAttachmentDescription2-pNext-pNext | Y | | None | implicit | VkAttachmentDescription2 | (VK_VERSION_1_2,VK_KHR_create_renderpass2) | pNext must be NULL or a pointer to a valid instance of VkAttachmentDescriptionStencilLayout |
VUID-VkAttachmentDescription2-sType-sType | Y | | None | implicit | VkAttachmentDescription2 | (VK_VERSION_1_2,VK_KHR_create_renderpass2) | sType must be VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 |
VUID-VkAttachmentDescription2-sType-unique | Y | | None | implicit | VkAttachmentDescription2 | (VK_VERSION_1_2,VK_KHR_create_renderpass2) | The sType value of each struct in the pNext chain must be unique |
VUID-VkAttachmentDescription2-samples-parameter | Y | | None | implicit | VkAttachmentDescription2 | (VK_VERSION_1_2,VK_KHR_create_renderpass2) | samples must be a valid VkSampleCountFlagBits value |
VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03298 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription2 | (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-03299 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescription2 | (VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts) | If the separateDepthStencilLayouts feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL |
VUID-VkAttachmentDescription2-stencilLoadOp-parameter | Y | | None | implicit | VkAttachmentDescription2 | (VK_VERSION_1_2,VK_KHR_create_renderpass2) | stencilLoadOp must be a valid VkAttachmentLoadOp value |
VUID-VkAttachmentDescription2-stencilStoreOp-parameter | Y | | None | implicit | VkAttachmentDescription2 | (VK_VERSION_1_2,VK_KHR_create_renderpass2) | stencilStoreOp must be a valid VkAttachmentStoreOp value |
VUID-VkAttachmentDescription2-storeOp-parameter | Y | | None | implicit | VkAttachmentDescription2 | (VK_VERSION_1_2,VK_KHR_create_renderpass2) | storeOp must be a valid VkAttachmentStoreOp value |
VUID-VkAttachmentDescriptionStencilLayout-sType-sType | Y | | None | implicit | VkAttachmentDescriptionStencilLayout | (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-03309 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescriptionStencilLayout | (VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts) | stencilFinalLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL |
VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-03310 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescriptionStencilLayout | (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-parameter | Y | | None | implicit | VkAttachmentDescriptionStencilLayout | (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-03308 | Y | | RenderPassCreateAttachmentDescriptionInvalidFinalLayout | explicit | VkAttachmentDescriptionStencilLayout | (VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts) | stencilInitialLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL |
VUID-VkAttachmentDescriptionStencilLayout-stencilInitialLayout-parameter | Y | | None | implicit | VkAttachmentDescriptionStencilLayout | (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-00857 | Y | | RenderPassCreateAttachmentReferenceInvalidLayout | explicit | VkAttachmentReference | core | If 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-parameter | Y | | None | implicit | VkAttachmentReference | core | layout must be a valid VkImageLayout value |
VUID-VkAttachmentReference2-attachment-04754 | Y | | RenderPassCreateAttachmentReferenceInvalidLayout | explicit | VkAttachmentReference2 | (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-04755 | Y | | RenderPassCreateAttachmentReferenceInvalidLayout | explicit | VkAttachmentReference2 | (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-04756 | Y | | RenderPassCreateAttachmentReferenceInvalidLayout | explicit | VkAttachmentReference2 | (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-04757 | Y | | RenderPassCreateAttachmentReferenceInvalidLayout | explicit | VkAttachmentReference2 | (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-03077 | Y | | RenderPassCreateAttachmentReferenceInvalidLayout | explicit | VkAttachmentReference2 | (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-parameter | Y | | None | implicit | VkAttachmentReference2 | (VK_VERSION_1_2,VK_KHR_create_renderpass2) | layout must be a valid VkImageLayout value |
VUID-VkAttachmentReference2-pNext-pNext | Y | | None | implicit | VkAttachmentReference2 | (VK_VERSION_1_2,VK_KHR_create_renderpass2) | pNext must be NULL or a pointer to a valid instance of VkAttachmentReferenceStencilLayout |
VUID-VkAttachmentReference2-sType-sType | Y | | None | implicit | VkAttachmentReference2 | (VK_VERSION_1_2,VK_KHR_create_renderpass2) | sType must be VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 |
VUID-VkAttachmentReference2-sType-unique | Y | | None | implicit | VkAttachmentReference2 | (VK_VERSION_1_2,VK_KHR_create_renderpass2) | The sType value of each struct in the pNext chain must be unique |
VUID-VkAttachmentReference2-separateDepthStencilLayouts-03313 | Y | | RenderPassCreateAttachmentReferenceInvalidLayout | explicit | VkAttachmentReference2 | (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-sType | Y | | None | implicit | VkAttachmentReferenceStencilLayout | (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-03318 | Y | | RenderPassCreateAttachmentReferenceInvalidLayout | explicit | VkAttachmentReferenceStencilLayout | (VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts) | stencilLayout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_PREINITIALIZED, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_PRESENT_SRC_KHR |
VUID-VkAttachmentReferenceStencilLayout-stencilLayout-parameter | Y | | None | implicit | VkAttachmentReferenceStencilLayout | (VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts) | stencilLayout must be a valid VkImageLayout value |
VUID-VkAttachmentSampleLocationsEXT-attachmentIndex-01531 | Y | | RenderPassBeginSampleLocationsInvalidIndicesEXT | explicit | VkAttachmentSampleLocationsEXT | (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-parameter | N | | None | implicit | VkAttachmentSampleLocationsEXT | (VK_EXT_sample_locations) | sampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure |
VUID-VkBindAccelerationStructureMemoryInfoNV-accelerationStructure-03620 | Y | | ValidateBindAccelerationStructureNV | explicit | VkBindAccelerationStructureMemoryInfoNV | (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-parameter | Y | | None | implicit | VkBindAccelerationStructureMemoryInfoNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | accelerationStructure must be a valid VkAccelerationStructureNV handle |
VUID-VkBindAccelerationStructureMemoryInfoNV-commonparent | Y | | None | implicit | VkBindAccelerationStructureMemoryInfoNV | (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-03622 | Y | | ValidateBindAccelerationStructureNV | explicit | VkBindAccelerationStructureMemoryInfoNV | (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-parameter | Y | | ValidateBindAccelerationStructureNV | implicit | VkBindAccelerationStructureMemoryInfoNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | memory must be a valid VkDeviceMemory handle |
VUID-VkBindAccelerationStructureMemoryInfoNV-memoryOffset-03621 | Y | | ValidateBindAccelerationStructureNV | explicit | VkBindAccelerationStructureMemoryInfoNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | memoryOffset must be less than the size of memory |
VUID-VkBindAccelerationStructureMemoryInfoNV-memoryOffset-03623 | Y | | ValidateBindAccelerationStructureNV | explicit | VkBindAccelerationStructureMemoryInfoNV | (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-parameter | Y | | None | implicit | VkBindAccelerationStructureMemoryInfoNV | (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-pNext | Y | | None | implicit | VkBindAccelerationStructureMemoryInfoNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | pNext must be NULL |
VUID-VkBindAccelerationStructureMemoryInfoNV-sType-sType | Y | | None | implicit | VkBindAccelerationStructureMemoryInfoNV | (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-03624 | Y | | ValidateBindAccelerationStructureNV | explicit | VkBindAccelerationStructureMemoryInfoNV | (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-01606 | N | | None | explicit | VkBindBufferMemoryDeviceGroupInfo | (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-01607 | N | | None | explicit | VkBindBufferMemoryDeviceGroupInfo | (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-parameter | Y | | None | implicit | VkBindBufferMemoryDeviceGroupInfo | (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-sType | Y | | None | implicit | VkBindBufferMemoryDeviceGroupInfo | (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-01898 | Y | | None | explicit | VkBindBufferMemoryInfo | (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-01899 | Y | | None | explicit | VkBindBufferMemoryInfo | (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-01029 | Y | | None | explicit | VkBindBufferMemoryInfo | (VK_VERSION_1_1,VK_KHR_bind_memory2) | buffer must not already be backed by a memory object |
VUID-VkBindBufferMemoryInfo-buffer-01030 | Y | | None | explicit | VkBindBufferMemoryInfo | (VK_VERSION_1_1,VK_KHR_bind_memory2) | buffer must not have been created with any sparse memory binding flags |
VUID-VkBindBufferMemoryInfo-buffer-01038 | N | | None | explicit | VkBindBufferMemoryInfo | (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-01039 | N | | None | explicit | VkBindBufferMemoryInfo | (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-01444 | N | | None | explicit | VkBindBufferMemoryInfo | (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-parameter | Y | | None | implicit | VkBindBufferMemoryInfo | (VK_VERSION_1_1,VK_KHR_bind_memory2) | buffer must be a valid VkBuffer handle |
VUID-VkBindBufferMemoryInfo-bufferDeviceAddress-03339 | N | | None | explicit | VkBindBufferMemoryInfo | (VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_2,VK_KHR_buffer_device_address) | If the VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddress feature is enabled and buffer was created with the VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set |
VUID-VkBindBufferMemoryInfo-commonparent | Y | | None | implicit | VkBindBufferMemoryInfo | (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-01035 | Y | | AndroidHardwareBufferImportBufferHandleType | explicit | VkBindBufferMemoryInfo | (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-01508 | Y | | None | explicit | VkBindBufferMemoryInfo | (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-02726 | Y | | InvalidExportExternalBufferHandleType | explicit | VkBindBufferMemoryInfo | (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-02727 | Y | | ValidateImportMemoryHandleType | explicit | VkBindBufferMemoryInfo | (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-02985 | Y | | None | explicit | VkBindBufferMemoryInfo | (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-02986 | Y | | AndroidHardwareBufferImportBufferHandleType | explicit | VkBindBufferMemoryInfo | (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-parameter | Y | | None | implicit | VkBindBufferMemoryInfo | (VK_VERSION_1_1,VK_KHR_bind_memory2) | memory must be a valid VkDeviceMemory handle |
VUID-VkBindBufferMemoryInfo-memoryOffset-01031 | Y | | None | explicit | VkBindBufferMemoryInfo | (VK_VERSION_1_1,VK_KHR_bind_memory2) | memoryOffset must be less than the size of memory |
VUID-VkBindBufferMemoryInfo-memoryOffset-01036 | Y | | None | explicit | VkBindBufferMemoryInfo | (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-01605 | N | | None | explicit | VkBindBufferMemoryInfo | (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-pNext | Y | | None | implicit | VkBindBufferMemoryInfo | (VK_VERSION_1_1,VK_KHR_bind_memory2) | pNext must be NULL or a pointer to a valid instance of VkBindBufferMemoryDeviceGroupInfo |
VUID-VkBindBufferMemoryInfo-sType-sType | Y | | None | implicit | VkBindBufferMemoryInfo | (VK_VERSION_1_1,VK_KHR_bind_memory2) | sType must be VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO |
VUID-VkBindBufferMemoryInfo-sType-unique | Y | | None | implicit | VkBindBufferMemoryInfo | (VK_VERSION_1_1,VK_KHR_bind_memory2) | The sType value of each struct in the pNext chain must be unique |
VUID-VkBindBufferMemoryInfo-size-01037 | Y | | None | explicit | VkBindBufferMemoryInfo | (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-01633 | N | | None | explicit | VkBindImageMemoryDeviceGroupInfo | (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-01634 | N | | None | explicit | VkBindImageMemoryDeviceGroupInfo | (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-01640 | N | | None | explicit | VkBindImageMemoryDeviceGroupInfo | (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-01641 | N | | None | explicit | VkBindImageMemoryDeviceGroupInfo | (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-01638 | N | | None | explicit | VkBindImageMemoryDeviceGroupInfo | (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-01639 | N | | None | explicit | VkBindImageMemoryDeviceGroupInfo | (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-01635 | N | | None | explicit | VkBindImageMemoryDeviceGroupInfo | (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-parameter | Y | | None | implicit | VkBindImageMemoryDeviceGroupInfo | (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-01637 | N | | None | explicit | VkBindImageMemoryDeviceGroupInfo | (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-parameter | Y | | None | implicit | VkBindImageMemoryDeviceGroupInfo | (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-sType | Y | | None | implicit | VkBindImageMemoryDeviceGroupInfo | (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-01636 | N | | None | explicit | VkBindImageMemoryDeviceGroupInfo | (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-01901 | Y | | None | explicit | VkBindImageMemoryInfo | (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-01902 | Y | | None | explicit | VkBindImageMemoryInfo | (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-commonparent | Y | | None | implicit | VkBindImageMemoryInfo | (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-01044 | Y | | None | explicit | VkBindImageMemoryInfo | (VK_VERSION_1_1,VK_KHR_bind_memory2) | image must not already be backed by a memory object |
VUID-VkBindImageMemoryInfo-image-01045 | Y | | None | explicit | VkBindImageMemoryInfo | (VK_VERSION_1_1,VK_KHR_bind_memory2) | image must not have been created with any sparse memory binding flags |
VUID-VkBindImageMemoryInfo-image-01050 | N | | None | explicit | VkBindImageMemoryInfo | (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-01051 | N | | None | explicit | VkBindImageMemoryInfo | (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-01445 | N | | None | explicit | VkBindImageMemoryInfo | (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-01630 | Y | | BindImageMemorySwapchain | explicit | VkBindImageMemoryInfo | (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-parameter | Y | | None | implicit | VkBindImageMemoryInfo | (VK_VERSION_1_1,VK_KHR_bind_memory2) | image must be a valid VkImage handle |
VUID-VkBindImageMemoryInfo-memory-01509 | Y | | None | explicit | VkBindImageMemoryInfo | (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-01612 | Y | | BindInvalidMemory2Disjoint, ValidateImportMemoryHandleType | explicit | VkBindImageMemoryInfo | (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-01614 | Y | | BindInvalidMemory2Disjoint, ValidateImportMemoryHandleType | explicit | VkBindImageMemoryInfo | (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-01625 | N | | None | explicit | VkBindImageMemoryInfo | (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-02628 | N | | None | explicit | VkBindImageMemoryInfo | (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-02629 | Y | | None | explicit | VkBindImageMemoryInfo | (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-02728 | Y | | InvalidExportExternalImageHandleType | explicit | VkBindImageMemoryInfo | (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-02729 | Y | | ValidateImportMemoryHandleType | explicit | VkBindImageMemoryInfo | (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-02989 | Y | | None | explicit | VkBindImageMemoryInfo | (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-02990 | Y | | AndroidHardwareBufferImportImageHandleType | explicit | VkBindImageMemoryInfo | (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-01046 | Y | | None | explicit | VkBindImageMemoryInfo | (VK_VERSION_1_1,VK_KHR_bind_memory2) | memoryOffset must be less than the size of memory |
VUID-VkBindImageMemoryInfo-memoryOffset-01613 | Y | | BindInvalidMemory2Disjoint | explicit | VkBindImageMemoryInfo | (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-01615 | Y | | BindInvalidMemory2Disjoint, AndroidHardwareBufferImportImageHandleType | explicit | VkBindImageMemoryInfo | (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-01616 | Y | | BindInvalidMemory2Disjoint | explicit | VkBindImageMemoryInfo | (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-01617 | Y | | BindInvalidMemory2Disjoint, AndroidHardwareBufferImportImageHandleType | explicit | VkBindImageMemoryInfo | (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-01618 | Y | | BindInvalidMemoryYcbcr | explicit | VkBindImageMemoryInfo | (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-01619 | Y | | BindInvalidMemory2Disjoint, BindInvalidMemoryYcbcr | explicit | VkBindImageMemoryInfo | (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-01620 | Y | | BindInvalidMemory2Disjoint, BindInvalidMemoryNoCheck | explicit | VkBindImageMemoryInfo | (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-01621 | Y | | BindInvalidMemory2Disjoint, BindInvalidMemoryYcbcr | explicit | VkBindImageMemoryInfo | (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-01626 | N | | None | explicit | VkBindImageMemoryInfo | (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-01627 | N | | None | explicit | VkBindImageMemoryInfo | (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-01628 | N | | None | explicit | VkBindImageMemoryInfo | (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-01629 | N | | None | explicit | VkBindImageMemoryInfo | (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-01631 | Y | | BindImageMemorySwapchain | explicit | VkBindImageMemoryInfo | (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-01632 | Y | | BindImageMemorySwapchain | explicit | VkBindImageMemoryInfo | (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-pNext | Y | | None | implicit | VkBindImageMemoryInfo | (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-sType | Y | | None | implicit | VkBindImageMemoryInfo | (VK_VERSION_1_1,VK_KHR_bind_memory2) | sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO |
VUID-VkBindImageMemoryInfo-sType-unique | Y | | None | implicit | VkBindImageMemoryInfo | (VK_VERSION_1_1,VK_KHR_bind_memory2) | The sType value of each struct in the pNext chain must be unique |
VUID-VkBindImageMemorySwapchainInfoKHR-imageIndex-01644 | Y | | BindImageMemorySwapchain | explicit | VkBindImageMemorySwapchainInfoKHR | (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-sType | Y | | None | implicit | VkBindImageMemorySwapchainInfoKHR | (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-parameter | N | | None | implicit | VkBindImageMemorySwapchainInfoKHR | (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-02283 | Y | | BindInvalidMemoryYcbcr | explicit | VkBindImagePlaneMemoryInfo | (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-02284 | N | | None | explicit | VkBindImagePlaneMemoryInfo | (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-parameter | Y | | None | implicit | VkBindImagePlaneMemoryInfo | (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-sType | Y | | None | implicit | VkBindImagePlaneMemoryInfo | (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-02946 | N | | None | explicit | VkBindIndexBufferIndirectCommandNV | (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-02948 | N | | None | explicit | VkBindIndexBufferIndirectCommandNV | (VK_NV_device_generated_commands) | Each element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object |
VUID-VkBindIndexBufferIndirectCommandNV-bufferAddress-02947 | N | | None | explicit | VkBindIndexBufferIndirectCommandNV | (VK_NV_device_generated_commands) | The bufferAddress must be aligned to the indexType used |
VUID-VkBindIndexBufferIndirectCommandNV-indexType-parameter | N | | None | implicit | VkBindIndexBufferIndirectCommandNV | (VK_NV_device_generated_commands) | indexType must be a valid VkIndexType value |
VUID-VkBindShaderGroupIndirectCommandNV-None-02944 | N | | None | explicit | VkBindShaderGroupIndirectCommandNV | (VK_NV_device_generated_commands) | The current bound graphics pipeline, as well as the pipelines it may reference, must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV |
VUID-VkBindShaderGroupIndirectCommandNV-index-02945 | N | | None | explicit | VkBindShaderGroupIndirectCommandNV | (VK_NV_device_generated_commands) | The index must be within range of the accessible shader groups of the current bound graphics pipeline. See vkCmdBindPipelineShaderGroupNV for further details |
VUID-VkBindSparseInfo-commonparent | Y | | None | implicit | VkBindSparseInfo | core | Both 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-parameter | Y | | None | implicit | VkBindSparseInfo | core | If bufferBindCount is not 0, pBufferBinds must be a valid pointer to an array of bufferBindCount valid VkSparseBufferMemoryBindInfo structures |
VUID-VkBindSparseInfo-pImageBinds-parameter | Y | | None | implicit | VkBindSparseInfo | core | If imageBindCount is not 0, pImageBinds must be a valid pointer to an array of imageBindCount valid VkSparseImageMemoryBindInfo structures |
VUID-VkBindSparseInfo-pImageOpaqueBinds-parameter | Y | | None | implicit | VkBindSparseInfo | core | If imageOpaqueBindCount is not 0, pImageOpaqueBinds must be a valid pointer to an array of imageOpaqueBindCount valid VkSparseImageOpaqueMemoryBindInfo structures |
VUID-VkBindSparseInfo-pNext-03247 | Y | | None | explicit | VkBindSparseInfo | (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-03248 | Y | | None | explicit | VkBindSparseInfo | (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-pNext | Y | | None | implicit | VkBindSparseInfo | core | 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 VkDeviceGroupBindSparseInfo or VkTimelineSemaphoreSubmitInfo |
VUID-VkBindSparseInfo-pSignalSemaphores-03249 | Y | | None | explicit | VkBindSparseInfo | (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-03251 | Y | | None | explicit | VkBindSparseInfo | (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-parameter | Y | | None | implicit | VkBindSparseInfo | core | If signalSemaphoreCount is not 0, pSignalSemaphores must be a valid pointer to an array of signalSemaphoreCount valid VkSemaphore handles |
VUID-VkBindSparseInfo-pWaitSemaphores-03246 | Y | | None | explicit | VkBindSparseInfo | (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-03250 | Y | | None | explicit | VkBindSparseInfo | (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-parameter | Y | | None | implicit | VkBindSparseInfo | core | If waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles |
VUID-VkBindSparseInfo-sType-sType | Y | | None | implicit | VkBindSparseInfo | core | sType must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO |
VUID-VkBindSparseInfo-sType-unique | Y | | None | implicit | VkBindSparseInfo | core | The sType value of each struct in the pNext chain must be unique |
VUID-VkBindVertexBufferIndirectCommandNV-None-02949 | N | | None | explicit | VkBindVertexBufferIndirectCommandNV | (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-02950 | N | | None | explicit | VkBindVertexBufferIndirectCommandNV | (VK_NV_device_generated_commands) | Each element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object |
VUID-VkBlitImageInfo2KHR-aspectMask-00241 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage |
VUID-VkBlitImageInfo2KHR-aspectMask-00242 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage |
VUID-VkBlitImageInfo2KHR-commonparent | Y | | None | implicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice |
VUID-VkBlitImageInfo2KHR-dstImage-00224 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag |
VUID-VkBlitImageInfo2KHR-dstImage-00225 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object |
VUID-VkBlitImageInfo2KHR-dstImage-00234 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | dstImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT |
VUID-VkBlitImageInfo2KHR-dstImage-00250 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffsets[0].y must be 0 and dstOffsets[1].y must be 1 |
VUID-VkBlitImageInfo2KHR-dstImage-00252 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | If dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffsets[0].z must be 0 and dstOffsets[1].z must be 1 |
VUID-VkBlitImageInfo2KHR-dstImage-01562 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | dstImage must not use a format listed in Formats requiring sampler Y'CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views |
VUID-VkBlitImageInfo2KHR-dstImage-02000 | Y | | BlitImageFormatTypes | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | The format features of dstImage must contain VK_FORMAT_FEATURE_BLIT_DST_BIT |
VUID-VkBlitImageInfo2KHR-dstImage-02545 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map) | dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT |
VUID-VkBlitImageInfo2KHR-dstImage-parameter | Y | | None | implicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | dstImage must be a valid VkImage handle |
VUID-VkBlitImageInfo2KHR-dstImageLayout-00226 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice |
VUID-VkBlitImageInfo2KHR-dstImageLayout-00227 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image) | dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL |
VUID-VkBlitImageInfo2KHR-dstImageLayout-01399 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image) | dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL |
VUID-VkBlitImageInfo2KHR-dstImageLayout-parameter | Y | | None | implicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | dstImageLayout must be a valid VkImageLayout value |
VUID-VkBlitImageInfo2KHR-dstOffset-00248 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions, dstOffsets[0].x and dstOffsets[1].x must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage |
VUID-VkBlitImageInfo2KHR-dstOffset-00249 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions, dstOffsets[0].y and dstOffsets[1].y must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage |
VUID-VkBlitImageInfo2KHR-dstOffset-00251 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions, dstOffsets[0].z and dstOffsets[1].z must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage |
VUID-VkBlitImageInfo2KHR-dstSubresource-01706 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created |
VUID-VkBlitImageInfo2KHR-dstSubresource-01708 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created |
VUID-VkBlitImageInfo2KHR-filter-00237 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic) | If filter is VK_FILTER_CUBIC_EXT, srcImage must be of type VK_IMAGE_TYPE_2D |
VUID-VkBlitImageInfo2KHR-filter-02001 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | If filter is VK_FILTER_LINEAR, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT |
VUID-VkBlitImageInfo2KHR-filter-02002 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic) | If filter is VK_FILTER_CUBIC_EXT, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT |
VUID-VkBlitImageInfo2KHR-filter-parameter | Y | | None | implicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | filter must be a valid VkFilter value |
VUID-VkBlitImageInfo2KHR-pNext-pNext | Y | | None | implicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | pNext must be NULL |
VUID-VkBlitImageInfo2KHR-pRegions-00215 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | The source region specified by each element of pRegions must be a region that is contained within srcImage |
VUID-VkBlitImageInfo2KHR-pRegions-00216 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | The destination region specified by each element of pRegions must be a region that is contained within dstImage |
VUID-VkBlitImageInfo2KHR-pRegions-00217 | N | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | The union of all destination regions, specified by the elements of pRegions, must not overlap in memory with any texel that may be sampled during the blit operation |
VUID-VkBlitImageInfo2KHR-pRegions-04561 | N | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands) | If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage and dstImage must not be a block-compressed image. |
VUID-VkBlitImageInfo2KHR-pRegions-04562 | N | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands) | If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then the srcImage must be of type VK_IMAGE_TYPE_2D and must not be a multi-planar format. |
VUID-VkBlitImageInfo2KHR-pRegions-parameter | Y | | None | implicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | pRegions must be a valid pointer to an array of regionCount valid VkImageBlit2KHR structures |
VUID-VkBlitImageInfo2KHR-regionCount-arraylength | Y | | None | implicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | regionCount must be greater than 0 |
VUID-VkBlitImageInfo2KHR-sType-sType | Y | | None | implicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | sType must be VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR |
VUID-VkBlitImageInfo2KHR-srcImage-00219 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag |
VUID-VkBlitImageInfo2KHR-srcImage-00220 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object |
VUID-VkBlitImageInfo2KHR-srcImage-00229 | Y | | BlitImageFormatTypes | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | If either of srcImage or dstImage was created with a signed integer VkFormat, the other must also have been created with a signed integer VkFormat |
VUID-VkBlitImageInfo2KHR-srcImage-00230 | Y | | BlitImageFormatTypes | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | If either of srcImage or dstImage was created with an unsigned integer VkFormat, the other must also have been created with an unsigned integer VkFormat |
VUID-VkBlitImageInfo2KHR-srcImage-00231 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | If either of srcImage or dstImage was created with a depth/stencil format, the other must have exactly the same format |
VUID-VkBlitImageInfo2KHR-srcImage-00232 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | If srcImage was created with a depth/stencil format, filter must be VK_FILTER_NEAREST |
VUID-VkBlitImageInfo2KHR-srcImage-00233 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | srcImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT |
VUID-VkBlitImageInfo2KHR-srcImage-00240 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | If either srcImage or dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must each be 0, and srcSubresource.layerCount and dstSubresource.layerCount must each be 1. |
VUID-VkBlitImageInfo2KHR-srcImage-00245 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffsets[0].y must be 0 and srcOffsets[1].y must be 1 |
VUID-VkBlitImageInfo2KHR-srcImage-00247 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | If srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffsets[0].z must be 0 and srcOffsets[1].z must be 1 |
VUID-VkBlitImageInfo2KHR-srcImage-01561 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | srcImage must not use a format listed in Formats requiring sampler Y'CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views |
VUID-VkBlitImageInfo2KHR-srcImage-01999 | Y | | BlitImageFormatTypes | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | The format features of srcImage must contain VK_FORMAT_FEATURE_BLIT_SRC_BIT |
VUID-VkBlitImageInfo2KHR-srcImage-parameter | Y | | None | implicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | srcImage must be a valid VkImage handle |
VUID-VkBlitImageInfo2KHR-srcImageLayout-00221 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice |
VUID-VkBlitImageInfo2KHR-srcImageLayout-00222 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image) | srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL |
VUID-VkBlitImageInfo2KHR-srcImageLayout-01398 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image) | srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL |
VUID-VkBlitImageInfo2KHR-srcImageLayout-parameter | Y | | None | implicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | srcImageLayout must be a valid VkImageLayout value |
VUID-VkBlitImageInfo2KHR-srcOffset-00243 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions, srcOffsets[0].x and srcOffsets[1].x must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage |
VUID-VkBlitImageInfo2KHR-srcOffset-00244 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions, srcOffsets[0].y and srcOffsets[1].y must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage |
VUID-VkBlitImageInfo2KHR-srcOffset-00246 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions, srcOffsets[0].z and srcOffsets[1].z must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage |
VUID-VkBlitImageInfo2KHR-srcSubresource-01705 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created |
VUID-VkBlitImageInfo2KHR-srcSubresource-01707 | Y | | None | explicit | VkBlitImageInfo2KHR | (VK_KHR_copy_commands2) | The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created |
VUID-VkBufferCopy-size-01988 | Y | | BufferExtents | explicit | VkBufferCopy | core | The size must be greater than 0 |
VUID-VkBufferCopy2KHR-pNext-pNext | Y | | None | implicit | VkBufferCopy2KHR | (VK_KHR_copy_commands2) | pNext must be NULL |
VUID-VkBufferCopy2KHR-sType-sType | Y | | None | implicit | VkBufferCopy2KHR | (VK_KHR_copy_commands2) | sType must be VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR |
VUID-VkBufferCopy2KHR-size-01988 | Y | | None | explicit | VkBufferCopy2KHR | (VK_KHR_copy_commands2) | The size must be greater than 0 |
VUID-VkBufferCreateInfo-None-01888 | Y | | InvalidProtectedMemory | explicit | VkBufferCreateInfo | (VK_VERSION_1_1) | If any of the bits VK_BUFFER_CREATE_SPARSE_BINDING_BIT, VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT, or VK_BUFFER_CREATE_SPARSE_ALIASED_BIT are set, VK_BUFFER_CREATE_PROTECTED_BIT must not also be set |
VUID-VkBufferCreateInfo-deviceAddress-02604 | Y | | BufferDeviceAddressEXT | explicit | VkBufferCreateInfo | (VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+(VK_EXT_buffer_device_address) | If VkBufferDeviceAddressCreateInfoEXT::deviceAddress is not zero, flags must include VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT |
VUID-VkBufferCreateInfo-flags-00915 | Y | | None | explicit | VkBufferCreateInfo | core | If the sparse bindings feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_BINDING_BIT |
VUID-VkBufferCreateInfo-flags-00916 | Y | | None | explicit | VkBufferCreateInfo | core | If the sparse buffer residency feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT |
VUID-VkBufferCreateInfo-flags-00917 | Y | | None | explicit | VkBufferCreateInfo | core | If the sparse aliased residency feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_ALIASED_BIT |
VUID-VkBufferCreateInfo-flags-00918 | Y | | SparseBindingImageBufferCreate | explicit | VkBufferCreateInfo | core | If 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-01887 | Y | | DisabledProtectedMemory | explicit | VkBufferCreateInfo | (VK_VERSION_1_1) | If the protected memory feature is not enabled, flags must not contain VK_BUFFER_CREATE_PROTECTED_BIT |
VUID-VkBufferCreateInfo-flags-03338 | Y | | BufferDeviceAddressEXT, BufferDeviceAddressKHR | explicit | VkBufferCreateInfo | (VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address) | If flags includes VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, the bufferDeviceAddressCaptureReplay or VkPhysicalDeviceBufferDeviceAddressFeaturesEXT::bufferDeviceAddressCaptureReplay feature must be enabled |
VUID-VkBufferCreateInfo-flags-parameter | Y | | None | implicit | VkBufferCreateInfo | core | flags must be a valid combination of VkBufferCreateFlagBits values |
VUID-VkBufferCreateInfo-opaqueCaptureAddress-03337 | Y | | BufferDeviceAddressKHR | explicit | VkBufferCreateInfo | (VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+(VK_VERSION_1_2,VK_KHR_buffer_device_address) | If VkBufferOpaqueCaptureAddressCreateInfo::opaqueCaptureAddress is not zero, flags must include VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT |
VUID-VkBufferCreateInfo-pNext-00920 | N | | None | explicit | VkBufferCreateInfo | (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-01571 | N | | None | explicit | VkBufferCreateInfo | (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-pNext | Y | | None | implicit | VkBufferCreateInfo | core | 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 VkBufferDeviceAddressCreateInfoEXT, VkBufferOpaqueCaptureAddressCreateInfo, VkDedicatedAllocationBufferCreateInfoNV, VkExternalMemoryBufferCreateInfo, VkVideoProfileKHR, or VkVideoProfilesKHR |
VUID-VkBufferCreateInfo-sType-sType | Y | | None | implicit | VkBufferCreateInfo | core | sType must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO |
VUID-VkBufferCreateInfo-sType-unique | Y | | None | implicit | VkBufferCreateInfo | core | The sType value of each struct in the pNext chain must be unique |
VUID-VkBufferCreateInfo-sharingMode-00913 | Y | | None | explicit | VkBufferCreateInfo | core | If sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values |
VUID-VkBufferCreateInfo-sharingMode-00914 | Y | | None | explicit | VkBufferCreateInfo | core | If sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1 |
VUID-VkBufferCreateInfo-sharingMode-01391 | N | | None | explicit | VkBufferCreateInfo | !(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-01419 | Y | | InvalidQueueFamilyIndex | explicit | VkBufferCreateInfo | (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-parameter | Y | | None | implicit | VkBufferCreateInfo | core | sharingMode must be a valid VkSharingMode value |
VUID-VkBufferCreateInfo-size-00912 | Y | | InvalidCreateBufferSize | explicit | VkBufferCreateInfo | core | size must be greater than 0 |
VUID-VkBufferCreateInfo-usage-04813 | N | | None | explicit | VkBufferCreateInfo | (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-04814 | N | | None | explicit | VkBufferCreateInfo | (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-parameter | Y | | None | implicit | VkBufferCreateInfo | core | usage must be a valid combination of VkBufferUsageFlagBits values |
VUID-VkBufferCreateInfo-usage-requiredbitmask | Y | | None | implicit | VkBufferCreateInfo | core | usage must not be 0 |
VUID-VkBufferDeviceAddressCreateInfoEXT-sType-sType | Y | | None | implicit | VkBufferDeviceAddressCreateInfoEXT | (VK_EXT_buffer_device_address) | sType must be VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT |
VUID-VkBufferDeviceAddressInfo-buffer-02600 | Y | | BufferDeviceAddressEXT, BufferDeviceAddressKHR, BufferDeviceAddressEXTDisabled, BufferDeviceAddressKHRDisabled | explicit | VkBufferDeviceAddressInfo | (VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address) | If buffer is non-sparse and was not created with the VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT flag, then it must be bound completely and contiguously to a single VkDeviceMemory object |
VUID-VkBufferDeviceAddressInfo-buffer-02601 | Y | | BufferDeviceAddressKHRDisabled, BufferDeviceAddressEXTDisabled | explicit | VkBufferDeviceAddressInfo | (VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address) | buffer must have been created with VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT |
VUID-VkBufferDeviceAddressInfo-buffer-parameter | N | | None | implicit | VkBufferDeviceAddressInfo | (VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address) | buffer must be a valid VkBuffer handle |
VUID-VkBufferDeviceAddressInfo-pNext-pNext | Y | | None | implicit | VkBufferDeviceAddressInfo | (VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address) | pNext must be NULL |
VUID-VkBufferDeviceAddressInfo-sType-sType | Y | | None | implicit | VkBufferDeviceAddressInfo | (VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address) | sType must be VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO |
VUID-VkBufferImageCopy-aspectMask-00212 | Y | | ImageBufferCopyTests | explicit | VkBufferImageCopy | core | The aspectMask member of imageSubresource must only have a single bit set |
VUID-VkBufferImageCopy-bufferImageHeight-00196 | Y | | MiscImageLayerTests | explicit | VkBufferImageCopy | core | bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent |
VUID-VkBufferImageCopy-bufferRowLength-00195 | Y | | MiscImageLayerTests | explicit | VkBufferImageCopy | core | bufferRowLength must be 0, or greater than or equal to the width member of imageExtent |
VUID-VkBufferImageCopy-imageSubresource-parameter | N | | None | implicit | VkBufferImageCopy | core | imageSubresource must be a valid VkImageSubresourceLayers structure |
VUID-VkBufferImageCopy2KHR-aspectMask-00212 | Y | | None | explicit | VkBufferImageCopy2KHR | (VK_KHR_copy_commands2) | The aspectMask member of imageSubresource must only have a single bit set |
VUID-VkBufferImageCopy2KHR-bufferImageHeight-00196 | Y | | None | explicit | VkBufferImageCopy2KHR | (VK_KHR_copy_commands2) | bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent |
VUID-VkBufferImageCopy2KHR-bufferRowLength-00195 | Y | | None | explicit | VkBufferImageCopy2KHR | (VK_KHR_copy_commands2) | bufferRowLength must be 0, or greater than or equal to the width member of imageExtent |
VUID-VkBufferImageCopy2KHR-imageSubresource-parameter | N | | None | implicit | VkBufferImageCopy2KHR | (VK_KHR_copy_commands2) | imageSubresource must be a valid VkImageSubresourceLayers structure |
VUID-VkBufferImageCopy2KHR-pNext-pNext | Y | | None | implicit | VkBufferImageCopy2KHR | (VK_KHR_copy_commands2) | pNext must be NULL or a pointer to a valid instance of VkCopyCommandTransformInfoQCOM |
VUID-VkBufferImageCopy2KHR-sType-sType | Y | | None | implicit | VkBufferImageCopy2KHR | (VK_KHR_copy_commands2) | sType must be VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR |
VUID-VkBufferImageCopy2KHR-sType-unique | Y | | None | implicit | VkBufferImageCopy2KHR | (VK_KHR_copy_commands2) | The sType value of each struct in the pNext chain must be unique |
VUID-VkBufferMemoryBarrier-buffer-01931 | Y | | None | explicit | VkBufferMemoryBarrier | core | If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object |
VUID-VkBufferMemoryBarrier-buffer-04086 | Y | | InvalidBarrierQueueFamily | explicit | VkBufferMemoryBarrier | !(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-04088 | Y | | InvalidBarrierQueueFamilyWithMemExt | explicit | VkBufferMemoryBarrier | (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-04089 | Y | | InvalidBarrierQueueFamilyWithMemExt | explicit | VkBufferMemoryBarrier | (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-parameter | Y | | None | implicit | VkBufferMemoryBarrier | core | buffer must be a valid VkBuffer handle |
VUID-VkBufferMemoryBarrier-offset-01187 | Y | | InvalidBarriers | explicit | VkBufferMemoryBarrier | core | offset must be less than the size of buffer |
VUID-VkBufferMemoryBarrier-pNext-pNext | Y | | None | implicit | VkBufferMemoryBarrier | core | pNext must be NULL |
VUID-VkBufferMemoryBarrier-sType-sType | Y | | None | implicit | VkBufferMemoryBarrier | core | sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER |
VUID-VkBufferMemoryBarrier-size-01188 | Y | | InvalidBarriers | explicit | VkBufferMemoryBarrier | core | If size is not equal to VK_WHOLE_SIZE, size must be greater than 0 |
VUID-VkBufferMemoryBarrier-size-01189 | Y | | InvalidBarriers | explicit | VkBufferMemoryBarrier | core | 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-VkBufferMemoryBarrier-srcQueueFamilyIndex-04087 | N | | None | explicit | VkBufferMemoryBarrier | (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-03852 | Y | | InvalidBarrierQueueFamily | explicit | VkBufferMemoryBarrier | !(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-03853 | Y | | InvalidBarrierQueueFamilyWithMemExt, Sync2InvalidBarrierQueueFamily | explicit | VkBufferMemoryBarrier | (VK_VERSION_1_1,VK_KHR_external_memory) | If the synchronization2 feature is not enabled, and buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, at least one of srcQueueFamilyIndex and dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED |
VUID-VkBufferMemoryBarrier2KHR-buffer-01931 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object |
VUID-VkBufferMemoryBarrier2KHR-buffer-04086 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+!(VK_VERSION_1_1,VK_KHR_external_memory) | If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must be valid queue families |
VUID-VkBufferMemoryBarrier2KHR-buffer-04088 | Y | | Sync2InvalidBarrierQueueFamily | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory) | If buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, and one of srcQueueFamilyIndex and dstQueueFamilyIndex is one of the special queue family values reserved for external memory transfers, the other must be VK_QUEUE_FAMILY_IGNORED |
VUID-VkBufferMemoryBarrier2KHR-buffer-04089 | Y | | Sync2InvalidBarrierQueueFamily | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory) | If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in Queue Family Ownership Transfer |
VUID-VkBufferMemoryBarrier2KHR-buffer-parameter | Y | | None | implicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | buffer must be a valid VkBuffer handle |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03900 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03901 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_INDEX_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03902 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03903 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03904 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03905 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03906 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03907 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03908 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03909 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03910 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03911 | Y | | Sync2InvalidBarriers | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03912 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03913 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03914 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03915 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03916 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_HOST_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03917 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03918 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_conditional_rendering) | If pname:dstAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03919 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_fragment_density_map) | If pname:dstAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03920 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_transform_feedback) | If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03922 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_transform_feedback) | If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03923 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_shading_rate_image) | If pname:dstAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03924 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_device_generated_commands) | If pname:dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03925 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_device_generated_commands) | If pname:dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03926 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_blend_operation_advanced) | If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03927 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing) | If pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-03928 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing) | If pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-04747 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_transform_feedback) | If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-04858 | N | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_video_decode_queue) | If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-04859 | N | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_video_decode_queue) | If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-04860 | N | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_video_encode_queue) | If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-04861 | N | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_video_encode_queue) | If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstAccessMask-parameter | Y | | None | implicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | dstAccessMask must be a valid combination of VkAccessFlagBits2KHR values |
VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03929 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If the geometry shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03930 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If the tessellation shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03931 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_conditional_rendering) | If the conditional rendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT |
VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03932 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_fragment_density_map) | If the fragment density map feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT |
VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03933 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_transform_feedback) | If the transform feedback feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT |
VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03934 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_mesh_shader) | If the mesh shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV |
VUID-VkBufferMemoryBarrier2KHR-dstStageMask-03935 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_mesh_shader) | If the task shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV |
VUID-VkBufferMemoryBarrier2KHR-dstStageMask-04956 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_shading_rate_image) | If the shading rate image feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV |
VUID-VkBufferMemoryBarrier2KHR-dstStageMask-04957 | N | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading) | If the subpass shading feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI |
VUID-VkBufferMemoryBarrier2KHR-dstStageMask-parameter | Y | | None | implicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | dstStageMask must be a valid combination of VkPipelineStageFlagBits2KHR values |
VUID-VkBufferMemoryBarrier2KHR-offset-01187 | Y | | Sync2InvalidBarriers | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | offset must be less than the size of buffer |
VUID-VkBufferMemoryBarrier2KHR-pNext-pNext | Y | | None | implicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | pNext must be NULL |
VUID-VkBufferMemoryBarrier2KHR-sType-sType | Y | | None | implicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR |
VUID-VkBufferMemoryBarrier2KHR-size-01188 | Y | | Sync2InvalidBarriers | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If size is not equal to VK_WHOLE_SIZE, size must be greater than 0 |
VUID-VkBufferMemoryBarrier2KHR-size-01189 | Y | | Sync2InvalidBarriers | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If size is not equal to VK_WHOLE_SIZE, size must be less than or equal to than the size of buffer minus offset |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03900 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03901 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_INDEX_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03902 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03903 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03904 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03905 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03906 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03907 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03908 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_SHADER_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03909 | Y | | Sync2InvalidBarriers | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03910 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03911 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03912 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03913 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03914 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03915 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03916 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_HOST_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03917 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03918 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_conditional_rendering) | If pname:srcAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03919 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_fragment_density_map) | If pname:srcAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03920 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_transform_feedback) | If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03922 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_transform_feedback) | If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03923 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_shading_rate_image) | If pname:srcAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03924 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_device_generated_commands) | If pname:srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03925 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_device_generated_commands) | If pname:srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03926 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_blend_operation_advanced) | If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03927 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing) | If pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-03928 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing) | If pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-04747 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_transform_feedback) | If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-04858 | N | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_video_decode_queue) | If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-04859 | N | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_video_decode_queue) | If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-04860 | N | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_video_encode_queue) | If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-04861 | N | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_video_encode_queue) | If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcAccessMask-parameter | Y | | None | implicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | srcAccessMask must be a valid combination of VkAccessFlagBits2KHR values |
VUID-VkBufferMemoryBarrier2KHR-srcQueueFamilyIndex-04087 | N | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory) | If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one must not be a special queue family reserved for external memory ownership transfers, as described in Queue Family Ownership Transfer |
VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03851 | N | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If either srcStageMask or dstStageMask includes VK_PIPELINE_STAGE_2_HOST_BIT_KHR, srcQueueFamilyIndex and dstQueueFamilyIndex must be equal |
VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03929 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If the geometry shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03930 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | If the tessellation shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR |
VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03931 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_conditional_rendering) | If the conditional rendering feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT |
VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03932 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_fragment_density_map) | If the fragment density map feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT |
VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03933 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_transform_feedback) | If the transform feedback feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT |
VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03934 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_mesh_shader) | If the mesh shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV |
VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03935 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_mesh_shader) | If the task shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV |
VUID-VkBufferMemoryBarrier2KHR-srcStageMask-04956 | Y | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_shading_rate_image) | If the shading rate image feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV |
VUID-VkBufferMemoryBarrier2KHR-srcStageMask-04957 | N | | None | explicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading) | If the subpass shading feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI |
VUID-VkBufferMemoryBarrier2KHR-srcStageMask-parameter | Y | | None | implicit | VkBufferMemoryBarrier2KHR | (VK_KHR_synchronization2) | srcStageMask must be a valid combination of VkPipelineStageFlagBits2KHR values |
VUID-VkBufferMemoryRequirementsInfo2-buffer-parameter | Y | | None | implicit | VkBufferMemoryRequirementsInfo2 | (VK_VERSION_1_1,VK_KHR_get_memory_requirements2) | buffer must be a valid VkBuffer handle |
VUID-VkBufferMemoryRequirementsInfo2-pNext-pNext | Y | | None | implicit | VkBufferMemoryRequirementsInfo2 | (VK_VERSION_1_1,VK_KHR_get_memory_requirements2) | pNext must be NULL |
VUID-VkBufferMemoryRequirementsInfo2-sType-sType | Y | | None | implicit | VkBufferMemoryRequirementsInfo2 | (VK_VERSION_1_1,VK_KHR_get_memory_requirements2) | sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 |
VUID-VkBufferOpaqueCaptureAddressCreateInfo-sType-sType | Y | | None | implicit | VkBufferOpaqueCaptureAddressCreateInfo | (VK_VERSION_1_2,VK_KHR_buffer_device_address) | sType must be VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO |
VUID-VkBufferViewCreateInfo-buffer-00932 | Y | | InvalidBufferViewCreateInfoEntries | explicit | VkBufferViewCreateInfo | core | buffer 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-00933 | Y | | InvalidBufferViewCreateInfoEntries | explicit | VkBufferViewCreateInfo | core | If 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-00934 | Y | | InvalidBufferViewCreateInfoEntries | explicit | VkBufferViewCreateInfo | core | If 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-00935 | Y | | None | explicit | VkBufferViewCreateInfo | core | If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object |
VUID-VkBufferViewCreateInfo-buffer-02750 | Y | | InvalidTexelBufferAlignment | explicit | VkBufferViewCreateInfo | (VK_EXT_texel_buffer_alignment) | If the texelBufferAlignment feature is enabled and if buffer was created with usage containing VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, offset must be a multiple of the lesser of VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT::storageTexelBufferOffsetAlignmentBytes or, if VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT::storageTexelBufferOffsetSingleTexelAlignment is VK_TRUE, the size of a texel of the requested format. If the size of a texel is a multiple of three bytes, then the size of a single component of format is used instead |
VUID-VkBufferViewCreateInfo-buffer-02751 | Y | | InvalidTexelBufferAlignment | explicit | VkBufferViewCreateInfo | (VK_EXT_texel_buffer_alignment) | If the texelBufferAlignment feature is enabled and if buffer was created with usage containing VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, offset must be a multiple of the lesser of VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT::uniformTexelBufferOffsetAlignmentBytes or, if VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT::uniformTexelBufferOffsetSingleTexelAlignment is VK_TRUE, the size of a texel of the requested format. If the size of a texel is a multiple of three bytes, then the size of a single component of format is used instead |
VUID-VkBufferViewCreateInfo-buffer-parameter | Y | | None | implicit | VkBufferViewCreateInfo | core | buffer must be a valid VkBuffer handle |
VUID-VkBufferViewCreateInfo-flags-zerobitmask | Y | | None | implicit | VkBufferViewCreateInfo | core | flags must be 0 |
VUID-VkBufferViewCreateInfo-format-parameter | Y | | None | implicit | VkBufferViewCreateInfo | core | format must be a valid VkFormat value |
VUID-VkBufferViewCreateInfo-offset-00925 | Y | | InvalidBufferViewCreateInfoEntries | explicit | VkBufferViewCreateInfo | core | offset must be less than the size of buffer |
VUID-VkBufferViewCreateInfo-offset-00926 | Y | | InvalidBufferViewCreateInfoEntries | explicit | VkBufferViewCreateInfo | !(VK_EXT_texel_buffer_alignment) | offset must be a multiple of VkPhysicalDeviceLimits::minTexelBufferOffsetAlignment |
VUID-VkBufferViewCreateInfo-offset-00931 | Y | | InvalidBufferViewCreateInfoEntries | explicit | VkBufferViewCreateInfo | core | If 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-02749 | Y | | InvalidBufferViewCreateInfoEntries | explicit | VkBufferViewCreateInfo | (VK_EXT_texel_buffer_alignment) | If the texelBufferAlignment feature is not enabled, offset must be a multiple of VkPhysicalDeviceLimits::minTexelBufferOffsetAlignment |
VUID-VkBufferViewCreateInfo-pNext-pNext | Y | | None | implicit | VkBufferViewCreateInfo | core | pNext must be NULL |
VUID-VkBufferViewCreateInfo-range-00928 | Y | | InvalidBufferViewCreateInfoEntries | explicit | VkBufferViewCreateInfo | core | If range is not equal to VK_WHOLE_SIZE, range must be greater than 0 |
VUID-VkBufferViewCreateInfo-range-00929 | Y | | InvalidBufferViewCreateInfoEntries | explicit | VkBufferViewCreateInfo | core | If range is not equal to VK_WHOLE_SIZE, range must be an integer multiple of the texel block size of format |
VUID-VkBufferViewCreateInfo-range-00930 | Y | | InvalidBufferViewCreateInfoEntries | explicit | VkBufferViewCreateInfo | core | If 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-04059 | Y | | InvalidBufferViewCreateInfoEntries | explicit | VkBufferViewCreateInfo | core | If 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-sType | Y | | None | implicit | VkBufferViewCreateInfo | core | sType must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO |
VUID-VkCalibratedTimestampInfoEXT-pNext-pNext | Y | | None | implicit | VkCalibratedTimestampInfoEXT | (VK_EXT_calibrated_timestamps) | pNext must be NULL |
VUID-VkCalibratedTimestampInfoEXT-sType-sType | Y | | None | implicit | VkCalibratedTimestampInfoEXT | (VK_EXT_calibrated_timestamps) | sType must be VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT |
VUID-VkCalibratedTimestampInfoEXT-timeDomain-02354 | N | | None | explicit | VkCalibratedTimestampInfoEXT | (VK_EXT_calibrated_timestamps) | timeDomain must be one of the VkTimeDomainEXT values returned by vkGetPhysicalDeviceCalibrateableTimeDomainsEXT |
VUID-VkCalibratedTimestampInfoEXT-timeDomain-parameter | Y | | None | implicit | VkCalibratedTimestampInfoEXT | (VK_EXT_calibrated_timestamps) | timeDomain must be a valid VkTimeDomainEXT value |
VUID-VkCheckpointData2NV-pNext-pNext | Y | | None | implicit | VkCheckpointData2NV | (VK_NV_device_diagnostic_checkpoints)+(VK_KHR_synchronization2) | pNext must be NULL |
VUID-VkCheckpointData2NV-sType-sType | Y | | None | implicit | VkCheckpointData2NV | (VK_NV_device_diagnostic_checkpoints)+(VK_KHR_synchronization2) | sType must be VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV |
VUID-VkCheckpointDataNV-pNext-pNext | Y | | None | implicit | VkCheckpointDataNV | (VK_NV_device_diagnostic_checkpoints) | pNext must be NULL |
VUID-VkCheckpointDataNV-sType-sType | Y | | None | implicit | VkCheckpointDataNV | (VK_NV_device_diagnostic_checkpoints) | sType must be VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV |
VUID-VkClearAttachment-aspectMask-00019 | Y | | None | explicit | VkClearAttachment | core | If aspectMask includes VK_IMAGE_ASPECT_COLOR_BIT, it must not include VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT |
VUID-VkClearAttachment-aspectMask-00020 | Y | | ClearAttachmentsInvalidAspectMasks | explicit | VkClearAttachment | core | aspectMask must not include VK_IMAGE_ASPECT_METADATA_BIT |
VUID-VkClearAttachment-aspectMask-02246 | Y | | ClearAttachmentsInvalidAspectMasks | explicit | VkClearAttachment | (VK_EXT_image_drm_format_modifier) | aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i |
VUID-VkClearAttachment-aspectMask-parameter | Y | | ClearAttachmentsImplicitCheck | implicit | VkClearAttachment | core | aspectMask must be a valid combination of VkImageAspectFlagBits values |
VUID-VkClearAttachment-aspectMask-requiredbitmask | Y | | ClearAttachmentsImplicitCheck | implicit | VkClearAttachment | core | aspectMask must not be 0 |
VUID-VkClearAttachment-clearValue-00021 | N | | None | explicit | VkClearAttachment | core | clearValue must be a valid VkClearValue union |
VUID-VkClearDepthStencilValue-depth-00022 | Y | | None | explicit | VkClearDepthStencilValue | (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-02506 | Y | | ClearDepthRangeUnrestricted | explicit | VkClearDepthStencilValue | !(VK_EXT_depth_range_unrestricted) | depth must be between 0.0 and 1.0, inclusive |
VUID-VkCoarseSampleLocationNV-pixelX-02078 | Y | | ShadingRateImageNV | explicit | VkCoarseSampleLocationNV | (VK_NV_shading_rate_image) | pixelX must be less than the width (in pixels) of the fragment |
VUID-VkCoarseSampleLocationNV-pixelY-02079 | Y | | ShadingRateImageNV | explicit | VkCoarseSampleLocationNV | (VK_NV_shading_rate_image) | pixelY must be less than the height (in pixels) of the fragment |
VUID-VkCoarseSampleLocationNV-sample-02080 | Y | | ShadingRateImageNV | explicit | VkCoarseSampleLocationNV | (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-02077 | Y | | ShadingRateImageNV | explicit | VkCoarseSampleOrderCustomNV | (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-parameter | Y | | None | implicit | VkCoarseSampleOrderCustomNV | (VK_NV_shading_rate_image) | pSampleLocations must be a valid pointer to an array of sampleLocationCount VkCoarseSampleLocationNV structures |
VUID-VkCoarseSampleOrderCustomNV-sampleCount-02074 | Y | | ShadingRateImageNV | explicit | VkCoarseSampleOrderCustomNV | (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-02075 | Y | | ShadingRateImageNV | explicit | VkCoarseSampleOrderCustomNV | (VK_NV_shading_rate_image) | sampleLocationCount must be equal to the product of sampleCount, the fragment width for shadingRate, and the fragment height for shadingRate |
VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02076 | Y | | ShadingRateImageNV | explicit | VkCoarseSampleOrderCustomNV | (VK_NV_shading_rate_image) | sampleLocationCount must be less than or equal to the value of VkPhysicalDeviceShadingRateImagePropertiesNV::shadingRateMaxCoarseSamples |
VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-arraylength | Y | | None | implicit | VkCoarseSampleOrderCustomNV | (VK_NV_shading_rate_image) | sampleLocationCount must be greater than 0 |
VUID-VkCoarseSampleOrderCustomNV-shadingRate-02073 | Y | | ShadingRateImageNV | explicit | VkCoarseSampleOrderCustomNV | (VK_NV_shading_rate_image) | shadingRate must be a shading rate that generates fragments with more than one pixel |
VUID-VkCoarseSampleOrderCustomNV-shadingRate-parameter | Y | | None | implicit | VkCoarseSampleOrderCustomNV | (VK_NV_shading_rate_image) | shadingRate must be a valid VkShadingRatePaletteEntryNV value |
VUID-VkCommandBufferAllocateInfo-commandPool-parameter | Y | | None | implicit | VkCommandBufferAllocateInfo | core | commandPool must be a valid VkCommandPool handle |
VUID-VkCommandBufferAllocateInfo-level-parameter | Y | | None | implicit | VkCommandBufferAllocateInfo | core | level must be a valid VkCommandBufferLevel value |
VUID-VkCommandBufferAllocateInfo-pNext-pNext | Y | | None | implicit | VkCommandBufferAllocateInfo | core | pNext must be NULL |
VUID-VkCommandBufferAllocateInfo-sType-sType | Y | | None | implicit | VkCommandBufferAllocateInfo | core | sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO |
VUID-VkCommandBufferBeginInfo-flags-00053 | Y | | SecondaryCommandBufferNullRenderpass | explicit | VkCommandBufferBeginInfo | core | If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, the renderPass member of pInheritanceInfo must be a valid VkRenderPass |
VUID-VkCommandBufferBeginInfo-flags-00054 | Y | | None | explicit | VkCommandBufferBeginInfo | core | 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-00055 | Y | | None | explicit | VkCommandBufferBeginInfo | core | If 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-parameter | Y | | None | implicit | VkCommandBufferBeginInfo | core | flags must be a valid combination of VkCommandBufferUsageFlagBits values |
VUID-VkCommandBufferBeginInfo-pNext-pNext | Y | | None | implicit | VkCommandBufferBeginInfo | core | pNext must be NULL or a pointer to a valid instance of VkDeviceGroupCommandBufferBeginInfo |
VUID-VkCommandBufferBeginInfo-sType-sType | Y | | None | implicit | VkCommandBufferBeginInfo | core | sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO |
VUID-VkCommandBufferBeginInfo-sType-unique | Y | | None | implicit | VkCommandBufferBeginInfo | core | The sType value of each struct in the pNext chain must be unique |
VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-conditionalRenderingEnable-01977 | Y | | None | explicit | VkCommandBufferInheritanceConditionalRenderingInfoEXT | (VK_EXT_conditional_rendering) | If the inherited conditional rendering feature is not enabled, conditionalRenderingEnable must be VK_FALSE |
VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-sType-sType | Y | | None | implicit | VkCommandBufferInheritanceConditionalRenderingInfoEXT | (VK_EXT_conditional_rendering) | sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT |
VUID-VkCommandBufferInheritanceInfo-commonparent | Y | | None | implicit | VkCommandBufferInheritanceInfo | core | Both 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-00056 | Y | | None | explicit | VkCommandBufferInheritanceInfo | core | If the inherited queries feature is not enabled, occlusionQueryEnable must be VK_FALSE |
VUID-VkCommandBufferInheritanceInfo-pNext-pNext | Y | | None | implicit | VkCommandBufferInheritanceInfo | core | 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 VkCommandBufferInheritanceConditionalRenderingInfoEXT, VkCommandBufferInheritanceRenderPassTransformInfoQCOM, or VkCommandBufferInheritanceViewportScissorInfoNV |
VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-00058 | Y | | None | explicit | VkCommandBufferInheritanceInfo | core | If the pipeline statistics queries feature is not enabled, pipelineStatistics must be 0 |
VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-02789 | Y | | None | explicit | VkCommandBufferInheritanceInfo | core | If the pipeline statistics queries feature is enabled, pipelineStatistics must be a valid combination of VkQueryPipelineStatisticFlagBits values |
VUID-VkCommandBufferInheritanceInfo-queryFlags-00057 | Y | | None | explicit | VkCommandBufferInheritanceInfo | core | If the inherited queries feature is enabled, queryFlags must be a valid combination of VkQueryControlFlagBits values |
VUID-VkCommandBufferInheritanceInfo-queryFlags-02788 | Y | | None | explicit | VkCommandBufferInheritanceInfo | core | If the inherited queries feature is not enabled, queryFlags must be 0 |
VUID-VkCommandBufferInheritanceInfo-sType-sType | Y | | None | implicit | VkCommandBufferInheritanceInfo | core | sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO |
VUID-VkCommandBufferInheritanceInfo-sType-unique | Y | | None | implicit | VkCommandBufferInheritanceInfo | core | The sType value of each struct in the pNext chain must be unique |
VUID-VkCommandBufferInheritanceRenderPassTransformInfoQCOM-sType-sType | Y | | None | implicit | VkCommandBufferInheritanceRenderPassTransformInfoQCOM | (VK_QCOM_render_pass_transform) | sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM |
VUID-VkCommandBufferInheritanceRenderPassTransformInfoQCOM-transform-02864 | N | | None | explicit | VkCommandBufferInheritanceRenderPassTransformInfoQCOM | (VK_QCOM_render_pass_transform) | transform must be VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR |
VUID-VkCommandBufferInheritanceViewportScissorInfoNV-sType-sType | Y | | None | implicit | VkCommandBufferInheritanceViewportScissorInfoNV | (VK_NV_inherited_viewport_scissor) | sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV |
VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04782 | Y | | ViewportInheritanceMissingFeature | explicit | VkCommandBufferInheritanceViewportScissorInfoNV | (VK_NV_inherited_viewport_scissor) | If the inherited viewport scissor feature is not enabled, viewportScissor2D must be VK_FALSE |
VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04783 | N | | None | explicit | VkCommandBufferInheritanceViewportScissorInfoNV | (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-04784 | Y | | ViewportInheritance | explicit | VkCommandBufferInheritanceViewportScissorInfoNV | (VK_NV_inherited_viewport_scissor) | If viewportScissor2D is VK_TRUE, then viewportDepthCount must be greater than 0 |
VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04785 | N | | None | explicit | VkCommandBufferInheritanceViewportScissorInfoNV | (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-04786 | Y | | ViewportInheritance | explicit | VkCommandBufferInheritanceViewportScissorInfoNV | (VK_NV_inherited_viewport_scissor) | If viewportScissor2D is VK_TRUE, then the command buffer must be recorded with the VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT. |
VUID-VkCommandBufferSubmitInfoKHR-commandBuffer-03890 | Y | | Sync2SecondaryCommandbufferAsPrimary | explicit | VkCommandBufferSubmitInfoKHR | (VK_KHR_synchronization2) | commandBuffer must not have been allocated with VK_COMMAND_BUFFER_LEVEL_SECONDARY |
VUID-VkCommandBufferSubmitInfoKHR-commandBuffer-parameter | Y | | None | implicit | VkCommandBufferSubmitInfoKHR | (VK_KHR_synchronization2) | commandBuffer must be a valid VkCommandBuffer handle |
VUID-VkCommandBufferSubmitInfoKHR-deviceMask-03891 | Y | | None | explicit | VkCommandBufferSubmitInfoKHR | (VK_KHR_synchronization2)+(VK_KHR_device_group_creation,VK_VERSION_1_1) | If deviceMask is not 0, it must be a valid device mask |
VUID-VkCommandBufferSubmitInfoKHR-pNext-pNext | Y | | None | implicit | VkCommandBufferSubmitInfoKHR | (VK_KHR_synchronization2) | pNext must be NULL |
VUID-VkCommandBufferSubmitInfoKHR-sType-sType | Y | | None | implicit | VkCommandBufferSubmitInfoKHR | (VK_KHR_synchronization2) | sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR |
VUID-VkCommandPoolCreateInfo-flags-02860 | Y | | DisabledProtectedMemory | explicit | VkCommandPoolCreateInfo | (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-parameter | Y | | None | implicit | VkCommandPoolCreateInfo | core | flags must be a valid combination of VkCommandPoolCreateFlagBits values |
VUID-VkCommandPoolCreateInfo-pNext-pNext | Y | | None | implicit | VkCommandPoolCreateInfo | core | pNext must be NULL |
VUID-VkCommandPoolCreateInfo-sType-sType | Y | | None | implicit | VkCommandPoolCreateInfo | core | sType must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO |
VUID-VkComponentMapping-a-parameter | Y | | None | implicit | VkComponentMapping | core | a must be a valid VkComponentSwizzle value |
VUID-VkComponentMapping-b-parameter | Y | | None | implicit | VkComponentMapping | core | b must be a valid VkComponentSwizzle value |
VUID-VkComponentMapping-g-parameter | Y | | None | implicit | VkComponentMapping | core | g must be a valid VkComponentSwizzle value |
VUID-VkComponentMapping-r-parameter | Y | | None | implicit | VkComponentMapping | core | r must be a valid VkComponentSwizzle value |
VUID-VkComputePipelineCreateInfo-commonparent | Y | | None | implicit | VkComputePipelineCreateInfo | core | Both of basePipelineHandle, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice |
VUID-VkComputePipelineCreateInfo-flags-00697 | Y | | None | explicit | VkComputePipelineCreateInfo | core | If 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-00698 | N | | None | explicit | VkComputePipelineCreateInfo | core | If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command's pCreateInfos parameter |
VUID-VkComputePipelineCreateInfo-flags-00699 | N | | None | explicit | VkComputePipelineCreateInfo | core | If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is not -1, basePipelineHandle must be VK_NULL_HANDLE |
VUID-VkComputePipelineCreateInfo-flags-00700 | N | | None | explicit | VkComputePipelineCreateInfo | core | If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is not VK_NULL_HANDLE, basePipelineIndex must be -1 |
VUID-VkComputePipelineCreateInfo-flags-02874 | Y | | ComputePipelineInvalidFlags | explicit | VkComputePipelineCreateInfo | (VK_NV_device_generated_commands) | flags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV |
VUID-VkComputePipelineCreateInfo-flags-03364 | Y | | ComputePipelineInvalidFlags | explicit | VkComputePipelineCreateInfo | (VK_KHR_pipeline_library) | flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR |
VUID-VkComputePipelineCreateInfo-flags-03365 | Y | | ComputePipelineInvalidFlags | explicit | VkComputePipelineCreateInfo | (VK_KHR_ray_tracing_pipeline) | flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR |
VUID-VkComputePipelineCreateInfo-flags-03366 | Y | | ComputePipelineInvalidFlags | explicit | VkComputePipelineCreateInfo | (VK_KHR_ray_tracing_pipeline) | flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR |
VUID-VkComputePipelineCreateInfo-flags-03367 | Y | | ComputePipelineInvalidFlags | explicit | VkComputePipelineCreateInfo | (VK_KHR_ray_tracing_pipeline) | flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR |
VUID-VkComputePipelineCreateInfo-flags-03368 | Y | | ComputePipelineInvalidFlags | explicit | VkComputePipelineCreateInfo | (VK_KHR_ray_tracing_pipeline) | flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR |
VUID-VkComputePipelineCreateInfo-flags-03369 | Y | | ComputePipelineInvalidFlags | explicit | VkComputePipelineCreateInfo | (VK_KHR_ray_tracing_pipeline) | flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR |
VUID-VkComputePipelineCreateInfo-flags-03370 | Y | | ComputePipelineInvalidFlags | explicit | VkComputePipelineCreateInfo | (VK_KHR_ray_tracing_pipeline) | flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR |
VUID-VkComputePipelineCreateInfo-flags-03576 | Y | | ComputePipelineInvalidFlags | explicit | VkComputePipelineCreateInfo | (VK_KHR_ray_tracing_pipeline) | flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR |
VUID-VkComputePipelineCreateInfo-flags-04945 | N | | None | explicit | VkComputePipelineCreateInfo | (VK_NV_ray_tracing_motion_blur) | flags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV |
VUID-VkComputePipelineCreateInfo-flags-parameter | Y | | None | implicit | VkComputePipelineCreateInfo | core | flags must be a valid combination of VkPipelineCreateFlagBits values |
VUID-VkComputePipelineCreateInfo-layout-00703 | Y | | None | explicit | VkComputePipelineCreateInfo | core | layout must be consistent with the layout of the compute shader specified in stage |
VUID-VkComputePipelineCreateInfo-layout-01687 | Y | | PipelineMaxPerStageResources | explicit | VkComputePipelineCreateInfo | core | The number of resources in layout accessible to the compute shader stage must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources |
VUID-VkComputePipelineCreateInfo-layout-parameter | Y | | None | implicit | VkComputePipelineCreateInfo | core | layout must be a valid VkPipelineLayout handle |
VUID-VkComputePipelineCreateInfo-pNext-pNext | Y | | None | implicit | VkComputePipelineCreateInfo | core | 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 VkPipelineCompilerControlCreateInfoAMD, VkPipelineCreationFeedbackCreateInfoEXT, or VkSubpassShadingPipelineCreateInfoHUAWEI |
VUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875 | Y | | PipelineCreationCacheControl | explicit | VkComputePipelineCreateInfo | (VK_EXT_pipeline_creation_cache_control) | If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT |
VUID-VkComputePipelineCreateInfo-sType-sType | Y | | None | implicit | VkComputePipelineCreateInfo | core | sType must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO |
VUID-VkComputePipelineCreateInfo-sType-unique | Y | | None | implicit | VkComputePipelineCreateInfo | core | The sType value of each struct in the pNext chain must be unique |
VUID-VkComputePipelineCreateInfo-stage-00701 | Y | | InvalidPipelineCreateStateBadStageBit | explicit | VkComputePipelineCreateInfo | core | The stage member of stage must be VK_SHADER_STAGE_COMPUTE_BIT |
VUID-VkComputePipelineCreateInfo-stage-00702 | N | | None | explicit | VkComputePipelineCreateInfo | core | The 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-parameter | N | | None | implicit | VkComputePipelineCreateInfo | core | stage must be a valid VkPipelineShaderStageCreateInfo structure |
VUID-VkConditionalRenderingBeginInfoEXT-buffer-01981 | N | | None | explicit | VkConditionalRenderingBeginInfoEXT | (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-01982 | N | | None | explicit | VkConditionalRenderingBeginInfoEXT | (VK_EXT_conditional_rendering) | buffer must have been created with the VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT bit set |
VUID-VkConditionalRenderingBeginInfoEXT-buffer-parameter | Y | | None | implicit | VkConditionalRenderingBeginInfoEXT | (VK_EXT_conditional_rendering) | buffer must be a valid VkBuffer handle |
VUID-VkConditionalRenderingBeginInfoEXT-flags-parameter | Y | | None | implicit | VkConditionalRenderingBeginInfoEXT | (VK_EXT_conditional_rendering) | flags must be a valid combination of VkConditionalRenderingFlagBitsEXT values |
VUID-VkConditionalRenderingBeginInfoEXT-offset-01983 | N | | None | explicit | VkConditionalRenderingBeginInfoEXT | (VK_EXT_conditional_rendering) | offset must be less than the size of buffer by at least 32 bits |
VUID-VkConditionalRenderingBeginInfoEXT-offset-01984 | N | | None | explicit | VkConditionalRenderingBeginInfoEXT | (VK_EXT_conditional_rendering) | offset must be a multiple of 4 |
VUID-VkConditionalRenderingBeginInfoEXT-pNext-pNext | Y | | None | implicit | VkConditionalRenderingBeginInfoEXT | (VK_EXT_conditional_rendering) | pNext must be NULL |
VUID-VkConditionalRenderingBeginInfoEXT-sType-sType | Y | | None | implicit | VkConditionalRenderingBeginInfoEXT | (VK_EXT_conditional_rendering) | sType must be VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT |
VUID-VkCooperativeMatrixPropertiesNV-AType-parameter | N | | None | implicit | VkCooperativeMatrixPropertiesNV | (VK_NV_cooperative_matrix) | AType must be a valid VkComponentTypeNV value |
VUID-VkCooperativeMatrixPropertiesNV-BType-parameter | N | | None | implicit | VkCooperativeMatrixPropertiesNV | (VK_NV_cooperative_matrix) | BType must be a valid VkComponentTypeNV value |
VUID-VkCooperativeMatrixPropertiesNV-CType-parameter | N | | None | implicit | VkCooperativeMatrixPropertiesNV | (VK_NV_cooperative_matrix) | CType must be a valid VkComponentTypeNV value |
VUID-VkCooperativeMatrixPropertiesNV-DType-parameter | N | | None | implicit | VkCooperativeMatrixPropertiesNV | (VK_NV_cooperative_matrix) | DType must be a valid VkComponentTypeNV value |
VUID-VkCooperativeMatrixPropertiesNV-pNext-pNext | N | | None | implicit | VkCooperativeMatrixPropertiesNV | (VK_NV_cooperative_matrix) | pNext must be NULL |
VUID-VkCooperativeMatrixPropertiesNV-sType-sType | Y | | None | implicit | VkCooperativeMatrixPropertiesNV | (VK_NV_cooperative_matrix) | sType must be VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV |
VUID-VkCooperativeMatrixPropertiesNV-scope-parameter | N | | None | implicit | VkCooperativeMatrixPropertiesNV | (VK_NV_cooperative_matrix) | scope must be a valid VkScopeNV value |
VUID-VkCopyAccelerationStructureInfoKHR-buffer-03718 | N | | None | explicit | VkCopyAccelerationStructureInfoKHR | (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-03719 | N | | None | explicit | VkCopyAccelerationStructureInfoKHR | (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-commonparent | Y | | None | implicit | VkCopyAccelerationStructureInfoKHR | (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-parameter | Y | | None | implicit | VkCopyAccelerationStructureInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | dst must be a valid VkAccelerationStructureKHR handle |
VUID-VkCopyAccelerationStructureInfoKHR-mode-03410 | Y | | None | explicit | VkCopyAccelerationStructureInfoKHR | (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-parameter | Y | | None | implicit | VkCopyAccelerationStructureInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | mode must be a valid VkCopyAccelerationStructureModeKHR value |
VUID-VkCopyAccelerationStructureInfoKHR-pNext-pNext | Y | | None | implicit | VkCopyAccelerationStructureInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | pNext must be NULL |
VUID-VkCopyAccelerationStructureInfoKHR-sType-sType | Y | | None | implicit | VkCopyAccelerationStructureInfoKHR | (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-03411 | Y | | None | explicit | VkCopyAccelerationStructureInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | If mode is VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR, src must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR |
VUID-VkCopyAccelerationStructureInfoKHR-src-parameter | Y | | None | implicit | VkCopyAccelerationStructureInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure) | src must be a valid VkAccelerationStructureKHR handle |
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-dst-03561 | N | | None | explicit | VkCopyAccelerationStructureToMemoryInfoKHR | (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-03412 | Y | | None | explicit | VkCopyAccelerationStructureToMemoryInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure) | mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR |
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-mode-parameter | Y | | None | implicit | VkCopyAccelerationStructureToMemoryInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure) | mode must be a valid VkCopyAccelerationStructureModeKHR value |
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-pNext-pNext | Y | | None | implicit | VkCopyAccelerationStructureToMemoryInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure) | pNext must be NULL |
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-sType-sType | Y | | None | implicit | VkCopyAccelerationStructureToMemoryInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure) | sType must be VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR |
VUID-VkCopyAccelerationStructureToMemoryInfoKHR-src-parameter | Y | | None | implicit | VkCopyAccelerationStructureToMemoryInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure) | src must be a valid VkAccelerationStructureKHR handle |
VUID-VkCopyBufferInfo2KHR-commonparent | Y | | None | implicit | VkCopyBufferInfo2KHR | (VK_KHR_copy_commands2) | Both of dstBuffer, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice |
VUID-VkCopyBufferInfo2KHR-dstBuffer-00120 | Y | | None | explicit | VkCopyBufferInfo2KHR | (VK_KHR_copy_commands2) | dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag |
VUID-VkCopyBufferInfo2KHR-dstBuffer-00121 | Y | | None | explicit | VkCopyBufferInfo2KHR | (VK_KHR_copy_commands2) | If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object |
VUID-VkCopyBufferInfo2KHR-dstBuffer-parameter | Y | | None | implicit | VkCopyBufferInfo2KHR | (VK_KHR_copy_commands2) | dstBuffer must be a valid VkBuffer handle |
VUID-VkCopyBufferInfo2KHR-dstOffset-00114 | Y | | BufferExtents | explicit | VkCopyBufferInfo2KHR | (VK_KHR_copy_commands2) | The dstOffset member of each element of pRegions must be less than the size of dstBuffer |
VUID-VkCopyBufferInfo2KHR-pNext-pNext | Y | | None | implicit | VkCopyBufferInfo2KHR | (VK_KHR_copy_commands2) | pNext must be NULL |
VUID-VkCopyBufferInfo2KHR-pRegions-00117 | Y | | None | explicit | VkCopyBufferInfo2KHR | (VK_KHR_copy_commands2) | The union of the source regions, and the union of the destination regions, specified by the elements of pRegions, must not overlap in memory |
VUID-VkCopyBufferInfo2KHR-pRegions-parameter | Y | | None | implicit | VkCopyBufferInfo2KHR | (VK_KHR_copy_commands2) | pRegions must be a valid pointer to an array of regionCount valid VkBufferCopy2KHR structures |
VUID-VkCopyBufferInfo2KHR-regionCount-arraylength | Y | | None | implicit | VkCopyBufferInfo2KHR | (VK_KHR_copy_commands2) | regionCount must be greater than 0 |
VUID-VkCopyBufferInfo2KHR-sType-sType | Y | | None | implicit | VkCopyBufferInfo2KHR | (VK_KHR_copy_commands2) | sType must be VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR |
VUID-VkCopyBufferInfo2KHR-size-00115 | Y | | BufferExtents | explicit | VkCopyBufferInfo2KHR | (VK_KHR_copy_commands2) | The size member of each element of pRegions must be less than or equal to the size of srcBuffer minus srcOffset |
VUID-VkCopyBufferInfo2KHR-size-00116 | Y | | BufferExtents | explicit | VkCopyBufferInfo2KHR | (VK_KHR_copy_commands2) | The size member of each element of pRegions must be less than or equal to the size of dstBuffer minus dstOffset |
VUID-VkCopyBufferInfo2KHR-srcBuffer-00118 | Y | | None | explicit | VkCopyBufferInfo2KHR | (VK_KHR_copy_commands2) | srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag |
VUID-VkCopyBufferInfo2KHR-srcBuffer-00119 | Y | | None | explicit | VkCopyBufferInfo2KHR | (VK_KHR_copy_commands2) | If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object |
VUID-VkCopyBufferInfo2KHR-srcBuffer-parameter | Y | | None | implicit | VkCopyBufferInfo2KHR | (VK_KHR_copy_commands2) | srcBuffer must be a valid VkBuffer handle |
VUID-VkCopyBufferInfo2KHR-srcOffset-00113 | Y | | BufferExtents | explicit | VkCopyBufferInfo2KHR | (VK_KHR_copy_commands2) | The srcOffset member of each element of pRegions must be less than the size of srcBuffer |
VUID-VkCopyBufferToImageInfo2KHR-None-00214 | N | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2)+!(VK_EXT_depth_range_unrestricted) | For each element of pRegions whose imageSubresource contains a depth aspect, the data in srcBuffer must be in the range [0,1] |
VUID-VkCopyBufferToImageInfo2KHR-aspectMask-00211 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions, imageSubresource.aspectMask must specify aspects present in {imageparam} |
VUID-VkCopyBufferToImageInfo2KHR-aspectMask-01560 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If {imageparam} has a multi-planar format, then for each element of pRegions, imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT (with VK_IMAGE_ASPECT_PLANE_2_BIT valid only for image formats with three planes) |
VUID-VkCopyBufferToImageInfo2KHR-baseArrayLayer-00213 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1 |
VUID-VkCopyBufferToImageInfo2KHR-bufferImageHeight-00204 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is a blocked image, for each element of pRegions, bufferImageHeight must be a multiple of the compressed texel block height |
VUID-VkCopyBufferToImageInfo2KHR-bufferOffset-00193 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If {imageparam} does not have a depth/stencil format, then for each element of pRegions, bufferOffset must be a multiple of the format's texel block size |
VUID-VkCopyBufferToImageInfo2KHR-bufferOffset-00206 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is a blocked image, for each element of pRegions, bufferOffset must be a multiple of the compressed texel block size in bytes |
VUID-VkCopyBufferToImageInfo2KHR-bufferOffset-01558 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If {imageparam} does not have either a depth/stencil or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the format's texel block size |
VUID-VkCopyBufferToImageInfo2KHR-bufferOffset-01559 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If {imageparam} has a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible formats of planes of multi-planar formats |
VUID-VkCopyBufferToImageInfo2KHR-bufferRowLength-00203 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is a blocked image, for each element of pRegions, bufferRowLength must be a multiple of the compressed texel block width |
VUID-VkCopyBufferToImageInfo2KHR-commandBuffer-04052 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pRegions must be a multiple of 4 |
VUID-VkCopyBufferToImageInfo2KHR-commandBuffer-04477 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT, for each element of pRegions, the aspectMask member of imageSubresource must not be VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT. |
VUID-VkCopyBufferToImageInfo2KHR-commonparent | Y | | None | implicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | Both of dstImage, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice |
VUID-VkCopyBufferToImageInfo2KHR-dstImage-00177 | Y | | InvalidUsageBits | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag |
VUID-VkCopyBufferToImageInfo2KHR-dstImage-00178 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object |
VUID-VkCopyBufferToImageInfo2KHR-dstImage-00179 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT |
VUID-VkCopyBufferToImageInfo2KHR-dstImage-01997 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1) | The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT |
VUID-VkCopyBufferToImageInfo2KHR-dstImage-02543 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map) | dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT |
VUID-VkCopyBufferToImageInfo2KHR-dstImage-parameter | Y | | None | implicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | dstImage must be a valid VkImage handle |
VUID-VkCopyBufferToImageInfo2KHR-dstImageLayout-00180 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice |
VUID-VkCopyBufferToImageInfo2KHR-dstImageLayout-00181 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image) | dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL |
VUID-VkCopyBufferToImageInfo2KHR-dstImageLayout-01396 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image) | dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR |
VUID-VkCopyBufferToImageInfo2KHR-dstImageLayout-parameter | Y | | None | implicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | dstImageLayout must be a valid VkImageLayout value |
VUID-VkCopyBufferToImageInfo2KHR-imageExtent-00207 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is a blocked image, for each element of pRegions, imageExtent.width must be a multiple of the compressed texel block width or (imageExtent.width + imageOffset.x) must equal the width of the specified imageSubresource of {imageparam} |
VUID-VkCopyBufferToImageInfo2KHR-imageExtent-00208 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is a blocked image, for each element of pRegions, imageExtent.height must be a multiple of the compressed texel block height or (imageExtent.height + imageOffset.y) must equal the height of the specified imageSubresource of {imageparam} |
VUID-VkCopyBufferToImageInfo2KHR-imageExtent-00209 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is a blocked image, for each element of pRegions, imageExtent.depth must be a multiple of the compressed texel block depth or (imageExtent.depth + imageOffset.z) must equal the depth of the specified imageSubresource of {imageparam} |
VUID-VkCopyBufferToImageInfo2KHR-imageOffset-00197 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions |
VUID-VkCopyBufferToImageInfo2KHR-imageOffset-00198 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions |
VUID-VkCopyBufferToImageInfo2KHR-imageOffset-00200 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of {imageparam} |
VUID-VkCopyBufferToImageInfo2KHR-imageOffset-00205 | Y | | CompressedImageMipCopyTests | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is a blocked image, for each element of pRegions, all members of imageOffset must be a multiple of the corresponding dimensions of the compressed texel block |
VUID-VkCopyBufferToImageInfo2KHR-imageOffset-01793 | Y | | CompressedImageMipCopyTests | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | The imageOffset and imageExtent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties |
VUID-VkCopyBufferToImageInfo2KHR-imageSubresource-01701 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created |
VUID-VkCopyBufferToImageInfo2KHR-imageSubresource-01702 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | The imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created |
VUID-VkCopyBufferToImageInfo2KHR-pNext-pNext | Y | | None | implicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | pNext must be NULL |
VUID-VkCopyBufferToImageInfo2KHR-pRegions-00171 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | srcBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions |
VUID-VkCopyBufferToImageInfo2KHR-pRegions-00172 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2)+!(VK_QCOM_rotated_copy_commands) | The image region specified by each element of pRegions must be a region that is contained within dstImage |
VUID-VkCopyBufferToImageInfo2KHR-pRegions-00173 | N | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory |
VUID-VkCopyBufferToImageInfo2KHR-pRegions-04554 | N | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands) | If the image region specified by each element of pRegions does contain VkCopyCommandTransformInfoQCOM in its pNext chain, the rotated destination region as described in Buffer and Image Addressing with Rotation must be contained within dstImage. |
VUID-VkCopyBufferToImageInfo2KHR-pRegions-04555 | N | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands) | If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then the dstImage must not be a blocked image. |
VUID-VkCopyBufferToImageInfo2KHR-pRegions-04556 | N | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands) | If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then the dstImage must be of type VK_IMAGE_TYPE_2D and must not be a multi-planar format. |
VUID-VkCopyBufferToImageInfo2KHR-pRegions-04565 | N | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands) | If the image region specified by each element of pRegions does not contain VkCopyCommandTransformInfoQCOM in its pNext chain, it must be a region that is contained within dstImage |
VUID-VkCopyBufferToImageInfo2KHR-pRegions-04725 | N | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is not a blocked image, for each element of pRegions, bufferRowLength multiplied by the texel block size of {imageparam} must be less than or equal to 231-1 |
VUID-VkCopyBufferToImageInfo2KHR-pRegions-04726 | N | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is a blocked image, for each element of pRegions, bufferRowLength divided by the compressed texel block width and then multiplied by the texel block size of {imageparam} must be less than or equal to 231-1 |
VUID-VkCopyBufferToImageInfo2KHR-pRegions-parameter | Y | | None | implicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy2KHR structures |
VUID-VkCopyBufferToImageInfo2KHR-regionCount-arraylength | Y | | None | implicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | regionCount must be greater than 0 |
VUID-VkCopyBufferToImageInfo2KHR-sType-sType | Y | | None | implicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | sType must be VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR |
VUID-VkCopyBufferToImageInfo2KHR-srcBuffer-00174 | Y | | InvalidUsageBits | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag |
VUID-VkCopyBufferToImageInfo2KHR-srcBuffer-00176 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object |
VUID-VkCopyBufferToImageInfo2KHR-srcBuffer-parameter | Y | | None | implicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | srcBuffer must be a valid VkBuffer handle |
VUID-VkCopyBufferToImageInfo2KHR-srcImage-00199 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1 |
VUID-VkCopyBufferToImageInfo2KHR-srcImage-00201 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1 |
VUID-VkCopyBufferToImageInfo2KHR-srcImage-04053 | Y | | None | explicit | VkCopyBufferToImageInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4 |
VUID-VkCopyCommandTransformInfoQCOM-sType-sType | Y | | None | implicit | VkCopyCommandTransformInfoQCOM | (VK_QCOM_rotated_copy_commands) | sType must be VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM |
VUID-VkCopyCommandTransformInfoQCOM-transform-04560 | N | | None | explicit | VkCopyCommandTransformInfoQCOM | (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-commonparent | Y | | None | implicit | VkCopyDescriptorSet | core | Both of dstSet, and srcSet must have been created, allocated, or retrieved from the same VkDevice |
VUID-VkCopyDescriptorSet-dstArrayElement-00348 | Y | | None | explicit | VkCopyDescriptorSet | core | The 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-00347 | Y | | None | explicit | VkCopyDescriptorSet | core | dstBinding must be a valid binding within dstSet |
VUID-VkCopyDescriptorSet-dstBinding-02224 | Y | | InlineUniformBlockEXT | explicit | VkCopyDescriptorSet | (VK_EXT_inline_uniform_block) | If the descriptor type of the descriptor set binding specified by dstBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, dstArrayElement must be an integer multiple of 4 |
VUID-VkCopyDescriptorSet-dstBinding-02632 | Y | | None | explicit | VkCopyDescriptorSet | core | The type of dstBinding within dstSet must be equal to the type of srcBinding within srcSet |
VUID-VkCopyDescriptorSet-dstBinding-02753 | Y | | CopyDescriptorUpdateErrors | explicit | VkCopyDescriptorSet | core | If 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-04612 | N | | None | explicit | VkCopyDescriptorSet | (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-04614 | N | | None | explicit | VkCopyDescriptorSet | (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-parameter | Y | | UpdateDestroyDescriptorSetLayout | implicit | VkCopyDescriptorSet | core | dstSet must be a valid VkDescriptorSet handle |
VUID-VkCopyDescriptorSet-pNext-pNext | Y | | None | implicit | VkCopyDescriptorSet | core | pNext must be NULL |
VUID-VkCopyDescriptorSet-sType-sType | Y | | None | implicit | VkCopyDescriptorSet | core | sType must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET |
VUID-VkCopyDescriptorSet-srcArrayElement-00346 | Y | | None | explicit | VkCopyDescriptorSet | core | The 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-00345 | Y | | None | explicit | VkCopyDescriptorSet | core | srcBinding must be a valid binding within srcSet |
VUID-VkCopyDescriptorSet-srcBinding-02223 | Y | | InlineUniformBlockEXT | explicit | VkCopyDescriptorSet | (VK_EXT_inline_uniform_block) | If the descriptor type of the descriptor set binding specified by srcBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, srcArrayElement must be an integer multiple of 4 |
VUID-VkCopyDescriptorSet-srcBinding-02225 | Y | | InlineUniformBlockEXT | explicit | VkCopyDescriptorSet | (VK_EXT_inline_uniform_block) | If the descriptor type of the descriptor set binding specified by either srcBinding or dstBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, descriptorCount must be an integer multiple of 4 |
VUID-VkCopyDescriptorSet-srcSet-00349 | Y | | None | explicit | VkCopyDescriptorSet | core | If 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-01918 | Y | | None | explicit | VkCopyDescriptorSet | (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-01920 | Y | | None | explicit | VkCopyDescriptorSet | (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-04613 | N | | None | explicit | VkCopyDescriptorSet | (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-04885 | Y | | None | explicit | VkCopyDescriptorSet | (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-04886 | Y | | None | explicit | VkCopyDescriptorSet | (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-04887 | Y | | None | explicit | VkCopyDescriptorSet | (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-04888 | Y | | None | explicit | VkCopyDescriptorSet | (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-parameter | Y | | UpdateDestroyDescriptorSetLayout | implicit | VkCopyDescriptorSet | core | srcSet must be a valid VkDescriptorSet handle |
VUID-VkCopyImageInfo2KHR-None-01549 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | In a copy to or from a plane of a multi-planar image, the VkFormat of the image and plane must be compatible according to the description of compatible planes for the plane being copied |
VUID-VkCopyImageInfo2KHR-aspectMask-00142 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage |
VUID-VkCopyImageInfo2KHR-aspectMask-00143 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage |
VUID-VkCopyImageInfo2KHR-commonparent | Y | | None | implicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice |
VUID-VkCopyImageInfo2KHR-dstImage-00131 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag |
VUID-VkCopyImageInfo2KHR-dstImage-00132 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object |
VUID-VkCopyImageInfo2KHR-dstImage-00152 | Y | | CopyImageTypeExtentMismatch | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.y must be 0 and extent.height must be 1 |
VUID-VkCopyImageInfo2KHR-dstImage-01547 | Y | | CopyInvalidImageMemory | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If dstImage is non-sparse then the image or disjoint plane that is the destination of the copy must be bound completely and contiguously to a single VkDeviceMemory object |
VUID-VkCopyImageInfo2KHR-dstImage-01554 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If dstImage has a VkFormat with two planes then for each element of pRegions, dstSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT |
VUID-VkCopyImageInfo2KHR-dstImage-01555 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If dstImage has a VkFormat with three planes then for each element of pRegions, dstSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT |
VUID-VkCopyImageInfo2KHR-dstImage-01557 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If dstImage has a multi-planar image format and the srcImage does not have a multi-planar image format, then for each element of pRegions, srcSubresource.aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT |
VUID-VkCopyImageInfo2KHR-dstImage-01731 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | If dstImage is a blocked image, then for each element of pRegions, all members of dstOffset must be a multiple of the corresponding dimensions of the compressed texel block |
VUID-VkCopyImageInfo2KHR-dstImage-01732 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | If dstImage is a blocked image, then for each element of pRegions, extent.width must be a multiple of the compressed texel block width or (extent.width + dstOffset.x) must equal the width of the specified dstSubresource of dstImage |
VUID-VkCopyImageInfo2KHR-dstImage-01733 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | If dstImage is a blocked image, then for each element of pRegions, extent.height must be a multiple of the compressed texel block height or (extent.height + dstOffset.y) must equal the height of the specified dstSubresource of dstImage |
VUID-VkCopyImageInfo2KHR-dstImage-01734 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | If dstImage is a blocked image, then for each element of pRegions, extent.depth must be a multiple of the compressed texel block depth or (extent.depth + dstOffset.z) must equal the depth of the specified dstSubresource of dstImage |
VUID-VkCopyImageInfo2KHR-dstImage-01786 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1 |
VUID-VkCopyImageInfo2KHR-dstImage-01788 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | If dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0 |
VUID-VkCopyImageInfo2KHR-dstImage-01792 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1) | If dstImage is of type VK_IMAGE_TYPE_2D, and srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, extent.depth must equal dstSubresource.layerCount |
VUID-VkCopyImageInfo2KHR-dstImage-01996 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1) | The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT |
VUID-VkCopyImageInfo2KHR-dstImage-02542 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map) | dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT |
VUID-VkCopyImageInfo2KHR-dstImage-04444 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1) | If dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1 |
VUID-VkCopyImageInfo2KHR-dstImage-parameter | Y | | None | implicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | dstImage must be a valid VkImage handle |
VUID-VkCopyImageInfo2KHR-dstImageLayout-00133 | Y | | InvalidImageLayout | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice |
VUID-VkCopyImageInfo2KHR-dstImageLayout-00134 | Y | | InvalidImageLayout | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image) | dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL |
VUID-VkCopyImageInfo2KHR-dstImageLayout-01395 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image) | dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR |
VUID-VkCopyImageInfo2KHR-dstImageLayout-parameter | Y | | None | implicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | dstImageLayout must be a valid VkImageLayout value |
VUID-VkCopyImageInfo2KHR-dstOffset-00150 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions, dstOffset.x and (extent.width + dstOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage |
VUID-VkCopyImageInfo2KHR-dstOffset-00151 | Y | | CopyImageTypeExtentMismatch | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions, dstOffset.y and (extent.height + dstOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage |
VUID-VkCopyImageInfo2KHR-dstOffset-00153 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions, dstOffset.z and (extent.depth + dstOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage |
VUID-VkCopyImageInfo2KHR-dstOffset-01784 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | The dstOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties |
VUID-VkCopyImageInfo2KHR-dstSubresource-01697 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created |
VUID-VkCopyImageInfo2KHR-dstSubresource-01699 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created |
VUID-VkCopyImageInfo2KHR-pNext-pNext | Y | | None | implicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | pNext must be NULL |
VUID-VkCopyImageInfo2KHR-pRegions-00124 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory |
VUID-VkCopyImageInfo2KHR-pRegions-parameter | Y | | None | implicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | pRegions must be a valid pointer to an array of regionCount valid VkImageCopy2KHR structures |
VUID-VkCopyImageInfo2KHR-regionCount-arraylength | Y | | None | implicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | regionCount must be greater than 0 |
VUID-VkCopyImageInfo2KHR-sType-sType | Y | | None | implicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | sType must be VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR |
VUID-VkCopyImageInfo2KHR-srcImage-00126 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag |
VUID-VkCopyImageInfo2KHR-srcImage-00127 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object |
VUID-VkCopyImageInfo2KHR-srcImage-00135 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | The VkFormat of each of srcImage and dstImage must be compatible, as defined above |
VUID-VkCopyImageInfo2KHR-srcImage-00136 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | The sample count of srcImage and dstImage must match |
VUID-VkCopyImageInfo2KHR-srcImage-00139 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_maintenance1) | If either srcImage or dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must each be 0, and srcSubresource.layerCount and dstSubresource.layerCount must each be 1 |
VUID-VkCopyImageInfo2KHR-srcImage-00146 | Y | | CopyImageTypeExtentMismatch | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1 |
VUID-VkCopyImageInfo2KHR-srcImage-01546 | Y | | CopyInvalidImageMemory | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If srcImage is non-sparse then the image or disjoint plane to be copied must be bound completely and contiguously to a single VkDeviceMemory object |
VUID-VkCopyImageInfo2KHR-srcImage-01548 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If the VkFormat of each of srcImage and dstImage is not a multi-planar format, the VkFormat of each of srcImage and dstImage must be compatible, as defined above |
VUID-VkCopyImageInfo2KHR-srcImage-01551 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If neither srcImage nor dstImage has a multi-planar image format then for each element of pRegions, srcSubresource.aspectMask and dstSubresource.aspectMask must match |
VUID-VkCopyImageInfo2KHR-srcImage-01552 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If srcImage has a VkFormat with two planes then for each element of pRegions, srcSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT |
VUID-VkCopyImageInfo2KHR-srcImage-01553 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If srcImage has a VkFormat with three planes then for each element of pRegions, srcSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT |
VUID-VkCopyImageInfo2KHR-srcImage-01556 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If srcImage has a multi-planar image format and the dstImage does not have a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT |
VUID-VkCopyImageInfo2KHR-srcImage-01727 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | If srcImage is a blocked image, then for each element of pRegions, all members of srcOffset must be a multiple of the corresponding dimensions of the compressed texel block |
VUID-VkCopyImageInfo2KHR-srcImage-01728 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | If srcImage is a blocked image, then for each element of pRegions, extent.width must be a multiple of the compressed texel block width or (extent.width + srcOffset.x) must equal the width of the specified srcSubresource of srcImage |
VUID-VkCopyImageInfo2KHR-srcImage-01729 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | If srcImage is a blocked image, then for each element of pRegions, extent.height must be a multiple of the compressed texel block height or (extent.height + srcOffset.y) must equal the height of the specified srcSubresource of srcImage |
VUID-VkCopyImageInfo2KHR-srcImage-01730 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | If srcImage is a blocked image, then for each element of pRegions, extent.depth must be a multiple of the compressed texel block depth or (extent.depth + srcOffset.z) must equal the depth of the specified srcSubresource of srcImage |
VUID-VkCopyImageInfo2KHR-srcImage-01785 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1 |
VUID-VkCopyImageInfo2KHR-srcImage-01787 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | If srcImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0 |
VUID-VkCopyImageInfo2KHR-srcImage-01789 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_maintenance1) | If srcImage or dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1 |
VUID-VkCopyImageInfo2KHR-srcImage-01790 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1) | If srcImage and dstImage are both of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1 |
VUID-VkCopyImageInfo2KHR-srcImage-01791 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1) | If srcImage is of type VK_IMAGE_TYPE_2D, and dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, extent.depth must equal srcSubresource.layerCount |
VUID-VkCopyImageInfo2KHR-srcImage-01995 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1) | The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT |
VUID-VkCopyImageInfo2KHR-srcImage-04443 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1) | If srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and srcSubresource.layerCount must be 1 |
VUID-VkCopyImageInfo2KHR-srcImage-parameter | Y | | None | implicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | srcImage must be a valid VkImage handle |
VUID-VkCopyImageInfo2KHR-srcImageLayout-00128 | Y | | InvalidImageLayout | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice |
VUID-VkCopyImageInfo2KHR-srcImageLayout-00129 | Y | | InvalidImageLayout | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image) | srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL |
VUID-VkCopyImageInfo2KHR-srcImageLayout-01917 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image) | srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR |
VUID-VkCopyImageInfo2KHR-srcImageLayout-parameter | Y | | None | implicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | srcImageLayout must be a valid VkImageLayout value |
VUID-VkCopyImageInfo2KHR-srcOffset-00144 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage |
VUID-VkCopyImageInfo2KHR-srcOffset-00145 | Y | | CopyImageTypeExtentMismatch | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage |
VUID-VkCopyImageInfo2KHR-srcOffset-00147 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions, srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage |
VUID-VkCopyImageInfo2KHR-srcOffset-01783 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | The srcOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties |
VUID-VkCopyImageInfo2KHR-srcSubresource-01696 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created |
VUID-VkCopyImageInfo2KHR-srcSubresource-01698 | Y | | None | explicit | VkCopyImageInfo2KHR | (VK_KHR_copy_commands2) | The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created |
VUID-VkCopyImageToBufferInfo2KHR-aspectMask-00211 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions, imageSubresource.aspectMask must specify aspects present in {imageparam} |
VUID-VkCopyImageToBufferInfo2KHR-aspectMask-01560 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If {imageparam} has a multi-planar format, then for each element of pRegions, imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT (with VK_IMAGE_ASPECT_PLANE_2_BIT valid only for image formats with three planes) |
VUID-VkCopyImageToBufferInfo2KHR-baseArrayLayer-00213 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1 |
VUID-VkCopyImageToBufferInfo2KHR-bufferImageHeight-00204 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is a blocked image, for each element of pRegions, bufferImageHeight must be a multiple of the compressed texel block height |
VUID-VkCopyImageToBufferInfo2KHR-bufferOffset-00193 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If {imageparam} does not have a depth/stencil format, then for each element of pRegions, bufferOffset must be a multiple of the format's texel block size |
VUID-VkCopyImageToBufferInfo2KHR-bufferOffset-00206 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is a blocked image, for each element of pRegions, bufferOffset must be a multiple of the compressed texel block size in bytes |
VUID-VkCopyImageToBufferInfo2KHR-bufferOffset-01558 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If {imageparam} does not have either a depth/stencil or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the format's texel block size |
VUID-VkCopyImageToBufferInfo2KHR-bufferOffset-01559 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If {imageparam} has a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible formats of planes of multi-planar formats |
VUID-VkCopyImageToBufferInfo2KHR-bufferRowLength-00203 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is a blocked image, for each element of pRegions, bufferRowLength must be a multiple of the compressed texel block width |
VUID-VkCopyImageToBufferInfo2KHR-commandBuffer-04052 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pRegions must be a multiple of 4 |
VUID-VkCopyImageToBufferInfo2KHR-commonparent | Y | | None | implicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | Both of dstBuffer, and srcImage must have been created, allocated, or retrieved from the same VkDevice |
VUID-VkCopyImageToBufferInfo2KHR-dstBuffer-00191 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag |
VUID-VkCopyImageToBufferInfo2KHR-dstBuffer-00192 | N | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object |
VUID-VkCopyImageToBufferInfo2KHR-dstBuffer-parameter | Y | | None | implicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | dstBuffer must be a valid VkBuffer handle |
VUID-VkCopyImageToBufferInfo2KHR-imageExtent-00207 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is a blocked image, for each element of pRegions, imageExtent.width must be a multiple of the compressed texel block width or (imageExtent.width + imageOffset.x) must equal the width of the specified imageSubresource of {imageparam} |
VUID-VkCopyImageToBufferInfo2KHR-imageExtent-00208 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is a blocked image, for each element of pRegions, imageExtent.height must be a multiple of the compressed texel block height or (imageExtent.height + imageOffset.y) must equal the height of the specified imageSubresource of {imageparam} |
VUID-VkCopyImageToBufferInfo2KHR-imageExtent-00209 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is a blocked image, for each element of pRegions, imageExtent.depth must be a multiple of the compressed texel block depth or (imageExtent.depth + imageOffset.z) must equal the depth of the specified imageSubresource of {imageparam} |
VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00197 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions |
VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00198 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions |
VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00200 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of {imageparam} |
VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00205 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is a blocked image, for each element of pRegions, all members of imageOffset must be a multiple of the corresponding dimensions of the compressed texel block |
VUID-VkCopyImageToBufferInfo2KHR-imageOffset-01794 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | The imageOffset and imageExtent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer's command pool's queue family, as described in VkQueueFamilyProperties |
VUID-VkCopyImageToBufferInfo2KHR-imageSubresource-01703 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created |
VUID-VkCopyImageToBufferInfo2KHR-imageSubresource-01704 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | The imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created |
VUID-VkCopyImageToBufferInfo2KHR-pNext-pNext | Y | | None | implicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | pNext must be NULL |
VUID-VkCopyImageToBufferInfo2KHR-pRegions-00182 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2)+!(VK_QCOM_rotated_copy_commands) | The image region specified by each element of pRegions must be a region that is contained within srcImage |
VUID-VkCopyImageToBufferInfo2KHR-pRegions-00183 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | dstBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions |
VUID-VkCopyImageToBufferInfo2KHR-pRegions-00184 | N | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory |
VUID-VkCopyImageToBufferInfo2KHR-pRegions-04557 | N | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands) | If the image region specified by each element of pRegions does contain VkCopyCommandTransformInfoQCOM in its pNext chain, the rotated source region as described in Buffer and Image Addressing with Rotation must be contained within srcImage. |
VUID-VkCopyImageToBufferInfo2KHR-pRegions-04558 | N | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands) | If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then the srcImage must not be a blocked image |
VUID-VkCopyImageToBufferInfo2KHR-pRegions-04559 | N | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands) | If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then the srcImage must be of type VK_IMAGE_TYPE_2D, and must not be a multi-planar format. |
VUID-VkCopyImageToBufferInfo2KHR-pRegions-04566 | N | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands) | If the image region specified by each element of pRegions does not contain VkCopyCommandTransformInfoQCOM in its pNext chain, it must be a region that is contained within srcImage |
VUID-VkCopyImageToBufferInfo2KHR-pRegions-04725 | N | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is not a blocked image, for each element of pRegions, bufferRowLength multiplied by the texel block size of {imageparam} must be less than or equal to 231-1 |
VUID-VkCopyImageToBufferInfo2KHR-pRegions-04726 | N | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is a blocked image, for each element of pRegions, bufferRowLength divided by the compressed texel block width and then multiplied by the texel block size of {imageparam} must be less than or equal to 231-1 |
VUID-VkCopyImageToBufferInfo2KHR-pRegions-parameter | Y | | None | implicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy2KHR structures |
VUID-VkCopyImageToBufferInfo2KHR-regionCount-arraylength | Y | | None | implicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | regionCount must be greater than 0 |
VUID-VkCopyImageToBufferInfo2KHR-sType-sType | Y | | None | implicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | sType must be VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR |
VUID-VkCopyImageToBufferInfo2KHR-srcImage-00186 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag |
VUID-VkCopyImageToBufferInfo2KHR-srcImage-00187 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object |
VUID-VkCopyImageToBufferInfo2KHR-srcImage-00188 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | srcImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT |
VUID-VkCopyImageToBufferInfo2KHR-srcImage-00199 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1 |
VUID-VkCopyImageToBufferInfo2KHR-srcImage-00201 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1 |
VUID-VkCopyImageToBufferInfo2KHR-srcImage-01998 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1) | The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT |
VUID-VkCopyImageToBufferInfo2KHR-srcImage-02544 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2)+(VK_EXT_fragment_density_map) | srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT |
VUID-VkCopyImageToBufferInfo2KHR-srcImage-04053 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | If {imageparam} has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4 |
VUID-VkCopyImageToBufferInfo2KHR-srcImage-parameter | Y | | None | implicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | srcImage must be a valid VkImage handle |
VUID-VkCopyImageToBufferInfo2KHR-srcImageLayout-00189 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice |
VUID-VkCopyImageToBufferInfo2KHR-srcImageLayout-00190 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2)+!(VK_KHR_shared_presentable_image) | srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL |
VUID-VkCopyImageToBufferInfo2KHR-srcImageLayout-01397 | Y | | None | explicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2)+(VK_KHR_shared_presentable_image) | srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR |
VUID-VkCopyImageToBufferInfo2KHR-srcImageLayout-parameter | Y | | None | implicit | VkCopyImageToBufferInfo2KHR | (VK_KHR_copy_commands2) | srcImageLayout must be a valid VkImageLayout value |
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-dst-03746 | N | | None | explicit | VkCopyMemoryToAccelerationStructureInfoKHR | (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-parameter | Y | | None | implicit | VkCopyMemoryToAccelerationStructureInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure) | dst must be a valid VkAccelerationStructureKHR handle |
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-03413 | Y | | None | explicit | VkCopyMemoryToAccelerationStructureInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure) | mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR |
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-parameter | Y | | None | implicit | VkCopyMemoryToAccelerationStructureInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure) | mode must be a valid VkCopyAccelerationStructureModeKHR value |
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pInfo-03414 | N | | None | explicit | VkCopyMemoryToAccelerationStructureInfoKHR | (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-pNext | Y | | None | implicit | VkCopyMemoryToAccelerationStructureInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure) | pNext must be NULL |
VUID-VkCopyMemoryToAccelerationStructureInfoKHR-sType-sType | Y | | None | implicit | VkCopyMemoryToAccelerationStructureInfoKHR | (VK_NV_ray_tracing,VK_KHR_acceleration_structure) | sType must be VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR |
VUID-VkD3D12FenceSubmitInfoKHR-pSignalSemaphoreValues-parameter | N | | None | implicit | VkD3D12FenceSubmitInfoKHR | (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-parameter | N | | None | implicit | VkD3D12FenceSubmitInfoKHR | (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-sType | Y | | None | implicit | VkD3D12FenceSubmitInfoKHR | (VK_KHR_external_semaphore_win32) | sType must be VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR |
VUID-VkD3D12FenceSubmitInfoKHR-signalSemaphoreValuesCount-00080 | N | | None | explicit | VkD3D12FenceSubmitInfoKHR | (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-00079 | N | | None | explicit | VkD3D12FenceSubmitInfoKHR | (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-parameter | Y | | None | implicit | VkDebugMarkerMarkerInfoEXT | (VK_EXT_debug_marker) | pMarkerName must be a null-terminated UTF-8 string |
VUID-VkDebugMarkerMarkerInfoEXT-pNext-pNext | Y | | None | implicit | VkDebugMarkerMarkerInfoEXT | (VK_EXT_debug_marker) | pNext must be NULL |
VUID-VkDebugMarkerMarkerInfoEXT-sType-sType | Y | | None | implicit | VkDebugMarkerMarkerInfoEXT | (VK_EXT_debug_marker) | sType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT |
VUID-VkDebugMarkerObjectNameInfoEXT-object-01491 | N | | None | explicit | VkDebugMarkerObjectNameInfoEXT | (VK_EXT_debug_marker) | object must not be VK_NULL_HANDLE |
VUID-VkDebugMarkerObjectNameInfoEXT-object-01492 | N | | None | explicit | VkDebugMarkerObjectNameInfoEXT | (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-01490 | N | | None | explicit | VkDebugMarkerObjectNameInfoEXT | (VK_EXT_debug_marker) | objectType must not be VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT |
VUID-VkDebugMarkerObjectNameInfoEXT-objectType-parameter | Y | | None | implicit | VkDebugMarkerObjectNameInfoEXT | (VK_EXT_debug_marker) | objectType must be a valid VkDebugReportObjectTypeEXT value |
VUID-VkDebugMarkerObjectNameInfoEXT-pNext-pNext | Y | | None | implicit | VkDebugMarkerObjectNameInfoEXT | (VK_EXT_debug_marker) | pNext must be NULL |
VUID-VkDebugMarkerObjectNameInfoEXT-pObjectName-parameter | Y | | None | implicit | VkDebugMarkerObjectNameInfoEXT | (VK_EXT_debug_marker) | pObjectName must be a null-terminated UTF-8 string |
VUID-VkDebugMarkerObjectNameInfoEXT-sType-sType | Y | | None | implicit | VkDebugMarkerObjectNameInfoEXT | (VK_EXT_debug_marker) | sType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT |
VUID-VkDebugMarkerObjectTagInfoEXT-object-01494 | N | | None | explicit | VkDebugMarkerObjectTagInfoEXT | (VK_EXT_debug_marker) | object must not be VK_NULL_HANDLE |
VUID-VkDebugMarkerObjectTagInfoEXT-object-01495 | N | | None | explicit | VkDebugMarkerObjectTagInfoEXT | (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-01493 | N | | None | explicit | VkDebugMarkerObjectTagInfoEXT | (VK_EXT_debug_marker) | objectType must not be VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT |
VUID-VkDebugMarkerObjectTagInfoEXT-objectType-parameter | Y | | None | implicit | VkDebugMarkerObjectTagInfoEXT | (VK_EXT_debug_marker) | objectType must be a valid VkDebugReportObjectTypeEXT value |
VUID-VkDebugMarkerObjectTagInfoEXT-pNext-pNext | Y | | None | implicit | VkDebugMarkerObjectTagInfoEXT | (VK_EXT_debug_marker) | pNext must be NULL |
VUID-VkDebugMarkerObjectTagInfoEXT-pTag-parameter | Y | | None | implicit | VkDebugMarkerObjectTagInfoEXT | (VK_EXT_debug_marker) | pTag must be a valid pointer to an array of tagSize bytes |
VUID-VkDebugMarkerObjectTagInfoEXT-sType-sType | Y | | None | implicit | VkDebugMarkerObjectTagInfoEXT | (VK_EXT_debug_marker) | sType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT |
VUID-VkDebugMarkerObjectTagInfoEXT-tagSize-arraylength | Y | | None | implicit | VkDebugMarkerObjectTagInfoEXT | (VK_EXT_debug_marker) | tagSize must be greater than 0 |
VUID-VkDebugReportCallbackCreateInfoEXT-flags-parameter | Y | | None | implicit | VkDebugReportCallbackCreateInfoEXT | (VK_EXT_debug_report) | flags must be a valid combination of VkDebugReportFlagBitsEXT values |
VUID-VkDebugReportCallbackCreateInfoEXT-pfnCallback-parameter | Y | | None | implicit | VkDebugReportCallbackCreateInfoEXT | (VK_EXT_debug_report) | pfnCallback must be a valid PFN_vkDebugReportCallbackEXT value |
VUID-VkDebugReportCallbackCreateInfoEXT-sType-sType | Y | | None | implicit | VkDebugReportCallbackCreateInfoEXT | (VK_EXT_debug_report) | sType must be VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT |
VUID-VkDebugUtilsLabelEXT-pLabelName-parameter | Y | | None | implicit | VkDebugUtilsLabelEXT | (VK_EXT_debug_utils) | pLabelName must be a null-terminated UTF-8 string |
VUID-VkDebugUtilsLabelEXT-pNext-pNext | Y | | None | implicit | VkDebugUtilsLabelEXT | (VK_EXT_debug_utils) | pNext must be NULL |
VUID-VkDebugUtilsLabelEXT-sType-sType | Y | | None | implicit | VkDebugUtilsLabelEXT | (VK_EXT_debug_utils) | sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT |
VUID-VkDebugUtilsMessengerCallbackDataEXT-flags-zerobitmask | Y | | None | implicit | VkDebugUtilsMessengerCallbackDataEXT | (VK_EXT_debug_utils) | flags must be 0 |
VUID-VkDebugUtilsMessengerCallbackDataEXT-pCmdBufLabels-parameter | Y | | None | implicit | VkDebugUtilsMessengerCallbackDataEXT | (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-parameter | Y | | None | implicit | VkDebugUtilsMessengerCallbackDataEXT | (VK_EXT_debug_utils) | pMessage must be a null-terminated UTF-8 string |
VUID-VkDebugUtilsMessengerCallbackDataEXT-pMessageIdName-parameter | N | | None | implicit | VkDebugUtilsMessengerCallbackDataEXT | (VK_EXT_debug_utils) | If pMessageIdName is not NULL, pMessageIdName must be a null-terminated UTF-8 string |
VUID-VkDebugUtilsMessengerCallbackDataEXT-pNext-pNext | Y | | None | implicit | VkDebugUtilsMessengerCallbackDataEXT | (VK_EXT_debug_utils) | pNext must be NULL |
VUID-VkDebugUtilsMessengerCallbackDataEXT-pObjects-parameter | Y | | None | implicit | VkDebugUtilsMessengerCallbackDataEXT | (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-parameter | Y | | None | implicit | VkDebugUtilsMessengerCallbackDataEXT | (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-sType | Y | | None | implicit | VkDebugUtilsMessengerCallbackDataEXT | (VK_EXT_debug_utils) | sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT |
VUID-VkDebugUtilsMessengerCreateInfoEXT-flags-zerobitmask | Y | | None | implicit | VkDebugUtilsMessengerCreateInfoEXT | (VK_EXT_debug_utils) | flags must be 0 |
VUID-VkDebugUtilsMessengerCreateInfoEXT-messageSeverity-parameter | Y | | None | implicit | VkDebugUtilsMessengerCreateInfoEXT | (VK_EXT_debug_utils) | messageSeverity must be a valid combination of VkDebugUtilsMessageSeverityFlagBitsEXT values |
VUID-VkDebugUtilsMessengerCreateInfoEXT-messageSeverity-requiredbitmask | Y | | None | implicit | VkDebugUtilsMessengerCreateInfoEXT | (VK_EXT_debug_utils) | messageSeverity must not be 0 |
VUID-VkDebugUtilsMessengerCreateInfoEXT-messageType-parameter | Y | | None | implicit | VkDebugUtilsMessengerCreateInfoEXT | (VK_EXT_debug_utils) | messageType must be a valid combination of VkDebugUtilsMessageTypeFlagBitsEXT values |
VUID-VkDebugUtilsMessengerCreateInfoEXT-messageType-requiredbitmask | Y | | None | implicit | VkDebugUtilsMessengerCreateInfoEXT | (VK_EXT_debug_utils) | messageType must not be 0 |
VUID-VkDebugUtilsMessengerCreateInfoEXT-pfnUserCallback-01914 | N | | None | explicit | VkDebugUtilsMessengerCreateInfoEXT | (VK_EXT_debug_utils) | pfnUserCallback must be a valid PFN_vkDebugUtilsMessengerCallbackEXT |
VUID-VkDebugUtilsMessengerCreateInfoEXT-pfnUserCallback-parameter | Y | | None | implicit | VkDebugUtilsMessengerCreateInfoEXT | (VK_EXT_debug_utils) | pfnUserCallback must be a valid PFN_vkDebugUtilsMessengerCallbackEXT value |
VUID-VkDebugUtilsMessengerCreateInfoEXT-sType-sType | Y | | None | implicit | VkDebugUtilsMessengerCreateInfoEXT | (VK_EXT_debug_utils) | sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT |
VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02589 | Y | | DebugUtilsNameTest | explicit | VkDebugUtilsObjectNameInfoEXT | (VK_EXT_debug_utils) | If objectType is VK_OBJECT_TYPE_UNKNOWN, objectHandle must not be VK_NULL_HANDLE |
VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02590 | Y | | DebugUtilsNameTest | explicit | VkDebugUtilsObjectNameInfoEXT | (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-parameter | Y | | None | implicit | VkDebugUtilsObjectNameInfoEXT | (VK_EXT_debug_utils) | objectType must be a valid VkObjectType value |
VUID-VkDebugUtilsObjectNameInfoEXT-pNext-pNext | Y | | None | implicit | VkDebugUtilsObjectNameInfoEXT | (VK_EXT_debug_utils) | pNext must be NULL |
VUID-VkDebugUtilsObjectNameInfoEXT-pObjectName-parameter | N | | None | implicit | VkDebugUtilsObjectNameInfoEXT | (VK_EXT_debug_utils) | If pObjectName is not NULL, pObjectName must be a null-terminated UTF-8 string |
VUID-VkDebugUtilsObjectNameInfoEXT-sType-sType | Y | | None | implicit | VkDebugUtilsObjectNameInfoEXT | (VK_EXT_debug_utils) | sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT |
VUID-VkDebugUtilsObjectTagInfoEXT-objectHandle-01910 | Y | | None | explicit | VkDebugUtilsObjectTagInfoEXT | (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-01908 | Y | | None | explicit | VkDebugUtilsObjectTagInfoEXT | (VK_EXT_debug_utils) | objectType must not be VK_OBJECT_TYPE_UNKNOWN |
VUID-VkDebugUtilsObjectTagInfoEXT-objectType-parameter | Y | | None | implicit | VkDebugUtilsObjectTagInfoEXT | (VK_EXT_debug_utils) | objectType must be a valid VkObjectType value |
VUID-VkDebugUtilsObjectTagInfoEXT-pNext-pNext | Y | | None | implicit | VkDebugUtilsObjectTagInfoEXT | (VK_EXT_debug_utils) | pNext must be NULL |
VUID-VkDebugUtilsObjectTagInfoEXT-pTag-parameter | Y | | None | implicit | VkDebugUtilsObjectTagInfoEXT | (VK_EXT_debug_utils) | pTag must be a valid pointer to an array of tagSize bytes |
VUID-VkDebugUtilsObjectTagInfoEXT-sType-sType | Y | | None | implicit | VkDebugUtilsObjectTagInfoEXT | (VK_EXT_debug_utils) | sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT |
VUID-VkDebugUtilsObjectTagInfoEXT-tagSize-arraylength | Y | | None | implicit | VkDebugUtilsObjectTagInfoEXT | (VK_EXT_debug_utils) | tagSize must be greater than 0 |
VUID-VkDedicatedAllocationBufferCreateInfoNV-sType-sType | Y | | None | implicit | VkDedicatedAllocationBufferCreateInfoNV | (VK_NV_dedicated_allocation) | sType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV |
VUID-VkDedicatedAllocationImageCreateInfoNV-dedicatedAllocation-00994 | N | | None | explicit | VkDedicatedAllocationImageCreateInfoNV | (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-sType | Y | | None | implicit | VkDedicatedAllocationImageCreateInfoNV | (VK_NV_dedicated_allocation) | sType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV |
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00651 | N | | None | explicit | VkDedicatedAllocationMemoryAllocateInfoNV | (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-00653 | N | | None | explicit | VkDedicatedAllocationMemoryAllocateInfoNV | (VK_NV_dedicated_allocation) | If buffer is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the buffer |
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00655 | N | | None | explicit | VkDedicatedAllocationMemoryAllocateInfoNV | (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-parameter | N | | None | implicit | VkDedicatedAllocationMemoryAllocateInfoNV | (VK_NV_dedicated_allocation) | If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle |
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-commonparent | N | | None | implicit | VkDedicatedAllocationMemoryAllocateInfoNV | (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-00649 | N | | None | explicit | VkDedicatedAllocationMemoryAllocateInfoNV | (VK_NV_dedicated_allocation) | At least one of image and buffer must be VK_NULL_HANDLE |
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00650 | N | | None | explicit | VkDedicatedAllocationMemoryAllocateInfoNV | (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-00652 | N | | None | explicit | VkDedicatedAllocationMemoryAllocateInfoNV | (VK_NV_dedicated_allocation) | If image is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the image |
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00654 | N | | None | explicit | VkDedicatedAllocationMemoryAllocateInfoNV | (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-parameter | N | | None | implicit | VkDedicatedAllocationMemoryAllocateInfoNV | (VK_NV_dedicated_allocation) | If image is not VK_NULL_HANDLE, image must be a valid VkImage handle |
VUID-VkDedicatedAllocationMemoryAllocateInfoNV-sType-sType | Y | | None | implicit | VkDedicatedAllocationMemoryAllocateInfoNV | (VK_NV_dedicated_allocation) | sType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV |
VUID-VkDependencyInfoKHR-dependencyFlags-parameter | Y | | None | implicit | VkDependencyInfoKHR | (VK_KHR_synchronization2) | dependencyFlags must be a valid combination of VkDependencyFlagBits values |
VUID-VkDependencyInfoKHR-pBufferMemoryBarriers-parameter | Y | | None | implicit | VkDependencyInfoKHR | (VK_KHR_synchronization2) | If bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier2KHR structures |
VUID-VkDependencyInfoKHR-pImageMemoryBarriers-parameter | Y | | None | implicit | VkDependencyInfoKHR | (VK_KHR_synchronization2) | If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier2KHR structures |
VUID-VkDependencyInfoKHR-pMemoryBarriers-parameter | Y | | None | implicit | VkDependencyInfoKHR | (VK_KHR_synchronization2) | If memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier2KHR structures |
VUID-VkDependencyInfoKHR-pNext-pNext | Y | | None | implicit | VkDependencyInfoKHR | (VK_KHR_synchronization2) | pNext must be NULL |
VUID-VkDependencyInfoKHR-sType-sType | Y | | None | implicit | VkDependencyInfoKHR | (VK_KHR_synchronization2) | sType must be VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR |
VUID-VkDescriptorBufferInfo-buffer-02998 | Y | | NullDescriptorsDisabled | explicit | VkDescriptorBufferInfo | core | If the nullDescriptor feature is not enabled, buffer must not be VK_NULL_HANDLE |
VUID-VkDescriptorBufferInfo-buffer-02999 | Y | | NullDescriptorsEnabled | explicit | VkDescriptorBufferInfo | (VK_EXT_robustness2) | If buffer is VK_NULL_HANDLE, offset must be zero and range must be VK_WHOLE_SIZE |
VUID-VkDescriptorBufferInfo-buffer-parameter | Y | | None | implicit | VkDescriptorBufferInfo | core | If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle |
VUID-VkDescriptorBufferInfo-offset-00340 | Y | | DSBufferInfoErrors | explicit | VkDescriptorBufferInfo | core | offset must be less than the size of buffer |
VUID-VkDescriptorBufferInfo-range-00341 | Y | | DSBufferInfoErrors | explicit | VkDescriptorBufferInfo | core | If range is not equal to VK_WHOLE_SIZE, range must be greater than 0 |
VUID-VkDescriptorBufferInfo-range-00342 | Y | | DSBufferInfoErrors | explicit | VkDescriptorBufferInfo | core | If range is not equal to VK_WHOLE_SIZE, range must be less than or equal to the size of buffer minus offset |
VUID-VkDescriptorImageInfo-commonparent | Y | | None | implicit | VkDescriptorImageInfo | core | Both of imageView, and sampler that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice |
VUID-VkDescriptorImageInfo-imageLayout-00344 | Y | | ImageDescriptorLayoutMismatch | explicit | VkDescriptorImageInfo | core | imageLayout 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-00343 | Y | | Maint1BindingSliceOf3DImage | explicit | VkDescriptorImageInfo | (VK_VERSION_1_1,VK_KHR_maintenance1) | imageView must not be 2D or 2D array image view created from a 3D image |
VUID-VkDescriptorImageInfo-imageView-01976 | Y | | DSAspectBitsErrors | explicit | VkDescriptorImageInfo | core | If imageView is created from a depth/stencil image, the aspectMask used to create the imageView must include either VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT but not both |
VUID-VkDescriptorImageInfo-mutableComparisonSamplers-04450 | Y | | DestroyInstanceHandleLeak | explicit | VkDescriptorImageInfo | (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-01564 | Y | | DSAspectBitsErrors | explicit | VkDescriptorImageInfo | (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-04607 | N | | None | explicit | VkDescriptorPoolCreateInfo | (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-04609 | N | | None | explicit | VkDescriptorPoolCreateInfo | (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-parameter | Y | | None | implicit | VkDescriptorPoolCreateInfo | core | flags must be a valid combination of VkDescriptorPoolCreateFlagBits values |
VUID-VkDescriptorPoolCreateInfo-maxSets-00301 | Y | | InvalidCreateDescriptorPool | explicit | VkDescriptorPoolCreateInfo | core | maxSets must be greater than 0 |
VUID-VkDescriptorPoolCreateInfo-mutableDescriptorType-04608 | N | | None | explicit | VkDescriptorPoolCreateInfo | (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-pNext | Y | | None | implicit | VkDescriptorPoolCreateInfo | core | 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 VkDescriptorPoolInlineUniformBlockCreateInfoEXT or VkMutableDescriptorTypeCreateInfoVALVE |
VUID-VkDescriptorPoolCreateInfo-pPoolSizes-04787 | N | | None | explicit | VkDescriptorPoolCreateInfo | (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-parameter | Y | | None | implicit | VkDescriptorPoolCreateInfo | core | pPoolSizes must be a valid pointer to an array of poolSizeCount valid VkDescriptorPoolSize structures |
VUID-VkDescriptorPoolCreateInfo-poolSizeCount-arraylength | Y | | None | implicit | VkDescriptorPoolCreateInfo | core | poolSizeCount must be greater than 0 |
VUID-VkDescriptorPoolCreateInfo-sType-sType | Y | | None | implicit | VkDescriptorPoolCreateInfo | core | sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO |
VUID-VkDescriptorPoolCreateInfo-sType-unique | Y | | None | implicit | VkDescriptorPoolCreateInfo | core | The sType value of each struct in the pNext chain must be unique |
VUID-VkDescriptorPoolInlineUniformBlockCreateInfoEXT-sType-sType | Y | | None | implicit | VkDescriptorPoolInlineUniformBlockCreateInfoEXT | (VK_EXT_inline_uniform_block) | sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT |
VUID-VkDescriptorPoolSize-descriptorCount-00302 | Y | | InvalidCreateDescriptorPool | explicit | VkDescriptorPoolSize | core | descriptorCount must be greater than 0 |
VUID-VkDescriptorPoolSize-type-02218 | Y | | InlineUniformBlockEXT | explicit | VkDescriptorPoolSize | (VK_EXT_inline_uniform_block) | If type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT then descriptorCount must be a multiple of 4 |
VUID-VkDescriptorPoolSize-type-parameter | Y | | None | implicit | VkDescriptorPoolSize | core | type must be a valid VkDescriptorType value |
VUID-VkDescriptorSetAllocateInfo-commonparent | Y | | None | implicit | VkDescriptorSetAllocateInfo | core | Both of descriptorPool, and the elements of pSetLayouts must have been created, allocated, or retrieved from the same VkDevice |
VUID-VkDescriptorSetAllocateInfo-descriptorPool-00307 | Y | | AllocDescriptorFromEmptyPool | explicit | VkDescriptorSetAllocateInfo | !(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-parameter | Y | | None | implicit | VkDescriptorSetAllocateInfo | core | descriptorPool must be a valid VkDescriptorPool handle |
VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-00306 | Y | | AllocDescriptorFromEmptyPool | explicit | VkDescriptorSetAllocateInfo | !(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-arraylength | N | | None | implicit | VkDescriptorSetAllocateInfo | core | descriptorSetCount must be greater than 0 |
VUID-VkDescriptorSetAllocateInfo-pNext-pNext | Y | | None | implicit | VkDescriptorSetAllocateInfo | core | pNext must be NULL or a pointer to a valid instance of VkDescriptorSetVariableDescriptorCountAllocateInfo |
VUID-VkDescriptorSetAllocateInfo-pSetLayouts-00308 | Y | | AllocatePushDescriptorSet | explicit | VkDescriptorSetAllocateInfo | (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-03044 | Y | | DescriptorIndexingSetLayout | explicit | VkDescriptorSetAllocateInfo | (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-04610 | N | | None | explicit | VkDescriptorSetAllocateInfo | (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-parameter | Y | | None | implicit | VkDescriptorSetAllocateInfo | core | pSetLayouts must be a valid pointer to an array of descriptorSetCount valid VkDescriptorSetLayout handles |
VUID-VkDescriptorSetAllocateInfo-sType-sType | Y | | None | implicit | VkDescriptorSetAllocateInfo | core | sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO |
VUID-VkDescriptorSetAllocateInfo-sType-unique | Y | | None | implicit | VkDescriptorSetAllocateInfo | core | The sType value of each struct in the pNext chain must be unique |
VUID-VkDescriptorSetLayoutBinding-descriptorCount-00283 | Y | | None | explicit | VkDescriptorSetLayoutBinding | core | If descriptorCount is not 0, stageFlags must be a valid combination of VkShaderStageFlagBits values |
VUID-VkDescriptorSetLayoutBinding-descriptorType-00282 | Y | | None | explicit | VkDescriptorSetLayoutBinding | core | If 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-01510 | Y | | DescriptorSetLayoutMisc | explicit | VkDescriptorSetLayoutBinding | core | If 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-02209 | Y | | InlineUniformBlockEXT | explicit | VkDescriptorSetLayoutBinding | (VK_EXT_inline_uniform_block) | If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT then descriptorCount must be a multiple of 4 |
VUID-VkDescriptorSetLayoutBinding-descriptorType-02210 | Y | | InlineUniformBlockEXT | explicit | VkDescriptorSetLayoutBinding | (VK_EXT_inline_uniform_block) | If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT then descriptorCount must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxInlineUniformBlockSize |
VUID-VkDescriptorSetLayoutBinding-descriptorType-04604 | Y | | InlineUniformBlockEXTFeature | explicit | VkDescriptorSetLayoutBinding | (VK_EXT_inline_uniform_block) | If the inlineUniformBlock feature is not enabled, descriptorType must not be VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT |
VUID-VkDescriptorSetLayoutBinding-descriptorType-04605 | N | | None | explicit | VkDescriptorSetLayoutBinding | (VK_VALVE_mutable_descriptor_type) | If descriptorType is VK_DESCRIPTOR_TYPE_MUTABLE_VALVE, then pImmutableSamplers must be NULL. |
VUID-VkDescriptorSetLayoutBinding-descriptorType-parameter | Y | | None | implicit | VkDescriptorSetLayoutBinding | core | descriptorType must be a valid VkDescriptorType value |
VUID-VkDescriptorSetLayoutBinding-pImmutableSamplers-04009 | Y | | CustomBorderColor | explicit | VkDescriptorSetLayoutBinding | (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-03011 | Y | | None | explicit | VkDescriptorSetLayoutBindingFlagsCreateInfo | (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-03002 | Y | | DescriptorIndexingSetLayout | explicit | VkDescriptorSetLayoutBindingFlagsCreateInfo | (VK_VERSION_1_2,VK_EXT_descriptor_indexing) | If bindingCount is not zero, bindingCount must equal VkDescriptorSetLayoutCreateInfo::bindingCount |
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingAccelerationStructureUpdateAfterBind-03570 | N | | None | explicit | VkDescriptorSetLayoutBindingFlagsCreateInfo | (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-02211 | Y | | None | explicit | VkDescriptorSetLayoutBindingFlagsCreateInfo | (VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_EXT_inline_uniform_block) | If VkPhysicalDeviceInlineUniformBlockFeaturesEXT::descriptorBindingInlineUniformBlockUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT |
VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingPartiallyBound-03013 | Y | | None | explicit | VkDescriptorSetLayoutBindingFlagsCreateInfo | (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-03006 | Y | | None | explicit | VkDescriptorSetLayoutBindingFlagsCreateInfo | (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-03008 | Y | | None | explicit | VkDescriptorSetLayoutBindingFlagsCreateInfo | (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-03007 | Y | | None | explicit | VkDescriptorSetLayoutBindingFlagsCreateInfo | (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-03010 | Y | | None | explicit | VkDescriptorSetLayoutBindingFlagsCreateInfo | (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-03005 | Y | | DescriptorIndexingSetLayout | explicit | VkDescriptorSetLayoutBindingFlagsCreateInfo | (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-03009 | Y | | None | explicit | VkDescriptorSetLayoutBindingFlagsCreateInfo | (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-03012 | Y | | None | explicit | VkDescriptorSetLayoutBindingFlagsCreateInfo | (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-03014 | Y | | None | explicit | VkDescriptorSetLayoutBindingFlagsCreateInfo | (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-03003 | Y | | None | explicit | VkDescriptorSetLayoutBindingFlagsCreateInfo | (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-03004 | Y | | None | explicit | VkDescriptorSetLayoutBindingFlagsCreateInfo | (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-03015 | Y | | None | explicit | VkDescriptorSetLayoutBindingFlagsCreateInfo | (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-parameter | N | | None | implicit | VkDescriptorSetLayoutBindingFlagsCreateInfo | (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-sType | Y | | None | implicit | VkDescriptorSetLayoutBindingFlagsCreateInfo | (VK_VERSION_1_2,VK_EXT_descriptor_indexing) | sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO |
VUID-VkDescriptorSetLayoutCreateInfo-binding-00279 | Y | | DuplicateDescriptorBinding | explicit | VkDescriptorSetLayoutCreateInfo | core | The VkDescriptorSetLayoutBinding::binding members of the elements of the pBindings array must each have different values |
VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-03001 | N | | None | explicit | VkDescriptorSetLayoutCreateInfo | (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-04593 | N | | None | explicit | VkDescriptorSetLayoutCreateInfo | (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-04594 | N | | None | explicit | VkDescriptorSetLayoutCreateInfo | (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-00280 | Y | | InvalidPushDescriptorSetLayout | explicit | VkDescriptorSetLayoutCreateInfo | (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-00281 | Y | | InvalidPushDescriptorSetLayout, PushDescriptorSetLayoutWithoutExtension | explicit | VkDescriptorSetLayoutCreateInfo | (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-02208 | Y | | None | explicit | VkDescriptorSetLayoutCreateInfo | (VK_KHR_push_descriptor)+(VK_EXT_inline_uniform_block) | If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements of pBindings must not have a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT |
VUID-VkDescriptorSetLayoutCreateInfo-flags-03000 | Y | | DescriptorIndexingSetLayout | explicit | VkDescriptorSetLayoutCreateInfo | (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-04590 | N | | None | explicit | VkDescriptorSetLayoutCreateInfo | (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-04591 | N | | None | explicit | VkDescriptorSetLayoutCreateInfo | (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-04592 | N | | None | explicit | VkDescriptorSetLayoutCreateInfo | (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-04596 | N | | None | explicit | VkDescriptorSetLayoutCreateInfo | (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-parameter | Y | | None | implicit | VkDescriptorSetLayoutCreateInfo | core | flags must be a valid combination of VkDescriptorSetLayoutCreateFlagBits values |
VUID-VkDescriptorSetLayoutCreateInfo-mutableDescriptorType-04595 | N | | None | explicit | VkDescriptorSetLayoutCreateInfo | (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-parameter | Y | | None | implicit | VkDescriptorSetLayoutCreateInfo | core | If bindingCount is not 0, pBindings must be a valid pointer to an array of bindingCount valid VkDescriptorSetLayoutBinding structures |
VUID-VkDescriptorSetLayoutCreateInfo-pNext-pNext | Y | | None | implicit | VkDescriptorSetLayoutCreateInfo | core | 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 VkDescriptorSetLayoutBindingFlagsCreateInfo or VkMutableDescriptorTypeCreateInfoVALVE |
VUID-VkDescriptorSetLayoutCreateInfo-sType-sType | Y | | None | implicit | VkDescriptorSetLayoutCreateInfo | core | sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO |
VUID-VkDescriptorSetLayoutCreateInfo-sType-unique | Y | | None | implicit | VkDescriptorSetLayoutCreateInfo | core | The sType value of each struct in the pNext chain must be unique |
VUID-VkDescriptorSetLayoutSupport-pNext-pNext | Y | | None | implicit | VkDescriptorSetLayoutSupport | (VK_VERSION_1_1,VK_KHR_maintenance3) | pNext must be NULL or a pointer to a valid instance of VkDescriptorSetVariableDescriptorCountLayoutSupport |
VUID-VkDescriptorSetLayoutSupport-sType-sType | Y | | None | implicit | VkDescriptorSetLayoutSupport | (VK_VERSION_1_1,VK_KHR_maintenance3) | sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT |
VUID-VkDescriptorSetLayoutSupport-sType-unique | Y | | None | implicit | VkDescriptorSetLayoutSupport | (VK_VERSION_1_1,VK_KHR_maintenance3) | The sType value of each struct in the pNext chain must be unique |
VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-descriptorSetCount-03045 | Y | | None | explicit | VkDescriptorSetVariableDescriptorCountAllocateInfo | (VK_VERSION_1_2,VK_EXT_descriptor_indexing) | If descriptorSetCount is not zero, descriptorSetCount must equal VkDescriptorSetAllocateInfo::descriptorSetCount |
VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-pDescriptorCounts-parameter | Y | | None | implicit | VkDescriptorSetVariableDescriptorCountAllocateInfo | (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-03046 | Y | | DescriptorIndexingSetLayout | explicit | VkDescriptorSetVariableDescriptorCountAllocateInfo | (VK_VERSION_1_2,VK_EXT_descriptor_indexing) | If VkDescriptorSetAllocateInfo::pSetLayouts[i] has a variable descriptor count binding, then pDescriptorCounts[i] must be less than or equal to the descriptor count specified for that binding when the descriptor set layout was created |
VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-sType-sType | Y | | None | implicit | VkDescriptorSetVariableDescriptorCountAllocateInfo | (VK_VERSION_1_2,VK_EXT_descriptor_indexing) | sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO |
VUID-VkDescriptorSetVariableDescriptorCountLayoutSupport-sType-sType | Y | | None | implicit | VkDescriptorSetVariableDescriptorCountLayoutSupport | (VK_VERSION_1_2,VK_EXT_descriptor_indexing) | sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT |
VUID-VkDescriptorUpdateTemplateCreateInfo-commonparent | Y | | None | implicit | VkDescriptorUpdateTemplateCreateInfo | (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-arraylength | Y | | None | implicit | VkDescriptorUpdateTemplateCreateInfo | (VK_VERSION_1_1,VK_KHR_descriptor_update_template) | descriptorUpdateEntryCount must be greater than 0 |
VUID-VkDescriptorUpdateTemplateCreateInfo-flags-zerobitmask | Y | | None | implicit | VkDescriptorUpdateTemplateCreateInfo | (VK_VERSION_1_1,VK_KHR_descriptor_update_template) | flags must be 0 |
VUID-VkDescriptorUpdateTemplateCreateInfo-pDescriptorUpdateEntries-parameter | Y | | None | implicit | VkDescriptorUpdateTemplateCreateInfo | (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-pNext | Y | | None | implicit | VkDescriptorUpdateTemplateCreateInfo | (VK_VERSION_1_1,VK_KHR_descriptor_update_template) | pNext must be NULL |
VUID-VkDescriptorUpdateTemplateCreateInfo-sType-sType | Y | | None | implicit | VkDescriptorUpdateTemplateCreateInfo | (VK_VERSION_1_1,VK_KHR_descriptor_update_template) | sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO |
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00350 | Y | | CreateDescriptorUpdateTemplate | explicit | VkDescriptorUpdateTemplateCreateInfo | (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-00351 | Y | | CreateDescriptorUpdateTemplate | explicit | VkDescriptorUpdateTemplateCreateInfo | (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-00352 | Y | | CreateDescriptorUpdateTemplate | explicit | VkDescriptorUpdateTemplateCreateInfo | (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-00353 | Y | | CreateDescriptorUpdateTemplate | explicit | VkDescriptorUpdateTemplateCreateInfo | (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-04615 | N | | None | explicit | VkDescriptorUpdateTemplateCreateInfo | (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-parameter | Y | | None | implicit | VkDescriptorUpdateTemplateCreateInfo | (VK_VERSION_1_1,VK_KHR_descriptor_update_template) | templateType must be a valid VkDescriptorUpdateTemplateType value |
VUID-VkDescriptorUpdateTemplateEntry-descriptor-02226 | N | | None | explicit | VkDescriptorUpdateTemplateEntry | (VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_EXT_inline_uniform_block) | If descriptor type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, dstArrayElement must be an integer multiple of 4 |
VUID-VkDescriptorUpdateTemplateEntry-descriptor-02227 | N | | None | explicit | VkDescriptorUpdateTemplateEntry | (VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_EXT_inline_uniform_block) | If descriptor type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, descriptorCount must be an integer multiple of 4 |
VUID-VkDescriptorUpdateTemplateEntry-descriptorType-parameter | Y | | None | implicit | VkDescriptorUpdateTemplateEntry | (VK_VERSION_1_1,VK_KHR_descriptor_update_template) | descriptorType must be a valid VkDescriptorType value |
VUID-VkDescriptorUpdateTemplateEntry-dstArrayElement-00355 | N | | None | explicit | VkDescriptorUpdateTemplateEntry | (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-00354 | N | | None | explicit | VkDescriptorUpdateTemplateEntry | (VK_VERSION_1_1,VK_KHR_descriptor_update_template) | dstBinding must be a valid binding in the descriptor set layout implicitly specified when using a descriptor update template to update descriptors |
VUID-VkDeviceCreateInfo-None-04896 | N | | None | explicit | VkDeviceCreateInfo | (VK_EXT_shader_image_atomic_int64) | If sparseImageInt64Atomics is enabled, shaderImageInt64Atomics must be enabled |
VUID-VkDeviceCreateInfo-None-04897 | N | | None | explicit | VkDeviceCreateInfo | (VK_EXT_shader_atomic_float) | If sparseImageFloat32Atomics is enabled, shaderImageFloat32Atomics must be enabled |
VUID-VkDeviceCreateInfo-None-04898 | N | | None | explicit | VkDeviceCreateInfo | (VK_EXT_shader_atomic_float) | If sparseImageFloat32AtomicAdd is enabled, shaderImageFloat32AtomicAdd must be enabled |
VUID-VkDeviceCreateInfo-flags-zerobitmask | Y | | None | implicit | VkDeviceCreateInfo | core | flags must be 0 |
VUID-VkDeviceCreateInfo-fragmentDensityMap-04481 | Y | | InvalidFragmentShadingRateDeviceFeatureCombinations | explicit | VkDeviceCreateInfo | (VK_KHR_fragment_shading_rate,VK_EXT_fragment_density_map) | If fragmentDensityMap is enabled, pipelineFragmentShadingRate must not be enabled |
VUID-VkDeviceCreateInfo-fragmentDensityMap-04482 | Y | | InvalidFragmentShadingRateDeviceFeatureCombinations | explicit | VkDeviceCreateInfo | (VK_KHR_fragment_shading_rate,VK_EXT_fragment_density_map) | If fragmentDensityMap is enabled, primitiveFragmentShadingRate must not be enabled |
VUID-VkDeviceCreateInfo-fragmentDensityMap-04483 | Y | | InvalidFragmentShadingRateDeviceFeatureCombinations | explicit | VkDeviceCreateInfo | (VK_KHR_fragment_shading_rate,VK_EXT_fragment_density_map) | If fragmentDensityMap is enabled, attachmentFragmentShadingRate must not be enabled |
VUID-VkDeviceCreateInfo-pEnabledFeatures-parameter | N | | None | implicit | VkDeviceCreateInfo | core | If pEnabledFeatures is not NULL, pEnabledFeatures must be a valid pointer to a valid VkPhysicalDeviceFeatures structure |
VUID-VkDeviceCreateInfo-pNext-00373 | Y | | None | explicit | VkDeviceCreateInfo | (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-02829 | Y | | Features12AndpNext | explicit | VkDeviceCreateInfo | (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-02830 | Y | | Features12AndpNext | explicit | VkDeviceCreateInfo | (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-04748 | N | | None | explicit | VkDeviceCreateInfo | (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-pNext | Y | | DeviceFeature2AndVertexAttributeDivisorExtensionUnenabled | implicit | VkDeviceCreateInfo | core | 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 VkDeviceDeviceMemoryReportCreateInfoEXT, VkDeviceDiagnosticsConfigCreateInfoNV, VkDeviceGroupDeviceCreateInfo, VkDeviceMemoryOverallocationCreateInfoAMD, VkDevicePrivateDataCreateInfoEXT, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceAccelerationStructureFeaturesKHR, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceColorWriteEnableFeaturesEXT, VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImageRobustnessFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8FeaturesEXT, VkPhysicalDeviceInheritedViewportScissorFeaturesNV, VkPhysicalDeviceInlineUniformBlockFeaturesEXT, VkPhysicalDeviceLineRasterizationFeaturesEXT, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiDrawFeaturesEXT, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE, VkPhysicalDevicePerformanceQueryFeaturesKHR, VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT, VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, VkPhysicalDevicePortabilitySubsetFeaturesKHR, VkPhysicalDevicePrivateDataFeaturesEXT, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceProvokingVertexFeaturesEXT, VkPhysicalDeviceRayQueryFeaturesKHR, VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, VkPhysicalDeviceRayTracingPipelineFeaturesKHR, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesEXT, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, VkPhysicalDeviceShaderImageFootprintFeaturesNV, VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceSubgroupSizeControlFeaturesEXT, VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, VkPhysicalDeviceSynchronization2FeaturesKHR, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, VkPhysicalDeviceVulkan11Features, VkPhysicalDeviceVulkan12Features, VkPhysicalDeviceVulkanMemoryModelFeatures, VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, or VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR |
VUID-VkDeviceCreateInfo-pProperties-04451 | Y | | DestroyInstanceHandleLeak | explicit | VkDeviceCreateInfo | (VK_KHR_portability_subset) | If the [VK_KHR_portability_subset] extension is included in pProperties of vkEnumerateDeviceExtensionProperties, ppEnabledExtensions must include "VK_KHR_portability_subset". |
VUID-VkDeviceCreateInfo-pQueueCreateInfos-parameter | Y | | None | implicit | VkDeviceCreateInfo | core | pQueueCreateInfos must be a valid pointer to an array of queueCreateInfoCount valid VkDeviceQueueCreateInfo structures |
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-00374 | Y | | Maintenance1AndNegativeViewport | explicit | VkDeviceCreateInfo | (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-01840 | N | | None | explicit | VkDeviceCreateInfo | (VK_AMD_negative_viewport_height)+(VK_VERSION_1_1) | ppEnabledExtensionNames must not contain VK_AMD_negative_viewport_height |
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-03328 | Y | | None | explicit | VkDeviceCreateInfo | (VK_EXT_buffer_device_address+VK_KHR_buffer_device_address) | ppEnabledExtensionNames must not contain both VK_KHR_buffer_device_address and VK_EXT_buffer_device_address |
VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-parameter | Y | | None | implicit | VkDeviceCreateInfo | core | If enabledExtensionCount is not 0, ppEnabledExtensionNames must be a valid pointer to an array of enabledExtensionCount null-terminated UTF-8 strings |
VUID-VkDeviceCreateInfo-ppEnabledExtensions-02831 | Y | | RequiredPromotedFeaturesExtensions | explicit | VkDeviceCreateInfo | (VK_VERSION_1_2)+(VK_KHR_draw_indirect_count) | If ppEnabledExtensions contains "VK_KHR_draw_indirect_count" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::drawIndirectCount must be VK_TRUE |
VUID-VkDeviceCreateInfo-ppEnabledExtensions-02832 | Y | | RequiredPromotedFeaturesExtensions | explicit | VkDeviceCreateInfo | (VK_VERSION_1_2)+(VK_KHR_sampler_mirror_clamp_to_edge) | If ppEnabledExtensions contains "VK_KHR_sampler_mirror_clamp_to_edge" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::samplerMirrorClampToEdge must be VK_TRUE |
VUID-VkDeviceCreateInfo-ppEnabledExtensions-02833 | Y | | RequiredPromotedFeaturesExtensions | explicit | VkDeviceCreateInfo | (VK_VERSION_1_2)+(VK_EXT_descriptor_indexing) | If ppEnabledExtensions contains "VK_EXT_descriptor_indexing" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::descriptorIndexing must be VK_TRUE |
VUID-VkDeviceCreateInfo-ppEnabledExtensions-02834 | Y | | RequiredPromotedFeaturesExtensions | explicit | VkDeviceCreateInfo | (VK_VERSION_1_2)+(VK_EXT_sampler_filter_minmax) | If ppEnabledExtensions contains "VK_EXT_sampler_filter_minmax" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::samplerFilterMinmax must be VK_TRUE |
VUID-VkDeviceCreateInfo-ppEnabledExtensions-02835 | Y | | RequiredPromotedFeaturesExtensions | explicit | VkDeviceCreateInfo | (VK_VERSION_1_2)+(VK_EXT_shader_viewport_index_layer) | If ppEnabledExtensions contains "VK_EXT_shader_viewport_index_layer" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::shaderOutputViewportIndex and VkPhysicalDeviceVulkan12Features::shaderOutputLayer must both be VK_TRUE |
VUID-VkDeviceCreateInfo-ppEnabledExtensions-04476 | Y | | RequiredPromotedFeaturesExtensions | explicit | VkDeviceCreateInfo | (VK_VERSION_1_2)+(VK_KHR_shader_draw_parameters) | If ppEnabledExtensions contains "VK_KHR_shader_draw_parameters" and the pNext chain includes a VkPhysicalDeviceVulkan11Features structure, then VkPhysicalDeviceVulkan11Features::shaderDrawParameters must be VK_TRUE |
VUID-VkDeviceCreateInfo-ppEnabledLayerNames-parameter | Y | | None | implicit | VkDeviceCreateInfo | core | If enabledLayerCount is not 0, ppEnabledLayerNames must be a valid pointer to an array of enabledLayerCount null-terminated UTF-8 strings |
VUID-VkDeviceCreateInfo-queueCreateInfoCount-arraylength | Y | | None | implicit | VkDeviceCreateInfo | core | queueCreateInfoCount must be greater than 0 |
VUID-VkDeviceCreateInfo-queueFamilyIndex-00372 | Y | | UniqueQueueDeviceCreation | explicit | VkDeviceCreateInfo | !(VK_VERSION_1_1) | The queueFamilyIndex member of each element of pQueueCreateInfos must be unique within pQueueCreateInfos |
VUID-VkDeviceCreateInfo-queueFamilyIndex-02802 | Y | | UniqueQueueDeviceCreationBothProtected, UniqueQueueDeviceCreation | explicit | VkDeviceCreateInfo | (VK_VERSION_1_1) | The queueFamilyIndex member of each element of pQueueCreateInfos must be unique within pQueueCreateInfos, except that two members can share the same queueFamilyIndex if one is a protected-capable queue and one is not a protected-capable queue |
VUID-VkDeviceCreateInfo-sType-sType | Y | | None | implicit | VkDeviceCreateInfo | core | sType must be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO |
VUID-VkDeviceCreateInfo-sType-unique | Y | | None | implicit | VkDeviceCreateInfo | core | The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkDeviceDeviceMemoryReportCreateInfoEXT or VkDevicePrivateDataCreateInfoEXT |
VUID-VkDeviceCreateInfo-shadingRateImage-04478 | Y | | InvalidFragmentShadingRateDeviceFeatureCombinations | explicit | VkDeviceCreateInfo | (VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image) | If shadingRateImage is enabled, pipelineFragmentShadingRate must not be enabled |
VUID-VkDeviceCreateInfo-shadingRateImage-04479 | Y | | InvalidFragmentShadingRateDeviceFeatureCombinations | explicit | VkDeviceCreateInfo | (VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image) | If shadingRateImage is enabled, primitiveFragmentShadingRate must not be enabled |
VUID-VkDeviceCreateInfo-shadingRateImage-04480 | Y | | InvalidFragmentShadingRateDeviceFeatureCombinations | explicit | VkDeviceCreateInfo | (VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image) | If shadingRateImage is enabled, attachmentFragmentShadingRate must not be enabled |
VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-flags-zerobitmask | Y | | None | implicit | VkDeviceDeviceMemoryReportCreateInfoEXT | (VK_EXT_device_memory_report) | flags must be 0 |
VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-pUserData-parameter | Y | | None | implicit | VkDeviceDeviceMemoryReportCreateInfoEXT | (VK_EXT_device_memory_report) | pUserData must be a pointer value |
VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-pfnUserCallback-parameter | Y | | None | implicit | VkDeviceDeviceMemoryReportCreateInfoEXT | (VK_EXT_device_memory_report) | pfnUserCallback must be a valid PFN_vkDeviceMemoryReportCallbackEXT value |
VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-sType-sType | Y | | None | implicit | VkDeviceDeviceMemoryReportCreateInfoEXT | (VK_EXT_device_memory_report) | sType must be VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT |
VUID-VkDeviceDiagnosticsConfigCreateInfoNV-flags-parameter | Y | | None | implicit | VkDeviceDiagnosticsConfigCreateInfoNV | (VK_NV_device_diagnostics_config) | flags must be a valid combination of VkDeviceDiagnosticsConfigFlagBitsNV values |
VUID-VkDeviceDiagnosticsConfigCreateInfoNV-sType-sType | Y | | None | implicit | VkDeviceDiagnosticsConfigCreateInfoNV | (VK_NV_device_diagnostics_config) | sType must be VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV |
VUID-VkDeviceEventInfoEXT-deviceEvent-parameter | Y | | None | implicit | VkDeviceEventInfoEXT | (VK_EXT_display_control) | deviceEvent must be a valid VkDeviceEventTypeEXT value |
VUID-VkDeviceEventInfoEXT-pNext-pNext | Y | | None | implicit | VkDeviceEventInfoEXT | (VK_EXT_display_control) | pNext must be NULL |
VUID-VkDeviceEventInfoEXT-sType-sType | Y | | None | implicit | VkDeviceEventInfoEXT | (VK_EXT_display_control) | sType must be VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT |
VUID-VkDeviceGroupBindSparseInfo-memoryDeviceIndex-01119 | N | | None | explicit | VkDeviceGroupBindSparseInfo | (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-01118 | N | | None | explicit | VkDeviceGroupBindSparseInfo | (VK_VERSION_1_1,VK_KHR_device_group) | resourceDeviceIndex and memoryDeviceIndex must both be valid device indices |
VUID-VkDeviceGroupBindSparseInfo-sType-sType | Y | | None | implicit | VkDeviceGroupBindSparseInfo | (VK_VERSION_1_1,VK_KHR_device_group) | sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO |
VUID-VkDeviceGroupCommandBufferBeginInfo-deviceMask-00106 | Y | | InvalidDeviceMask | explicit | VkDeviceGroupCommandBufferBeginInfo | (VK_VERSION_1_1,VK_KHR_device_group) | deviceMask must be a valid device mask value |
VUID-VkDeviceGroupCommandBufferBeginInfo-deviceMask-00107 | Y | | InvalidDeviceMask | explicit | VkDeviceGroupCommandBufferBeginInfo | (VK_VERSION_1_1,VK_KHR_device_group) | deviceMask must not be zero |
VUID-VkDeviceGroupCommandBufferBeginInfo-sType-sType | Y | | None | implicit | VkDeviceGroupCommandBufferBeginInfo | (VK_VERSION_1_1,VK_KHR_device_group) | sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO |
VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-00375 | N | | None | explicit | VkDeviceGroupDeviceCreateInfo | (VK_VERSION_1_1,VK_KHR_device_group_creation) | Each element of pPhysicalDevices must be unique |
VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-00376 | N | | None | explicit | VkDeviceGroupDeviceCreateInfo | (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-parameter | Y | | None | implicit | VkDeviceGroupDeviceCreateInfo | (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-00377 | N | | None | explicit | VkDeviceGroupDeviceCreateInfo | (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-sType | Y | | None | implicit | VkDeviceGroupDeviceCreateInfo | (VK_VERSION_1_1,VK_KHR_device_group_creation) | sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO |
VUID-VkDeviceGroupPresentCapabilitiesKHR-pNext-pNext | Y | | None | implicit | VkDeviceGroupPresentCapabilitiesKHR | (VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group) | pNext must be NULL |
VUID-VkDeviceGroupPresentCapabilitiesKHR-sType-sType | Y | | None | implicit | VkDeviceGroupPresentCapabilitiesKHR | (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-01298 | N | | None | explicit | VkDeviceGroupPresentInfoKHR | (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-01299 | N | | None | explicit | VkDeviceGroupPresentInfoKHR | (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-01300 | N | | None | explicit | VkDeviceGroupPresentInfoKHR | (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-01301 | N | | None | explicit | VkDeviceGroupPresentInfoKHR | (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-01303 | N | | None | explicit | VkDeviceGroupPresentInfoKHR | (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-parameter | Y | | None | implicit | VkDeviceGroupPresentInfoKHR | (VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group) | mode must be a valid VkDeviceGroupPresentModeFlagBitsKHR value |
VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-01302 | N | | None | explicit | VkDeviceGroupPresentInfoKHR | (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-parameter | Y | | None | implicit | VkDeviceGroupPresentInfoKHR | (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-sType | Y | | None | implicit | VkDeviceGroupPresentInfoKHR | (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-01297 | N | | None | explicit | VkDeviceGroupPresentInfoKHR | (VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group) | swapchainCount must equal 0 or VkPresentInfoKHR::swapchainCount |
VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00905 | Y | | InvalidDeviceMask | explicit | VkDeviceGroupRenderPassBeginInfo | (VK_VERSION_1_1,VK_KHR_device_group) | deviceMask must be a valid device mask value |
VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00906 | Y | | InvalidDeviceMask | explicit | VkDeviceGroupRenderPassBeginInfo | (VK_VERSION_1_1,VK_KHR_device_group) | deviceMask must not be zero |
VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00907 | Y | | InvalidDeviceMask | explicit | VkDeviceGroupRenderPassBeginInfo | (VK_VERSION_1_1,VK_KHR_device_group) | deviceMask must be a subset of the command buffer's initial device mask |
VUID-VkDeviceGroupRenderPassBeginInfo-deviceRenderAreaCount-00908 | Y | | InvalidDeviceMask | explicit | VkDeviceGroupRenderPassBeginInfo | (VK_VERSION_1_1,VK_KHR_device_group) | deviceRenderAreaCount must either be zero or equal to the number of physical devices in the logical device |
VUID-VkDeviceGroupRenderPassBeginInfo-pDeviceRenderAreas-parameter | Y | | None | implicit | VkDeviceGroupRenderPassBeginInfo | (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-sType | Y | | None | implicit | VkDeviceGroupRenderPassBeginInfo | (VK_VERSION_1_1,VK_KHR_device_group) | sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO |
VUID-VkDeviceGroupSubmitInfo-commandBufferCount-00083 | N | | None | explicit | VkDeviceGroupSubmitInfo | (VK_VERSION_1_1,VK_KHR_device_group) | commandBufferCount must equal VkSubmitInfo::commandBufferCount |
VUID-VkDeviceGroupSubmitInfo-pCommandBufferDeviceMasks-00086 | Y | | InvalidDeviceMask | explicit | VkDeviceGroupSubmitInfo | (VK_VERSION_1_1,VK_KHR_device_group) | All elements of pCommandBufferDeviceMasks must be valid device masks |
VUID-VkDeviceGroupSubmitInfo-pCommandBufferDeviceMasks-parameter | Y | | None | implicit | VkDeviceGroupSubmitInfo | (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-parameter | Y | | None | implicit | VkDeviceGroupSubmitInfo | (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-00085 | N | | None | explicit | VkDeviceGroupSubmitInfo | (VK_VERSION_1_1,VK_KHR_device_group) | All elements of pWaitSemaphoreDeviceIndices and pSignalSemaphoreDeviceIndices must be valid device indices |
VUID-VkDeviceGroupSubmitInfo-pWaitSemaphoreDeviceIndices-parameter | Y | | None | implicit | VkDeviceGroupSubmitInfo | (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-sType | Y | | None | implicit | VkDeviceGroupSubmitInfo | (VK_VERSION_1_1,VK_KHR_device_group) | sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO |
VUID-VkDeviceGroupSubmitInfo-signalSemaphoreCount-00084 | N | | None | explicit | VkDeviceGroupSubmitInfo | (VK_VERSION_1_1,VK_KHR_device_group) | signalSemaphoreCount must equal VkSubmitInfo::signalSemaphoreCount |
VUID-VkDeviceGroupSubmitInfo-waitSemaphoreCount-00082 | N | | None | explicit | VkDeviceGroupSubmitInfo | (VK_VERSION_1_1,VK_KHR_device_group) | waitSemaphoreCount must equal VkSubmitInfo::waitSemaphoreCount |
VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-parameter | Y | | None | implicit | VkDeviceGroupSwapchainCreateInfoKHR | (VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group) | modes must be a valid combination of VkDeviceGroupPresentModeFlagBitsKHR values |
VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-requiredbitmask | Y | | None | implicit | VkDeviceGroupSwapchainCreateInfoKHR | (VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group) | modes must not be 0 |
VUID-VkDeviceGroupSwapchainCreateInfoKHR-sType-sType | Y | | None | implicit | VkDeviceGroupSwapchainCreateInfoKHR | (VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group) | sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR |
VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-memory-03336 | Y | | BufferDeviceAddressKHRDisabled, BufferDeviceAddressKHR | explicit | VkDeviceMemoryOpaqueCaptureAddressInfo | (VK_VERSION_1_2,VK_KHR_buffer_device_address) | memory must have been allocated with VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT |
VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-memory-parameter | N | | None | implicit | VkDeviceMemoryOpaqueCaptureAddressInfo | (VK_VERSION_1_2,VK_KHR_buffer_device_address) | memory must be a valid VkDeviceMemory handle |
VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-pNext-pNext | Y | | None | implicit | VkDeviceMemoryOpaqueCaptureAddressInfo | (VK_VERSION_1_2,VK_KHR_buffer_device_address) | pNext must be NULL |
VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-sType-sType | Y | | None | implicit | VkDeviceMemoryOpaqueCaptureAddressInfo | (VK_VERSION_1_2,VK_KHR_buffer_device_address) | sType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO |
VUID-VkDeviceMemoryOverallocationCreateInfoAMD-overallocationBehavior-parameter | Y | | None | implicit | VkDeviceMemoryOverallocationCreateInfoAMD | (VK_AMD_memory_overallocation_behavior) | overallocationBehavior must be a valid VkMemoryOverallocationBehaviorAMD value |
VUID-VkDeviceMemoryOverallocationCreateInfoAMD-sType-sType | Y | | None | implicit | VkDeviceMemoryOverallocationCreateInfoAMD | (VK_AMD_memory_overallocation_behavior) | sType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD |
VUID-VkDeviceMemoryReportCallbackDataEXT-pNext-pNext | N | | None | implicit | VkDeviceMemoryReportCallbackDataEXT | (VK_EXT_device_memory_report) | pNext must be NULL |
VUID-VkDeviceMemoryReportCallbackDataEXT-sType-sType | N | | None | implicit | VkDeviceMemoryReportCallbackDataEXT | (VK_EXT_device_memory_report) | sType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT |
VUID-VkDevicePrivateDataCreateInfoEXT-sType-sType | Y | | None | implicit | VkDevicePrivateDataCreateInfoEXT | (VK_EXT_private_data) | sType must be VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT |
VUID-VkDeviceQueueCreateInfo-flags-02861 | Y | | InvalidGetDeviceQueue | explicit | VkDeviceQueueCreateInfo | (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-parameter | Y | | None | implicit | VkDeviceQueueCreateInfo | core | flags must be a valid combination of VkDeviceQueueCreateFlagBits values |
VUID-VkDeviceQueueCreateInfo-pNext-pNext | Y | | None | implicit | VkDeviceQueueCreateInfo | core | pNext must be NULL or a pointer to a valid instance of VkDeviceQueueGlobalPriorityCreateInfoEXT |
VUID-VkDeviceQueueCreateInfo-pQueuePriorities-00383 | Y | | None | explicit | VkDeviceQueueCreateInfo | core | Each element of pQueuePriorities must be between 0.0 and 1.0 inclusive |
VUID-VkDeviceQueueCreateInfo-pQueuePriorities-parameter | Y | | None | implicit | VkDeviceQueueCreateInfo | core | pQueuePriorities must be a valid pointer to an array of queueCount float values |
VUID-VkDeviceQueueCreateInfo-queueCount-00382 | Y | | None | explicit | VkDeviceQueueCreateInfo | core | queueCount 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-arraylength | Y | | None | implicit | VkDeviceQueueCreateInfo | core | queueCount must be greater than 0 |
VUID-VkDeviceQueueCreateInfo-queueFamilyIndex-00381 | Y | | None | explicit | VkDeviceQueueCreateInfo | core | queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties |
VUID-VkDeviceQueueCreateInfo-sType-sType | Y | | None | implicit | VkDeviceQueueCreateInfo | core | sType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO |
VUID-VkDeviceQueueCreateInfo-sType-unique | Y | | None | implicit | VkDeviceQueueCreateInfo | core | The sType value of each struct in the pNext chain must be unique |
VUID-VkDeviceQueueGlobalPriorityCreateInfoEXT-globalPriority-parameter | Y | | None | implicit | VkDeviceQueueGlobalPriorityCreateInfoEXT | (VK_EXT_global_priority) | globalPriority must be a valid VkQueueGlobalPriorityEXT value |
VUID-VkDeviceQueueGlobalPriorityCreateInfoEXT-sType-sType | Y | | None | implicit | VkDeviceQueueGlobalPriorityCreateInfoEXT | (VK_EXT_global_priority) | sType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT |
VUID-VkDeviceQueueInfo2-flags-parameter | Y | | None | implicit | VkDeviceQueueInfo2 | (VK_VERSION_1_1) | flags must be a valid combination of VkDeviceQueueCreateFlagBits values |
VUID-VkDeviceQueueInfo2-pNext-pNext | Y | | None | implicit | VkDeviceQueueInfo2 | (VK_VERSION_1_1) | pNext must be NULL |
VUID-VkDeviceQueueInfo2-queueFamilyIndex-01842 | Y | | InvalidGetDeviceQueue | explicit | VkDeviceQueueInfo2 | (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-01843 | Y | | InvalidGetDeviceQueue | explicit | VkDeviceQueueInfo2 | (VK_VERSION_1_1) | queueIndex must be less than the number of queues created for the specified queue family index and VkDeviceQueueCreateFlags member flags equal to this flags value when device was created, via the queueCount member of the VkDeviceQueueCreateInfo structure |
VUID-VkDeviceQueueInfo2-sType-sType | Y | | None | implicit | VkDeviceQueueInfo2 | (VK_VERSION_1_1) | sType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 |
VUID-VkDirectFBSurfaceCreateInfoEXT-dfb-04117 | N | | None | explicit | VkDirectFBSurfaceCreateInfoEXT | (VK_KHR_surface)+(VK_EXT_directfb_surface) | dfb must point to a valid DirectFB IDirectFB |
VUID-VkDirectFBSurfaceCreateInfoEXT-flags-zerobitmask | Y | | None | implicit | VkDirectFBSurfaceCreateInfoEXT | (VK_KHR_surface)+(VK_EXT_directfb_surface) | flags must be 0 |
VUID-VkDirectFBSurfaceCreateInfoEXT-pNext-pNext | Y | | None | implicit | VkDirectFBSurfaceCreateInfoEXT | (VK_KHR_surface)+(VK_EXT_directfb_surface) | pNext must be NULL |
VUID-VkDirectFBSurfaceCreateInfoEXT-sType-sType | Y | | None | implicit | VkDirectFBSurfaceCreateInfoEXT | (VK_KHR_surface)+(VK_EXT_directfb_surface) | sType must be VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT |
VUID-VkDirectFBSurfaceCreateInfoEXT-surface-04118 | N | | None | explicit | VkDirectFBSurfaceCreateInfoEXT | (VK_KHR_surface)+(VK_EXT_directfb_surface) | surface must point to a valid DirectFB IDirectFBSurface |
VUID-VkDispatchIndirectCommand-x-00417 | N | | None | explicit | VkDispatchIndirectCommand | core | x must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] |
VUID-VkDispatchIndirectCommand-y-00418 | N | | None | explicit | VkDispatchIndirectCommand | core | y must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] |
VUID-VkDispatchIndirectCommand-z-00419 | N | | None | explicit | VkDispatchIndirectCommand | core | z must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] |
VUID-VkDisplayEventInfoEXT-displayEvent-parameter | Y | | None | implicit | VkDisplayEventInfoEXT | (VK_EXT_display_control) | displayEvent must be a valid VkDisplayEventTypeEXT value |
VUID-VkDisplayEventInfoEXT-pNext-pNext | Y | | None | implicit | VkDisplayEventInfoEXT | (VK_EXT_display_control) | pNext must be NULL |
VUID-VkDisplayEventInfoEXT-sType-sType | Y | | None | implicit | VkDisplayEventInfoEXT | (VK_EXT_display_control) | sType must be VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT |
VUID-VkDisplayModeCreateInfoKHR-flags-zerobitmask | Y | | None | implicit | VkDisplayModeCreateInfoKHR | (VK_KHR_surface)+(VK_KHR_display) | flags must be 0 |
VUID-VkDisplayModeCreateInfoKHR-pNext-pNext | Y | | None | implicit | VkDisplayModeCreateInfoKHR | (VK_KHR_surface)+(VK_KHR_display) | pNext must be NULL |
VUID-VkDisplayModeCreateInfoKHR-parameters-parameter | N | | None | implicit | VkDisplayModeCreateInfoKHR | (VK_KHR_surface)+(VK_KHR_display) | parameters must be a valid VkDisplayModeParametersKHR structure |
VUID-VkDisplayModeCreateInfoKHR-sType-sType | Y | | None | implicit | VkDisplayModeCreateInfoKHR | (VK_KHR_surface)+(VK_KHR_display) | sType must be VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR |
VUID-VkDisplayModeParametersKHR-height-01991 | Y | | DisplayPlaneSurface | explicit | VkDisplayModeParametersKHR | (VK_KHR_surface)+(VK_KHR_display) | The height member of visibleRegion must be greater than 0 |
VUID-VkDisplayModeParametersKHR-refreshRate-01992 | Y | | DisplayPlaneSurface | explicit | VkDisplayModeParametersKHR | (VK_KHR_surface)+(VK_KHR_display) | refreshRate must be greater than 0 |
VUID-VkDisplayModeParametersKHR-width-01990 | Y | | DisplayPlaneSurface | explicit | VkDisplayModeParametersKHR | (VK_KHR_surface)+(VK_KHR_display) | The width member of visibleRegion must be greater than 0 |
VUID-VkDisplayModeProperties2KHR-pNext-pNext | Y | | None | implicit | VkDisplayModeProperties2KHR | (VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2) | pNext must be NULL |
VUID-VkDisplayModeProperties2KHR-sType-sType | Y | | None | implicit | VkDisplayModeProperties2KHR | (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-sType | Y | | None | implicit | VkDisplayNativeHdrSurfaceCapabilitiesAMD | (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-pNext | Y | | None | implicit | VkDisplayPlaneCapabilities2KHR | (VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2) | pNext must be NULL |
VUID-VkDisplayPlaneCapabilities2KHR-sType-sType | Y | | None | implicit | VkDisplayPlaneCapabilities2KHR | (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-parameter | Y | | None | implicit | VkDisplayPlaneInfo2KHR | (VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2) | mode must be a valid VkDisplayModeKHR handle |
VUID-VkDisplayPlaneInfo2KHR-pNext-pNext | Y | | None | implicit | VkDisplayPlaneInfo2KHR | (VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2) | pNext must be NULL |
VUID-VkDisplayPlaneInfo2KHR-sType-sType | Y | | None | implicit | VkDisplayPlaneInfo2KHR | (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-pNext | Y | | None | implicit | VkDisplayPlaneProperties2KHR | (VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2) | pNext must be NULL |
VUID-VkDisplayPlaneProperties2KHR-sType-sType | Y | | None | implicit | VkDisplayPlaneProperties2KHR | (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-pNext | Y | | None | implicit | VkDisplayPowerInfoEXT | (VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_display_control) | pNext must be NULL |
VUID-VkDisplayPowerInfoEXT-powerState-parameter | Y | | None | implicit | VkDisplayPowerInfoEXT | (VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_display_control) | powerState must be a valid VkDisplayPowerStateEXT value |
VUID-VkDisplayPowerInfoEXT-sType-sType | Y | | None | implicit | VkDisplayPowerInfoEXT | (VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_display_control) | sType must be VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT |
VUID-VkDisplayPresentInfoKHR-dstRect-01258 | N | | None | explicit | VkDisplayPresentInfoKHR | (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-01259 | N | | None | explicit | VkDisplayPresentInfoKHR | (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-sType | Y | | None | implicit | VkDisplayPresentInfoKHR | (VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain) | sType must be VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR |
VUID-VkDisplayPresentInfoKHR-srcRect-01257 | N | | None | explicit | VkDisplayPresentInfoKHR | (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-pNext | Y | | None | implicit | VkDisplayProperties2KHR | (VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2) | pNext must be NULL |
VUID-VkDisplayProperties2KHR-sType-sType | Y | | None | implicit | VkDisplayProperties2KHR | (VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2) | sType must be VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR |
VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01254 | Y | | DisplayPlaneSurface | explicit | VkDisplaySurfaceCreateInfoKHR | (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-01255 | Y | | DisplayPlaneSurface | explicit | VkDisplaySurfaceCreateInfoKHR | (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-parameter | Y | | None | implicit | VkDisplaySurfaceCreateInfoKHR | (VK_KHR_surface)+(VK_KHR_display) | alphaMode must be a valid VkDisplayPlaneAlphaFlagBitsKHR value |
VUID-VkDisplaySurfaceCreateInfoKHR-displayMode-parameter | Y | | None | implicit | VkDisplaySurfaceCreateInfoKHR | (VK_KHR_surface)+(VK_KHR_display) | displayMode must be a valid VkDisplayModeKHR handle |
VUID-VkDisplaySurfaceCreateInfoKHR-flags-zerobitmask | Y | | None | implicit | VkDisplaySurfaceCreateInfoKHR | (VK_KHR_surface)+(VK_KHR_display) | flags must be 0 |
VUID-VkDisplaySurfaceCreateInfoKHR-pNext-pNext | Y | | None | implicit | VkDisplaySurfaceCreateInfoKHR | (VK_KHR_surface)+(VK_KHR_display) | pNext must be NULL |
VUID-VkDisplaySurfaceCreateInfoKHR-planeIndex-01252 | Y | | DisplayPlaneSurface | explicit | VkDisplaySurfaceCreateInfoKHR | (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-01253 | N | | None | explicit | VkDisplaySurfaceCreateInfoKHR | (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-sType | Y | | None | implicit | VkDisplaySurfaceCreateInfoKHR | (VK_KHR_surface)+(VK_KHR_display) | sType must be VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR |
VUID-VkDisplaySurfaceCreateInfoKHR-transform-parameter | Y | | None | implicit | VkDisplaySurfaceCreateInfoKHR | (VK_KHR_surface)+(VK_KHR_display) | transform must be a valid VkSurfaceTransformFlagBitsKHR value |
VUID-VkDisplaySurfaceCreateInfoKHR-width-01256 | Y | | DisplayPlaneSurface | explicit | VkDisplaySurfaceCreateInfoKHR | (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-00552 | N | | None | explicit | VkDrawIndexedIndirectCommand | core | For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description |
VUID-VkDrawIndexedIndirectCommand-firstInstance-00554 | N | | None | explicit | VkDrawIndexedIndirectCommand | core | If the drawIndirectFirstInstance feature is not enabled, firstInstance must be 0 |
VUID-VkDrawIndexedIndirectCommand-indexSize-00553 | N | | None | explicit | VkDrawIndexedIndirectCommand | core | (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-00500 | N | | None | explicit | VkDrawIndirectCommand | core | For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description |
VUID-VkDrawIndirectCommand-firstInstance-00501 | N | | None | explicit | VkDrawIndirectCommand | core | If the drawIndirectFirstInstance feature is not enabled, firstInstance must be 0 |
VUID-VkDrawMeshTasksIndirectCommandNV-taskCount-02175 | N | | None | explicit | VkDrawMeshTasksIndirectCommandNV | (VK_NV_mesh_shader) | taskCount must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxDrawMeshTasksCount |
VUID-VkDrmFormatModifierPropertiesListEXT-sType-sType | Y | | None | implicit | VkDrmFormatModifierPropertiesListEXT | (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-parameter | Y | | None | implicit | VkEventCreateInfo | core | flags must be a valid combination of VkEventCreateFlagBits values |
VUID-VkEventCreateInfo-pNext-pNext | Y | | None | implicit | VkEventCreateInfo | core | pNext must be NULL |
VUID-VkEventCreateInfo-sType-sType | Y | | None | implicit | VkEventCreateInfo | core | sType must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO |
VUID-VkExportFenceCreateInfo-handleTypes-01446 | N | | None | explicit | VkExportFenceCreateInfo | (VK_VERSION_1_1,VK_KHR_external_fence) | The bits in handleTypes must be supported and compatible, as reported by VkExternalFenceProperties |
VUID-VkExportFenceCreateInfo-handleTypes-parameter | Y | | None | implicit | VkExportFenceCreateInfo | (VK_VERSION_1_1,VK_KHR_external_fence) | handleTypes must be a valid combination of VkExternalFenceHandleTypeFlagBits values |
VUID-VkExportFenceCreateInfo-sType-sType | Y | | None | implicit | VkExportFenceCreateInfo | (VK_VERSION_1_1,VK_KHR_external_fence) | sType must be VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO |
VUID-VkExportFenceWin32HandleInfoKHR-handleTypes-01447 | N | | None | explicit | VkExportFenceWin32HandleInfoKHR | (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-parameter | N | | None | implicit | VkExportFenceWin32HandleInfoKHR | (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-sType | Y | | None | implicit | VkExportFenceWin32HandleInfoKHR | (VK_KHR_external_fence_win32) | sType must be VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR |
VUID-VkExportMemoryAllocateInfo-handleTypes-00656 | N | | None | explicit | VkExportMemoryAllocateInfo | (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-parameter | Y | | None | implicit | VkExportMemoryAllocateInfo | (VK_VERSION_1_1,VK_KHR_external_memory) | handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values |
VUID-VkExportMemoryAllocateInfo-sType-sType | Y | | None | implicit | VkExportMemoryAllocateInfo | (VK_VERSION_1_1,VK_KHR_external_memory) | sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO |
VUID-VkExportMemoryAllocateInfoNV-handleTypes-parameter | Y | | None | implicit | VkExportMemoryAllocateInfoNV | (VK_NV_external_memory) | handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values |
VUID-VkExportMemoryAllocateInfoNV-sType-sType | Y | | None | implicit | VkExportMemoryAllocateInfoNV | (VK_NV_external_memory) | sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV |
VUID-VkExportMemoryWin32HandleInfoKHR-handleTypes-00657 | N | | None | explicit | VkExportMemoryWin32HandleInfoKHR | (VK_KHR_external_memory_win32) | If VkExportMemoryAllocateInfo::handleTypes does not include VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, a VkExportMemoryWin32HandleInfoKHR structure must not be included in the pNext chain of VkMemoryAllocateInfo |
VUID-VkExportMemoryWin32HandleInfoKHR-pAttributes-parameter | N | | None | implicit | VkExportMemoryWin32HandleInfoKHR | (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-sType | Y | | None | implicit | VkExportMemoryWin32HandleInfoKHR | (VK_KHR_external_memory_win32) | sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR |
VUID-VkExportMemoryWin32HandleInfoNV-pAttributes-parameter | N | | None | implicit | VkExportMemoryWin32HandleInfoNV | (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-sType | Y | | None | implicit | VkExportMemoryWin32HandleInfoNV | (VK_NV_external_memory_win32) | sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV |
VUID-VkExportSemaphoreCreateInfo-handleTypes-01124 | N | | None | explicit | VkExportSemaphoreCreateInfo | (VK_VERSION_1_1,VK_KHR_external_semaphore) | The bits in handleTypes must be supported and compatible, as reported by VkExternalSemaphoreProperties |
VUID-VkExportSemaphoreCreateInfo-handleTypes-parameter | Y | | None | implicit | VkExportSemaphoreCreateInfo | (VK_VERSION_1_1,VK_KHR_external_semaphore) | handleTypes must be a valid combination of VkExternalSemaphoreHandleTypeFlagBits values |
VUID-VkExportSemaphoreCreateInfo-sType-sType | Y | | None | implicit | VkExportSemaphoreCreateInfo | (VK_VERSION_1_1,VK_KHR_external_semaphore) | sType must be VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO |
VUID-VkExportSemaphoreWin32HandleInfoKHR-handleTypes-01125 | N | | None | explicit | VkExportSemaphoreWin32HandleInfoKHR | (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-parameter | N | | None | implicit | VkExportSemaphoreWin32HandleInfoKHR | (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-sType | Y | | None | implicit | VkExportSemaphoreWin32HandleInfoKHR | (VK_KHR_external_semaphore_win32) | sType must be VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR |
VUID-VkExternalBufferProperties-pNext-pNext | Y | | None | implicit | VkExternalBufferProperties | (VK_VERSION_1_1,VK_KHR_external_memory_capabilities) | pNext must be NULL |
VUID-VkExternalBufferProperties-sType-sType | Y | | None | implicit | VkExternalBufferProperties | (VK_VERSION_1_1,VK_KHR_external_memory_capabilities) | sType must be VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES |
VUID-VkExternalFenceProperties-pNext-pNext | Y | | None | implicit | VkExternalFenceProperties | (VK_VERSION_1_1,VK_KHR_external_fence_capabilities) | pNext must be NULL |
VUID-VkExternalFenceProperties-sType-sType | Y | | None | implicit | VkExternalFenceProperties | (VK_VERSION_1_1,VK_KHR_external_fence_capabilities) | sType must be VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES |
VUID-VkExternalFormatANDROID-externalFormat-01894 | Y | | AndroidHardwareBufferImageCreate | explicit | VkExternalFormatANDROID | (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-sType | Y | | None | implicit | VkExternalFormatANDROID | (VK_ANDROID_external_memory_android_hardware_buffer) | sType must be VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID |
VUID-VkExternalImageFormatProperties-sType-sType | Y | | None | implicit | VkExternalImageFormatProperties | (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-parameter | Y | | None | implicit | VkExternalMemoryBufferCreateInfo | (VK_VERSION_1_1,VK_KHR_external_memory) | handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values |
VUID-VkExternalMemoryBufferCreateInfo-sType-sType | Y | | None | implicit | VkExternalMemoryBufferCreateInfo | (VK_VERSION_1_1,VK_KHR_external_memory) | sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO |
VUID-VkExternalMemoryImageCreateInfo-handleTypes-parameter | Y | | None | implicit | VkExternalMemoryImageCreateInfo | (VK_VERSION_1_1,VK_KHR_external_memory) | handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values |
VUID-VkExternalMemoryImageCreateInfo-sType-sType | Y | | None | implicit | VkExternalMemoryImageCreateInfo | (VK_VERSION_1_1,VK_KHR_external_memory) | sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO |
VUID-VkExternalMemoryImageCreateInfoNV-handleTypes-parameter | Y | | None | implicit | VkExternalMemoryImageCreateInfoNV | (VK_NV_external_memory) | handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values |
VUID-VkExternalMemoryImageCreateInfoNV-sType-sType | Y | | None | implicit | VkExternalMemoryImageCreateInfoNV | (VK_NV_external_memory) | sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV |
VUID-VkExternalSemaphoreProperties-pNext-pNext | Y | | None | implicit | VkExternalSemaphoreProperties | (VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities) | pNext must be NULL |
VUID-VkExternalSemaphoreProperties-sType-sType | Y | | None | implicit | VkExternalSemaphoreProperties | (VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities) | sType must be VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES |
VUID-VkFenceCreateInfo-flags-parameter | Y | | None | implicit | VkFenceCreateInfo | core | flags must be a valid combination of VkFenceCreateFlagBits values |
VUID-VkFenceCreateInfo-pNext-pNext | Y | | None | implicit | VkFenceCreateInfo | core | 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 VkExportFenceCreateInfo or VkExportFenceWin32HandleInfoKHR |
VUID-VkFenceCreateInfo-sType-sType | Y | | None | implicit | VkFenceCreateInfo | core | sType must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO |
VUID-VkFenceCreateInfo-sType-unique | Y | | None | implicit | VkFenceCreateInfo | core | The sType value of each struct in the pNext chain must be unique |
VUID-VkFenceGetFdInfoKHR-fence-01455 | N | | None | explicit | VkFenceGetFdInfoKHR | (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-parameter | Y | | None | implicit | VkFenceGetFdInfoKHR | (VK_KHR_external_fence_fd) | fence must be a valid VkFence handle |
VUID-VkFenceGetFdInfoKHR-handleType-01453 | N | | None | explicit | VkFenceGetFdInfoKHR | (VK_KHR_external_fence_fd) | handleType must have been included in VkExportFenceCreateInfo::handleTypes when fence's current payload was created |
VUID-VkFenceGetFdInfoKHR-handleType-01454 | N | | None | explicit | VkFenceGetFdInfoKHR | (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-01456 | N | | None | explicit | VkFenceGetFdInfoKHR | (VK_KHR_external_fence_fd) | handleType must be defined as a POSIX file descriptor handle |
VUID-VkFenceGetFdInfoKHR-handleType-parameter | Y | | None | implicit | VkFenceGetFdInfoKHR | (VK_KHR_external_fence_fd) | handleType must be a valid VkExternalFenceHandleTypeFlagBits value |
VUID-VkFenceGetFdInfoKHR-pNext-pNext | Y | | None | implicit | VkFenceGetFdInfoKHR | (VK_KHR_external_fence_fd) | pNext must be NULL |
VUID-VkFenceGetFdInfoKHR-sType-sType | Y | | None | implicit | VkFenceGetFdInfoKHR | (VK_KHR_external_fence_fd) | sType must be VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR |
VUID-VkFenceGetWin32HandleInfoKHR-fence-01450 | N | | None | explicit | VkFenceGetWin32HandleInfoKHR | (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-parameter | Y | | None | implicit | VkFenceGetWin32HandleInfoKHR | (VK_KHR_external_fence_win32) | fence must be a valid VkFence handle |
VUID-VkFenceGetWin32HandleInfoKHR-handleType-01448 | N | | None | explicit | VkFenceGetWin32HandleInfoKHR | (VK_KHR_external_fence_win32) | handleType must have been included in VkExportFenceCreateInfo::handleTypes when the fence's current payload was created |
VUID-VkFenceGetWin32HandleInfoKHR-handleType-01449 | N | | None | explicit | VkFenceGetWin32HandleInfoKHR | (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-01451 | N | | None | explicit | VkFenceGetWin32HandleInfoKHR | (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-01452 | N | | None | explicit | VkFenceGetWin32HandleInfoKHR | (VK_KHR_external_fence_win32) | handleType must be defined as an NT handle or a global share handle |
VUID-VkFenceGetWin32HandleInfoKHR-handleType-parameter | Y | | None | implicit | VkFenceGetWin32HandleInfoKHR | (VK_KHR_external_fence_win32) | handleType must be a valid VkExternalFenceHandleTypeFlagBits value |
VUID-VkFenceGetWin32HandleInfoKHR-pNext-pNext | Y | | None | implicit | VkFenceGetWin32HandleInfoKHR | (VK_KHR_external_fence_win32) | pNext must be NULL |
VUID-VkFenceGetWin32HandleInfoKHR-sType-sType | Y | | None | implicit | VkFenceGetWin32HandleInfoKHR | (VK_KHR_external_fence_win32) | sType must be VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR |
VUID-VkFilterCubicImageViewImageFormatPropertiesEXT-pNext-02627 | N | | None | explicit | VkFilterCubicImageViewImageFormatPropertiesEXT | (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-sType | Y | | None | implicit | VkFilterCubicImageViewImageFormatPropertiesEXT | (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-pNext | Y | | None | implicit | VkFormatProperties2 | (VK_VERSION_1_1,VK_KHR_get_physical_device_properties2) | Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDrmFormatModifierPropertiesListEXT, VkVideoProfileKHR, or VkVideoProfilesKHR |
VUID-VkFormatProperties2-sType-sType | Y | | None | implicit | VkFormatProperties2 | (VK_VERSION_1_1,VK_KHR_get_physical_device_properties2) | sType must be VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 |
VUID-VkFormatProperties2-sType-unique | Y | | None | implicit | VkFormatProperties2 | (VK_VERSION_1_1,VK_KHR_get_physical_device_properties2) | The sType value of each struct in the pNext chain must be unique |
VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04524 | Y | | InvalidFragmentShadingRateAttachments | explicit | VkFragmentShadingRateAttachmentInfoKHR | (VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate) | If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, its layout member must be equal to VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR |
VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04525 | Y | | InvalidFragmentShadingRateAttachments | explicit | VkFragmentShadingRateAttachmentInfoKHR | (VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate) | If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.width must be a power of two value |
VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04526 | Y | | InvalidFragmentShadingRateAttachments | explicit | VkFragmentShadingRateAttachmentInfoKHR | (VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate) | If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.width must be less than or equal to maxFragmentShadingRateAttachmentTexelSize.width |
VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04527 | Y | | InvalidFragmentShadingRateAttachments | explicit | VkFragmentShadingRateAttachmentInfoKHR | (VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate) | If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.width must be greater than or equal to minFragmentShadingRateAttachmentTexelSize.width |
VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04528 | Y | | InvalidFragmentShadingRateAttachments | explicit | VkFragmentShadingRateAttachmentInfoKHR | (VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate) | If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.height must be a power of two value |
VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04529 | Y | | InvalidFragmentShadingRateAttachments | explicit | VkFragmentShadingRateAttachmentInfoKHR | (VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate) | If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.height must be less than or equal to maxFragmentShadingRateAttachmentTexelSize.height |
VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04530 | Y | | InvalidFragmentShadingRateAttachments | explicit | VkFragmentShadingRateAttachmentInfoKHR | (VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate) | If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.height must be greater than or equal to minFragmentShadingRateAttachmentTexelSize.height |
VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04531 | Y | | InvalidFragmentShadingRateAttachments | explicit | VkFragmentShadingRateAttachmentInfoKHR | (VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate) | If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, the quotient of shadingRateAttachmentTexelSize.width and shadingRateAttachmentTexelSize.height must be less than or equal to maxFragmentShadingRateAttachmentTexelSizeAspectRatio |
VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04532 | Y | | InvalidFragmentShadingRateAttachments | explicit | VkFragmentShadingRateAttachmentInfoKHR | (VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate) | If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, the quotient of shadingRateAttachmentTexelSize.height and shadingRateAttachmentTexelSize.width must be less than or equal to maxFragmentShadingRateAttachmentTexelSizeAspectRatio |
VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-parameter | Y | | None | implicit | VkFragmentShadingRateAttachmentInfoKHR | (VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate) | If pFragmentShadingRateAttachment is not NULL, pFragmentShadingRateAttachment must be a valid pointer to a valid VkAttachmentReference2 structure |
VUID-VkFragmentShadingRateAttachmentInfoKHR-sType-sType | Y | | None | implicit | VkFragmentShadingRateAttachmentInfoKHR | (VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate) | sType must be VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR |
VUID-VkFramebufferAttachmentImageInfo-flags-parameter | Y | | None | implicit | VkFramebufferAttachmentImageInfo | (VK_VERSION_1_2,VK_KHR_imageless_framebuffer) | flags must be a valid combination of VkImageCreateFlagBits values |
VUID-VkFramebufferAttachmentImageInfo-pNext-pNext | N | | None | implicit | VkFramebufferAttachmentImageInfo | (VK_VERSION_1_2,VK_KHR_imageless_framebuffer) | pNext must be NULL |
VUID-VkFramebufferAttachmentImageInfo-pViewFormats-parameter | N | | None | implicit | VkFramebufferAttachmentImageInfo | (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-sType | Y | | None | implicit | VkFramebufferAttachmentImageInfo | (VK_VERSION_1_2,VK_KHR_imageless_framebuffer) | sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO |
VUID-VkFramebufferAttachmentImageInfo-usage-parameter | Y | | None | implicit | VkFramebufferAttachmentImageInfo | (VK_VERSION_1_2,VK_KHR_imageless_framebuffer) | usage must be a valid combination of VkImageUsageFlagBits values |
VUID-VkFramebufferAttachmentImageInfo-usage-requiredbitmask | Y | | None | implicit | VkFramebufferAttachmentImageInfo | (VK_VERSION_1_2,VK_KHR_imageless_framebuffer) | usage must not be 0 |
VUID-VkFramebufferAttachmentsCreateInfo-pAttachmentImageInfos-parameter | Y | | None | implicit | VkFramebufferAttachmentsCreateInfo | (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-sType | Y | | None | implicit | VkFramebufferAttachmentsCreateInfo | (VK_VERSION_1_2,VK_KHR_imageless_framebuffer) | sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO |
VUID-VkFramebufferCreateInfo-attachmentCount-00876 | Y | | FramebufferCreateErrors | explicit | VkFramebufferCreateInfo | core | attachmentCount must be equal to the attachment count specified in renderPass |
VUID-VkFramebufferCreateInfo-commonparent | Y | | None | implicit | VkFramebufferCreateInfo | core | Both 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-02778 | Y | | None | explicit | VkFramebufferCreateInfo | core | If 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-03189 | Y | | ImagelessFramebufferFeatureEnableTest | explicit | VkFramebufferCreateInfo | (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-03190 | Y | | ImagelessFramebufferCreationTests | explicit | VkFramebufferCreateInfo | (VK_VERSION_1_2,VK_KHR_imageless_framebuffer) | If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the pNext chain must include an instance of VkFramebufferAttachmentsCreateInfo |
VUID-VkFramebufferCreateInfo-flags-03191 | Y | | ImagelessFramebufferCreationTests | explicit | VkFramebufferCreateInfo | (VK_VERSION_1_2,VK_KHR_imageless_framebuffer) | If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the attachmentImageInfoCount member of an instance of VkFramebufferAttachmentsCreateInfo in the pNext chain must be equal to either zero or attachmentCount |
VUID-VkFramebufferCreateInfo-flags-03196 | N | | None | explicit | VkFramebufferCreateInfo | (VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_EXT_fragment_density_map) | If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of an instance of VkFramebufferAttachmentsCreateInfo in the pNext chain that is referenced by VkRenderPassFragmentDensityMapCreateInfoEXT::fragmentDensityMapAttachment in renderPass must be greater than or equal to the ceiling of width/maxFragmentDensityTexelSize.width |
VUID-VkFramebufferCreateInfo-flags-03197 | N | | None | explicit | VkFramebufferCreateInfo | (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-03201 | Y | | ImagelessFramebufferAttachmentImageUsageMismatchTests | explicit | VkFramebufferCreateInfo | (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-03202 | Y | | ImagelessFramebufferAttachmentImageUsageMismatchTests | explicit | VkFramebufferCreateInfo | (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-03203 | Y | | ImagelessFramebufferDepthStencilResolveAttachmentTests | explicit | VkFramebufferCreateInfo | (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-03204 | Y | | ImagelessFramebufferAttachmentImageUsageMismatchTests | explicit | VkFramebufferCreateInfo | (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-03205 | Y | | ImagelessFramebufferCreationTests | explicit | VkFramebufferCreateInfo | (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-04113 | Y | | ImagelessFramebufferRenderPassBeginImageView3D | explicit | VkFramebufferCreateInfo | core | If 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-04533 | Y | | FramebufferCreateErrors | explicit | VkFramebufferCreateInfo | core | If 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-04534 | Y | | FramebufferCreateErrors | explicit | VkFramebufferCreateInfo | core | If 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-04535 | Y | | FramebufferCreateErrors | explicit | VkFramebufferCreateInfo | core | If 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-04537 | Y | | InvalidFragmentShadingRateFramebufferDimensions | explicit | VkFramebufferCreateInfo | (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-04538 | Y | | InvalidFragmentShadingRateFramebufferDimensions | explicit | VkFramebufferCreateInfo | (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-04539 | Y | | InvalidFragmentShadingRateFramebufferDimensions | explicit | VkFramebufferCreateInfo | (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-04540 | Y | | InvalidFragmentShadingRateFramebufferDimensions | explicit | VkFramebufferCreateInfo | (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-04541 | Y | | ImagelessFramebufferCreationTests | explicit | VkFramebufferCreateInfo | (VK_VERSION_1_2,VK_KHR_imageless_framebuffer) | If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of an instance of VkFramebufferAttachmentsCreateInfo in the pNext chain that is used as an input, color, resolve or depth/stencil attachment in renderPass must be greater than or equal to width |
VUID-VkFramebufferCreateInfo-flags-04542 | Y | | ImagelessFramebufferCreationTests | explicit | VkFramebufferCreateInfo | (VK_VERSION_1_2,VK_KHR_imageless_framebuffer) | If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of an instance of VkFramebufferAttachmentsCreateInfo in the pNext chain that is used as an input, color, resolve or depth/stencil attachment in renderPass must be greater than or equal to height |
VUID-VkFramebufferCreateInfo-flags-04543 | Y | | InvalidFragmentShadingRateImagelessFramebufferDimensions | explicit | VkFramebufferCreateInfo | (VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_KHR_fragment_shading_rate) | If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of an instance of VkFramebufferAttachmentsCreateInfo in the pNext chain that is used as a fragment shading rate attachment must be greater than or equal to {lceil}width / texelWidth{rceil}, where texelWidth is the largest value of shadingRateAttachmentTexelSize.width in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment |
VUID-VkFramebufferCreateInfo-flags-04544 | Y | | InvalidFragmentShadingRateImagelessFramebufferDimensions | explicit | VkFramebufferCreateInfo | (VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_KHR_fragment_shading_rate) | If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of an instance of VkFramebufferAttachmentsCreateInfo in the pNext chain that is used as a fragment shading rate attachment must be greater than or equal to {lceil}height / texelHeight{rceil}, where texelHeight is the largest value of shadingRateAttachmentTexelSize.height in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment |
VUID-VkFramebufferCreateInfo-flags-04545 | Y | | InvalidFragmentShadingRateImagelessFramebufferDimensions | explicit | VkFramebufferCreateInfo | (VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_KHR_fragment_shading_rate) | If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of an instance of VkFramebufferAttachmentsCreateInfo in the pNext chain that is used as a fragment shading rate attachment must be either 1, or greater than or equal to layers |
VUID-VkFramebufferCreateInfo-flags-04547 | Y | | ImagelessFramebufferCreationTests | explicit | VkFramebufferCreateInfo | (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-04548 | Y | | InvalidFragmentShadingRateFramebufferUsage | explicit | VkFramebufferCreateInfo | (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-04549 | Y | | InvalidFragmentShadingRateImagelessFramebufferUsage | explicit | VkFramebufferCreateInfo | (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-04587 | N | | None | explicit | VkFramebufferCreateInfo | (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-parameter | Y | | None | implicit | VkFramebufferCreateInfo | core | flags must be a valid combination of VkFramebufferCreateFlagBits values |
VUID-VkFramebufferCreateInfo-height-00887 | Y | | FramebufferCreateErrors | explicit | VkFramebufferCreateInfo | core | height must be greater than 0 |
VUID-VkFramebufferCreateInfo-height-00888 | Y | | FramebufferCreateErrors | explicit | VkFramebufferCreateInfo | core | height must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferHeight |
VUID-VkFramebufferCreateInfo-layers-00889 | Y | | FramebufferCreateErrors | explicit | VkFramebufferCreateInfo | core | layers must be greater than 0 |
VUID-VkFramebufferCreateInfo-layers-00890 | Y | | FramebufferCreateErrors | explicit | VkFramebufferCreateInfo | core | layers must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferLayers |
VUID-VkFramebufferCreateInfo-pAttachments-00877 | Y | | None | explicit | VkFramebufferCreateInfo | core | If 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-00879 | Y | | None | explicit | VkFramebufferCreateInfo | core | If 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-00880 | Y | | FramebufferCreateErrors | explicit | VkFramebufferCreateInfo | core | If 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-00881 | Y | | FramebufferCreateErrors | explicit | VkFramebufferCreateInfo | core | If 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-00883 | Y | | FramebufferCreateErrors | explicit | VkFramebufferCreateInfo | core | If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must only specify a single mip level |
VUID-VkFramebufferCreateInfo-pAttachments-00884 | Y | | FramebufferCreateErrors | explicit | VkFramebufferCreateInfo | core | If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with the identity swizzle |
VUID-VkFramebufferCreateInfo-pAttachments-00891 | Y | | FramebufferCreateErrors | explicit | VkFramebufferCreateInfo | (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-02552 | N | | None | explicit | VkFramebufferCreateInfo | (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-02555 | Y | | FramebufferCreateErrors | explicit | VkFramebufferCreateInfo | (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-02556 | Y | | FramebufferCreateErrors | explicit | VkFramebufferCreateInfo | (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-02633 | Y | | FramebufferCreateErrors | explicit | VkFramebufferCreateInfo | core | If 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-02634 | Y | | FramebufferDepthStencilResolveAttachmentTests | explicit | VkFramebufferCreateInfo | (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-02744 | N | | None | explicit | VkFramebufferCreateInfo | (VK_EXT_fragment_density_map)+!(VK_VERSION_1_1,VK_KHR_multiview) | An element of pAttachments that is referenced by fragmentDensityMapAttachment must have a layerCount equal to 1 |
VUID-VkFramebufferCreateInfo-pNext-pNext | Y | | None | implicit | VkFramebufferCreateInfo | core | pNext must be NULL or a pointer to a valid instance of VkFramebufferAttachmentsCreateInfo |
VUID-VkFramebufferCreateInfo-renderPass-02531 | Y | | FramebufferCreateErrors | explicit | VkFramebufferCreateInfo | (VK_VERSION_1_1,VK_KHR_multiview) | If renderPass was specified with non-zero view masks, layers must be 1 |
VUID-VkFramebufferCreateInfo-renderPass-02553 | N | | None | explicit | VkFramebufferCreateInfo | (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-02746 | N | | None | explicit | VkFramebufferCreateInfo | (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-02747 | N | | None | explicit | VkFramebufferCreateInfo | (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-03198 | Y | | ImagelessFramebufferAttachmentMultiviewImageLayerCountMismatchTests, ImagelessFramebufferDepthStencilResolveAttachmentTests | explicit | VkFramebufferCreateInfo | (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-04536 | Y | | FramebufferCreateErrors | explicit | VkFramebufferCreateInfo | (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-04546 | Y | | ImagelessFramebufferCreationTests | explicit | VkFramebufferCreateInfo | (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-parameter | Y | | None | implicit | VkFramebufferCreateInfo | core | renderPass must be a valid VkRenderPass handle |
VUID-VkFramebufferCreateInfo-sType-sType | Y | | None | implicit | VkFramebufferCreateInfo | core | sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO |
VUID-VkFramebufferCreateInfo-sType-unique | Y | | None | implicit | VkFramebufferCreateInfo | core | The sType value of each struct in the pNext chain must be unique |
VUID-VkFramebufferCreateInfo-width-00885 | Y | | FramebufferCreateErrors | explicit | VkFramebufferCreateInfo | core | width must be greater than 0 |
VUID-VkFramebufferCreateInfo-width-00886 | Y | | FramebufferCreateErrors | explicit | VkFramebufferCreateInfo | core | width must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferWidth |
VUID-VkFramebufferMixedSamplesCombinationNV-pNext-pNext | Y | | None | implicit | VkFramebufferMixedSamplesCombinationNV | (VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode) | pNext must be NULL |
VUID-VkFramebufferMixedSamplesCombinationNV-sType-sType | Y | | None | implicit | VkFramebufferMixedSamplesCombinationNV | (VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode) | sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV |
VUID-VkGeneratedCommandsInfoNV-commonparent | Y | | None | implicit | VkGeneratedCommandsInfoNV | (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-02913 | N | | None | explicit | VkGeneratedCommandsInfoNV | (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-02914 | N | | None | explicit | VkGeneratedCommandsInfoNV | (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-02915 | N | | None | explicit | VkGeneratedCommandsInfoNV | (VK_NV_device_generated_commands) | If the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, then the pipeline`s VkPipelineLayout must match the VkIndirectCommandsLayoutTokenNV::pushconstantPipelineLayout |
VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-parameter | Y | | None | implicit | VkGeneratedCommandsInfoNV | (VK_NV_device_generated_commands) | indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle |
VUID-VkGeneratedCommandsInfoNV-pNext-pNext | Y | | None | implicit | VkGeneratedCommandsInfoNV | (VK_NV_device_generated_commands) | pNext must be NULL |
VUID-VkGeneratedCommandsInfoNV-pStreams-parameter | Y | | None | implicit | VkGeneratedCommandsInfoNV | (VK_NV_device_generated_commands) | pStreams must be a valid pointer to an array of streamCount valid VkIndirectCommandsStreamNV structures |
VUID-VkGeneratedCommandsInfoNV-pipeline-02912 | N | | None | explicit | VkGeneratedCommandsInfoNV | (VK_NV_device_generated_commands) | The provided pipeline must match the pipeline bound at execution time |
VUID-VkGeneratedCommandsInfoNV-pipeline-parameter | Y | | None | implicit | VkGeneratedCommandsInfoNV | (VK_NV_device_generated_commands) | pipeline must be a valid VkPipeline handle |
VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-parameter | Y | | None | implicit | VkGeneratedCommandsInfoNV | (VK_NV_device_generated_commands) | pipelineBindPoint must be a valid VkPipelineBindPoint value |
VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02918 | N | | None | explicit | VkGeneratedCommandsInfoNV | (VK_NV_device_generated_commands) | preprocessBuffer must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set in its usage flag |
VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02971 | N | | None | explicit | VkGeneratedCommandsInfoNV | (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-parameter | Y | | None | implicit | VkGeneratedCommandsInfoNV | (VK_NV_device_generated_commands) | preprocessBuffer must be a valid VkBuffer handle |
VUID-VkGeneratedCommandsInfoNV-preprocessOffset-02919 | N | | None | explicit | VkGeneratedCommandsInfoNV | (VK_NV_device_generated_commands) | preprocessOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minIndirectCommandsBufferOffsetAlignment |
VUID-VkGeneratedCommandsInfoNV-preprocessSize-02920 | N | | None | explicit | VkGeneratedCommandsInfoNV | (VK_NV_device_generated_commands) | preprocessSize must be at least equal to the memory requirement`s size returned by vkGetGeneratedCommandsMemoryRequirementsNV using the matching inputs (indirectCommandsLayout, ...) as within this structure |
VUID-VkGeneratedCommandsInfoNV-sType-sType | Y | | None | implicit | VkGeneratedCommandsInfoNV | (VK_NV_device_generated_commands) | sType must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV |
VUID-VkGeneratedCommandsInfoNV-sequencesCount-02917 | N | | None | explicit | VkGeneratedCommandsInfoNV | (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-02921 | N | | None | explicit | VkGeneratedCommandsInfoNV | (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-02922 | N | | None | explicit | VkGeneratedCommandsInfoNV | (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-02923 | N | | None | explicit | VkGeneratedCommandsInfoNV | (VK_NV_device_generated_commands) | If sequencesCountBuffer is not VK_NULL_HANDLE, sequencesCountOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minSequencesCountBufferOffsetAlignment |
VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02972 | N | | None | explicit | VkGeneratedCommandsInfoNV | (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-parameter | Y | | None | implicit | VkGeneratedCommandsInfoNV | (VK_NV_device_generated_commands) | If sequencesCountBuffer is not VK_NULL_HANDLE, sequencesCountBuffer must be a valid VkBuffer handle |
VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02924 | N | | None | explicit | VkGeneratedCommandsInfoNV | (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-02925 | N | | None | explicit | VkGeneratedCommandsInfoNV | (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-02926 | N | | None | explicit | VkGeneratedCommandsInfoNV | (VK_NV_device_generated_commands) | If sequencesIndexBuffer is not VK_NULL_HANDLE, sequencesIndexOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minSequencesIndexBufferOffsetAlignment |
VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02973 | N | | None | explicit | VkGeneratedCommandsInfoNV | (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-parameter | Y | | None | implicit | VkGeneratedCommandsInfoNV | (VK_NV_device_generated_commands) | If sequencesIndexBuffer is not VK_NULL_HANDLE, sequencesIndexBuffer must be a valid VkBuffer handle |
VUID-VkGeneratedCommandsInfoNV-streamCount-02916 | N | | None | explicit | VkGeneratedCommandsInfoNV | (VK_NV_device_generated_commands) | streamCount must match the indirectCommandsLayout's streamCount |
VUID-VkGeneratedCommandsInfoNV-streamCount-arraylength | Y | | None | implicit | VkGeneratedCommandsInfoNV | (VK_NV_device_generated_commands) | streamCount must be greater than 0 |
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-commonparent | Y | | None | implicit | VkGeneratedCommandsMemoryRequirementsInfoNV | (VK_NV_device_generated_commands) | Both of indirectCommandsLayout, and pipeline must have been created, allocated, or retrieved from the same VkDevice |
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-indirectCommandsLayout-parameter | Y | | None | implicit | VkGeneratedCommandsMemoryRequirementsInfoNV | (VK_NV_device_generated_commands) | indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle |
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-maxSequencesCount-02907 | N | | None | explicit | VkGeneratedCommandsMemoryRequirementsInfoNV | (VK_NV_device_generated_commands) | maxSequencesCount must be less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectSequenceCount |
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pNext-pNext | Y | | None | implicit | VkGeneratedCommandsMemoryRequirementsInfoNV | (VK_NV_device_generated_commands) | pNext must be NULL |
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipeline-parameter | Y | | None | implicit | VkGeneratedCommandsMemoryRequirementsInfoNV | (VK_NV_device_generated_commands) | pipeline must be a valid VkPipeline handle |
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-parameter | Y | | None | implicit | VkGeneratedCommandsMemoryRequirementsInfoNV | (VK_NV_device_generated_commands) | pipelineBindPoint must be a valid VkPipelineBindPoint value |
VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-sType-sType | Y | | None | implicit | VkGeneratedCommandsMemoryRequirementsInfoNV | (VK_NV_device_generated_commands) | sType must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV |
VUID-VkGeometryAABBNV-aabbData-parameter | Y | | None | implicit | VkGeometryAABBNV | (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-02439 | Y | | ValidateGeometryNV | explicit | VkGeometryAABBNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | offset must be less than the size of aabbData |
VUID-VkGeometryAABBNV-offset-02440 | Y | | ValidateGeometryNV | explicit | VkGeometryAABBNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | offset must be a multiple of 8 |
VUID-VkGeometryAABBNV-pNext-pNext | Y | | None | implicit | VkGeometryAABBNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | pNext must be NULL |
VUID-VkGeometryAABBNV-sType-sType | Y | | None | implicit | VkGeometryAABBNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | sType must be VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV |
VUID-VkGeometryAABBNV-stride-02441 | Y | | ValidateGeometryNV | explicit | VkGeometryAABBNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | stride must be a multiple of 8 |
VUID-VkGeometryDataNV-aabbs-parameter | N | | None | implicit | VkGeometryDataNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | aabbs must be a valid VkGeometryAABBNV structure |
VUID-VkGeometryDataNV-triangles-parameter | N | | None | implicit | VkGeometryDataNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | triangles must be a valid VkGeometryTrianglesNV structure |
VUID-VkGeometryNV-flags-parameter | Y | | None | implicit | VkGeometryNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | flags must be a valid combination of VkGeometryFlagBitsKHR values |
VUID-VkGeometryNV-geometry-parameter | N | | None | implicit | VkGeometryNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | geometry must be a valid VkGeometryDataNV structure |
VUID-VkGeometryNV-geometryType-03503 | Y | | ValidateGeometryNV | explicit | VkGeometryNV | (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-parameter | Y | | ValidateGeometryNV | implicit | VkGeometryNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | geometryType must be a valid VkGeometryTypeKHR value |
VUID-VkGeometryNV-pNext-pNext | Y | | None | implicit | VkGeometryNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | pNext must be NULL |
VUID-VkGeometryNV-sType-sType | Y | | None | implicit | VkGeometryNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | sType must be VK_STRUCTURE_TYPE_GEOMETRY_NV |
VUID-VkGeometryTrianglesNV-commonparent | Y | | None | implicit | VkGeometryTrianglesNV | (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-02436 | Y | | ValidateGeometryNV | explicit | VkGeometryTrianglesNV | (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-02434 | Y | | ValidateGeometryNV | explicit | VkGeometryTrianglesNV | (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-02435 | N | | None | explicit | VkGeometryTrianglesNV | (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-parameter | Y | | None | implicit | VkGeometryTrianglesNV | (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-02431 | Y | | ValidateGeometryNV | explicit | VkGeometryTrianglesNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | indexOffset must be less than the size of indexData |
VUID-VkGeometryTrianglesNV-indexOffset-02432 | Y | | ValidateGeometryNV | explicit | VkGeometryTrianglesNV | (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-02433 | Y | | None | explicit | VkGeometryTrianglesNV | (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-parameter | Y | | None | implicit | VkGeometryTrianglesNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | indexType must be a valid VkIndexType value |
VUID-VkGeometryTrianglesNV-pNext-pNext | Y | | None | implicit | VkGeometryTrianglesNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | pNext must be NULL |
VUID-VkGeometryTrianglesNV-sType-sType | Y | | None | implicit | VkGeometryTrianglesNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | sType must be VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV |
VUID-VkGeometryTrianglesNV-transformData-parameter | Y | | None | implicit | VkGeometryTrianglesNV | (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-02437 | Y | | ValidateGeometryNV | explicit | VkGeometryTrianglesNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | transformOffset must be less than the size of transformData |
VUID-VkGeometryTrianglesNV-transformOffset-02438 | Y | | ValidateGeometryNV | explicit | VkGeometryTrianglesNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | transformOffset must be a multiple of 16 |
VUID-VkGeometryTrianglesNV-vertexData-parameter | Y | | ValidateGeometryNV | implicit | VkGeometryTrianglesNV | (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-02430 | Y | | ValidateGeometryNV | explicit | VkGeometryTrianglesNV | (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-parameter | Y | | None | implicit | VkGeometryTrianglesNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | vertexFormat must be a valid VkFormat value |
VUID-VkGeometryTrianglesNV-vertexOffset-02428 | Y | | ValidateGeometryNV | explicit | VkGeometryTrianglesNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | vertexOffset must be less than the size of vertexData |
VUID-VkGeometryTrianglesNV-vertexOffset-02429 | Y | | ValidateGeometryNV | explicit | VkGeometryTrianglesNV | (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-03818 | N | | None | explicit | VkGeometryTrianglesNV | (VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing) | vertexStride must be less than or equal to 232-1 |
VUID-VkGraphicsPipelineCreateInfo-None-02322 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (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-04574 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (VK_NV_fragment_shading_rate_enums) | If the pipeline is being created with pre-rasterization shader state or fragment shader state, and the supersampleFragmentShadingRates feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must not be equal to VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV, or VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV. |
VUID-VkGraphicsPipelineCreateInfo-None-04575 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (VK_NV_fragment_shading_rate_enums) | If the pipeline is being created with pre-rasterization shader state or fragment shader state, and the noInvocationFragmentShadingRates feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must not be equal to VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV. |
VUID-VkGraphicsPipelineCreateInfo-None-04889 | N | | None | explicit | VkGraphicsPipelineCreateInfo | core | If the pipeline is being created with pre-rasterization shader state and fragment shader state, the fragment shader and last vertex processing shader stage and any relevant state must adhere to the pipeline linking rules described in the Shader Interfaces chapter |
VUID-VkGraphicsPipelineCreateInfo-None-04893 | N | | None | explicit | VkGraphicsPipelineCreateInfo | core | The pipeline must be created with a complete set of state |
VUID-VkGraphicsPipelineCreateInfo-attachmentCount-00746 | Y | | NumBlendAttachMismatch | explicit | VkGraphicsPipelineCreateInfo | core | If the pipeline is being created with fragment output interface state, and the subpass uses color attachments, the attachmentCount member of pColorBlendState must be equal to the colorAttachmentCount used to create subpass |
VUID-VkGraphicsPipelineCreateInfo-blendEnable-04717 | Y | | BlendingOnFormatWithoutBlendingSupport | explicit | VkGraphicsPipelineCreateInfo | core | If 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-commonparent | Y | | None | implicit | VkGraphicsPipelineCreateInfo | core | Each of basePipelineHandle, layout, and renderPass that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice |
VUID-VkGraphicsPipelineCreateInfo-coverageReductionMode-02722 | Y | | FramebufferMixedSamplesCoverageReduction | explicit | VkGraphicsPipelineCreateInfo | (VK_NV_coverage_reduction_mode) | If the pipeline is being created with fragment shader state, and the VK_NV_coverage_reduction_mode extension is enabled, the coverage reduction mode specified by VkPipelineCoverageReductionStateCreateInfoNV::coverageReductionMode, the rasterizationSamples member of pMultisampleState and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV |
VUID-VkGraphicsPipelineCreateInfo-flags-00722 | Y | | CreateGraphicsPipelineWithBadBasePointer | explicit | VkGraphicsPipelineCreateInfo | core | If 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-00723 | Y | | CreateGraphicsPipelineWithBadBasePointer | explicit | VkGraphicsPipelineCreateInfo | core | If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command's pCreateInfos parameter |
VUID-VkGraphicsPipelineCreateInfo-flags-00724 | Y | | None | explicit | VkGraphicsPipelineCreateInfo | core | If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is not -1, basePipelineHandle must be VK_NULL_HANDLE |
VUID-VkGraphicsPipelineCreateInfo-flags-00725 | Y | | None | explicit | VkGraphicsPipelineCreateInfo | core | If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is not VK_NULL_HANDLE, basePipelineIndex must be -1 |
VUID-VkGraphicsPipelineCreateInfo-flags-00764 | Y | | GraphicsPipelineInvalidFlags | explicit | VkGraphicsPipelineCreateInfo | (VK_VERSION_1_1,VK_KHR_device_group) | flags must not contain the VK_PIPELINE_CREATE_DISPATCH_BASE flag |
VUID-VkGraphicsPipelineCreateInfo-flags-02877 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (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-02966 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (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-03371 | Y | | GraphicsPipelineInvalidFlags | explicit | VkGraphicsPipelineCreateInfo | (VK_KHR_pipeline_library) | flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR |
VUID-VkGraphicsPipelineCreateInfo-flags-03372 | Y | | GraphicsPipelineInvalidFlags | explicit | VkGraphicsPipelineCreateInfo | (VK_KHR_ray_tracing_pipeline) | flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR |
VUID-VkGraphicsPipelineCreateInfo-flags-03373 | Y | | GraphicsPipelineInvalidFlags | explicit | VkGraphicsPipelineCreateInfo | (VK_KHR_ray_tracing_pipeline) | flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR |
VUID-VkGraphicsPipelineCreateInfo-flags-03374 | Y | | GraphicsPipelineInvalidFlags | explicit | VkGraphicsPipelineCreateInfo | (VK_KHR_ray_tracing_pipeline) | flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR |
VUID-VkGraphicsPipelineCreateInfo-flags-03375 | Y | | GraphicsPipelineInvalidFlags | explicit | VkGraphicsPipelineCreateInfo | (VK_KHR_ray_tracing_pipeline) | flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR |
VUID-VkGraphicsPipelineCreateInfo-flags-03376 | Y | | GraphicsPipelineInvalidFlags | explicit | VkGraphicsPipelineCreateInfo | (VK_KHR_ray_tracing_pipeline) | flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR |
VUID-VkGraphicsPipelineCreateInfo-flags-03377 | Y | | GraphicsPipelineInvalidFlags | explicit | VkGraphicsPipelineCreateInfo | (VK_KHR_ray_tracing_pipeline) | flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR |
VUID-VkGraphicsPipelineCreateInfo-flags-03577 | Y | | GraphicsPipelineInvalidFlags | explicit | VkGraphicsPipelineCreateInfo | (VK_KHR_ray_tracing_pipeline) | flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR |
VUID-VkGraphicsPipelineCreateInfo-flags-04901 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (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-04902 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (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-04947 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (VK_NV_ray_tracing_motion_blur) | flags must not include VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV |
VUID-VkGraphicsPipelineCreateInfo-flags-parameter | Y | | None | implicit | VkGraphicsPipelineCreateInfo | core | flags must be a valid combination of VkPipelineCreateFlagBits values |
VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04506 | Y | | InvalidFragmentShadingRatePipelineCombinerOpsLimit | explicit | VkGraphicsPipelineCreateInfo | (VK_KHR_fragment_shading_rate) | If the pipeline is being created with pre-rasterization shader state or fragment shader state, the fragmentShadingRateNonTrivialCombinerOps limit is not supported, and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, elements of VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR |
VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04573 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (VK_NV_fragment_shading_rate_enums) | If the pipeline is being created with pre-rasterization shader state or fragment shader state, and the fragmentShadingRateNonTrivialCombinerOps limit is not supported and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, elements of VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR |
VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (VK_EXT_transform_feedback) | If the pipeline is being created with pre-rasterization shader state, and the last vertex processing stage is a geometry shader, and that geometry shader uses the GeometryStreams capability, then VkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreams feature must be enabled |
VUID-VkGraphicsPipelineCreateInfo-layout-00756 | Y | | SubpassInputNotBoundDescriptorSet, DrawWithoutUpdatePushConstants, CreatePipelineCheckShaderPushConstantNotDeclared, CreatePipelinePushConstantsNotInLayout | explicit | VkGraphicsPipelineCreateInfo | core | layout must be consistent with all shaders specified in pStages |
VUID-VkGraphicsPipelineCreateInfo-layout-01688 | Y | | PipelineMaxPerStageResources | explicit | VkGraphicsPipelineCreateInfo | core | The number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources |
VUID-VkGraphicsPipelineCreateInfo-layout-parameter | Y | | None | implicit | VkGraphicsPipelineCreateInfo | core | layout must be a valid VkPipelineLayout handle |
VUID-VkGraphicsPipelineCreateInfo-lineRasterizationMode-02766 | Y | | CreatePipelineCheckLineRasterization | explicit | VkGraphicsPipelineCreateInfo | (VK_EXT_line_rasterization) | If the pipeline is being created with pre-rasterization shader state and at least one of fragment output interface state or fragment shader state, the lineRasterizationMode member of a VkPipelineRasterizationLineStateCreateInfoEXT structure included in the pNext chain of pRasterizationState is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the alphaToCoverageEnable, alphaToOneEnable, and sampleShadingEnable members of pMultisampleState must all be VK_FALSE |
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494 | Y | | InvalidFragmentShadingRatePipeline | explicit | VkGraphicsPipelineCreateInfo | (VK_KHR_fragment_shading_rate) | If the pipeline is being created with pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be greater than or equal to 1 |
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04495 | Y | | InvalidFragmentShadingRatePipeline | explicit | VkGraphicsPipelineCreateInfo | (VK_KHR_fragment_shading_rate) | If the pipeline is being created with pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must be greater than or equal to 1 |
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04496 | Y | | InvalidFragmentShadingRatePipeline | explicit | VkGraphicsPipelineCreateInfo | (VK_KHR_fragment_shading_rate) | If the pipeline is being created with pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be a power-of-two value |
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04497 | Y | | InvalidFragmentShadingRatePipeline | explicit | VkGraphicsPipelineCreateInfo | (VK_KHR_fragment_shading_rate) | If the pipeline is being created with pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must be a power-of-two value |
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04498 | Y | | InvalidFragmentShadingRatePipeline | explicit | VkGraphicsPipelineCreateInfo | (VK_KHR_fragment_shading_rate) | If the pipeline is being created with pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be less than or equal to 4 |
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04499 | Y | | InvalidFragmentShadingRatePipeline | explicit | VkGraphicsPipelineCreateInfo | (VK_KHR_fragment_shading_rate) | If the pipeline is being created with pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must be less than or equal to 4 |
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04500 | Y | | InvalidFragmentShadingRatePipelineFeatureUsage | explicit | VkGraphicsPipelineCreateInfo | (VK_KHR_fragment_shading_rate) | If the pipeline is being created with pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the pipelineFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width and VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must both be equal to 1 |
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04501 | Y | | InvalidFragmentShadingRatePipelineFeatureUsage | explicit | VkGraphicsPipelineCreateInfo | (VK_KHR_fragment_shading_rate) | If the pipeline is being created with pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the primitiveFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR |
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04502 | Y | | InvalidFragmentShadingRatePipelineFeatureUsage | explicit | VkGraphicsPipelineCreateInfo | (VK_KHR_fragment_shading_rate) | If the pipeline is being created with pre-rasterization shader state or fragment shader state and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the attachmentFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR |
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04569 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (VK_NV_fragment_shading_rate_enums) | If the pipeline is being created with pre-rasterization shader state or fragment shader state, and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the fragmentShadingRateEnums feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRateType must be equal to VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV. |
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04570 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (VK_NV_fragment_shading_rate_enums) | If the pipeline is being created with pre-rasterization shader state or fragment shader state, and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the pipelineFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must be equal to VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV. |
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04571 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (VK_NV_fragment_shading_rate_enums) | If the pipeline is being created with pre-rasterization shader state or fragment shader state, and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the primitiveFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR |
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04572 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (VK_NV_fragment_shading_rate_enums) | If the pipeline is being created with pre-rasterization shader state or fragment shader state, and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the attachmentFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR |
VUID-VkGraphicsPipelineCreateInfo-pDynamicState-parameter | Y | | None | implicit | VkGraphicsPipelineCreateInfo | core | If pDynamicState is not NULL, pDynamicState must be a valid pointer to a valid VkPipelineDynamicStateCreateInfo structure |
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00747 | Y | | PSOViewportStateMultiViewportTests, PSOViewportStateTests | explicit | VkGraphicsPipelineCreateInfo | !(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-00748 | Y | | PSOViewportStateMultiViewportTests, PSOViewportStateTests | explicit | VkGraphicsPipelineCreateInfo | !(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-00749 | Y | | PSOLineWidthInvalid | explicit | VkGraphicsPipelineCreateInfo | core | If 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-00754 | Y | | None | explicit | VkGraphicsPipelineCreateInfo | core | If 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-00755 | Y | | None | explicit | VkGraphicsPipelineCreateInfo | !(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-01521 | Y | | InvalidSampleLocations | explicit | VkGraphicsPipelineCreateInfo | (VK_EXT_sample_locations) | If the pipeline is being created with fragment shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples |
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01522 | Y | | InvalidSampleLocations | explicit | VkGraphicsPipelineCreateInfo | (VK_EXT_sample_locations) | If the pipeline is being created with fragment shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples |
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01523 | Y | | InvalidSampleLocations | explicit | VkGraphicsPipelineCreateInfo | (VK_EXT_sample_locations) | If the pipeline is being created with fragment shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples |
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715 | Y | | ViewportWScalingNV | explicit | VkGraphicsPipelineCreateInfo | (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-02510 | Y | | SetDepthRangeUnrestricted | explicit | VkGraphicsPipelineCreateInfo | (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-03378 | Y | | ValidateExtendedDynamicStateDisabled | explicit | VkGraphicsPipelineCreateInfo | (VK_EXT_extended_dynamic_state) | If the extendedDynamicState feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_CULL_MODE_EXT, VK_DYNAMIC_STATE_FRONT_FACE_EXT, VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT, VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT, VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT, VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT, VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT, VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT, VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT, VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT, or VK_DYNAMIC_STATE_STENCIL_OP_EXT |
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379 | Y | | ValidateExtendedDynamicStateEnabled | explicit | VkGraphicsPipelineCreateInfo | (VK_EXT_extended_dynamic_state) | If the pipeline is being created with pre-rasterization shader state, and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT is included in the pDynamicStates array then viewportCount must be zero |
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380 | Y | | ValidateExtendedDynamicStateEnabled | explicit | VkGraphicsPipelineCreateInfo | (VK_EXT_extended_dynamic_state) | If the pipeline is being created with pre-rasterization shader state, and VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT is included in the pDynamicStates array then scissorCount must be zero |
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03578 | Y | | NonGraphicsDynamicStates | explicit | VkGraphicsPipelineCreateInfo | (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-04056 | Y | | ExclusiveScissorNV | explicit | VkGraphicsPipelineCreateInfo | (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-04057 | Y | | ShadingRateImageNV | explicit | VkGraphicsPipelineCreateInfo | (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-04058 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (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-04130 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (VK_EXT_extended_dynamic_state) | If the pipeline is being created with pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT or VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT, the pViewports member of pViewportState must be a valid pointer to an array of pViewportState->viewportCount valid VkViewport structures |
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04131 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (VK_EXT_extended_dynamic_state) | If the pipeline is being created with pre-rasterization shader state, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SCISSOR or VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT, the pScissors member of pViewportState must be a valid pointer to an array of pViewportState->scissorCount VkRect2D structures |
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132 | Y | | ValidateExtendedDynamicStateEnabled | explicit | VkGraphicsPipelineCreateInfo | (VK_EXT_extended_dynamic_state) | If the pipeline is being created with pre-rasterization shader state, and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT is included in the pDynamicStates array then VK_DYNAMIC_STATE_VIEWPORT must not be present |
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133 | Y | | ValidateExtendedDynamicStateEnabled | explicit | VkGraphicsPipelineCreateInfo | (VK_EXT_extended_dynamic_state) | If the pipeline is being created with pre-rasterization shader state, and VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT is included in the pDynamicStates array then VK_DYNAMIC_STATE_SCISSOR must not be present |
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04800 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (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-04807 | Y | | ValidateVertexInputDynamicStateDisabled | explicit | VkGraphicsPipelineCreateInfo | (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-04868 | Y | | ValidateExtendedDynamicState2Disabled | explicit | VkGraphicsPipelineCreateInfo | (VK_EXT_extended_dynamic_state2) | If the extendedDynamicState2 feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT, VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT, or VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT |
VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04869 | Y | | ValidateExtendedDynamicState2LogicOpDisabled | explicit | VkGraphicsPipelineCreateInfo | (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-04870 | Y | | ValidateExtendedDynamicState2PatchControlPointsDisabled | explicit | VkGraphicsPipelineCreateInfo | (VK_EXT_extended_dynamic_state2) | If the extendedDynamicState2PatchControlPoints feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT |
VUID-VkGraphicsPipelineCreateInfo-pNext-pNext | Y | | UsePnextOnlyStructWithoutExtensionEnabled | implicit | VkGraphicsPipelineCreateInfo | core | 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 VkGraphicsPipelineShaderGroupsCreateInfoNV, VkPipelineCompilerControlCreateInfoAMD, VkPipelineCreationFeedbackCreateInfoEXT, VkPipelineDiscardRectangleStateCreateInfoEXT, VkPipelineFragmentShadingRateEnumStateCreateInfoNV, VkPipelineFragmentShadingRateStateCreateInfoKHR, or VkPipelineRepresentativeFragmentTestStateCreateInfoNV |
VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-parameter | Y | | None | implicit | VkGraphicsPipelineCreateInfo | core | pRasterizationState must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure |
VUID-VkGraphicsPipelineCreateInfo-pStages-00729 | Y | | CreatePipelineTessErrors | explicit | VkGraphicsPipelineCreateInfo | core | If 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-00730 | Y | | CreatePipelineTessErrors | explicit | VkGraphicsPipelineCreateInfo | core | If 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-00731 | Y | | CreatePipelineTessErrors | explicit | VkGraphicsPipelineCreateInfo | core | If 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-00732 | N | | None | explicit | VkGraphicsPipelineCreateInfo | core | If the pipeline is being created with pre-rasterization shader state and pStages includes tessellation shader stages, the shader code of at least one stage must contain an OpExecutionMode instruction that specifies the type of subdivision in the pipeline |
VUID-VkGraphicsPipelineCreateInfo-pStages-00733 | N | | None | explicit | VkGraphicsPipelineCreateInfo | core | If the pipeline is being created with pre-rasterization shader state and pStages includes tessellation shader stages, and the shader code of both stages contain an OpExecutionMode instruction that specifies the type of subdivision in the pipeline, they must both specify the same subdivision mode |
VUID-VkGraphicsPipelineCreateInfo-pStages-00734 | N | | None | explicit | VkGraphicsPipelineCreateInfo | core | If the pipeline is being created with pre-rasterization shader state and pStages includes tessellation shader stages, the shader code of at least one stage must contain an OpExecutionMode instruction that specifies the output patch size in the pipeline |
VUID-VkGraphicsPipelineCreateInfo-pStages-00735 | N | | None | explicit | VkGraphicsPipelineCreateInfo | core | If the pipeline is being created with pre-rasterization shader state and pStages includes tessellation shader stages, and the shader code of both contain an OpExecutionMode instruction that specifies the out patch size in the pipeline, they must both specify the same patch size |
VUID-VkGraphicsPipelineCreateInfo-pStages-00736 | Y | | CreatePipelineTessErrors | explicit | VkGraphicsPipelineCreateInfo | core | If 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-00738 | N | | None | explicit | VkGraphicsPipelineCreateInfo | core | If the pipeline is being created with pre-rasterization shader state and pStages includes a geometry shader stage, and does not include any tessellation shader stages, its shader code must contain an OpExecutionMode instruction that specifies an input primitive type that is compatible with the primitive topology specified in pInputAssembly |
VUID-VkGraphicsPipelineCreateInfo-pStages-00739 | N | | None | explicit | VkGraphicsPipelineCreateInfo | core | If the pipeline is being created with pre-rasterization shader state and pStages includes a geometry shader stage, and also includes tessellation shader stages, its shader code must contain an OpExecutionMode instruction that specifies an input primitive type that is compatible with the primitive topology that is output by the tessellation stages |
VUID-VkGraphicsPipelineCreateInfo-pStages-00740 | N | | None | explicit | VkGraphicsPipelineCreateInfo | core | If 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-00741 | N | | None | explicit | VkGraphicsPipelineCreateInfo | core | If the pipeline is being created with fragment shader state the fragment shader must not read from any input attachment that is defined as VK_ATTACHMENT_UNUSED in subpass |
VUID-VkGraphicsPipelineCreateInfo-pStages-00742 | N | | None | explicit | VkGraphicsPipelineCreateInfo | core | If 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-01565 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (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-02095 | Y | | MeshShaderNV | explicit | VkGraphicsPipelineCreateInfo | (VK_NV_mesh_shader) | If the pipeline is being created with pre-rasterization shader state the geometric shader stages provided in pStages must be either from the mesh shading pipeline (stage is VK_SHADER_STAGE_TASK_BIT_NV or VK_SHADER_STAGE_MESH_BIT_NV) or from the primitive shading pipeline (stage is VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, or VK_SHADER_STAGE_GEOMETRY_BIT) |
VUID-VkGraphicsPipelineCreateInfo-pStages-02097 | Y | | MeshShaderNV | explicit | VkGraphicsPipelineCreateInfo | !(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-02098 | Y | | MeshShaderNV | explicit | VkGraphicsPipelineCreateInfo | core | If the pipeline is being created with vertex input state, pInputAssemblyState must be a valid pointer to a valid VkPipelineInputAssemblyStateCreateInfo structure |
VUID-VkGraphicsPipelineCreateInfo-pStages-02317 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (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-02318 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (VK_EXT_transform_feedback) | If the pipeline is being created with pre-rasterization shader state, and any shader stage in pStages specifies Xfb execution mode it must be the last vertex processing stage |
VUID-VkGraphicsPipelineCreateInfo-pStages-parameter | Y | | None | implicit | VkGraphicsPipelineCreateInfo | core | pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures |
VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-04910 | N | | None | explicit | VkGraphicsPipelineCreateInfo | !(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-04892 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (VK_EXT_extended_dynamic_state2) | If the pipeline is being created with pre-rasterization shader state, and the graphics pipeline state was created with the VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT dynamic state enabled, pViewportState must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure |
VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878 | Y | | PipelineCreationCacheControl | explicit | VkGraphicsPipelineCreateInfo | (VK_EXT_pipeline_creation_cache_control) | If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT |
VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503 | Y | | InvalidPrimitiveFragmentShadingRateWriteMultiViewportLimit | explicit | VkGraphicsPipelineCreateInfo | (VK_KHR_fragment_shading_rate)+(VK_EXT_extended_dynamic_state) | If the pipeline is being created with pre-rasterization shader state and the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT is not included in pDynamicState->pDynamicStates, and VkPipelineViewportStateCreateInfo::viewportCount is greater than 1, entry points specified in pStages must not write to the PrimitiveShadingRateKHR built-in |
VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04504 | Y | | InvalidPrimitiveFragmentShadingRateWriteMultiViewportLimit | explicit | VkGraphicsPipelineCreateInfo | (VK_KHR_fragment_shading_rate) | If the pipeline is being created with pre-rasterization shader state and the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and entry points specified in pStages write to the ViewportIndex built-in, they must not also write to the PrimitiveShadingRateKHR built-in |
VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04505 | Y | | InvalidPrimitiveFragmentShadingRateWriteMultiViewportLimit | explicit | VkGraphicsPipelineCreateInfo | (VK_KHR_fragment_shading_rate)+(VK_NV_viewport_array2) | If the pipeline is being created with pre-rasterization shader state and the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and entry points specified in pStages write to the ViewportMaskNV built-in, they must not also write to the PrimitiveShadingRateKHR built-in |
VUID-VkGraphicsPipelineCreateInfo-rasterizationSamples-04899 | Y | | InvalidPipelineRenderPassShaderResolveQCOM | explicit | VkGraphicsPipelineCreateInfo | (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-02319 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (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-02320 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (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-00750 | Y | | PSOViewportStateTests | explicit | VkGraphicsPipelineCreateInfo | core | If 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-00751 | Y | | None | explicit | VkGraphicsPipelineCreateInfo | core | If the pipeline is being created with fragment shader state, pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure |
VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00752 | Y | | None | explicit | VkGraphicsPipelineCreateInfo | core | If the pipeline is being created with fragment shader state, and subpass uses a depth/stencil attachment, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure |
VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00753 | Y | | PipelineRenderpassCompatibility | explicit | VkGraphicsPipelineCreateInfo | core | If the pipeline is being created with fragment output interface state, and subpass uses color attachments, pColorBlendState must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure |
VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-04493 | N | | None | explicit | VkGraphicsPipelineCreateInfo | core | If the pipeline is being created with fragment output interface state, pColorBlendState->attachmentCount must be greater than the index of all color attachments that are not VK_ATTACHMENT_UNUSED for the subpass index in renderPass |
VUID-VkGraphicsPipelineCreateInfo-renderPass-00760 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (VK_VERSION_1_1,VK_KHR_multiview) | If the pipeline is being created with pre-rasterization shader state, and the renderPass has multiview enabled and subpass has more than one bit set in the view mask and multiviewTessellationShader is not enabled, then pStages must not include tessellation shaders |
VUID-VkGraphicsPipelineCreateInfo-renderPass-00761 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (VK_VERSION_1_1,VK_KHR_multiview) | If the pipeline is being created with pre-rasterization shader state, and the renderPass has multiview enabled and subpass has more than one bit set in the view mask and multiviewGeometryShader is not enabled, then pStages must not include a geometry shader |
VUID-VkGraphicsPipelineCreateInfo-renderPass-00762 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (VK_VERSION_1_1,VK_KHR_multiview) | If the pipeline is being created with pre-rasterization shader state, and the renderPass has multiview enabled and subpass has more than one bit set in the view mask, shaders in the pipeline must not write to the Layer built-in output |
VUID-VkGraphicsPipelineCreateInfo-renderPass-00763 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (VK_VERSION_1_1,VK_KHR_multiview) | If the pipeline is being created with pre-rasterization shader state, and the renderPass has multiview enabled, then all shaders must not include variables decorated with the Layer built-in decoration in their interfaces |
VUID-VkGraphicsPipelineCreateInfo-renderPass-parameter | Y | | None | implicit | VkGraphicsPipelineCreateInfo | core | renderPass must be a valid VkRenderPass handle |
VUID-VkGraphicsPipelineCreateInfo-sType-sType | Y | | None | implicit | VkGraphicsPipelineCreateInfo | core | sType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO |
VUID-VkGraphicsPipelineCreateInfo-sType-unique | Y | | None | implicit | VkGraphicsPipelineCreateInfo | core | The sType value of each struct in the pNext chain must be unique |
VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524 | N | | None | explicit | VkGraphicsPipelineCreateInfo | (VK_EXT_sample_locations) | If the pipeline is being created with fragment shader state, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, the fragment shader code must not statically use the extended instruction InterpolateAtSample |
VUID-VkGraphicsPipelineCreateInfo-sampleShadingEnable-04900 | Y | | InvalidPipelineRenderPassShaderResolveQCOM | explicit | VkGraphicsPipelineCreateInfo | (VK_QCOM_render_pass_shader_resolve) | If the pipeline is being created with fragment shader state, and the VK_QCOM_render_pass_shader_resolve extension is enabled, and if the subpass description contains VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then sampleShadingEnable must be false |
VUID-VkGraphicsPipelineCreateInfo-stage-00726 | Y | | CreatePipelineDuplicateStage | explicit | VkGraphicsPipelineCreateInfo | core | The stage member of each element of pStages must be unique |
VUID-VkGraphicsPipelineCreateInfo-stage-00727 | Y | | InvalidPipelineCreateState | explicit | VkGraphicsPipelineCreateInfo | !(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-00728 | Y | | None | explicit | VkGraphicsPipelineCreateInfo | core | The stage member of each element of pStages must not be VK_SHADER_STAGE_COMPUTE_BIT |
VUID-VkGraphicsPipelineCreateInfo-stage-02096 | Y | | MeshShaderNV | explicit | VkGraphicsPipelineCreateInfo | (VK_NV_mesh_shader) | If the pipeline is being created with pre-rasterization shader state the stage member of one element of pStages must be either VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_NV |
VUID-VkGraphicsPipelineCreateInfo-stageCount-arraylength | Y | | None | implicit | VkGraphicsPipelineCreateInfo | core | stageCount must be greater than 0 |
VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767 | Y | | CreatePipelineCheckLineRasterization | explicit | VkGraphicsPipelineCreateInfo | (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-00757 | Y | | NumSamplesMismatch, FramebufferMixedSamplesNV, FramebufferMixedSamples, InvalidSampleLocations | explicit | VkGraphicsPipelineCreateInfo | core | If the pipeline is being created with fragment shader state, and neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, and if subpass uses color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must be the same as the sample count for those subpass attachments |
VUID-VkGraphicsPipelineCreateInfo-subpass-00758 | N | | None | explicit | VkGraphicsPipelineCreateInfo | core | If the pipeline is being created with fragment shader state and subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must follow the rules for a zero-attachment subpass |
VUID-VkGraphicsPipelineCreateInfo-subpass-00759 | Y | | None | explicit | VkGraphicsPipelineCreateInfo | core | subpass must be a valid subpass within renderPass |
VUID-VkGraphicsPipelineCreateInfo-subpass-01411 | Y | | FramebufferMixedSamplesNV | explicit | VkGraphicsPipelineCreateInfo | (VK_NV_framebuffer_mixed_samples) | If the pipeline is being created with fragment shader state, and the VK_NV_framebuffer_mixed_samples extension is enabled, and if subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled, then the rasterizationSamples member of pMultisampleState must be the same as the sample count of the depth/stencil attachment |
VUID-VkGraphicsPipelineCreateInfo-subpass-01412 | Y | | FramebufferMixedSamplesNV | explicit | VkGraphicsPipelineCreateInfo | (VK_NV_framebuffer_mixed_samples) | If the pipeline is being created with fragment shader state, and the VK_NV_framebuffer_mixed_samples extension is enabled, and if subpass has any color attachments, then the rasterizationSamples member of pMultisampleState must be greater than or equal to the sample count for those subpass attachments |
VUID-VkGraphicsPipelineCreateInfo-subpass-01505 | Y | | AMDMixedAttachmentSamplesValidateGraphicsPipeline | explicit | VkGraphicsPipelineCreateInfo | (VK_AMD_mixed_attachment_samples) | If the pipeline is being created with fragment shader state, and the VK_AMD_mixed_attachment_samples extension is enabled, and if subpass uses color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must equal the maximum of the sample counts of those subpass attachments |
VUID-VkGraphicsPipelineCreateInfo-subpass-04890 | N | | None | explicit | VkGraphicsPipelineCreateInfo | core | If the pipeline is being created with fragment shader state, and subpass uses a depth/stencil attachment in renderPass with a read-only layout for the depth aspect in the VkAttachmentReference defined by subpass, the depthWriteEnable member of pDepthStencilState must be VK_FALSE |
VUID-VkGraphicsPipelineCreateInfo-subpass-04891 | N | | None | explicit | VkGraphicsPipelineCreateInfo | core | If the pipeline is being created with fragment shader state, and subpass uses a depth/stencil attachment in renderPass with a read-only layout for the stencil aspect in the VkAttachmentReference defined by subpass, the failOp, passOp and depthFailOp members of each of the front and back members of pDepthStencilState must be VK_STENCIL_OP_KEEP |
VUID-VkGraphicsPipelineCreateInfo-topology-00737 | Y | | InvalidTopology, CreatePipelineTessErrors | explicit | VkGraphicsPipelineCreateInfo | core | If the pipeline is being created with pre-rasterization shader state and the topology member of pInputAssembly is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, pStages must include tessellation shader stages |
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-deviceGeneratedCommands-02887 | N | | None | explicit | VkGraphicsPipelineShaderGroupsCreateInfoNV | (VK_NV_device_generated_commands) | The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled |
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02879 | N | | None | explicit | VkGraphicsPipelineShaderGroupsCreateInfoNV | (VK_NV_device_generated_commands) | groupCount must be at least 1 and as maximum VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxGraphicsShaderGroupCount |
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02880 | N | | None | explicit | VkGraphicsPipelineShaderGroupsCreateInfoNV | (VK_NV_device_generated_commands) | The sum of groupCount including those groups added from referenced pPipelines must also be as maximum VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxGraphicsShaderGroupCount |
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-arraylength | Y | | None | implicit | VkGraphicsPipelineShaderGroupsCreateInfoNV | (VK_NV_device_generated_commands) | groupCount must be greater than 0 |
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02881 | N | | None | explicit | VkGraphicsPipelineShaderGroupsCreateInfoNV | (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-02882 | N | | None | explicit | VkGraphicsPipelineShaderGroupsCreateInfoNV | (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-02883 | N | | None | explicit | VkGraphicsPipelineShaderGroupsCreateInfoNV | (VK_NV_device_generated_commands)+!(VK_NV_mesh_shader) | All elements of pGroups must use the same shader stage combinations |
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02884 | N | | None | explicit | VkGraphicsPipelineShaderGroupsCreateInfoNV | (VK_NV_device_generated_commands)+(VK_NV_mesh_shader) | All elements of pGroups must use the same shader stage combinations unless any mesh shader stage is used, then either combination of task and mesh or just mesh shader is valid |
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02885 | N | | None | explicit | VkGraphicsPipelineShaderGroupsCreateInfoNV | (VK_NV_device_generated_commands)+(VK_NV_mesh_shader) | Mesh and regular primitive shading stages cannot be mixed across pGroups |
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-parameter | Y | | None | implicit | VkGraphicsPipelineShaderGroupsCreateInfoNV | (VK_NV_device_generated_commands) | pGroups must be a valid pointer to an array of groupCount valid VkGraphicsShaderGroupCreateInfoNV structures |
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-02886 | N | | None | explicit | VkGraphicsPipelineShaderGroupsCreateInfoNV | (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-parameter | Y | | None | implicit | VkGraphicsPipelineShaderGroupsCreateInfoNV | (VK_NV_device_generated_commands) | If pipelineCount is not 0, pPipelines must be a valid pointer to an array of pipelineCount valid VkPipeline handles |
VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-sType-sType | Y | | None | implicit | VkGraphicsPipelineShaderGroupsCreateInfoNV | (VK_NV_device_generated_commands) | sType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV |
VUID-VkGraphicsShaderGroupCreateInfoNV-pNext-pNext | N | | None | implicit | VkGraphicsShaderGroupCreateInfoNV | (VK_NV_device_generated_commands) | pNext must be NULL |
VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-02889 | N | | None | explicit | VkGraphicsShaderGroupCreateInfoNV | (VK_NV_device_generated_commands) | For pStages, the same restrictions as in VkGraphicsPipelineCreateInfo::pStages apply |
VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-parameter | Y | | None | implicit | VkGraphicsShaderGroupCreateInfoNV | (VK_NV_device_generated_commands) | pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures |
VUID-VkGraphicsShaderGroupCreateInfoNV-pTessellationState-02891 | N | | None | explicit | VkGraphicsShaderGroupCreateInfoNV | (VK_NV_device_generated_commands) | For pTessellationState, the same restrictions as in VkGraphicsPipelineCreateInfo::pTessellationState apply |
VUID-VkGraphicsShaderGroupCreateInfoNV-pVertexInputState-02890 | N | | None | explicit | VkGraphicsShaderGroupCreateInfoNV | (VK_NV_device_generated_commands) | For pVertexInputState, the same restrictions as in VkGraphicsPipelineCreateInfo::pVertexInputState apply |
VUID-VkGraphicsShaderGroupCreateInfoNV-sType-sType | Y | | None | implicit | VkGraphicsShaderGroupCreateInfoNV | (VK_NV_device_generated_commands) | sType must be VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV |
VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-02888 | N | | None | explicit | VkGraphicsShaderGroupCreateInfoNV | (VK_NV_device_generated_commands) | For stageCount, the same restrictions as in VkGraphicsPipelineCreateInfo::stageCount apply |
VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-arraylength | Y | | None | implicit | VkGraphicsShaderGroupCreateInfoNV | (VK_NV_device_generated_commands) | stageCount must be greater than 0 |
VUID-VkHdrMetadataEXT-pNext-pNext | Y | | None | implicit | VkHdrMetadataEXT | (VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_hdr_metadata) | pNext must be NULL |
VUID-VkHdrMetadataEXT-sType-sType | Y | | None | implicit | VkHdrMetadataEXT | (VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_hdr_metadata) | sType must be VK_STRUCTURE_TYPE_HDR_METADATA_EXT |
VUID-VkHeadlessSurfaceCreateInfoEXT-flags-zerobitmask | Y | | None | implicit | VkHeadlessSurfaceCreateInfoEXT | (VK_KHR_surface)+(VK_EXT_headless_surface) | flags must be 0 |
VUID-VkHeadlessSurfaceCreateInfoEXT-pNext-pNext | Y | | None | implicit | VkHeadlessSurfaceCreateInfoEXT | (VK_KHR_surface)+(VK_EXT_headless_surface) | pNext must be NULL |
VUID-VkHeadlessSurfaceCreateInfoEXT-sType-sType | Y | | None | implicit | VkHeadlessSurfaceCreateInfoEXT | (VK_KHR_surface)+(VK_EXT_headless_surface) | sType must be VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT |
VUID-VkIOSSurfaceCreateInfoMVK-flags-zerobitmask | Y | | None | implicit | VkIOSSurfaceCreateInfoMVK | (VK_KHR_surface)+(VK_MVK_ios_surface) | flags must be 0 |
VUID-VkIOSSurfaceCreateInfoMVK-pNext-pNext | Y | | None | implicit | VkIOSSurfaceCreateInfoMVK | (VK_KHR_surface)+(VK_MVK_ios_surface) | pNext must be NULL |
VUID-VkIOSSurfaceCreateInfoMVK-pView-01316 | N | | None | explicit | VkIOSSurfaceCreateInfoMVK | (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-04143 | N | | None | explicit | VkIOSSurfaceCreateInfoMVK | (VK_KHR_surface)+(VK_MVK_ios_surface) | If pView is a CAMetalLayer object, it must be a valid CAMetalLayer. |
VUID-VkIOSSurfaceCreateInfoMVK-sType-sType | Y | | None | implicit | VkIOSSurfaceCreateInfoMVK | (VK_KHR_surface)+(VK_MVK_ios_surface) | sType must be VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK |
VUID-VkImageBlit-aspectMask-00238 | Y | | None | explicit | VkImageBlit | core | The aspectMask member of srcSubresource and dstSubresource must match |
VUID-VkImageBlit-dstSubresource-parameter | N | | None | implicit | VkImageBlit | core | dstSubresource must be a valid VkImageSubresourceLayers structure |
VUID-VkImageBlit-layerCount-00239 | Y | | MiscBlitImageTests | explicit | VkImageBlit | core | The layerCount member of srcSubresource and dstSubresource must match |
VUID-VkImageBlit-srcSubresource-parameter | N | | None | implicit | VkImageBlit | core | srcSubresource must be a valid VkImageSubresourceLayers structure |
VUID-VkImageBlit2KHR-aspectMask-00238 | Y | | None | explicit | VkImageBlit2KHR | (VK_KHR_copy_commands2) | The aspectMask member of srcSubresource and dstSubresource must match |
VUID-VkImageBlit2KHR-dstSubresource-parameter | N | | None | implicit | VkImageBlit2KHR | (VK_KHR_copy_commands2) | dstSubresource must be a valid VkImageSubresourceLayers structure |
VUID-VkImageBlit2KHR-layerCount-00239 | Y | | None | explicit | VkImageBlit2KHR | (VK_KHR_copy_commands2) | The layerCount member of srcSubresource and dstSubresource must match |
VUID-VkImageBlit2KHR-pNext-pNext | Y | | None | implicit | VkImageBlit2KHR | (VK_KHR_copy_commands2) | pNext must be NULL or a pointer to a valid instance of VkCopyCommandTransformInfoQCOM |
VUID-VkImageBlit2KHR-sType-sType | Y | | None | implicit | VkImageBlit2KHR | (VK_KHR_copy_commands2) | sType must be VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR |
VUID-VkImageBlit2KHR-sType-unique | Y | | None | implicit | VkImageBlit2KHR | (VK_KHR_copy_commands2) | The sType value of each struct in the pNext chain must be unique |
VUID-VkImageBlit2KHR-srcSubresource-parameter | N | | None | implicit | VkImageBlit2KHR | (VK_KHR_copy_commands2) | srcSubresource must be a valid VkImageSubresourceLayers structure |
VUID-VkImageCopy-aspectMask-00137 | Y | | CopyImageAspectMismatch | explicit | VkImageCopy | !(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | The aspectMask member of srcSubresource and dstSubresource must match |
VUID-VkImageCopy-dstSubresource-parameter | N | | None | implicit | VkImageCopy | core | dstSubresource must be a valid VkImageSubresourceLayers structure |
VUID-VkImageCopy-extent-00140 | Y | | CopyImageLayerCountMismatch, CopyImageTypeExtentMismatchMaintenance1 | explicit | VkImageCopy | (VK_VERSION_1_1,VK_KHR_maintenance1) | The number of slices of the extent (for 3D) or layers of the srcSubresource (for non-3D) must match the number of slices of the extent (for 3D) or layers of the dstSubresource (for non-3D) |
VUID-VkImageCopy-layerCount-00138 | Y | | CopyImageLayerCountMismatch | explicit | VkImageCopy | !(VK_VERSION_1_1,VK_KHR_maintenance1) | The layerCount member of srcSubresource and dstSubresource must match |
VUID-VkImageCopy-srcSubresource-parameter | N | | None | implicit | VkImageCopy | core | srcSubresource must be a valid VkImageSubresourceLayers structure |
VUID-VkImageCopy2KHR-aspectMask-00137 | Y | | None | explicit | VkImageCopy2KHR | (VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | The aspectMask member of srcSubresource and dstSubresource must match |
VUID-VkImageCopy2KHR-dstSubresource-parameter | N | | None | implicit | VkImageCopy2KHR | (VK_KHR_copy_commands2) | dstSubresource must be a valid VkImageSubresourceLayers structure |
VUID-VkImageCopy2KHR-extent-00140 | Y | | None | explicit | VkImageCopy2KHR | (VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1) | The number of slices of the extent (for 3D) or layers of the srcSubresource (for non-3D) must match the number of slices of the extent (for 3D) or layers of the dstSubresource (for non-3D) |
VUID-VkImageCopy2KHR-layerCount-00138 | Y | | None | explicit | VkImageCopy2KHR | (VK_KHR_copy_commands2)+!(VK_VERSION_1_1,VK_KHR_maintenance1) | The layerCount member of srcSubresource and dstSubresource must match |
VUID-VkImageCopy2KHR-pNext-pNext | Y | | None | implicit | VkImageCopy2KHR | (VK_KHR_copy_commands2) | pNext must be NULL |
VUID-VkImageCopy2KHR-sType-sType | Y | | None | implicit | VkImageCopy2KHR | (VK_KHR_copy_commands2) | sType must be VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR |
VUID-VkImageCopy2KHR-srcSubresource-parameter | N | | None | implicit | VkImageCopy2KHR | (VK_KHR_copy_commands2) | srcSubresource must be a valid VkImageSubresourceLayers structure |
VUID-VkImageCreateInfo-Format-02536 | Y | | ImageStencilCreate | explicit | VkImageCreateInfo | (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-01891 | Y | | InvalidProtectedMemory | explicit | VkImageCreateInfo | (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-01925 | N | | None | explicit | VkImageCreateInfo | core | 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_USAGE_TRANSIENT_ATTACHMENT_BIT must not also be set |
VUID-VkImageCreateInfo-arrayLayers-00948 | Y | | CreateImageMinLimitsViolation | explicit | VkImageCreateInfo | core | arrayLayers must be greater than 0 |
VUID-VkImageCreateInfo-arrayLayers-02256 | Y | | CreateImageMaxLimitsViolation | explicit | VkImageCreateInfo | core | arrayLayers must be less than or equal to imageCreateMaxArrayLayers (as defined in Image Creation Limits) |
VUID-VkImageCreateInfo-extent-00944 | Y | | CreateImageMinLimitsViolation | explicit | VkImageCreateInfo | core | extent.width must be greater than 0 |
VUID-VkImageCreateInfo-extent-00945 | Y | | CreateImageMinLimitsViolation | explicit | VkImageCreateInfo | core | extent.height must be greater than 0 |
VUID-VkImageCreateInfo-extent-00946 | Y | | CreateImageMinLimitsViolation | explicit | VkImageCreateInfo | core | extent.depth must be greater than 0 |
VUID-VkImageCreateInfo-extent-02252 | Y | | CreateImageMaxLimitsViolation | explicit | VkImageCreateInfo | core | extent.width must be less than or equal to imageCreateMaxExtent.width (as defined in Image Creation Limits) |
VUID-VkImageCreateInfo-extent-02253 | Y | | CreateImageYcbcrFormats, CreateImageMaxLimitsViolation | explicit | VkImageCreateInfo | core | extent.height must be less than or equal to imageCreateMaxExtent.height (as defined in Image Creation Limits) |
VUID-VkImageCreateInfo-extent-02254 | Y | | CreateImageMaxLimitsViolation | explicit | VkImageCreateInfo | core | extent.depth must be less than or equal to imageCreateMaxExtent.depth (as defined in Image Creation Limits) |
VUID-VkImageCreateInfo-flags-00949 | Y | | CreateImageMiscErrors | explicit | VkImageCreateInfo | core | If flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, imageType must be VK_IMAGE_TYPE_2D |
VUID-VkImageCreateInfo-flags-00950 | Y | | Bad2DArrayImageType | explicit | VkImageCreateInfo | (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-00969 | Y | | CreateImageMiscErrors | explicit | VkImageCreateInfo | core | If the sparse bindings feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT |
VUID-VkImageCreateInfo-flags-00987 | Y | | SparseBindingImageBufferCreate | explicit | VkImageCreateInfo | core | If 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-01533 | Y | | InvalidSampleLocations | explicit | VkImageCreateInfo | (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-01572 | Y | | None | explicit | VkImageCreateInfo | (VK_VERSION_1_1,VK_KHR_maintenance2) | If flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, then format must be a block-compressed image format, an ETC compressed image format, or an ASTC compressed image format |
VUID-VkImageCreateInfo-flags-01573 | Y | | None | explicit | VkImageCreateInfo | (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-01890 | Y | | DisabledProtectedMemory | explicit | VkImageCreateInfo | (VK_VERSION_1_1) | If the protected memory feature is not enabled, flags must not contain VK_IMAGE_CREATE_PROTECTED_BIT |
VUID-VkImageCreateInfo-flags-01924 | Y | | None | explicit | VkImageCreateInfo | core | If the sparse aliased residency feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_ALIASED_BIT |
VUID-VkImageCreateInfo-flags-02050 | Y | | CornerSampledImageNV | explicit | VkImageCreateInfo | (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-02051 | Y | | CornerSampledImageNV | explicit | VkImageCreateInfo | (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-02052 | Y | | CornerSampledImageNV | explicit | VkImageCreateInfo | (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-02053 | Y | | CornerSampledImageNV | explicit | VkImageCreateInfo | (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-02259 | Y | | CreateImageMiscErrors | explicit | VkImageCreateInfo | (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-02557 | Y | | FragmentDensityMapEnabled | explicit | VkImageCreateInfo | (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-02565 | Y | | FragmentDensityMapEnabled | explicit | VkImageCreateInfo | (VK_EXT_fragment_density_map) | If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, tiling must be VK_IMAGE_TILING_OPTIMAL |
VUID-VkImageCreateInfo-flags-02566 | Y | | FragmentDensityMapEnabled | explicit | VkImageCreateInfo | (VK_EXT_fragment_density_map) | If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, imageType must be VK_IMAGE_TYPE_2D |
VUID-VkImageCreateInfo-flags-02567 | Y | | FragmentDensityMapEnabled | explicit | VkImageCreateInfo | (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-02568 | Y | | FragmentDensityMapEnabled | explicit | VkImageCreateInfo | (VK_EXT_fragment_density_map) | If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, mipLevels must be 1 |
VUID-VkImageCreateInfo-flags-04738 | Y | | InvalidImageFormatList | explicit | VkImageCreateInfo | (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-parameter | Y | | None | implicit | VkImageCreateInfo | core | flags must be a valid combination of VkImageCreateFlagBits values |
VUID-VkImageCreateInfo-format-00943 | Y | | ImageLayerUnsupportedFormat, CreateImageMiscErrors | explicit | VkImageCreateInfo | !(VK_ANDROID_external_memory_android_hardware_buffer) | format must not be VK_FORMAT_UNDEFINED |
VUID-VkImageCreateInfo-format-01577 | Y | | None | explicit | VkImageCreateInfo | (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-02537 | Y | | ImageStencilCreate | explicit | VkImageCreateInfo | (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-02538 | Y | | ImageStencilCreate | explicit | VkImageCreateInfo | (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-02561 | Y | | CreateImageYcbcrFormats | explicit | VkImageCreateInfo | (VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If the image format is one of those listed in Formats requiring sampler Y'CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, then mipLevels must be 1 |
VUID-VkImageCreateInfo-format-02562 | Y | | CreateImageYcbcrFormats | explicit | VkImageCreateInfo | (VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If the image format is one of those listed in Formats requiring sampler Y'CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, samples must be VK_SAMPLE_COUNT_1_BIT |
VUID-VkImageCreateInfo-format-02563 | Y | | CreateImageYcbcrFormats | explicit | VkImageCreateInfo | (VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If the image format is one of those listed in Formats requiring sampler Y'CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, imageType must be VK_IMAGE_TYPE_2D |
VUID-VkImageCreateInfo-format-02564 | Y | | CreateImageYcbcrFormats | explicit | VkImageCreateInfo | (VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_ycbcr_image_arrays) | If the image format is one of those listed in Formats requiring sampler Y'CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, arrayLayers must be 1 |
VUID-VkImageCreateInfo-format-02653 | Y | | CreateImageYcbcrFormats | explicit | VkImageCreateInfo | (VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_ycbcr_image_arrays) | If the image format is one of those listed in Formats requiring sampler Y'CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, and the ycbcrImageArrays feature is not enabled, arrayLayers must be 1 |
VUID-VkImageCreateInfo-format-02795 | Y | | ImageStencilCreate | explicit | VkImageCreateInfo | (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-02796 | Y | | ImageStencilCreate | explicit | VkImageCreateInfo | (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-02797 | Y | | ImageStencilCreate | explicit | VkImageCreateInfo | (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-02798 | Y | | ImageStencilCreate | explicit | VkImageCreateInfo | (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-04712 | Y | | CreateImageYcbcrFormats | explicit | VkImageCreateInfo | (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-04713 | Y | | CreateImageYcbcrFormats | explicit | VkImageCreateInfo | (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-parameter | Y | | None | implicit | VkImageCreateInfo | core | format must be a valid VkFormat value |
VUID-VkImageCreateInfo-imageCreateFormatFeatures-02260 | Y | | CreateImageYcbcrFormats | explicit | VkImageCreateInfo | (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-02251 | Y | | AndroidHardwareBufferImageCreate | explicit | VkImageCreateInfo | core | Each of the following values (as described in Image Creation Limits) must not be undefined : imageCreateMaxMipLevels, imageCreateMaxArrayLayers, imageCreateMaxExtent, and imageCreateSampleCounts |
VUID-VkImageCreateInfo-imageType-00954 | Y | | CreateImageMinLimitsViolation, CreateImageMiscErrors | explicit | VkImageCreateInfo | core | If 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-00956 | Y | | CreateImageYcbcrFormats, CreateImageMinLimitsViolation | explicit | VkImageCreateInfo | core | If imageType is VK_IMAGE_TYPE_1D, both extent.height and extent.depth must be 1 |
VUID-VkImageCreateInfo-imageType-00957 | Y | | CreateImageMinLimitsViolation | explicit | VkImageCreateInfo | core | If imageType is VK_IMAGE_TYPE_2D, extent.depth must be 1 |
VUID-VkImageCreateInfo-imageType-00961 | Y | | CreateImageMinLimitsViolation | explicit | VkImageCreateInfo | core | If imageType is VK_IMAGE_TYPE_3D, arrayLayers must be 1 |
VUID-VkImageCreateInfo-imageType-00970 | Y | | SparseResidencyImageCreateUnsupportedTypes | explicit | VkImageCreateInfo | core | If imageType is VK_IMAGE_TYPE_1D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT |
VUID-VkImageCreateInfo-imageType-00971 | Y | | SparseResidencyImageCreateUnsupportedTypes | explicit | VkImageCreateInfo | core | If 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-00972 | Y | | SparseResidencyImageCreateUnsupportedTypes | explicit | VkImageCreateInfo | core | If 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-00973 | Y | | SparseResidencyImageCreateUnsupportedSamples | explicit | VkImageCreateInfo | core | If 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-00974 | Y | | SparseResidencyImageCreateUnsupportedSamples | explicit | VkImageCreateInfo | core | If 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-00975 | Y | | SparseResidencyImageCreateUnsupportedSamples | explicit | VkImageCreateInfo | core | If 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-00976 | Y | | SparseResidencyImageCreateUnsupportedSamples | explicit | VkImageCreateInfo | core | If 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-02082 | Y | | ShadingRateImageNV | explicit | VkImageCreateInfo | (VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image) | If usage includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, imageType must be VK_IMAGE_TYPE_2D |
VUID-VkImageCreateInfo-imageType-parameter | Y | | None | implicit | VkImageCreateInfo | core | imageType must be a valid VkImageType value |
VUID-VkImageCreateInfo-imageView2DOn3DImage-04459 | Y | | DestroyInstanceHandleLeak | explicit | VkImageCreateInfo | (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-00993 | Y | | CreateImageMiscErrors | explicit | VkImageCreateInfo | core | initialLayout must be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED |
VUID-VkImageCreateInfo-initialLayout-parameter | Y | | None | implicit | VkImageCreateInfo | core | initialLayout must be a valid VkImageLayout value |
VUID-VkImageCreateInfo-mipLevels-00947 | Y | | CreateImageMinLimitsViolation | explicit | VkImageCreateInfo | core | mipLevels must be greater than 0 |
VUID-VkImageCreateInfo-mipLevels-00958 | Y | | CornerSampledImageNV, CreateImageMaxLimitsViolation | explicit | VkImageCreateInfo | core | mipLevels 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-02255 | Y | | CreateImageMaxLimitsViolation | explicit | VkImageCreateInfo | core | mipLevels must be less than or equal to imageCreateMaxMipLevels (as defined in Image Creation Limits) |
VUID-VkImageCreateInfo-multisampleArrayImage-04460 | Y | | DestroyInstanceHandleLeak | explicit | VkImageCreateInfo | (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-00988 | N | | None | explicit | VkImageCreateInfo | (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-00990 | N | | None | explicit | VkImageCreateInfo | (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-00991 | N | | None | explicit | VkImageCreateInfo | (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-01443 | N | | None | explicit | VkImageCreateInfo | (VK_VERSION_1_1,VK_KHR_external_memory,VK_NV_external_memory) | If the pNext chain includes a ifdef::VK_VERSION_1_1,VK_KHR_external_memory[VkExternalMemoryImageCreateInfo] |
VUID-VkImageCreateInfo-pNext-01974 | Y | | AndroidHardwareBufferImageCreate | explicit | VkImageCreateInfo | (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-01975 | Y | | AndroidHardwareBufferImageCreate | explicit | VkImageCreateInfo | (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-02262 | Y | | ImageDrmFormatModifer | explicit | VkImageCreateInfo | (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-02393 | Y | | AndroidHardwareBufferImageCreate | explicit | VkImageCreateInfo | (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-02394 | Y | | AndroidHardwareBufferImageCreate | explicit | VkImageCreateInfo | (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-02396 | Y | | AndroidHardwareBufferImageCreate | explicit | VkImageCreateInfo | (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-02397 | Y | | AndroidHardwareBufferImageCreate | explicit | VkImageCreateInfo | (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-02398 | Y | | AndroidHardwareBufferImageCreate | explicit | VkImageCreateInfo | (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-04737 | Y | | InvalidImageFormatList | explicit | VkImageCreateInfo | (VK_VERSION_1_2,VK_KHR_image_format_list) | If a VkImageFormatListCreateInfo structure was included in the pNext chain and VkImageFormatListCreateInfo::viewFormatCount is not zero, then all of the formats in VkImageFormatListCreateInfo::pViewFormats must be compatible with the format as described in the compatibility table |
VUID-VkImageCreateInfo-pNext-pNext | Y | | None | implicit | VkImageCreateInfo | core | 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 VkDedicatedAllocationImageCreateInfoNV, VkExternalFormatANDROID, VkExternalMemoryImageCreateInfo, VkExternalMemoryImageCreateInfoNV, VkImageDrmFormatModifierExplicitCreateInfoEXT, VkImageDrmFormatModifierListCreateInfoEXT, VkImageFormatListCreateInfo, VkImageStencilUsageCreateInfo, VkImageSwapchainCreateInfoKHR, VkVideoProfileKHR, or VkVideoProfilesKHR |
VUID-VkImageCreateInfo-physicalDeviceCount-01421 | N | | None | explicit | VkImageCreateInfo | (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-sType | Y | | None | implicit | VkImageCreateInfo | core | sType must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO |
VUID-VkImageCreateInfo-sType-unique | Y | | None | implicit | VkImageCreateInfo | core | The sType value of each struct in the pNext chain must be unique |
VUID-VkImageCreateInfo-samples-02083 | Y | | ShadingRateImageNV | explicit | VkImageCreateInfo | (VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image) | If usage includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, samples must be VK_SAMPLE_COUNT_1_BIT |
VUID-VkImageCreateInfo-samples-02257 | Y | | CreateImageMiscErrors | explicit | VkImageCreateInfo | core | If 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-02258 | Y | | CreateImageYcbcrFormats, CreateImageMaxLimitsViolation | explicit | VkImageCreateInfo | core | samples must be a bit value that is set in imageCreateSampleCounts (as defined in Image Creation Limits) |
VUID-VkImageCreateInfo-samples-02558 | Y | | FragmentDensityMapEnabled | explicit | VkImageCreateInfo | (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-parameter | Y | | None | implicit | VkImageCreateInfo | core | samples must be a valid VkSampleCountFlagBits value |
VUID-VkImageCreateInfo-sharingMode-00941 | Y | | CreateImageMiscErrors | explicit | VkImageCreateInfo | core | If sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values |
VUID-VkImageCreateInfo-sharingMode-00942 | Y | | CreateImageMiscErrors | explicit | VkImageCreateInfo | core | If sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1 |
VUID-VkImageCreateInfo-sharingMode-01392 | N | | None | explicit | VkImageCreateInfo | !(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-01420 | Y | | None | explicit | VkImageCreateInfo | (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-parameter | Y | | None | implicit | VkImageCreateInfo | core | sharingMode must be a valid VkSharingMode value |
VUID-VkImageCreateInfo-tiling-02084 | Y | | ShadingRateImageNV | explicit | VkImageCreateInfo | (VK_NV_shading_rate_image) | If usage includes VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, tiling must be VK_IMAGE_TILING_OPTIMAL |
VUID-VkImageCreateInfo-tiling-02261 | Y | | ImageDrmFormatModifer | explicit | VkImageCreateInfo | (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-02353 | N | | None | explicit | VkImageCreateInfo | (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-04121 | Y | | None | explicit | VkImageCreateInfo | core | If tiling is VK_IMAGE_TILING_LINEAR, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT |
VUID-VkImageCreateInfo-tiling-parameter | Y | | None | implicit | VkImageCreateInfo | core | tiling must be a valid VkImageTiling value |
VUID-VkImageCreateInfo-usage-00963 | Y | | CreateImageMiscErrors | explicit | VkImageCreateInfo | core | If 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-00964 | Y | | CreateImageMaxLimitsViolation | explicit | VkImageCreateInfo | core | If 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-00965 | Y | | CreateImageMaxLimitsViolation | explicit | VkImageCreateInfo | core | If 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-00966 | Y | | CreateImageMiscErrors | explicit | VkImageCreateInfo | core | If 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-00968 | Y | | CreateImageMiscErrors | explicit | VkImageCreateInfo | core | If 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-02559 | Y | | CreateImageMaxLimitsViolation | explicit | VkImageCreateInfo | (VK_EXT_fragment_density_map) | If usage includes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.width must be less than or equal to the ceiling of maxFramebufferWidth/minFragmentDensityTexelSize.width |
VUID-VkImageCreateInfo-usage-02560 | Y | | CreateImageMaxLimitsViolation | explicit | VkImageCreateInfo | (VK_EXT_fragment_density_map) | If usage includes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.height must be less than or equal to the ceiling of maxFramebufferHeight/minFragmentDensityTexelSize.height |
VUID-VkImageCreateInfo-usage-04815 | N | | None | explicit | VkImageCreateInfo | (VK_KHR_video_decode_queue) | If usage includes VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR, VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR, then the pNext chain must include a valid VkVideoProfilesKHR structure which includes at least one VkVideoProfileKHR with a decode codec-operation. |
VUID-VkImageCreateInfo-usage-04816 | N | | None | explicit | VkImageCreateInfo | (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-parameter | Y | | None | implicit | VkImageCreateInfo | core | usage must be a valid combination of VkImageUsageFlagBits values |
VUID-VkImageCreateInfo-usage-requiredbitmask | Y | | None | implicit | VkImageCreateInfo | core | usage must not be 0 |
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-arrayPitch-02268 | N | | None | explicit | VkImageDrmFormatModifierExplicitCreateInfoEXT | (VK_EXT_image_drm_format_modifier) | For each element of pPlaneLayouts, arrayPitch must be 0 if VkImageCreateInfo::arrayLayers is 1 |
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-depthPitch-02269 | N | | None | explicit | VkImageDrmFormatModifierExplicitCreateInfoEXT | (VK_EXT_image_drm_format_modifier) | For each element of pPlaneLayouts, depthPitch must be 0 if VkImageCreateInfo::extent.depth is 1 |
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifier-02264 | N | | None | explicit | VkImageDrmFormatModifierExplicitCreateInfoEXT | (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-02265 | N | | None | explicit | VkImageDrmFormatModifierExplicitCreateInfoEXT | (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-parameter | Y | | None | implicit | VkImageDrmFormatModifierExplicitCreateInfoEXT | (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-sType | Y | | None | implicit | VkImageDrmFormatModifierExplicitCreateInfoEXT | (VK_EXT_image_drm_format_modifier) | sType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT |
VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-size-02267 | N | | None | explicit | VkImageDrmFormatModifierExplicitCreateInfoEXT | (VK_EXT_image_drm_format_modifier) | For each element of pPlaneLayouts, size must be 0 |
VUID-VkImageDrmFormatModifierListCreateInfoEXT-drmFormatModifierCount-arraylength | Y | | None | implicit | VkImageDrmFormatModifierListCreateInfoEXT | (VK_EXT_image_drm_format_modifier) | drmFormatModifierCount must be greater than 0 |
VUID-VkImageDrmFormatModifierListCreateInfoEXT-pDrmFormatModifiers-02263 | N | | None | explicit | VkImageDrmFormatModifierListCreateInfoEXT | (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-parameter | Y | | None | implicit | VkImageDrmFormatModifierListCreateInfoEXT | (VK_EXT_image_drm_format_modifier) | pDrmFormatModifiers must be a valid pointer to an array of drmFormatModifierCount uint64_t values |
VUID-VkImageDrmFormatModifierListCreateInfoEXT-sType-sType | Y | | None | implicit | VkImageDrmFormatModifierListCreateInfoEXT | (VK_EXT_image_drm_format_modifier) | sType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT |
VUID-VkImageDrmFormatModifierPropertiesEXT-pNext-pNext | Y | | None | implicit | VkImageDrmFormatModifierPropertiesEXT | (VK_EXT_image_drm_format_modifier) | pNext must be NULL |
VUID-VkImageDrmFormatModifierPropertiesEXT-sType-sType | Y | | None | implicit | VkImageDrmFormatModifierPropertiesEXT | (VK_EXT_image_drm_format_modifier) | sType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT |
VUID-VkImageFormatListCreateInfo-pViewFormats-parameter | N | | None | implicit | VkImageFormatListCreateInfo | (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-sType | Y | | None | implicit | VkImageFormatListCreateInfo | (VK_VERSION_1_2,VK_KHR_image_format_list) | sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO |
VUID-VkImageFormatProperties2-pNext-pNext | Y | | None | implicit | VkImageFormatProperties2 | (VK_VERSION_1_1,VK_KHR_get_physical_device_properties2) | Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkAndroidHardwareBufferUsageANDROID, VkExternalImageFormatProperties, VkFilterCubicImageViewImageFormatPropertiesEXT, VkSamplerYcbcrConversionImageFormatProperties, or VkTextureLODGatherFormatPropertiesAMD |
VUID-VkImageFormatProperties2-sType-sType | Y | | None | implicit | VkImageFormatProperties2 | (VK_VERSION_1_1,VK_KHR_get_physical_device_properties2) | sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 |
VUID-VkImageFormatProperties2-sType-unique | Y | | None | implicit | VkImageFormatProperties2 | (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-01207 | Y | | InvalidBarriers | explicit | VkImageMemoryBarrier | !(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-01671 | Y | | InvalidBarriers | explicit | VkImageMemoryBarrier | (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-01672 | Y | | InvalidBarriers | explicit | VkImageMemoryBarrier | (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-01673 | Y | | InvalidBarriers | explicit | VkImageMemoryBarrier | (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-01932 | Y | | None | explicit | VkImageMemoryBarrier | core | If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object |
VUID-VkImageMemoryBarrier-image-02902 | Y | | InvalidBarriers | explicit | VkImageMemoryBarrier | !(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-03319 | Y | | InvalidBarriers | explicit | VkImageMemoryBarrier | (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-03320 | Y | | InvalidBarriers | explicit | VkImageMemoryBarrier | (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-04069 | Y | | InvalidBarrierQueueFamily | explicit | VkImageMemoryBarrier | !(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-04071 | Y | | InvalidBarrierQueueFamilyWithMemExt | explicit | VkImageMemoryBarrier | (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-04072 | Y | | InvalidBarrierQueueFamilyWithMemExt | explicit | VkImageMemoryBarrier | (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-parameter | Y | | None | implicit | VkImageMemoryBarrier | core | image must be a valid VkImage handle |
VUID-VkImageMemoryBarrier-newLayout-01198 | Y | | InvalidBarriers | explicit | VkImageMemoryBarrier | core | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, newLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED |
VUID-VkImageMemoryBarrier-newLayout-parameter | Y | | None | implicit | VkImageMemoryBarrier | core | newLayout must be a valid VkImageLayout value |
VUID-VkImageMemoryBarrier-oldLayout-01197 | Y | | InvalidBarriers, InvalidImageLayout | explicit | VkImageMemoryBarrier | core | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, oldLayout must be VK_IMAGE_LAYOUT_UNDEFINED or the current layout of the image subresources affected by the barrier |
VUID-VkImageMemoryBarrier-oldLayout-01208 | Y | | InvalidBarriers | explicit | VkImageMemoryBarrier | core | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT |
VUID-VkImageMemoryBarrier-oldLayout-01209 | Y | | InvalidBarriers | explicit | VkImageMemoryBarrier | core | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT |
VUID-VkImageMemoryBarrier-oldLayout-01210 | Y | | InvalidBarriers, InvalidImageLayout | explicit | VkImageMemoryBarrier | core | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT |
VUID-VkImageMemoryBarrier-oldLayout-01211 | Y | | InvalidBarriers | explicit | VkImageMemoryBarrier | core | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT |
VUID-VkImageMemoryBarrier-oldLayout-01212 | Y | | InvalidBarriers | explicit | VkImageMemoryBarrier | core | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT |
VUID-VkImageMemoryBarrier-oldLayout-01213 | Y | | InvalidBarriers | explicit | VkImageMemoryBarrier | core | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT |
VUID-VkImageMemoryBarrier-oldLayout-01658 | Y | | InvalidBarriers | explicit | VkImageMemoryBarrier | (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-01659 | Y | | InvalidBarriers | explicit | VkImageMemoryBarrier | (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-02088 | Y | | ShadingRateImageNV | explicit | VkImageMemoryBarrier | (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-parameter | Y | | None | implicit | VkImageMemoryBarrier | core | oldLayout must be a valid VkImageLayout value |
VUID-VkImageMemoryBarrier-pNext-pNext | Y | | None | implicit | VkImageMemoryBarrier | core | pNext must be NULL or a pointer to a valid instance of VkSampleLocationsInfoEXT |
VUID-VkImageMemoryBarrier-sType-sType | Y | | None | implicit | VkImageMemoryBarrier | core | sType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER |
VUID-VkImageMemoryBarrier-sType-unique | Y | | None | implicit | VkImageMemoryBarrier | core | The sType value of each struct in the pNext chain must be unique |
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-03938 | N | | None | explicit | VkImageMemoryBarrier | (VK_KHR_synchronization2) | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR, image must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT |
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-03939 | N | | None | explicit | VkImageMemoryBarrier | (VK_KHR_synchronization2) | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR, image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT |
VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04065 | N | | None | explicit | VkImageMemoryBarrier | (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-04066 | N | | None | explicit | VkImageMemoryBarrier | (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-04067 | N | | None | explicit | VkImageMemoryBarrier | (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-04068 | N | | None | explicit | VkImageMemoryBarrier | (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-04070 | N | | None | explicit | VkImageMemoryBarrier | (VK_VERSION_1_1,VK_KHR_external_memory) | If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one must not be a special queue family reserved for external memory ownership transfers, as described in Queue Family Ownership Transfer |
VUID-VkImageMemoryBarrier-subresourceRange-01486 | Y | | ImageBarrierWithBadRange | explicit | VkImageMemoryBarrier | core | subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created |
VUID-VkImageMemoryBarrier-subresourceRange-01488 | Y | | ImageBarrierWithBadRange | explicit | VkImageMemoryBarrier | core | subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created |
VUID-VkImageMemoryBarrier-subresourceRange-01724 | Y | | ImageBarrierWithBadRange | explicit | VkImageMemoryBarrier | core | If subresourceRange.levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created |
VUID-VkImageMemoryBarrier-subresourceRange-01725 | Y | | ImageBarrierWithBadRange | explicit | VkImageMemoryBarrier | core | If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created |
VUID-VkImageMemoryBarrier-subresourceRange-parameter | N | | None | implicit | VkImageMemoryBarrier | core | subresourceRange must be a valid VkImageSubresourceRange structure |
VUID-VkImageMemoryBarrier-synchronization2-03856 | Y | | InvalidBarrierQueueFamily | explicit | VkImageMemoryBarrier | !(VK_VERSION_1_1,VK_KHR_external_memory) | If the synchronization2 feature is not enabled, and image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex must both be VK_QUEUE_FAMILY_IGNORED |
VUID-VkImageMemoryBarrier-synchronization2-03857 | Y | | InvalidBarrierQueueFamilyWithMemExt, Sync2InvalidBarrierQueueFamily | explicit | VkImageMemoryBarrier | (VK_VERSION_1_1,VK_KHR_external_memory) | If the synchronization2 feature is not enabled, and image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, at least one of srcQueueFamilyIndex and dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03900 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03901 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_INDEX_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03902 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03903 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03904 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03905 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03906 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03907 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03908 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03909 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03910 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03911 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03912 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03913 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03914 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03915 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03916 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_HOST_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03917 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03918 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_conditional_rendering) | If pname:dstAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03919 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_fragment_density_map) | If pname:dstAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03920 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_transform_feedback) | If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03922 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_transform_feedback) | If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03923 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_shading_rate_image) | If pname:dstAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03924 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_device_generated_commands) | If pname:dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03925 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_device_generated_commands) | If pname:dstAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03926 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_blend_operation_advanced) | If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03927 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing) | If pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03928 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing) | If pname:dstAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-04747 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_transform_feedback) | If pname:dstAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, pname:dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-04858 | N | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_video_decode_queue) | If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-04859 | N | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_video_decode_queue) | If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-04860 | N | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_video_encode_queue) | If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-04861 | N | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_video_encode_queue) | If pname:dstAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-parameter | Y | | None | implicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | dstAccessMask must be a valid combination of VkAccessFlagBits2KHR values |
VUID-VkImageMemoryBarrier2KHR-dstStageMask-03929 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If the geometry shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstStageMask-03930 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If the tessellation shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-dstStageMask-03931 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_conditional_rendering) | If the conditional rendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT |
VUID-VkImageMemoryBarrier2KHR-dstStageMask-03932 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_fragment_density_map) | If the fragment density map feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT |
VUID-VkImageMemoryBarrier2KHR-dstStageMask-03933 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_transform_feedback) | If the transform feedback feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT |
VUID-VkImageMemoryBarrier2KHR-dstStageMask-03934 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_mesh_shader) | If the mesh shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV |
VUID-VkImageMemoryBarrier2KHR-dstStageMask-03935 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_mesh_shader) | If the task shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV |
VUID-VkImageMemoryBarrier2KHR-dstStageMask-04956 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_shading_rate_image) | If the shading rate image feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV |
VUID-VkImageMemoryBarrier2KHR-dstStageMask-04957 | N | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading) | If the subpass shading feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI |
VUID-VkImageMemoryBarrier2KHR-dstStageMask-parameter | Y | | None | implicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | dstStageMask must be a valid combination of VkPipelineStageFlagBits2KHR values |
VUID-VkImageMemoryBarrier2KHR-image-01207 | Y | | Sync2InvalidBarriers | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+!(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts) | If image has a depth/stencil format with both depth and stencil components, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT |
VUID-VkImageMemoryBarrier2KHR-image-01671 | Y | | Sync2InvalidBarriers | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If image has a single-plane color format or is not disjoint, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT |
VUID-VkImageMemoryBarrier2KHR-image-01672 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If image has a multi-planar format and the image is disjoint, then the aspectMask member of subresourceRange must include either at least one of VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, and VK_IMAGE_ASPECT_PLANE_2_BIT; or must include VK_IMAGE_ASPECT_COLOR_BIT |
VUID-VkImageMemoryBarrier2KHR-image-01673 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If image has a multi-planar format with only two planes, then the aspectMask member of subresourceRange must not include VK_IMAGE_ASPECT_PLANE_2_BIT |
VUID-VkImageMemoryBarrier2KHR-image-01932 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object |
VUID-VkImageMemoryBarrier2KHR-image-02902 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If image has a color format, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT |
VUID-VkImageMemoryBarrier2KHR-image-03319 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts) | If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then the aspectMask member of subresourceRange must include either or both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT |
VUID-VkImageMemoryBarrier2KHR-image-03320 | Y | | Sync2InvalidBarriers | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts) | If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT |
VUID-VkImageMemoryBarrier2KHR-image-04069 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+!(VK_VERSION_1_1,VK_KHR_external_memory) | If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must be valid queue families |
VUID-VkImageMemoryBarrier2KHR-image-04071 | Y | | Sync2InvalidBarrierQueueFamily | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory) | If image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, and one of srcQueueFamilyIndex and dstQueueFamilyIndex is one of the special queue family values reserved for external memory transfers, the other must be VK_QUEUE_FAMILY_IGNORED |
VUID-VkImageMemoryBarrier2KHR-image-04072 | Y | | Sync2InvalidBarrierQueueFamily | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory) | If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in Queue Family Ownership Transfer |
VUID-VkImageMemoryBarrier2KHR-image-parameter | Y | | None | implicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | image must be a valid VkImage handle |
VUID-VkImageMemoryBarrier2KHR-newLayout-01198 | Y | | Sync2InvalidBarriers | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, newLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED |
VUID-VkImageMemoryBarrier2KHR-newLayout-parameter | Y | | None | implicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | newLayout must be a valid VkImageLayout value |
VUID-VkImageMemoryBarrier2KHR-oldLayout-01197 | Y | | Sync2InvalidBarriers | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, oldLayout must be VK_IMAGE_LAYOUT_UNDEFINED or the current layout of the image subresources affected by the barrier |
VUID-VkImageMemoryBarrier2KHR-oldLayout-01208 | Y | | Sync2InvalidBarriers | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT |
VUID-VkImageMemoryBarrier2KHR-oldLayout-01209 | Y | | Sync2InvalidBarriers | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT |
VUID-VkImageMemoryBarrier2KHR-oldLayout-01210 | Y | | Sync2InvalidBarriers | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT |
VUID-VkImageMemoryBarrier2KHR-oldLayout-01211 | Y | | Sync2InvalidBarriers | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT |
VUID-VkImageMemoryBarrier2KHR-oldLayout-01212 | Y | | Sync2InvalidBarriers | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT |
VUID-VkImageMemoryBarrier2KHR-oldLayout-01213 | Y | | Sync2InvalidBarriers | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT |
VUID-VkImageMemoryBarrier2KHR-oldLayout-01658 | Y | | Sync2InvalidBarriers | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_maintenance2) | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT |
VUID-VkImageMemoryBarrier2KHR-oldLayout-01659 | Y | | Sync2InvalidBarriers | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_maintenance2) | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT |
VUID-VkImageMemoryBarrier2KHR-oldLayout-02088 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image) | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR then image must have been created with VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR set |
VUID-VkImageMemoryBarrier2KHR-oldLayout-parameter | Y | | None | implicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | oldLayout must be a valid VkImageLayout value |
VUID-VkImageMemoryBarrier2KHR-pNext-pNext | Y | | None | implicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | pNext must be NULL or a pointer to a valid instance of VkSampleLocationsInfoEXT |
VUID-VkImageMemoryBarrier2KHR-sType-sType | Y | | None | implicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | sType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR |
VUID-VkImageMemoryBarrier2KHR-sType-unique | Y | | None | implicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | The sType value of each struct in the pNext chain must be unique |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03900 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03901 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_INDEX_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03902 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03903 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03904 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03905 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03906 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03907 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03908 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_SHADER_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03909 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03910 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03911 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03912 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03913 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03914 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03915 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03916 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_HOST_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03917 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:srcAccessMask includes VK_ACCESS_2_HOST_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_HOST_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03918 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_conditional_rendering) | If pname:srcAccessMask includes VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03919 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_fragment_density_map) | If pname:srcAccessMask includes VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03920 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_transform_feedback) | If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03922 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_transform_feedback) | If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03923 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_shading_rate_image) | If pname:srcAccessMask includes VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03924 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_device_generated_commands) | If pname:srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03925 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_device_generated_commands) | If pname:srcAccessMask includes VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03926 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_blend_operation_advanced) | If pname:srcAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03927 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing) | If pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03928 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing) | If pname:srcAccessMask includes VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-04747 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_transform_feedback) | If pname:srcAccessMask includes VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, pname:srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-04858 | N | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_video_decode_queue) | If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-04859 | N | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_video_decode_queue) | If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-04860 | N | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_video_encode_queue) | If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-04861 | N | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_video_encode_queue) | If pname:srcAccessMask includes VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, pname:srcStageMask must include VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-parameter | Y | | None | implicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | srcAccessMask must be a valid combination of VkAccessFlagBits2KHR values |
VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-03938 | N | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_synchronization2) | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR, image must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT |
VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-03939 | N | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_KHR_synchronization2) | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR, image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT |
VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-04065 | N | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts) | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL then image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT |
VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-04066 | N | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts) | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set |
VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-04067 | N | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts) | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT |
VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-04068 | N | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts) | If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set |
VUID-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-04070 | N | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_VERSION_1_1,VK_KHR_external_memory) | If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one must not be a special queue family reserved for external memory ownership transfers, as described in Queue Family Ownership Transfer |
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03854 | N | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If either srcStageMask or dstStageMask includes VK_PIPELINE_STAGE_2_HOST_BIT_KHR, srcQueueFamilyIndex and dstQueueFamilyIndex must be equal |
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03855 | N | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If srcStageMask includes VK_PIPELINE_STAGE_2_HOST_BIT_KHR, and srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define an image layout transition, oldLayout must be one of VK_IMAGE_LAYOUT_PREINITIALIZED, VK_IMAGE_LAYOUT_UNDEFINED, or VK_IMAGE_LAYOUT_GENERAL |
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03929 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If the geometry shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03930 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If the tessellation shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR or VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR |
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03931 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_conditional_rendering) | If the conditional rendering feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT |
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03932 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_fragment_density_map) | If the fragment density map feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT |
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03933 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_EXT_transform_feedback) | If the transform feedback feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT |
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03934 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_mesh_shader) | If the mesh shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV |
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03935 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_mesh_shader) | If the task shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV |
VUID-VkImageMemoryBarrier2KHR-srcStageMask-04956 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_NV_shading_rate_image) | If the shading rate image feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV |
VUID-VkImageMemoryBarrier2KHR-srcStageMask-04957 | N | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2)+(VK_HUAWEI_subpass_shading) | If the subpass shading feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI |
VUID-VkImageMemoryBarrier2KHR-srcStageMask-parameter | Y | | None | implicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | srcStageMask must be a valid combination of VkPipelineStageFlagBits2KHR values |
VUID-VkImageMemoryBarrier2KHR-subresourceRange-01486 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created |
VUID-VkImageMemoryBarrier2KHR-subresourceRange-01488 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created |
VUID-VkImageMemoryBarrier2KHR-subresourceRange-01724 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If subresourceRange.levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created |
VUID-VkImageMemoryBarrier2KHR-subresourceRange-01725 | Y | | None | explicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created |
VUID-VkImageMemoryBarrier2KHR-subresourceRange-parameter | N | | None | implicit | VkImageMemoryBarrier2KHR | (VK_KHR_synchronization2) | subresourceRange must be a valid VkImageSubresourceRange structure |
VUID-VkImageMemoryRequirementsInfo2-image-01589 | Y | | InvalidMemoryRequirements | explicit | VkImageMemoryRequirementsInfo2 | (VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If image was created with a multi-planar format and the VK_IMAGE_CREATE_DISJOINT_BIT flag, there must be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure |
VUID-VkImageMemoryRequirementsInfo2-image-01590 | Y | | InvalidMemoryRequirements | explicit | VkImageMemoryRequirementsInfo2 | (VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If image was not created with the VK_IMAGE_CREATE_DISJOINT_BIT flag, there must not be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure |
VUID-VkImageMemoryRequirementsInfo2-image-01591 | Y | | InvalidMemoryRequirements | explicit | VkImageMemoryRequirementsInfo2 | (VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_image_drm_format_modifier) | If image was created with a single-plane format, there must not be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure |
VUID-VkImageMemoryRequirementsInfo2-image-01897 | Y | | AndroidHardwareBufferFetchUnboundImageInfo | explicit | VkImageMemoryRequirementsInfo2 | (VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_ANDROID_external_memory_android_hardware_buffer) | If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory |
VUID-VkImageMemoryRequirementsInfo2-image-02279 | N | | None | explicit | VkImageMemoryRequirementsInfo2 | (VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier) | If image was created with VK_IMAGE_CREATE_DISJOINT_BIT and with VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then there must be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure |
VUID-VkImageMemoryRequirementsInfo2-image-02280 | Y | | InvalidMemoryRequirements | explicit | VkImageMemoryRequirementsInfo2 | (VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier) | If image was created with a single-plane format and with any tiling other than VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then there must not be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure |
VUID-VkImageMemoryRequirementsInfo2-image-parameter | Y | | None | implicit | VkImageMemoryRequirementsInfo2 | (VK_VERSION_1_1,VK_KHR_get_memory_requirements2) | image must be a valid VkImage handle |
VUID-VkImageMemoryRequirementsInfo2-pNext-pNext | Y | | None | implicit | VkImageMemoryRequirementsInfo2 | (VK_VERSION_1_1,VK_KHR_get_memory_requirements2) | pNext must be NULL or a pointer to a valid instance of VkImagePlaneMemoryRequirementsInfo |
VUID-VkImageMemoryRequirementsInfo2-sType-sType | Y | | None | implicit | VkImageMemoryRequirementsInfo2 | (VK_VERSION_1_1,VK_KHR_get_memory_requirements2) | sType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 |
VUID-VkImageMemoryRequirementsInfo2-sType-unique | Y | | None | implicit | VkImageMemoryRequirementsInfo2 | (VK_VERSION_1_1,VK_KHR_get_memory_requirements2) | The sType value of each struct in the pNext chain must be unique |
VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-flags-zerobitmask | Y | | None | implicit | VkImagePipeSurfaceCreateInfoFUCHSIA | (VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface) | flags must be 0 |
VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-imagePipeHandle-04863 | N | | None | explicit | VkImagePipeSurfaceCreateInfoFUCHSIA | (VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface) | imagePipeHandle must be a valid zx_handle_t |
VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-pNext-pNext | Y | | None | implicit | VkImagePipeSurfaceCreateInfoFUCHSIA | (VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface) | pNext must be NULL |
VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-sType-sType | Y | | None | implicit | VkImagePipeSurfaceCreateInfoFUCHSIA | (VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface) | sType must be VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA |
VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02281 | Y | | InvalidMemoryRequirements | explicit | VkImagePlaneMemoryRequirementsInfo | (VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If the image's tiling is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, then planeAspect must be a single valid format plane for the image (that is, for a two-plane image planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT, and for a three-plane image planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT or VK_IMAGE_ASPECT_PLANE_2_BIT) |
VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02282 | N | | None | explicit | VkImagePlaneMemoryRequirementsInfo | (VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier) | If the image's tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then planeAspect must be a single valid memory plane for the image (that is, aspectMask must specify a plane index that is less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image's format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier) |
VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-parameter | Y | | None | implicit | VkImagePlaneMemoryRequirementsInfo | (VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | planeAspect must be a valid VkImageAspectFlagBits value |
VUID-VkImagePlaneMemoryRequirementsInfo-sType-sType | Y | | None | implicit | VkImagePlaneMemoryRequirementsInfo | (VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | sType must be VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO |
VUID-VkImageResolve-aspectMask-00266 | Y | | None | explicit | VkImageResolve | core | The aspectMask member of srcSubresource and dstSubresource must only contain VK_IMAGE_ASPECT_COLOR_BIT |
VUID-VkImageResolve-dstSubresource-parameter | N | | None | implicit | VkImageResolve | core | dstSubresource must be a valid VkImageSubresourceLayers structure |
VUID-VkImageResolve-layerCount-00267 | Y | | None | explicit | VkImageResolve | core | The layerCount member of srcSubresource and dstSubresource must match |
VUID-VkImageResolve-srcSubresource-parameter | N | | None | implicit | VkImageResolve | core | srcSubresource must be a valid VkImageSubresourceLayers structure |
VUID-VkImageResolve2KHR-aspectMask-00266 | Y | | None | explicit | VkImageResolve2KHR | (VK_KHR_copy_commands2) | The aspectMask member of srcSubresource and dstSubresource must only contain VK_IMAGE_ASPECT_COLOR_BIT |
VUID-VkImageResolve2KHR-dstSubresource-parameter | N | | None | implicit | VkImageResolve2KHR | (VK_KHR_copy_commands2) | dstSubresource must be a valid VkImageSubresourceLayers structure |
VUID-VkImageResolve2KHR-layerCount-00267 | Y | | None | explicit | VkImageResolve2KHR | (VK_KHR_copy_commands2) | The layerCount member of srcSubresource and dstSubresource must match |
VUID-VkImageResolve2KHR-pNext-pNext | Y | | None | implicit | VkImageResolve2KHR | (VK_KHR_copy_commands2) | pNext must be NULL |
VUID-VkImageResolve2KHR-sType-sType | Y | | None | implicit | VkImageResolve2KHR | (VK_KHR_copy_commands2) | sType must be VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR |
VUID-VkImageResolve2KHR-srcSubresource-parameter | N | | None | implicit | VkImageResolve2KHR | (VK_KHR_copy_commands2) | srcSubresource must be a valid VkImageSubresourceLayers structure |
VUID-VkImageSparseMemoryRequirementsInfo2-image-parameter | Y | | None | implicit | VkImageSparseMemoryRequirementsInfo2 | (VK_VERSION_1_1,VK_KHR_get_memory_requirements2) | image must be a valid VkImage handle |
VUID-VkImageSparseMemoryRequirementsInfo2-pNext-pNext | Y | | None | implicit | VkImageSparseMemoryRequirementsInfo2 | (VK_VERSION_1_1,VK_KHR_get_memory_requirements2) | pNext must be NULL |
VUID-VkImageSparseMemoryRequirementsInfo2-sType-sType | Y | | None | implicit | VkImageSparseMemoryRequirementsInfo2 | (VK_VERSION_1_1,VK_KHR_get_memory_requirements2) | sType must be VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 |
VUID-VkImageStencilUsageCreateInfo-sType-sType | Y | | None | implicit | VkImageStencilUsageCreateInfo | (VK_VERSION_1_2,VK_EXT_separate_stencil_usage) | sType must be VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO |
VUID-VkImageStencilUsageCreateInfo-stencilUsage-02539 | Y | | ImageStencilCreate | explicit | VkImageStencilUsageCreateInfo | (VK_VERSION_1_2,VK_EXT_separate_stencil_usage) | If stencilUsage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, it must not include bits other than VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT |
VUID-VkImageStencilUsageCreateInfo-stencilUsage-parameter | Y | | None | implicit | VkImageStencilUsageCreateInfo | (VK_VERSION_1_2,VK_EXT_separate_stencil_usage) | stencilUsage must be a valid combination of VkImageUsageFlagBits values |
VUID-VkImageStencilUsageCreateInfo-stencilUsage-requiredbitmask | Y | | None | implicit | VkImageStencilUsageCreateInfo | (VK_VERSION_1_2,VK_EXT_separate_stencil_usage) | stencilUsage must not be 0 |
VUID-VkImageSubresource-aspectMask-parameter | Y | | None | implicit | VkImageSubresource | core | aspectMask must be a valid combination of VkImageAspectFlagBits values |
VUID-VkImageSubresource-aspectMask-requiredbitmask | Y | | None | implicit | VkImageSubresource | core | aspectMask must not be 0 |
VUID-VkImageSubresourceLayers-aspectMask-00167 | Y | | CopyImageAspectMismatch | explicit | VkImageSubresourceLayers | core | If aspectMask contains VK_IMAGE_ASPECT_COLOR_BIT, it must not contain either of VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT |
VUID-VkImageSubresourceLayers-aspectMask-00168 | Y | | CopyImageAspectMismatch | explicit | VkImageSubresourceLayers | core | aspectMask must not contain VK_IMAGE_ASPECT_METADATA_BIT |
VUID-VkImageSubresourceLayers-aspectMask-02247 | Y | | CopyImageAspectMismatch | explicit | VkImageSubresourceLayers | (VK_EXT_image_drm_format_modifier) | aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i |
VUID-VkImageSubresourceLayers-aspectMask-parameter | Y | | None | implicit | VkImageSubresourceLayers | core | aspectMask must be a valid combination of VkImageAspectFlagBits values |
VUID-VkImageSubresourceLayers-aspectMask-requiredbitmask | Y | | None | implicit | VkImageSubresourceLayers | core | aspectMask must not be 0 |
VUID-VkImageSubresourceLayers-layerCount-01700 | Y | | MiscBlitImageTests | explicit | VkImageSubresourceLayers | core | layerCount must be greater than 0 |
VUID-VkImageSubresourceRange-aspectMask-01670 | N | | None | explicit | VkImageSubresourceRange | (VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If aspectMask includes VK_IMAGE_ASPECT_COLOR_BIT, then it must not include any of VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT |
VUID-VkImageSubresourceRange-aspectMask-02278 | N | | None | explicit | VkImageSubresourceRange | (VK_EXT_image_drm_format_modifier) | aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i |
VUID-VkImageSubresourceRange-aspectMask-parameter | Y | | None | implicit | VkImageSubresourceRange | core | aspectMask must be a valid combination of VkImageAspectFlagBits values |
VUID-VkImageSubresourceRange-aspectMask-requiredbitmask | Y | | None | implicit | VkImageSubresourceRange | core | aspectMask must not be 0 |
VUID-VkImageSubresourceRange-layerCount-01721 | Y | | ImageBarrierWithBadRange, ClearDepthStencilWithBadRange, ClearColorImageWithBadRange, CreateImageViewInvalidSubresourceRange | explicit | VkImageSubresourceRange | core | If layerCount is not VK_REMAINING_ARRAY_LAYERS, it must be greater than 0 |
VUID-VkImageSubresourceRange-levelCount-01720 | Y | | ImageBarrierWithBadRange, ClearDepthStencilWithBadRange, ClearColorImageWithBadRange, CreateImageViewInvalidSubresourceRange | explicit | VkImageSubresourceRange | core | If levelCount is not VK_REMAINING_MIP_LEVELS, it must be greater than 0 |
VUID-VkImageSwapchainCreateInfoKHR-sType-sType | Y | | None | implicit | VkImageSwapchainCreateInfoKHR | (VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain) | sType must be VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR |
VUID-VkImageSwapchainCreateInfoKHR-swapchain-00995 | Y | | ValidSwapchainImage | explicit | VkImageSwapchainCreateInfoKHR | (VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain) | If swapchain is not VK_NULL_HANDLE, the fields of VkImageCreateInfo must match the implied image creation parameters of the swapchain |
VUID-VkImageSwapchainCreateInfoKHR-swapchain-parameter | N | | None | implicit | VkImageSwapchainCreateInfoKHR | (VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain) | If swapchain is not VK_NULL_HANDLE, swapchain must be a valid VkSwapchainKHR handle |
VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02230 | Y | | AstcDecodeMode | explicit | VkImageViewASTCDecodeModeEXT | (VK_EXT_astc_decode_mode) | decodeMode must be one of VK_FORMAT_R16G16B16A16_SFLOAT, VK_FORMAT_R8G8B8A8_UNORM, or VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 |
VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02231 | Y | | AstcDecodeMode | explicit | VkImageViewASTCDecodeModeEXT | (VK_EXT_astc_decode_mode) | If the decodeModeSharedExponent feature is not enabled, decodeMode must not be VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 |
VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02232 | N | | None | explicit | VkImageViewASTCDecodeModeEXT | (VK_EXT_astc_decode_mode) | If decodeMode is VK_FORMAT_R8G8B8A8_UNORM the image view must not include blocks using any of the ASTC HDR modes |
VUID-VkImageViewASTCDecodeModeEXT-decodeMode-parameter | Y | | None | implicit | VkImageViewASTCDecodeModeEXT | (VK_EXT_astc_decode_mode) | decodeMode must be a valid VkFormat value |
VUID-VkImageViewASTCDecodeModeEXT-format-04084 | Y | | AstcDecodeMode | explicit | VkImageViewASTCDecodeModeEXT | (VK_EXT_astc_decode_mode) | format of the image view must be one of the ASTC Compressed Image Formats |
VUID-VkImageViewASTCDecodeModeEXT-sType-sType | Y | | None | implicit | VkImageViewASTCDecodeModeEXT | (VK_EXT_astc_decode_mode) | sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT |
VUID-VkImageViewAddressPropertiesNVX-pNext-pNext | Y | | None | implicit | VkImageViewAddressPropertiesNVX | (VK_NVX_image_view_handle) | pNext must be NULL |
VUID-VkImageViewAddressPropertiesNVX-sType-sType | Y | | None | implicit | VkImageViewAddressPropertiesNVX | (VK_NVX_image_view_handle) | sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX |
VUID-VkImageViewCreateInfo-None-02273 | Y | | AndroidHardwareBufferCreateImageView | explicit | VkImageViewCreateInfo | core | The format features of the resultant image view must contain at least one bit |
VUID-VkImageViewCreateInfo-components-parameter | N | | None | implicit | VkImageViewCreateInfo | core | components must be a valid VkComponentMapping structure |
VUID-VkImageViewCreateInfo-flags-02572 | Y | | FragmentDensityMapDisabled | explicit | VkImageViewCreateInfo | (VK_EXT_fragment_density_map) | If dynamic fragment density map feature is not enabled, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT |
VUID-VkImageViewCreateInfo-flags-03567 | Y | | FragmentDensityMapEnabled | explicit | VkImageViewCreateInfo | (VK_EXT_fragment_density_map)+(VK_EXT_fragment_density_map2) | If deferred fragment density map feature is not enabled, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT |
VUID-VkImageViewCreateInfo-flags-03568 | Y | | FragmentDensityMapEnabled | explicit | VkImageViewCreateInfo | (VK_EXT_fragment_density_map)+(VK_EXT_fragment_density_map2) | If flags contains VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT |
VUID-VkImageViewCreateInfo-flags-04116 | Y | | FragmentDensityMapEnabled | explicit | VkImageViewCreateInfo | (VK_EXT_fragment_density_map) | If flags does not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT and image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, its flags must not contain any of VK_IMAGE_CREATE_PROTECTED_BIT, VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT |
VUID-VkImageViewCreateInfo-flags-parameter | Y | | None | implicit | VkImageViewCreateInfo | core | flags must be a valid combination of VkImageViewCreateFlagBits values |
VUID-VkImageViewCreateInfo-format-04714 | N | | None | explicit | VkImageViewCreateInfo | (VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If format has a _422 or _420 suffix then image must have been created with a width that is a multiple of 2 |
VUID-VkImageViewCreateInfo-format-04715 | N | | None | explicit | VkImageViewCreateInfo | (VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If format has a _420 suffix then image must have been created with a height that is a multiple of 2 |
VUID-VkImageViewCreateInfo-format-04724 | N | | None | explicit | VkImageViewCreateInfo | (VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If format is one of those listed in Formats requiring sampler Y'CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, then the pNext chain must include a VkSamplerYcbcrConversionInfo structure with a conversion value other than VK_NULL_HANDLE |
VUID-VkImageViewCreateInfo-format-parameter | Y | | None | implicit | VkImageViewCreateInfo | core | format must be a valid VkFormat value |
VUID-VkImageViewCreateInfo-image-01003 | Y | | CreateImageViewBreaksParameterCompatibilityRequirements, ShadingRateImageNV | explicit | VkImageViewCreateInfo | core | If image was not created with VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT then viewType must not be VK_IMAGE_VIEW_TYPE_CUBE or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY |
VUID-VkImageViewCreateInfo-image-01005 | Y | | CreateImageViewBreaksParameterCompatibilityRequirements | explicit | VkImageViewCreateInfo | (VK_VERSION_1_1,VK_KHR_maintenance1) | If image was created with VK_IMAGE_TYPE_3D but without VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set then viewType must not be VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY |
VUID-VkImageViewCreateInfo-image-01018 | Y | | CreateImageViewFormatFeatureMismatch, InvalidImageFormatList, CreateImageViewDifferentClass, CreateImageViewIncompatibleDepthFormat, CreateImageViewIncompatibleFormat | explicit | VkImageViewCreateInfo | !(VK_VERSION_1_1,VK_KHR_maintenance2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, format must be compatible with the format used to create image, as defined in Format Compatibility Classes |
VUID-VkImageViewCreateInfo-image-01019 | Y | | CreateImageViewNoMutableFormatBit | explicit | VkImageViewCreateInfo | !(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If image was not created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, format must be identical to the format used to create image |
VUID-VkImageViewCreateInfo-image-01020 | Y | | None | explicit | VkImageViewCreateInfo | core | If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object |
VUID-VkImageViewCreateInfo-image-01482 | Y | | CreateImageViewInvalidSubresourceRange | explicit | VkImageViewCreateInfo | (VK_VERSION_1_1,VK_KHR_maintenance1) | If image is not a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, or viewType is not VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created |
VUID-VkImageViewCreateInfo-image-01583 | N | | None | explicit | VkImageViewCreateInfo | (VK_VERSION_1_1,VK_KHR_maintenance2) | If image was created with the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, format must be compatible with, or must be an uncompressed format that is size-compatible with, the format used to create image |
VUID-VkImageViewCreateInfo-image-01584 | N | | None | explicit | VkImageViewCreateInfo | (VK_VERSION_1_1,VK_KHR_maintenance2) | If image was created with the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, the levelCount and layerCount members of subresourceRange must both be 1 |
VUID-VkImageViewCreateInfo-image-01586 | Y | | MultiplaneIncompatibleViewFormat | explicit | VkImageViewCreateInfo | (VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, if the format of the image is a multi-planar format, and if subresourceRange.aspectMask is one of VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT, then format must be compatible with the VkFormat for the plane of the image format indicated by subresourceRange.aspectMask, as defined in Compatible formats of planes of multi-planar formats |
VUID-VkImageViewCreateInfo-image-01759 | Y | | CreateImageViewIncompatibleDepthFormat, CreateImageViewDifferentClass, CreateImageViewIncompatibleFormat | explicit | VkImageViewCreateInfo | (VK_VERSION_1_1,VK_KHR_maintenance2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, but without the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, format must be compatible with the format used to create image, as defined in Format Compatibility Classes |
VUID-VkImageViewCreateInfo-image-01760 | Y | | CreateImageViewIncompatibleDepthFormat, CreateImageViewDifferentClass, CreateImageViewIncompatibleFormat | explicit | VkImageViewCreateInfo | !(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, and if the format of the image is not a multi-planar format, format must be compatible with the format used to create image, as defined in Format Compatibility Classes |
VUID-VkImageViewCreateInfo-image-01761 | Y | | CreateImageViewIncompatibleDepthFormat, CreateImageViewDifferentClass, CreateImageViewIncompatibleFormat | explicit | VkImageViewCreateInfo | (VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, but without the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, and if the format of the image is not a multi-planar format, format must be compatible with the format used to create image, as defined in Format Compatibility Classes |
VUID-VkImageViewCreateInfo-image-01762 | Y | | AndroidHardwareBufferCreateImageView | explicit | VkImageViewCreateInfo | (VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If image was not created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, or if the format of the image is a multi-planar format and if subresourceRange.aspectMask is VK_IMAGE_ASPECT_COLOR_BIT, format must be identical to the format used to create image |
VUID-VkImageViewCreateInfo-image-02086 | Y | | ShadingRateImageNV | explicit | VkImageViewCreateInfo | (VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image) | If image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, viewType must be VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY |
VUID-VkImageViewCreateInfo-image-02087 | Y | | ShadingRateImageNV | explicit | VkImageViewCreateInfo | (VK_NV_shading_rate_image) | If the shadingRateImage feature is enabled, and If image was created with usage containing VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, format must be VK_FORMAT_R8_UINT |
VUID-VkImageViewCreateInfo-image-02399 | Y | | AndroidHardwareBufferCreateImageView | explicit | VkImageViewCreateInfo | (VK_ANDROID_external_memory_android_hardware_buffer) | If image has an external format, format must be VK_FORMAT_UNDEFINED |
VUID-VkImageViewCreateInfo-image-02400 | Y | | AndroidHardwareBufferCreateImageView | explicit | VkImageViewCreateInfo | (VK_ANDROID_external_memory_android_hardware_buffer) | If image has an external format, the pNext chain must include a VkSamplerYcbcrConversionInfo structure with a conversion object created with the same external format as image |
VUID-VkImageViewCreateInfo-image-02401 | Y | | AndroidHardwareBufferCreateImageView | explicit | VkImageViewCreateInfo | (VK_ANDROID_external_memory_android_hardware_buffer) | If image has an external format, all members of components must be the identity swizzle |
VUID-VkImageViewCreateInfo-image-02571 | Y | | None | explicit | VkImageViewCreateInfo | (VK_EXT_fragment_density_map) | If image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, subresourceRange.levelCount must be 1 |
VUID-VkImageViewCreateInfo-image-02724 | Y | | CreateImageViewInvalidSubresourceRange | explicit | VkImageViewCreateInfo | (VK_VERSION_1_1,VK_KHR_maintenance1) | If image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.baseArrayLayer must be less than the depth computed from baseMipLevel and extent.depth specified in VkImageCreateInfo when image was created, according to the formula defined in Image Miplevel Sizing |
VUID-VkImageViewCreateInfo-image-03569 | Y | | FragmentDensityMapEnabled | explicit | VkImageViewCreateInfo | (VK_EXT_fragment_density_map)+(VK_EXT_fragment_density_map2) | If image was created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT and usage containing VK_IMAGE_USAGE_SAMPLED_BIT, subresourceRange.layerCount must be less than or equal to VkPhysicalDeviceFragmentDensityMap2PropertiesEXT::maxSubsampledArrayLayers |
VUID-VkImageViewCreateInfo-image-04441 | Y | | InvalidUsageBits | explicit | VkImageViewCreateInfo | core | image must have been created with a usage value containing at least one of the usages defined in the valid image usage list for image views |
VUID-VkImageViewCreateInfo-image-04739 | N | | None | explicit | VkImageViewCreateInfo | (VK_VERSION_1_1,VK_KHR_maintenance2) | If image was created with the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag and format is a non-compressed format, viewType must not be VK_IMAGE_VIEW_TYPE_3D |
VUID-VkImageViewCreateInfo-image-04817 | N | | None | explicit | VkImageViewCreateInfo | (VK_KHR_video_decode_queue) | If image was created with usage containing VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR, VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR, VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR, then the viewType must be VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY and all members of components must have the identity swizzle |
VUID-VkImageViewCreateInfo-image-04818 | N | | None | explicit | VkImageViewCreateInfo | (VK_KHR_video_encode_queue) | If image was created with usage containing VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR, VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR, VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR, then the viewType must be VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY and all members of components must have the identity swizzle |
VUID-VkImageViewCreateInfo-image-parameter | Y | | None | implicit | VkImageViewCreateInfo | core | image must be a valid VkImage handle |
VUID-VkImageViewCreateInfo-imageViewFormatReinterpretation-04466 | Y | | DestroyInstanceHandleLeak | explicit | VkImageViewCreateInfo | (VK_KHR_portability_subset) | If the [VK_KHR_portability_subset] extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageViewFormatReinterpretation is VK_FALSE, the VkFormat in format must not contain a different number of components, or a different number of bits in each component, than the format of the VkImage in image. |
VUID-VkImageViewCreateInfo-imageViewFormatSwizzle-04465 | Y | | DestroyInstanceHandleLeak | explicit | VkImageViewCreateInfo | (VK_KHR_portability_subset) | If the [VK_KHR_portability_subset] extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageViewFormatSwizzle is VK_FALSE, all elements of components must be VK_COMPONENT_SWIZZLE_IDENTITY. |
VUID-VkImageViewCreateInfo-pNext-01585 | Y | | InvalidImageFormatList | explicit | VkImageViewCreateInfo | (VK_VERSION_1_2,VK_KHR_image_format_list) | If a VkImageFormatListCreateInfo structure was included in the pNext chain of the VkImageCreateInfo structure used when creating image and VkImageFormatListCreateInfo::viewFormatCount is not zero then format must be one of the formats in VkImageFormatListCreateInfo::pViewFormats |
VUID-VkImageViewCreateInfo-pNext-01970 | Y | | InvalidSwizzleYCbCr | explicit | VkImageViewCreateInfo | (VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion) | If the pNext chain includes a VkSamplerYcbcrConversionInfo structure with a conversion value other than VK_NULL_HANDLE, all members of components must have the identity swizzle |
VUID-VkImageViewCreateInfo-pNext-02661 | Y | | CreateImageViewNoSeparateStencilUsage | explicit | VkImageViewCreateInfo | (VK_VERSION_1_1,VK_KHR_maintenance2)+!(VK_VERSION_1_2+VK_EXT_separate_stencil_usage) | If the pNext chain includes a VkImageViewUsageCreateInfo structure, its usage member must not include any bits that were not set in the usage member of the VkImageCreateInfo structure used to create image |
VUID-VkImageViewCreateInfo-pNext-02662 | Y | | CreateImageViewStencilUsageCreateInfo | explicit | VkImageViewCreateInfo | (VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_2,VK_EXT_separate_stencil_usage) | If the pNext chain includes a VkImageViewUsageCreateInfo structure, and image was not created with a VkImageStencilUsageCreateInfo structure included in the pNext chain of VkImageCreateInfo, its usage member must not include any bits that were not set in the usage member of the VkImageCreateInfo structure used to create image |
VUID-VkImageViewCreateInfo-pNext-02663 | Y | | CreateImageViewStencilUsageCreateInfo | explicit | VkImageViewCreateInfo | (VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_2,VK_EXT_separate_stencil_usage) | If the pNext chain includes a VkImageViewUsageCreateInfo structure, image was created with a VkImageStencilUsageCreateInfo structure included in the pNext chain of VkImageCreateInfo, and subResourceRange.aspectMask includes VK_IMAGE_ASPECT_STENCIL_BIT, the usage member of the VkImageViewUsageCreateInfo instance must not include any bits that were not set in the usage member of the VkImageStencilUsageCreateInfo structure used to create image |
VUID-VkImageViewCreateInfo-pNext-02664 | Y | | CreateImageViewStencilUsageCreateInfo | explicit | VkImageViewCreateInfo | (VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_2,VK_EXT_separate_stencil_usage) | If the pNext chain includes a VkImageViewUsageCreateInfo structure, image was created with a VkImageStencilUsageCreateInfo structure included in the pNext chain of VkImageCreateInfo, and subResourceRange.aspectMask includes bits other than VK_IMAGE_ASPECT_STENCIL_BIT, the usage member of the VkImageViewUsageCreateInfo structure must not include any bits that were not set in the usage member of the VkImageCreateInfo structure used to create image |
VUID-VkImageViewCreateInfo-pNext-pNext | Y | | None | implicit | VkImageViewCreateInfo | core | 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 VkImageViewASTCDecodeModeEXT, VkImageViewUsageCreateInfo, VkSamplerYcbcrConversionInfo, VkVideoProfileKHR, or VkVideoProfilesKHR |
VUID-VkImageViewCreateInfo-sType-sType | Y | | None | implicit | VkImageViewCreateInfo | core | sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO |
VUID-VkImageViewCreateInfo-sType-unique | Y | | None | implicit | VkImageViewCreateInfo | core | The sType value of each struct in the pNext chain must be unique |
VUID-VkImageViewCreateInfo-subResourceRange-01021 | Y | | CreateImageViewBreaksParameterCompatibilityRequirements | explicit | VkImageViewCreateInfo | core | subresourceRange and viewType must be compatible with the image, as described in the compatibility table |
VUID-VkImageViewCreateInfo-subresourceRange-01478 | Y | | CreateImageViewInvalidSubresourceRange | explicit | VkImageViewCreateInfo | core | subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created |
VUID-VkImageViewCreateInfo-subresourceRange-01480 | Y | | CreateImageViewInvalidSubresourceRange | explicit | VkImageViewCreateInfo | !(VK_VERSION_1_1,VK_KHR_maintenance1) | subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created |
VUID-VkImageViewCreateInfo-subresourceRange-01483 | Y | | CreateImageViewInvalidSubresourceRange | explicit | VkImageViewCreateInfo | (VK_VERSION_1_1,VK_KHR_maintenance1) | If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, image is not a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, or viewType is not VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.layerCount must be non-zero and subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created |
VUID-VkImageViewCreateInfo-subresourceRange-01718 | Y | | CreateImageViewInvalidSubresourceRange | explicit | VkImageViewCreateInfo | core | If subresourceRange.levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created |
VUID-VkImageViewCreateInfo-subresourceRange-01719 | Y | | CreateImageViewInvalidSubresourceRange | explicit | VkImageViewCreateInfo | !(VK_VERSION_1_1,VK_KHR_maintenance1) | If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created |
VUID-VkImageViewCreateInfo-subresourceRange-02725 | Y | | CreateImageViewInvalidSubresourceRange | explicit | VkImageViewCreateInfo | (VK_VERSION_1_1,VK_KHR_maintenance1) | If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.layerCount must be non-zero and subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the depth computed from baseMipLevel and extent.depth specified in VkImageCreateInfo when image was created, according to the formula defined in Image Miplevel Sizing |
VUID-VkImageViewCreateInfo-subresourceRange-parameter | N | | None | implicit | VkImageViewCreateInfo | core | subresourceRange must be a valid VkImageSubresourceRange structure |
VUID-VkImageViewCreateInfo-usage-02274 | Y | | CreateImageViewFormatFeatureMismatch | explicit | VkImageViewCreateInfo | core | If usage contains VK_IMAGE_USAGE_SAMPLED_BIT, then the format features of the resultant image view must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT |
VUID-VkImageViewCreateInfo-usage-02275 | Y | | InvalidImageViewUsageCreateInfo, CreateImageViewFormatFeatureMismatch | explicit | VkImageViewCreateInfo | core | If usage contains VK_IMAGE_USAGE_STORAGE_BIT, then the image view's format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT |
VUID-VkImageViewCreateInfo-usage-02276 | Y | | CreateImageViewFormatFeatureMismatch | explicit | VkImageViewCreateInfo | core | If usage contains VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, then the image view's format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT |
VUID-VkImageViewCreateInfo-usage-02277 | Y | | CreateImageViewFormatFeatureMismatch | explicit | VkImageViewCreateInfo | core | If usage contains VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, then the image view's format features must contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT |
VUID-VkImageViewCreateInfo-usage-02652 | Y | | CreateImageViewFormatFeatureMismatch | explicit | VkImageViewCreateInfo | core | If usage contains VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, then the image view's format features must contain at least one of VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT |
VUID-VkImageViewCreateInfo-usage-04550 | Y | | InvalidShadingRateUsage | explicit | VkImageViewCreateInfo | (VK_KHR_fragment_shading_rate) | If the attachmentFragmentShadingRate feature is enabled, and the usage for the image view includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, then the image view's format features must contain VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR |
VUID-VkImageViewCreateInfo-usage-04551 | Y | | InvalidShadingRateUsage | explicit | VkImageViewCreateInfo | (VK_KHR_fragment_shading_rate) | If the attachmentFragmentShadingRate feature is enabled, the usage for the image view includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, and layeredShadingRateAttachments is VK_FALSE, subresourceRange.layerCount must be 1 |
VUID-VkImageViewCreateInfo-viewType-01004 | Y | | CreateImageViewDifferentClass | explicit | VkImageViewCreateInfo | core | If the image cubemap arrays feature is not enabled, viewType must not be VK_IMAGE_VIEW_TYPE_CUBE_ARRAY |
VUID-VkImageViewCreateInfo-viewType-02960 | Y | | CreateImageViewInvalidSubresourceRange | explicit | VkImageViewCreateInfo | core | If viewType is VK_IMAGE_VIEW_TYPE_CUBE and subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.layerCount must be 6 |
VUID-VkImageViewCreateInfo-viewType-02961 | Y | | CreateImageViewInvalidSubresourceRange, CreateImageViewDifferentClass | explicit | VkImageViewCreateInfo | core | If viewType is VK_IMAGE_VIEW_TYPE_CUBE_ARRAY and subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.layerCount must be a multiple of 6 |
VUID-VkImageViewCreateInfo-viewType-02962 | Y | | CreateImageViewInvalidSubresourceRange | explicit | VkImageViewCreateInfo | core | If viewType is VK_IMAGE_VIEW_TYPE_CUBE and subresourceRange.layerCount is VK_REMAINING_ARRAY_LAYERS, the remaining number of layers must be 6 |
VUID-VkImageViewCreateInfo-viewType-02963 | Y | | CreateImageViewInvalidSubresourceRange | explicit | VkImageViewCreateInfo | core | If viewType is VK_IMAGE_VIEW_TYPE_CUBE_ARRAY and subresourceRange.layerCount is VK_REMAINING_ARRAY_LAYERS, the remaining number of layers must be a multiple of 6 |
VUID-VkImageViewCreateInfo-viewType-parameter | Y | | None | implicit | VkImageViewCreateInfo | core | viewType must be a valid VkImageViewType value |
VUID-VkImageViewHandleInfoNVX-commonparent | N | | None | implicit | VkImageViewHandleInfoNVX | (VK_NVX_image_view_handle) | Both of imageView, and sampler that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice |
VUID-VkImageViewHandleInfoNVX-descriptorType-02654 | N | | None | explicit | VkImageViewHandleInfoNVX | (VK_NVX_image_view_handle) | descriptorType must be VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER |
VUID-VkImageViewHandleInfoNVX-descriptorType-parameter | Y | | None | implicit | VkImageViewHandleInfoNVX | (VK_NVX_image_view_handle) | descriptorType must be a valid VkDescriptorType value |
VUID-VkImageViewHandleInfoNVX-imageView-02656 | N | | None | explicit | VkImageViewHandleInfoNVX | (VK_NVX_image_view_handle) | If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the image that imageView was created from must have been created with the VK_IMAGE_USAGE_SAMPLED_BIT usage bit set |
VUID-VkImageViewHandleInfoNVX-imageView-02657 | N | | None | explicit | VkImageViewHandleInfoNVX | (VK_NVX_image_view_handle) | If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, the image that imageView was created from must have been created with the VK_IMAGE_USAGE_STORAGE_BIT usage bit set |
VUID-VkImageViewHandleInfoNVX-imageView-parameter | N | | None | implicit | VkImageViewHandleInfoNVX | (VK_NVX_image_view_handle) | imageView must be a valid VkImageView handle |
VUID-VkImageViewHandleInfoNVX-pNext-pNext | Y | | None | implicit | VkImageViewHandleInfoNVX | (VK_NVX_image_view_handle) | pNext must be NULL |
VUID-VkImageViewHandleInfoNVX-sType-sType | Y | | None | implicit | VkImageViewHandleInfoNVX | (VK_NVX_image_view_handle) | sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX |
VUID-VkImageViewHandleInfoNVX-sampler-02655 | N | | None | explicit | VkImageViewHandleInfoNVX | (VK_NVX_image_view_handle) | sampler must be a valid VkSampler if descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER |
VUID-VkImageViewHandleInfoNVX-sampler-parameter | N | | None | implicit | VkImageViewHandleInfoNVX | (VK_NVX_image_view_handle) | If sampler is not VK_NULL_HANDLE, sampler must be a valid VkSampler handle |
VUID-VkImageViewUsageCreateInfo-sType-sType | Y | | None | implicit | VkImageViewUsageCreateInfo | (VK_VERSION_1_1,VK_KHR_maintenance2) | sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO |
VUID-VkImageViewUsageCreateInfo-usage-parameter | Y | | InvalidImageViewUsageCreateInfo | implicit | VkImageViewUsageCreateInfo | (VK_VERSION_1_1,VK_KHR_maintenance2) | usage must be a valid combination of VkImageUsageFlagBits values |
VUID-VkImageViewUsageCreateInfo-usage-requiredbitmask | Y | | InvalidImageViewUsageCreateInfo | implicit | VkImageViewUsageCreateInfo | (VK_VERSION_1_1,VK_KHR_maintenance2) | usage must not be 0 |
VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-01880 | Y | | None | explicit | VkImportAndroidHardwareBufferInfoANDROID | (VK_ANDROID_external_memory_android_hardware_buffer) | If buffer is not NULL, Android hardware buffers must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties |
VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-01881 | Y | | AndroidHardwareBufferImportBuffer | explicit | VkImportAndroidHardwareBufferInfoANDROID | (VK_ANDROID_external_memory_android_hardware_buffer) | If buffer is not NULL, it must be a valid Android hardware buffer object with AHardwareBuffer_Desc::usage compatible with Vulkan as described in Android Hardware Buffers |
VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-parameter | Y | | None | implicit | VkImportAndroidHardwareBufferInfoANDROID | (VK_ANDROID_external_memory_android_hardware_buffer) | buffer must be a valid pointer to an AHardwareBuffer value |
VUID-VkImportAndroidHardwareBufferInfoANDROID-sType-sType | Y | | None | implicit | VkImportAndroidHardwareBufferInfoANDROID | (VK_ANDROID_external_memory_android_hardware_buffer) | sType must be VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID |
VUID-VkImportFenceFdInfoKHR-fd-01541 | N | | None | explicit | VkImportFenceFdInfoKHR | (VK_KHR_external_fence_fd) | fd must obey any requirements listed for handleType in external fence handle types compatibility |
VUID-VkImportFenceFdInfoKHR-fence-parameter | Y | | None | implicit | VkImportFenceFdInfoKHR | (VK_KHR_external_fence_fd) | fence must be a valid VkFence handle |
VUID-VkImportFenceFdInfoKHR-flags-parameter | Y | | None | implicit | VkImportFenceFdInfoKHR | (VK_KHR_external_fence_fd) | flags must be a valid combination of VkFenceImportFlagBits values |
VUID-VkImportFenceFdInfoKHR-handleType-01464 | N | | None | explicit | VkImportFenceFdInfoKHR | (VK_KHR_external_fence_fd) | handleType must be a value included in the Handle Types Supported by VkImportFenceFdInfoKHR table |
VUID-VkImportFenceFdInfoKHR-handleType-parameter | Y | | None | implicit | VkImportFenceFdInfoKHR | (VK_KHR_external_fence_fd) | handleType must be a valid VkExternalFenceHandleTypeFlagBits value |
VUID-VkImportFenceFdInfoKHR-pNext-pNext | Y | | None | implicit | VkImportFenceFdInfoKHR | (VK_KHR_external_fence_fd) | pNext must be NULL |
VUID-VkImportFenceFdInfoKHR-sType-sType | Y | | None | implicit | VkImportFenceFdInfoKHR | (VK_KHR_external_fence_fd) | sType must be VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR |
VUID-VkImportFenceWin32HandleInfoKHR-fence-parameter | Y | | None | implicit | VkImportFenceWin32HandleInfoKHR | (VK_KHR_external_fence_win32) | fence must be a valid VkFence handle |
VUID-VkImportFenceWin32HandleInfoKHR-flags-parameter | Y | | None | implicit | VkImportFenceWin32HandleInfoKHR | (VK_KHR_external_fence_win32) | flags must be a valid combination of VkFenceImportFlagBits values |
VUID-VkImportFenceWin32HandleInfoKHR-handle-01462 | N | | None | explicit | VkImportFenceWin32HandleInfoKHR | (VK_KHR_external_fence_win32) | If handle is not NULL, name must be NULL |
VUID-VkImportFenceWin32HandleInfoKHR-handle-01539 | N | | None | explicit | VkImportFenceWin32HandleInfoKHR | (VK_KHR_external_fence_win32) | If handle is not NULL, it must obey any requirements listed for handleType in external fence handle types compatibility |
VUID-VkImportFenceWin32HandleInfoKHR-handleType-01457 | N | | None | explicit | VkImportFenceWin32HandleInfoKHR | (VK_KHR_external_fence_win32) | handleType must be a value included in the Handle Types Supported by VkImportFenceWin32HandleInfoKHR table |
VUID-VkImportFenceWin32HandleInfoKHR-handleType-01459 | N | | None | explicit | VkImportFenceWin32HandleInfoKHR | (VK_KHR_external_fence_win32) | If handleType is not VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, name must be NULL |
VUID-VkImportFenceWin32HandleInfoKHR-handleType-01460 | N | | None | explicit | VkImportFenceWin32HandleInfoKHR | (VK_KHR_external_fence_win32) | If handle is NULL, name must name a valid synchronization primitive of the type specified by handleType |
VUID-VkImportFenceWin32HandleInfoKHR-handleType-01461 | N | | None | explicit | VkImportFenceWin32HandleInfoKHR | (VK_KHR_external_fence_win32) | If name is NULL, handle must be a valid handle of the type specified by handleType |
VUID-VkImportFenceWin32HandleInfoKHR-name-01540 | N | | None | explicit | VkImportFenceWin32HandleInfoKHR | (VK_KHR_external_fence_win32) | If name is not NULL, it must obey any requirements listed for handleType in external fence handle types compatibility |
VUID-VkImportFenceWin32HandleInfoKHR-pNext-pNext | Y | | None | implicit | VkImportFenceWin32HandleInfoKHR | (VK_KHR_external_fence_win32) | pNext must be NULL |
VUID-VkImportFenceWin32HandleInfoKHR-sType-sType | Y | | None | implicit | VkImportFenceWin32HandleInfoKHR | (VK_KHR_external_fence_win32) | sType must be VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR |
VUID-VkImportMemoryFdInfoKHR-fd-00668 | N | | None | explicit | VkImportMemoryFdInfoKHR | (VK_KHR_external_memory_fd) | The memory from which fd was exported must have been created on the same underlying physical device as device |
VUID-VkImportMemoryFdInfoKHR-fd-01520 | N | | None | explicit | VkImportMemoryFdInfoKHR | (VK_KHR_external_memory_fd) | fd must obey any requirements listed for handleType in external memory handle types compatibility |
VUID-VkImportMemoryFdInfoKHR-fd-01746 | N | | None | explicit | VkImportMemoryFdInfoKHR | (VK_KHR_external_memory_fd) | The memory represented by fd must have been created from a physical device and driver that is compatible with device and handleType, as described in External memory handle types compatibility |
VUID-VkImportMemoryFdInfoKHR-handleType-00667 | N | | None | explicit | VkImportMemoryFdInfoKHR | (VK_KHR_external_memory_fd) | If handleType is not 0, it must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties |
VUID-VkImportMemoryFdInfoKHR-handleType-00669 | N | | None | explicit | VkImportMemoryFdInfoKHR | (VK_KHR_external_memory_fd) | If handleType is not 0, it must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT |
VUID-VkImportMemoryFdInfoKHR-handleType-00670 | N | | None | explicit | VkImportMemoryFdInfoKHR | (VK_KHR_external_memory_fd) | If handleType is not 0, fd must be a valid handle of the type specified by handleType |
VUID-VkImportMemoryFdInfoKHR-handleType-parameter | Y | | None | implicit | VkImportMemoryFdInfoKHR | (VK_KHR_external_memory_fd) | If handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value |
VUID-VkImportMemoryFdInfoKHR-sType-sType | Y | | None | implicit | VkImportMemoryFdInfoKHR | (VK_KHR_external_memory_fd) | sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR |
VUID-VkImportMemoryHostPointerInfoEXT-handleType-01747 | N | | None | explicit | VkImportMemoryHostPointerInfoEXT | (VK_EXT_external_memory_host) | If handleType is not 0, it must be supported for import, as reported in VkExternalMemoryProperties |
VUID-VkImportMemoryHostPointerInfoEXT-handleType-01748 | N | | None | explicit | VkImportMemoryHostPointerInfoEXT | (VK_EXT_external_memory_host) | If handleType is not 0, it must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT |
VUID-VkImportMemoryHostPointerInfoEXT-handleType-01750 | N | | None | explicit | VkImportMemoryHostPointerInfoEXT | (VK_EXT_external_memory_host) | If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT, pHostPointer must be a pointer to allocationSize number of bytes of host memory, where allocationSize is the member of the VkMemoryAllocateInfo structure this structure is chained to |
VUID-VkImportMemoryHostPointerInfoEXT-handleType-01751 | N | | None | explicit | VkImportMemoryHostPointerInfoEXT | (VK_EXT_external_memory_host) | If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT, pHostPointer must be a pointer to allocationSize number of bytes of host mapped foreign memory, where allocationSize is the member of the VkMemoryAllocateInfo structure this structure is chained to |
VUID-VkImportMemoryHostPointerInfoEXT-handleType-parameter | Y | | None | implicit | VkImportMemoryHostPointerInfoEXT | (VK_EXT_external_memory_host) | handleType must be a valid VkExternalMemoryHandleTypeFlagBits value |
VUID-VkImportMemoryHostPointerInfoEXT-pHostPointer-01749 | N | | None | explicit | VkImportMemoryHostPointerInfoEXT | (VK_EXT_external_memory_host) | pHostPointer must be a pointer aligned to an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment |
VUID-VkImportMemoryHostPointerInfoEXT-sType-sType | Y | | None | implicit | VkImportMemoryHostPointerInfoEXT | (VK_EXT_external_memory_host) | sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT |
VUID-VkImportMemoryWin32HandleInfoKHR-handle-00659 | N | | None | explicit | VkImportMemoryWin32HandleInfoKHR | (VK_KHR_external_memory_win32) | The memory from which handle was exported, or the memory named by name must have been created on the same underlying physical device as device |
VUID-VkImportMemoryWin32HandleInfoKHR-handle-01441 | N | | None | explicit | VkImportMemoryWin32HandleInfoKHR | (VK_KHR_external_memory_win32) | if handle is not NULL, name must be NULL |
VUID-VkImportMemoryWin32HandleInfoKHR-handle-01518 | N | | None | explicit | VkImportMemoryWin32HandleInfoKHR | (VK_KHR_external_memory_win32) | If handle is not NULL, it must obey any requirements listed for handleType in external memory handle types compatibility |
VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00658 | N | | None | explicit | VkImportMemoryWin32HandleInfoKHR | (VK_KHR_external_memory_win32) | If handleType is not 0, it must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties |
VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00660 | N | | None | explicit | VkImportMemoryWin32HandleInfoKHR | (VK_KHR_external_memory_win32) | If handleType is not 0, it must be defined as an NT handle or a global share handle |
VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00661 | N | | None | explicit | VkImportMemoryWin32HandleInfoKHR | (VK_KHR_external_memory_win32) | If handleType is not 0 and name is NULL, handle must be a valid handle of the type specified by handleType |
VUID-VkImportMemoryWin32HandleInfoKHR-handleType-01439 | N | | None | explicit | VkImportMemoryWin32HandleInfoKHR | (VK_KHR_external_memory_win32) | If handleType is not VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, name must be NULL |
VUID-VkImportMemoryWin32HandleInfoKHR-handleType-01440 | N | | None | explicit | VkImportMemoryWin32HandleInfoKHR | (VK_KHR_external_memory_win32) | If handleType is not 0 and handle is NULL, name must name a valid memory resource of the type specified by handleType |
VUID-VkImportMemoryWin32HandleInfoKHR-handleType-parameter | Y | | None | implicit | VkImportMemoryWin32HandleInfoKHR | (VK_KHR_external_memory_win32) | If handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value |
VUID-VkImportMemoryWin32HandleInfoKHR-name-01519 | N | | None | explicit | VkImportMemoryWin32HandleInfoKHR | (VK_KHR_external_memory_win32) | If name is not NULL, it must obey any requirements listed for handleType in external memory handle types compatibility |
VUID-VkImportMemoryWin32HandleInfoKHR-sType-sType | Y | | None | implicit | VkImportMemoryWin32HandleInfoKHR | (VK_KHR_external_memory_win32) | sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR |
VUID-VkImportMemoryWin32HandleInfoNV-handle-01328 | N | | None | explicit | VkImportMemoryWin32HandleInfoNV | (VK_NV_external_memory_win32) | handle must be a valid handle to memory, obtained as specified by handleType |
VUID-VkImportMemoryWin32HandleInfoNV-handleType-01327 | N | | None | explicit | VkImportMemoryWin32HandleInfoNV | (VK_NV_external_memory_win32) | handleType must not have more than one bit set |
VUID-VkImportMemoryWin32HandleInfoNV-handleType-parameter | Y | | None | implicit | VkImportMemoryWin32HandleInfoNV | (VK_NV_external_memory_win32) | handleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values |
VUID-VkImportMemoryWin32HandleInfoNV-sType-sType | Y | | None | implicit | VkImportMemoryWin32HandleInfoNV | (VK_NV_external_memory_win32) | sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV |
VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handle-04772 | N | | None | explicit | VkImportMemoryZirconHandleInfoFUCHSIA | (VK_FUCHSIA_external_memory) | handle must be a valid VMO handle. |
VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handleType-04771 | N | | None | explicit | VkImportMemoryZirconHandleInfoFUCHSIA | (VK_FUCHSIA_external_memory) | handleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA. |
VUID-VkImportMemoryZirconHandleInfoFUCHSIA-handleType-parameter | Y | | None | implicit | VkImportMemoryZirconHandleInfoFUCHSIA | (VK_FUCHSIA_external_memory) | If handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value |
VUID-VkImportMemoryZirconHandleInfoFUCHSIA-sType-sType | Y | | None | implicit | VkImportMemoryZirconHandleInfoFUCHSIA | (VK_FUCHSIA_external_memory) | sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA |
VUID-VkImportSemaphoreFdInfoKHR-fd-01544 | N | | None | explicit | VkImportSemaphoreFdInfoKHR | (VK_KHR_external_semaphore_fd) | fd must obey any requirements listed for handleType in external semaphore handle types compatibility |
VUID-VkImportSemaphoreFdInfoKHR-flags-03323 | N | | None | explicit | VkImportSemaphoreFdInfoKHR | (VK_KHR_external_semaphore_fd)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore) | If flags contains VK_SEMAPHORE_IMPORT_TEMPORARY_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field of the semaphore from which fd was exported must not be VK_SEMAPHORE_TYPE_TIMELINE |
VUID-VkImportSemaphoreFdInfoKHR-flags-parameter | Y | | None | implicit | VkImportSemaphoreFdInfoKHR | (VK_KHR_external_semaphore_fd) | flags must be a valid combination of VkSemaphoreImportFlagBits values |
VUID-VkImportSemaphoreFdInfoKHR-handleType-01143 | Y | | InvalidExternalSemaphore | explicit | VkImportSemaphoreFdInfoKHR | (VK_KHR_external_semaphore_fd) | handleType must be a value included in the Handle Types Supported by VkImportSemaphoreFdInfoKHR table |
VUID-VkImportSemaphoreFdInfoKHR-handleType-03263 | N | | None | explicit | VkImportSemaphoreFdInfoKHR | (VK_KHR_external_semaphore_fd) | If handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, the VkSemaphoreCreateInfo::flags field must match that of the semaphore from which fd was exported |
VUID-VkImportSemaphoreFdInfoKHR-handleType-03264 | N | | None | explicit | VkImportSemaphoreFdInfoKHR | (VK_KHR_external_semaphore_fd)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore) | If handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field must match that of the semaphore from which fd was exported |
VUID-VkImportSemaphoreFdInfoKHR-handleType-parameter | Y | | None | implicit | VkImportSemaphoreFdInfoKHR | (VK_KHR_external_semaphore_fd) | handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value |
VUID-VkImportSemaphoreFdInfoKHR-pNext-pNext | Y | | None | implicit | VkImportSemaphoreFdInfoKHR | (VK_KHR_external_semaphore_fd) | pNext must be NULL |
VUID-VkImportSemaphoreFdInfoKHR-sType-sType | Y | | None | implicit | VkImportSemaphoreFdInfoKHR | (VK_KHR_external_semaphore_fd) | sType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR |
VUID-VkImportSemaphoreFdInfoKHR-semaphore-parameter | Y | | None | implicit | VkImportSemaphoreFdInfoKHR | (VK_KHR_external_semaphore_fd) | semaphore must be a valid VkSemaphore handle |
VUID-VkImportSemaphoreWin32HandleInfoKHR-flags-03322 | N | | None | explicit | VkImportSemaphoreWin32HandleInfoKHR | (VK_KHR_external_semaphore_win32)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore) | If flags contains VK_SEMAPHORE_IMPORT_TEMPORARY_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field of the semaphore from which handle or name was exported must not be VK_SEMAPHORE_TYPE_TIMELINE |
VUID-VkImportSemaphoreWin32HandleInfoKHR-flags-parameter | Y | | None | implicit | VkImportSemaphoreWin32HandleInfoKHR | (VK_KHR_external_semaphore_win32) | flags must be a valid combination of VkSemaphoreImportFlagBits values |
VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01469 | N | | None | explicit | VkImportSemaphoreWin32HandleInfoKHR | (VK_KHR_external_semaphore_win32) | If handle is not NULL, name must be NULL |
VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01542 | N | | None | explicit | VkImportSemaphoreWin32HandleInfoKHR | (VK_KHR_external_semaphore_win32) | If handle is not NULL, it must obey any requirements listed for handleType in external semaphore handle types compatibility |
VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01140 | N | | None | explicit | VkImportSemaphoreWin32HandleInfoKHR | (VK_KHR_external_semaphore_win32) | handleType must be a value included in the Handle Types Supported by VkImportSemaphoreWin32HandleInfoKHR table |
VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01466 | N | | None | explicit | VkImportSemaphoreWin32HandleInfoKHR | (VK_KHR_external_semaphore_win32) | If handleType is not VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, name must be NULL |
VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01467 | N | | None | explicit | VkImportSemaphoreWin32HandleInfoKHR | (VK_KHR_external_semaphore_win32) | If handle is NULL, name must name a valid synchronization primitive of the type specified by handleType |
VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01468 | N | | None | explicit | VkImportSemaphoreWin32HandleInfoKHR | (VK_KHR_external_semaphore_win32) | If name is NULL, handle must be a valid handle of the type specified by handleType |
VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-03261 | N | | None | explicit | VkImportSemaphoreWin32HandleInfoKHR | (VK_KHR_external_semaphore_win32) | If handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, the VkSemaphoreCreateInfo::flags field must match that of the semaphore from which handle or name was exported |
VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-03262 | N | | None | explicit | VkImportSemaphoreWin32HandleInfoKHR | (VK_KHR_external_semaphore_win32)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore) | If handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field must match that of the semaphore from which handle or name was exported |
VUID-VkImportSemaphoreWin32HandleInfoKHR-name-01543 | N | | None | explicit | VkImportSemaphoreWin32HandleInfoKHR | (VK_KHR_external_semaphore_win32) | If name is not NULL, it must obey any requirements listed for handleType in external semaphore handle types compatibility |
VUID-VkImportSemaphoreWin32HandleInfoKHR-pNext-pNext | Y | | None | implicit | VkImportSemaphoreWin32HandleInfoKHR | (VK_KHR_external_semaphore_win32) | pNext must be NULL |
VUID-VkImportSemaphoreWin32HandleInfoKHR-sType-sType | Y | | None | implicit | VkImportSemaphoreWin32HandleInfoKHR | (VK_KHR_external_semaphore_win32) | sType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR |
VUID-VkImportSemaphoreWin32HandleInfoKHR-semaphore-parameter | Y | | None | implicit | VkImportSemaphoreWin32HandleInfoKHR | (VK_KHR_external_semaphore_win32) | semaphore must be a valid VkSemaphore handle |
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-flags-parameter | Y | | None | implicit | VkImportSemaphoreZirconHandleInfoFUCHSIA | (VK_FUCHSIA_external_semaphore) | flags must be a valid combination of VkSemaphoreImportFlagBits values |
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-04765 | N | | None | explicit | VkImportSemaphoreZirconHandleInfoFUCHSIA | (VK_FUCHSIA_external_semaphore) | handleType must be a value included in the Handle Types Supported by VkImportSemaphoreZirconHandleInfoFUCHSIA table. |
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-handleType-parameter | Y | | None | implicit | VkImportSemaphoreZirconHandleInfoFUCHSIA | (VK_FUCHSIA_external_semaphore) | handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value |
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-pNext-pNext | Y | | None | implicit | VkImportSemaphoreZirconHandleInfoFUCHSIA | (VK_FUCHSIA_external_semaphore) | pNext must be NULL |
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-sType-sType | Y | | None | implicit | VkImportSemaphoreZirconHandleInfoFUCHSIA | (VK_FUCHSIA_external_semaphore) | sType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA |
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-semaphore-parameter | Y | | None | implicit | VkImportSemaphoreZirconHandleInfoFUCHSIA | (VK_FUCHSIA_external_semaphore) | semaphore must be a valid VkSemaphore handle |
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-semaphoreType-04768 | N | | None | explicit | VkImportSemaphoreZirconHandleInfoFUCHSIA | (VK_FUCHSIA_external_semaphore)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore) | The VkSemaphoreTypeCreateInfo::semaphoreType field must not be VK_SEMAPHORE_TYPE_TIMELINE. |
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04766 | N | | None | explicit | VkImportSemaphoreZirconHandleInfoFUCHSIA | (VK_FUCHSIA_external_semaphore) | zirconHandle must obey any requirements listed for handleType in external semaphore handle types compatibility. |
VUID-VkImportSemaphoreZirconHandleInfoFUCHSIA-zirconHandle-04767 | N | | None | explicit | VkImportSemaphoreZirconHandleInfoFUCHSIA | (VK_FUCHSIA_external_semaphore) | zirconHandle must have ZX_RIGHTS_BASIC and ZX_RIGHTS_SIGNAL rights. |
VUID-VkIndirectCommandsLayoutCreateInfoNV-flags-parameter | Y | | None | implicit | VkIndirectCommandsLayoutCreateInfoNV | (VK_NV_device_generated_commands) | flags must be a valid combination of VkIndirectCommandsLayoutUsageFlagBitsNV values |
VUID-VkIndirectCommandsLayoutCreateInfoNV-pNext-pNext | Y | | None | implicit | VkIndirectCommandsLayoutCreateInfoNV | (VK_NV_device_generated_commands) | pNext must be NULL |
VUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-02937 | N | | None | explicit | VkIndirectCommandsLayoutCreateInfoNV | (VK_NV_device_generated_commands) | each element of pStreamStrides must be greater than `0`and less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsStreamStride. Furthermore the alignment of each token input must be ensured |
VUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-parameter | Y | | None | implicit | VkIndirectCommandsLayoutCreateInfoNV | (VK_NV_device_generated_commands) | pStreamStrides must be a valid pointer to an array of streamCount uint32_t values |
VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02932 | N | | None | explicit | VkIndirectCommandsLayoutCreateInfoNV | (VK_NV_device_generated_commands) | If pTokens contains an entry of VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV it must be the first element of the array and there must be only a single element of such token type |
VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02933 | N | | None | explicit | VkIndirectCommandsLayoutCreateInfoNV | (VK_NV_device_generated_commands) | If pTokens contains an entry of VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV there must be only a single element of such token type |
VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02934 | N | | None | explicit | VkIndirectCommandsLayoutCreateInfoNV | (VK_NV_device_generated_commands) | All state tokens in pTokens must occur prior work provoking tokens (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV) |
VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02935 | N | | None | explicit | VkIndirectCommandsLayoutCreateInfoNV | (VK_NV_device_generated_commands) | The content of pTokens must include one single work provoking token that is compatible with the pipelineBindPoint |
VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-parameter | Y | | None | implicit | VkIndirectCommandsLayoutCreateInfoNV | (VK_NV_device_generated_commands) | pTokens must be a valid pointer to an array of tokenCount valid VkIndirectCommandsLayoutTokenNV structures |
VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-02930 | N | | None | explicit | VkIndirectCommandsLayoutCreateInfoNV | (VK_NV_device_generated_commands) | The pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS |
VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-parameter | Y | | None | implicit | VkIndirectCommandsLayoutCreateInfoNV | (VK_NV_device_generated_commands) | pipelineBindPoint must be a valid VkPipelineBindPoint value |
VUID-VkIndirectCommandsLayoutCreateInfoNV-sType-sType | Y | | None | implicit | VkIndirectCommandsLayoutCreateInfoNV | (VK_NV_device_generated_commands) | sType must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV |
VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-02936 | N | | None | explicit | VkIndirectCommandsLayoutCreateInfoNV | (VK_NV_device_generated_commands) | streamCount must be greater than 0 and less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsStreamCount |
VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-arraylength | Y | | None | implicit | VkIndirectCommandsLayoutCreateInfoNV | (VK_NV_device_generated_commands) | streamCount must be greater than 0 |
VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-02931 | N | | None | explicit | VkIndirectCommandsLayoutCreateInfoNV | (VK_NV_device_generated_commands) | tokenCount must be greater than 0 and less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsTokenCount |
VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-arraylength | Y | | None | implicit | VkIndirectCommandsLayoutCreateInfoNV | (VK_NV_device_generated_commands) | tokenCount must be greater than 0 |
VUID-VkIndirectCommandsLayoutTokenNV-indirectStateFlags-parameter | Y | | None | implicit | VkIndirectCommandsLayoutTokenNV | (VK_NV_device_generated_commands) | indirectStateFlags must be a valid combination of VkIndirectStateFlagBitsNV values |
VUID-VkIndirectCommandsLayoutTokenNV-offset-02952 | N | | None | explicit | VkIndirectCommandsLayoutTokenNV | (VK_NV_device_generated_commands) | offset must be less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsTokenOffset |
VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypeValues-parameter | Y | | None | implicit | VkIndirectCommandsLayoutTokenNV | (VK_NV_device_generated_commands) | If indexTypeCount is not 0, pIndexTypeValues must be a valid pointer to an array of indexTypeCount uint32_t values |
VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypes-parameter | N | | None | implicit | VkIndirectCommandsLayoutTokenNV | (VK_NV_device_generated_commands) | If indexTypeCount is not 0, pIndexTypes must be a valid pointer to an array of indexTypeCount valid VkIndexType values |
VUID-VkIndirectCommandsLayoutTokenNV-pNext-pNext | Y | | None | implicit | VkIndirectCommandsLayoutTokenNV | (VK_NV_device_generated_commands) | pNext must be NULL |
VUID-VkIndirectCommandsLayoutTokenNV-pushconstantPipelineLayout-parameter | Y | | None | implicit | VkIndirectCommandsLayoutTokenNV | (VK_NV_device_generated_commands) | If pushconstantPipelineLayout is not VK_NULL_HANDLE, pushconstantPipelineLayout must be a valid VkPipelineLayout handle |
VUID-VkIndirectCommandsLayoutTokenNV-pushconstantShaderStageFlags-parameter | Y | | None | implicit | VkIndirectCommandsLayoutTokenNV | (VK_NV_device_generated_commands) | pushconstantShaderStageFlags must be a valid combination of VkShaderStageFlagBits values |
VUID-VkIndirectCommandsLayoutTokenNV-sType-sType | Y | | None | implicit | VkIndirectCommandsLayoutTokenNV | (VK_NV_device_generated_commands) | sType must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV |
VUID-VkIndirectCommandsLayoutTokenNV-stream-02951 | N | | None | explicit | VkIndirectCommandsLayoutTokenNV | (VK_NV_device_generated_commands) | stream must be smaller than VkIndirectCommandsLayoutCreateInfoNV::streamCount |
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02976 | N | | None | explicit | VkIndirectCommandsLayoutTokenNV | (VK_NV_device_generated_commands) | If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV, vertexBindingUnit must stay within device supported limits for the appropriate commands |
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02977 | N | | None | explicit | VkIndirectCommandsLayoutTokenNV | (VK_NV_device_generated_commands) | If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantPipelineLayout must be valid |
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02978 | N | | None | explicit | VkIndirectCommandsLayoutTokenNV | (VK_NV_device_generated_commands) | If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantOffset must be a multiple of 4 |
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02979 | N | | None | explicit | VkIndirectCommandsLayoutTokenNV | (VK_NV_device_generated_commands) | If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantSize must be a multiple of 4 |
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02980 | N | | None | explicit | VkIndirectCommandsLayoutTokenNV | (VK_NV_device_generated_commands) | If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantOffset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize |
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02981 | N | | None | explicit | VkIndirectCommandsLayoutTokenNV | (VK_NV_device_generated_commands) | If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantSize must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus pushconstantOffset |
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02982 | N | | None | explicit | VkIndirectCommandsLayoutTokenNV | (VK_NV_device_generated_commands) | If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, for each byte in the range specified by pushconstantOffset and pushconstantSize and for each shader stage in pushconstantShaderStageFlags, there must be a push constant range in pushconstantPipelineLayout that includes that byte and that stage |
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02983 | N | | None | explicit | VkIndirectCommandsLayoutTokenNV | (VK_NV_device_generated_commands) | If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, for each byte in the range specified by pushconstantOffset and pushconstantSize and for each push constant range that overlaps that byte, pushconstantShaderStageFlags must include all stages in that push constant range's VkPushConstantRange::stageFlags |
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02984 | N | | None | explicit | VkIndirectCommandsLayoutTokenNV | (VK_NV_device_generated_commands) | If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV, indirectStateFlags must not be 0 |
VUID-VkIndirectCommandsLayoutTokenNV-tokenType-parameter | Y | | None | implicit | VkIndirectCommandsLayoutTokenNV | (VK_NV_device_generated_commands) | tokenType must be a valid VkIndirectCommandsTokenTypeNV value |
VUID-VkIndirectCommandsStreamNV-buffer-02942 | N | | None | explicit | VkIndirectCommandsStreamNV | (VK_NV_device_generated_commands) | The buffer's usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set |
VUID-VkIndirectCommandsStreamNV-buffer-02975 | N | | None | explicit | VkIndirectCommandsStreamNV | (VK_NV_device_generated_commands) | If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object |
VUID-VkIndirectCommandsStreamNV-buffer-parameter | Y | | None | implicit | VkIndirectCommandsStreamNV | (VK_NV_device_generated_commands) | buffer must be a valid VkBuffer handle |
VUID-VkIndirectCommandsStreamNV-offset-02943 | N | | None | explicit | VkIndirectCommandsStreamNV | (VK_NV_device_generated_commands) | The offset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minIndirectCommandsBufferOffsetAlignment |
VUID-VkInitializePerformanceApiInfoINTEL-pNext-pNext | Y | | None | implicit | VkInitializePerformanceApiInfoINTEL | (VK_INTEL_performance_query)+(VK_INTEL_performance_query) | pNext must be NULL |
VUID-VkInitializePerformanceApiInfoINTEL-sType-sType | Y | | None | implicit | VkInitializePerformanceApiInfoINTEL | (VK_INTEL_performance_query)+(VK_INTEL_performance_query) | sType must be VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL |
VUID-VkInputAttachmentAspectReference-aspectMask-01964 | Y | | RenderPassCreateInvalidInputAttachmentReferences, MessageIdFilterString, MessageIdFilterInt, MessageIdFilterHexInt | explicit | VkInputAttachmentAspectReference | (VK_VERSION_1_1,VK_KHR_maintenance2) | aspectMask must not include VK_IMAGE_ASPECT_METADATA_BIT |
VUID-VkInputAttachmentAspectReference-aspectMask-02250 | Y | | RenderPassCreateInvalidInputAttachmentReferences | explicit | VkInputAttachmentAspectReference | (VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_EXT_image_drm_format_modifier) | aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i |
VUID-VkInputAttachmentAspectReference-aspectMask-parameter | Y | | None | implicit | VkInputAttachmentAspectReference | (VK_VERSION_1_1,VK_KHR_maintenance2) | aspectMask must be a valid combination of VkImageAspectFlagBits values |
VUID-VkInputAttachmentAspectReference-aspectMask-requiredbitmask | Y | | None | implicit | VkInputAttachmentAspectReference | (VK_VERSION_1_1,VK_KHR_maintenance2) | aspectMask must not be 0 |
VUID-VkInstanceCreateInfo-flags-zerobitmask | Y | | InstanceFlags | implicit | VkInstanceCreateInfo | core | flags must be 0 |
VUID-VkInstanceCreateInfo-pApplicationInfo-parameter | Y | | None | implicit | VkInstanceCreateInfo | core | If pApplicationInfo is not NULL, pApplicationInfo must be a valid pointer to a valid VkApplicationInfo structure |
VUID-VkInstanceCreateInfo-pNext-04925 | N | | None | explicit | VkInstanceCreateInfo | (VK_EXT_debug_report,VK_EXT_debug_utils)+(VK_EXT_debug_report) | If the pNext chain of VkInstanceCreateInfo includes a VkDebugReportCallbackCreateInfoEXT structure, the list of enabled extensions in ppEnabledExtensionNames must contain VK_EXT_debug_report. |
VUID-VkInstanceCreateInfo-pNext-04926 | N | | None | explicit | VkInstanceCreateInfo | (VK_EXT_debug_report,VK_EXT_debug_utils)+(VK_EXT_debug_utils) | If the pNext chain of VkInstanceCreateInfo includes a VkDebugUtilsMessengerCreateInfoEXT structure, the list of enabled extensions in ppEnabledExtensionNames must contain VK_EXT_debug_utils. |
VUID-VkInstanceCreateInfo-pNext-pNext | Y | | None | implicit | VkInstanceCreateInfo | core | 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 VkDebugReportCallbackCreateInfoEXT, VkDebugUtilsMessengerCreateInfoEXT, VkValidationFeaturesEXT, or VkValidationFlagsEXT |
VUID-VkInstanceCreateInfo-ppEnabledExtensionNames-parameter | Y | | None | implicit | VkInstanceCreateInfo | core | If enabledExtensionCount is not 0, ppEnabledExtensionNames must be a valid pointer to an array of enabledExtensionCount null-terminated UTF-8 strings |
VUID-VkInstanceCreateInfo-ppEnabledLayerNames-parameter | Y | | None | implicit | VkInstanceCreateInfo | core | If enabledLayerCount is not 0, ppEnabledLayerNames must be a valid pointer to an array of enabledLayerCount null-terminated UTF-8 strings |
VUID-VkInstanceCreateInfo-sType-sType | Y | | InstanceBadStype | implicit | VkInstanceCreateInfo | core | sType must be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO |
VUID-VkInstanceCreateInfo-sType-unique | Y | | InstanceDuplicatePnextStype | implicit | VkInstanceCreateInfo | core | The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkDebugUtilsMessengerCreateInfoEXT |
VUID-VkMacOSSurfaceCreateInfoMVK-flags-zerobitmask | Y | | None | implicit | VkMacOSSurfaceCreateInfoMVK | (VK_KHR_surface)+(VK_MVK_macos_surface) | flags must be 0 |
VUID-VkMacOSSurfaceCreateInfoMVK-pNext-pNext | Y | | None | implicit | VkMacOSSurfaceCreateInfoMVK | (VK_KHR_surface)+(VK_MVK_macos_surface) | pNext must be NULL |
VUID-VkMacOSSurfaceCreateInfoMVK-pView-01317 | N | | None | explicit | VkMacOSSurfaceCreateInfoMVK | (VK_KHR_surface)+(VK_MVK_macos_surface) | If pView is an NSView object, it must be a valid NSView, must be backed by a CALayer object of type CAMetalLayer, and vkCreateMacOSSurfaceMVK must be called on the main thread. |
VUID-VkMacOSSurfaceCreateInfoMVK-pView-04144 | N | | None | explicit | VkMacOSSurfaceCreateInfoMVK | (VK_KHR_surface)+(VK_MVK_macos_surface) | If pView is a CAMetalLayer object, it must be a valid CAMetalLayer. |
VUID-VkMacOSSurfaceCreateInfoMVK-sType-sType | Y | | None | implicit | VkMacOSSurfaceCreateInfoMVK | (VK_KHR_surface)+(VK_MVK_macos_surface) | sType must be VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK |
VUID-VkMappedMemoryRange-memory-00684 | Y | | MapMemWithoutHostVisibleBit, InvalidMemoryMapping | explicit | VkMappedMemoryRange | core | memory must be currently host mapped |
VUID-VkMappedMemoryRange-memory-parameter | Y | | None | implicit | VkMappedMemoryRange | core | memory must be a valid VkDeviceMemory handle |
VUID-VkMappedMemoryRange-offset-00687 | Y | | InvalidMemoryMapping | explicit | VkMappedMemoryRange | core | offset must be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize |
VUID-VkMappedMemoryRange-pNext-pNext | Y | | None | implicit | VkMappedMemoryRange | core | pNext must be NULL |
VUID-VkMappedMemoryRange-sType-sType | Y | | None | implicit | VkMappedMemoryRange | core | sType must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE |
VUID-VkMappedMemoryRange-size-00685 | Y | | InvalidMemoryMapping | explicit | VkMappedMemoryRange | core | If size is not equal to VK_WHOLE_SIZE, offset and size must specify a range contained within the currently mapped range of memory |
VUID-VkMappedMemoryRange-size-00686 | Y | | InvalidMemoryMapping | explicit | VkMappedMemoryRange | core | If size is equal to VK_WHOLE_SIZE, offset must be within the currently mapped range of memory |
VUID-VkMappedMemoryRange-size-01389 | Y | | InvalidMemoryMapping | explicit | VkMappedMemoryRange | core | If size is equal to VK_WHOLE_SIZE, the end of the current mapping of memory must either be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize bytes from the beginning of the memory object, or be equal to the end of the memory object |
VUID-VkMappedMemoryRange-size-01390 | Y | | InvalidMemoryMapping | explicit | VkMappedMemoryRange | core | If size is not equal to VK_WHOLE_SIZE, size must either be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize, or offset plus size must equal the size of memory |
VUID-VkMemoryAllocateFlagsInfo-deviceMask-00675 | Y | | InvalidDeviceMask | explicit | VkMemoryAllocateFlagsInfo | (VK_VERSION_1_1,VK_KHR_device_group) | If VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT is set, deviceMask must be a valid device mask |
VUID-VkMemoryAllocateFlagsInfo-deviceMask-00676 | Y | | InvalidDeviceMask | explicit | VkMemoryAllocateFlagsInfo | (VK_VERSION_1_1,VK_KHR_device_group) | If VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT is set, deviceMask must not be zero |
VUID-VkMemoryAllocateFlagsInfo-flags-parameter | Y | | None | implicit | VkMemoryAllocateFlagsInfo | (VK_VERSION_1_1,VK_KHR_device_group) | flags must be a valid combination of VkMemoryAllocateFlagBits values |
VUID-VkMemoryAllocateFlagsInfo-sType-sType | Y | | None | implicit | VkMemoryAllocateFlagsInfo | (VK_VERSION_1_1,VK_KHR_device_group) | sType must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO |
VUID-VkMemoryAllocateInfo-None-00643 | N | | None | explicit | VkMemoryAllocateInfo | (VK_KHR_external_memory+VK_KHR_device_group) | If the parameters define an import operation and the external handle specified was created by the Vulkan API, the device mask specified by VkMemoryAllocateFlagsInfo must match that specified when the payload being imported was allocated. |
VUID-VkMemoryAllocateInfo-None-00644 | N | | None | explicit | VkMemoryAllocateInfo | (VK_KHR_external_memory+VK_KHR_device_group) | If the parameters define an import operation and the external handle specified was created by the Vulkan API, the list of physical devices that comprise the logical device passed to vkAllocateMemory must match the list of physical devices that comprise the logical device on which the payload was originally allocated. |
VUID-VkMemoryAllocateInfo-None-04749 | N | | None | explicit | VkMemoryAllocateInfo | (VK_FUCHSIA_external_memory) | If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA, the value of memoryTypeIndex must be an index identifying a memory type from the memoryTypeBits field of the VkMemoryZirconHandlePropertiesFUCHSIA structure populated by a call to vkGetMemoryZirconHandlePropertiesFUCHSIA. |
VUID-VkMemoryAllocateInfo-allocationSize-00638 | Y | | None | explicit | VkMemoryAllocateInfo | !(VK_ANDROID_external_memory_android_hardware_buffer) | allocationSize must be greater than 0 |
VUID-VkMemoryAllocateInfo-allocationSize-00647 | N | | None | explicit | VkMemoryAllocateInfo | (VK_KHR_external_memory_win32) | If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, allocationSize must match the size specified when creating the Direct3D 12 heap from which the payload was extracted. |
VUID-VkMemoryAllocateInfo-allocationSize-01742 | N | | None | explicit | VkMemoryAllocateInfo | (VK_KHR_external_memory_fd) | If the parameters define an import operation, the external handle specified was created by the Vulkan API, and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR, then the values of allocationSize and memoryTypeIndex must match those specified when the payload being imported was created. |
VUID-VkMemoryAllocateInfo-allocationSize-01743 | N | | None | explicit | VkMemoryAllocateInfo | (VK_KHR_external_memory_win32) | If the parameters define an import operation, the external handle was created by the Vulkan API, and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR or VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR, then the values of allocationSize and memoryTypeIndex must match those specified when the payload being imported was created. |
VUID-VkMemoryAllocateInfo-allocationSize-01745 | N | | None | explicit | VkMemoryAllocateInfo | (VK_EXT_external_memory_host) | If the parameters define an import operation and the external handle is a host pointer, allocationSize must be an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment |
VUID-VkMemoryAllocateInfo-allocationSize-02383 | Y | | AndroidHardwareBufferBindBufferMemory, AndroidHardwareBufferMemoryAllocation | explicit | VkMemoryAllocateInfo | (VK_ANDROID_external_memory_android_hardware_buffer) | If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, allocationSize must be the size returned by vkGetAndroidHardwareBufferPropertiesANDROID for the Android hardware buffer |
VUID-VkMemoryAllocateInfo-allocationSize-04750 | N | | None | explicit | VkMemoryAllocateInfo | (VK_FUCHSIA_external_memory) | If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA, the value of allocationSize must be greater than 0 and must be less than or equal to the size of the VMO as determined by zx_vmo_get_size(handle) where handle is the VMO handle to the imported external memory. |
VUID-VkMemoryAllocateInfo-flags-03330 | Y | | BufferDeviceAddressKHRDisabled | explicit | VkMemoryAllocateInfo | (VK_VERSION_1_2,VK_KHR_buffer_device_address) | If VkMemoryAllocateFlagsInfo::flags includes VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, the bufferDeviceAddressCaptureReplay feature must be enabled |
VUID-VkMemoryAllocateInfo-flags-03331 | Y | | BufferDeviceAddressKHRDisabled | explicit | VkMemoryAllocateInfo | (VK_VERSION_1_2,VK_KHR_buffer_device_address) | If VkMemoryAllocateFlagsInfo::flags includes VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT, the bufferDeviceAddress feature must be enabled |
VUID-VkMemoryAllocateInfo-memoryTypeIndex-00645 | N | | None | explicit | VkMemoryAllocateInfo | (VK_KHR_external_memory_win32) | If the parameters define an import operation and the external handle is an NT handle or a global share handle created outside of the Vulkan API, the value of memoryTypeIndex must be one of those returned by vkGetMemoryWin32HandlePropertiesKHR |
VUID-VkMemoryAllocateInfo-memoryTypeIndex-00648 | N | | None | explicit | VkMemoryAllocateInfo | (VK_KHR_external_memory_fd) | If the parameters define an import operation and the external handle is a POSIX file descriptor created outside of the Vulkan API, the value of memoryTypeIndex must be one of those returned by vkGetMemoryFdPropertiesKHR |
VUID-VkMemoryAllocateInfo-memoryTypeIndex-01744 | N | | None | explicit | VkMemoryAllocateInfo | (VK_EXT_external_memory_host) | If the parameters define an import operation and the external handle is a host pointer, the value of memoryTypeIndex must be one of those returned by vkGetMemoryHostPointerPropertiesEXT |
VUID-VkMemoryAllocateInfo-memoryTypeIndex-01872 | Y | | DisabledProtectedMemory | explicit | VkMemoryAllocateInfo | (VK_VERSION_1_1) | If the protected memory feature is not enabled, the VkMemoryAllocateInfo::memoryTypeIndex must not indicate a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT |
VUID-VkMemoryAllocateInfo-memoryTypeIndex-02385 | Y | | AndroidHardwareBufferMemoryAllocation | explicit | VkMemoryAllocateInfo | (VK_ANDROID_external_memory_android_hardware_buffer) | If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, memoryTypeIndex must be one of those returned by vkGetAndroidHardwareBufferPropertiesANDROID for the Android hardware buffer |
VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03329 | Y | | None | explicit | VkMemoryAllocateInfo | (VK_VERSION_1_2,VK_KHR_buffer_device_address) | If VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress is not zero, VkMemoryAllocateFlagsInfo::flags must include VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT |
VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03333 | Y | | None | explicit | VkMemoryAllocateInfo | (VK_VERSION_1_2,VK_KHR_buffer_device_address) | If the parameters define an import operation, VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress must be zero |
VUID-VkMemoryAllocateInfo-pNext-00639 | N | | None | explicit | VkMemoryAllocateInfo | (VK_KHR_external_memory)+(VK_KHR_dedicated_allocation,VK_NV_dedicated_allocation) | If the pNext chain includes a VkExportMemoryAllocateInfo structure, and any of the handle types specified in VkExportMemoryAllocateInfo::handleTypes require a dedicated allocation, as reported by vkGetPhysicalDeviceImageFormatProperties2 in VkExternalImageFormatProperties::externalMemoryProperties.externalMemoryFeatures or VkExternalBufferProperties::externalMemoryProperties.externalMemoryFeatures, the pNext chain must include a ifdef::VK_KHR_dedicated_allocation[VkMemoryDedicatedAllocateInfo] |
VUID-VkMemoryAllocateInfo-pNext-00640 | N | | None | explicit | VkMemoryAllocateInfo | (VK_KHR_external_memory)+(VK_NV_external_memory) | If the pNext chain includes a VkExportMemoryAllocateInfo structure, it must not include a VkExportMemoryAllocateInfoNV or VkExportMemoryWin32HandleInfoNV structure |
VUID-VkMemoryAllocateInfo-pNext-00641 | N | | None | explicit | VkMemoryAllocateInfo | (VK_KHR_external_memory_win32+VK_NV_external_memory_win32) | If the pNext chain includes a VkImportMemoryWin32HandleInfoKHR structure, it must not include a VkImportMemoryWin32HandleInfoNV structure |
VUID-VkMemoryAllocateInfo-pNext-01874 | Y | | AndroidHardwareBufferMemoryAllocation | explicit | VkMemoryAllocateInfo | (VK_ANDROID_external_memory_android_hardware_buffer) | If the parameters do not define an import operation, and the pNext chain includes a VkExportMemoryAllocateInfo structure with VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID included in its handleTypes member, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image not equal to VK_NULL_HANDLE, then allocationSize must be 0, otherwise allocationSize must be greater than 0 |
VUID-VkMemoryAllocateInfo-pNext-02384 | Y | | AndroidHardwareBufferMemoryAllocation, AndroidHardwareBufferImportBuffer | explicit | VkMemoryAllocateInfo | (VK_ANDROID_external_memory_android_hardware_buffer) | If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, and the pNext chain does not include a VkMemoryDedicatedAllocateInfo structure or VkMemoryDedicatedAllocateInfo::image is VK_NULL_HANDLE, the Android hardware buffer must have a AHardwareBuffer_Desc::format of AHARDWAREBUFFER_FORMAT_BLOB and a AHardwareBuffer_Desc::usage that includes AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER |
VUID-VkMemoryAllocateInfo-pNext-02386 | Y | | AndroidHardwareBufferMemoryAllocation | explicit | VkMemoryAllocateInfo | (VK_ANDROID_external_memory_android_hardware_buffer) | If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, the Android hardware buffer's AHardwareBuffer::usage must include at least one of AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER or AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE |
VUID-VkMemoryAllocateInfo-pNext-02387 | Y | | AndroidHardwareBufferMemoryAllocation | explicit | VkMemoryAllocateInfo | (VK_ANDROID_external_memory_android_hardware_buffer) | If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, the format of image must be VK_FORMAT_UNDEFINED or the format returned by vkGetAndroidHardwareBufferPropertiesANDROID in VkAndroidHardwareBufferFormatPropertiesANDROID::format for the Android hardware buffer |
VUID-VkMemoryAllocateInfo-pNext-02388 | Y | | AndroidHardwareBufferMemoryAllocation | explicit | VkMemoryAllocateInfo | (VK_ANDROID_external_memory_android_hardware_buffer) | If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, the width, height, and array layer dimensions of image and the Android hardware buffer's AHardwareBuffer_Desc must be identical |
VUID-VkMemoryAllocateInfo-pNext-02389 | Y | | AndroidHardwareBufferMemoryAllocation | explicit | VkMemoryAllocateInfo | (VK_ANDROID_external_memory_android_hardware_buffer) | If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, and the Android hardware buffer's AHardwareBuffer::usage includes AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE, the image must have a complete mipmap chain |
VUID-VkMemoryAllocateInfo-pNext-02390 | Y | | AndroidHardwareBufferMemoryAllocation | explicit | VkMemoryAllocateInfo | (VK_ANDROID_external_memory_android_hardware_buffer) | If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, each bit set in the usage of image must be listed in AHardwareBuffer Usage Equivalence, and if there is a corresponding AHARDWAREBUFFER_USAGE bit listed that bit must be included in the Android hardware buffer's AHardwareBuffer_Desc::usage |
VUID-VkMemoryAllocateInfo-pNext-02586 | N | | None | explicit | VkMemoryAllocateInfo | (VK_ANDROID_external_memory_android_hardware_buffer) | If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, and the Android hardware buffer's AHardwareBuffer::usage does not include AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE, the image must have exactly one mipmap level |
VUID-VkMemoryAllocateInfo-pNext-02805 | N | | None | explicit | VkMemoryAllocateInfo | (VK_EXT_external_memory_host)+(VK_NV_dedicated_allocation) | If the parameters define an import operation and the external handle is a host pointer, the pNext chain must not include a VkDedicatedAllocationMemoryAllocateInfoNV structure with either its image or buffer field set to a value other than VK_NULL_HANDLE |
VUID-VkMemoryAllocateInfo-pNext-02806 | N | | None | explicit | VkMemoryAllocateInfo | (VK_EXT_external_memory_host)+(VK_KHR_dedicated_allocation) | If the parameters define an import operation and the external handle is a host pointer, the pNext chain must not include a VkMemoryDedicatedAllocateInfo structure with either its image or buffer field set to a value other than VK_NULL_HANDLE |
VUID-VkMemoryAllocateInfo-pNext-03332 | Y | | None | explicit | VkMemoryAllocateInfo | (VK_VERSION_1_2,VK_KHR_buffer_device_address)+(VK_EXT_external_memory_host) | If the pNext chain includes a VkImportMemoryHostPointerInfoEXT structure, VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress must be zero |
VUID-VkMemoryAllocateInfo-pNext-pNext | Y | | None | implicit | VkMemoryAllocateInfo | core | 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 VkDedicatedAllocationMemoryAllocateInfoNV, VkExportMemoryAllocateInfo, VkExportMemoryAllocateInfoNV, VkExportMemoryWin32HandleInfoKHR, VkExportMemoryWin32HandleInfoNV, VkImportAndroidHardwareBufferInfoANDROID, VkImportMemoryFdInfoKHR, VkImportMemoryHostPointerInfoEXT, VkImportMemoryWin32HandleInfoKHR, VkImportMemoryWin32HandleInfoNV, VkImportMemoryZirconHandleInfoFUCHSIA, VkMemoryAllocateFlagsInfo, VkMemoryDedicatedAllocateInfo, VkMemoryOpaqueCaptureAddressAllocateInfo, or VkMemoryPriorityAllocateInfoEXT |
VUID-VkMemoryAllocateInfo-sType-sType | Y | | None | implicit | VkMemoryAllocateInfo | core | sType must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO |
VUID-VkMemoryAllocateInfo-sType-unique | Y | | None | implicit | VkMemoryAllocateInfo | core | The sType value of each struct in the pNext chain must be unique |
VUID-VkMemoryBarrier-dstAccessMask-parameter | Y | | None | implicit | VkMemoryBarrier | core | dstAccessMask must be a valid combination of VkAccessFlagBits values |
VUID-VkMemoryBarrier-pNext-pNext | Y | | None | implicit | VkMemoryBarrier | core | pNext must be NULL |
VUID-VkMemoryBarrier-sType-sType | Y | | None | implicit | VkMemoryBarrier | core | sType must be VK_STRUCTURE_TYPE_MEMORY_BARRIER |
VUID-VkMemoryBarrier-srcAccessMask-parameter | Y | | None | implicit | VkMemoryBarrier | core | srcAccessMask must be a valid combination of VkAccessFlagBits values |
VUID-VkMemoryBarrier2KHR-dstAccessMask-03900 | Y | | None | explicit | VkMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkMemoryBarrier2KHR-dstAccessMask-03901 | Y | | None | explicit | VkMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_INDEX_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkMemoryBarrier2KHR-dstAccessMask-03902 | Y | | None | explicit | VkMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkMemoryBarrier2KHR-dstAccessMask-03903 | Y | | None | explicit | VkMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, |
VUID-VkMemoryBarrier2KHR-dstAccessMask-03904 | Y | | None | explicit | VkMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_UNIFORM_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkMemoryBarrier2KHR-dstAccessMask-03905 | Y | | None | explicit | VkMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkMemoryBarrier2KHR-dstAccessMask-03906 | Y | | None | explicit | VkMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkMemoryBarrier2KHR-dstAccessMask-03907 | Y | | None | explicit | VkMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkMemoryBarrier2KHR-dstAccessMask-03908 | Y | | None | explicit | VkMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_SHADER_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkMemoryBarrier2KHR-dstAccessMask-03909 | Y | | None | explicit | VkMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_SHADER_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the VK_PIPELINE_STAGE_*_SHADER_BIT stages |
VUID-VkMemoryBarrier2KHR-dstAccessMask-03910 | Y | | None | explicit | VkMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkMemoryBarrier2KHR-dstAccessMask-03911 | Y | | None | explicit | VkMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkMemoryBarrier2KHR-dstAccessMask-03912 | Y | | None | explicit | VkMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkMemoryBarrier2KHR-dstAccessMask-03913 | Y | | None | explicit | VkMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkMemoryBarrier2KHR-dstAccessMask-03914 | Y | | None | explicit | VkMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_READ_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR |
VUID-VkMemoryBarrier2KHR-dstAccessMask-03915 | Y | | None | explicit | VkMemoryBarrier2KHR | (VK_KHR_synchronization2) | If pname:dstAccessMask includes VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, pname:dstStageMask must include VK_PIPELINE_STAGE_2_COPY_BIT_KHR, VK_PIPELINE_STAGE_2_BLIT_BIT_KH |
---|