Description
The following rules must be validated at runtime. These rules depend on knowledge of the implementation and its capabilities and knowledge of runtime information, such as enabled features.
-
VUID-RuntimeSpirv-vulkanMemoryModel-06265
IfvulkanMemoryModelis enabled andvulkanMemoryModelDeviceScopeis not enabled,Devicememory scope must not be used -
VUID-RuntimeSpirv-vulkanMemoryModel-06266
IfvulkanMemoryModelis not enabled,QueueFamilymemory scope must not be used -
VUID-RuntimeSpirv-shaderSubgroupClock-06267
IfshaderSubgroupClockis not enabled, theSubgroupscope must not be used forOpReadClockKHR -
VUID-RuntimeSpirv-shaderDeviceClock-06268
IfshaderDeviceClockis not enabled, theDevicescope must not be used forOpReadClockKHR -
VUID-RuntimeSpirv-None-09558
IfdynamicRenderingLocalReadis not enabled, any variable created with a “Type” ofOpTypeImagethat has a “Dim” operand ofSubpassDatamust be decorated withInputAttachmentIndex -
VUID-RuntimeSpirv-apiVersion-07954
If VkPhysicalDeviceProperties::apiVersionis less than Vulkan 1.3, the VK_KHR_format_feature_flags2 extension is not supported, andshaderStorageImageWriteWithoutFormatis not enabled, any variable created with a “Type” ofOpTypeImagethat has a “Sampled” operand of 2 and an “Image Format” operand ofUnknownmust be decorated withNonWritable -
VUID-RuntimeSpirv-apiVersion-07955
If VkPhysicalDeviceProperties::apiVersionis less than Vulkan 1.3, the VK_KHR_format_feature_flags2 extension is not supported, andshaderStorageImageReadWithoutFormatis not enabled, any variable created with a “Type” ofOpTypeImagethat has a “Sampled” operand of 2 and an “Image Format” operand ofUnknownmust be decorated withNonReadable -
VUID-RuntimeSpirv-OpImageWrite-07112
OpImageWriteto anyImagewhoseImageFormatis notUnknownmust have theTexeloperand contain at least as many components as the corresponding VkFormat as given in the SPIR-V Image Format compatibility table -
VUID-RuntimeSpirv-Location-06272
The sum ofLocationand the number of locations the variable it decorates consumes must be less than or equal to the value for the matchingExecutionModeldefined in https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-iointerfaces-limits -
VUID-RuntimeSpirv-Location-06428
The maximum number of storage buffers, storage images, and outputLocationdecorated color attachments written to in theFragmentExecutionModelmust be less than or equal tomaxFragmentCombinedOutputResources -
VUID-RuntimeSpirv-NonUniform-06274
If an instruction loads from or stores to a resource (including atomics and image instructions) and the resource descriptor being accessed is not dynamically uniform, then the operand corresponding to that resource (e.g. the pointer or sampled image operand) must be decorated withNonUniform -
VUID-RuntimeSpirv-None-06275
shaderSubgroupExtendedTypesmust be enabled for group operations to use 8-bit integer, 16-bit integer, 64-bit integer, 16-bit floating-point, and vectors of these types -
VUID-RuntimeSpirv-subgroupBroadcastDynamicId-06276
IfsubgroupBroadcastDynamicIdisVK_TRUE, and the shader module version is 1.5 or higher, the “Index” forOpGroupNonUniformQuadBroadcastmust be dynamically uniform within the derivative group. Otherwise, “Index” must be a constant -
VUID-RuntimeSpirv-subgroupBroadcastDynamicId-06277
IfsubgroupBroadcastDynamicIdisVK_TRUE, and the shader module version is 1.5 or higher, the “Id” forOpGroupNonUniformBroadcastmust be dynamically uniform within the subgroup. Otherwise, “Id” must be a constant -
VUID-RuntimeSpirv-None-06278
shaderBufferInt64Atomicsmust be enabled for 64-bit integer atomic operations to be supported on a Pointer with aStorageClassofStorageBufferorUniform -
VUID-RuntimeSpirv-None-06279
shaderSharedInt64Atomicsmust be enabled for 64-bit integer atomic operations to be supported on a Pointer with aStorageClassofWorkgroup -
VUID-RuntimeSpirv-None-06284
shaderBufferFloat32Atomics, orshaderBufferFloat32AtomicAdd, orshaderBufferFloat64Atomics, orshaderBufferFloat64AtomicAdd, orshaderBufferFloat16Atomics, orshaderBufferFloat16AtomicAdd, orshaderBufferFloat16AtomicMinMax, orshaderBufferFloat32AtomicMinMax, orshaderBufferFloat64AtomicMinMaxmust be enabled for floating-point atomic operations to be supported on a Pointer with aStorageClassofStorageBuffer -
VUID-RuntimeSpirv-None-06285
shaderSharedFloat32Atomics, orshaderSharedFloat32AtomicAdd, orshaderSharedFloat64Atomics, orshaderSharedFloat64AtomicAdd, orshaderSharedFloat16Atomics, orshaderSharedFloat16AtomicAdd, orshaderSharedFloat16AtomicMinMax, orshaderSharedFloat32AtomicMinMax, orshaderSharedFloat64AtomicMinMaxmust be enabled for floating-point atomic operations to be supported on a Pointer with aStorageClassofWorkgroup -
VUID-RuntimeSpirv-None-06286
shaderImageFloat32Atomics, orshaderImageFloat32AtomicAdd, orshaderImageFloat32AtomicMinMaxmust be enabled for 32-bit floating-point atomic operations to be supported on a Pointer with aStorageClassofImage -
VUID-RuntimeSpirv-None-06287
sparseImageFloat32Atomics, orsparseImageFloat32AtomicAdd, orsparseImageFloat32AtomicMinMaxmust be enabled for 32-bit floating-point atomics to be supported on sparse images -
VUID-RuntimeSpirv-None-06288
shaderImageInt64Atomicsmust be enabled for 64-bit integer atomic operations to be supported on a Pointer with aStorageClassofImage -
VUID-RuntimeSpirv-denormBehaviorIndependence-06289
IfdenormBehaviorIndependenceisVK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY, then the entry point must use the same denormalsExecutionModefor both 16-bit and 64-bit floating-point types -
VUID-RuntimeSpirv-denormBehaviorIndependence-06290
IfdenormBehaviorIndependenceisVK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE, then the entry point must use the same denormalsExecutionModefor all floating-point types -
VUID-RuntimeSpirv-roundingModeIndependence-06291
IfroundingModeIndependenceisVK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY, then the entry point must use the same roundingExecutionModefor both 16-bit and 64-bit floating-point types -
VUID-RuntimeSpirv-roundingModeIndependence-06292
IfroundingModeIndependenceisVK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE, then the entry point must use the same roundingExecutionModefor all floating-point types -
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat16-06293
IfshaderSignedZeroInfNanPreserveFloat16isVK_FALSE, thenSignedZeroInfNanPreservefor 16-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat32-06294
IfshaderSignedZeroInfNanPreserveFloat32isVK_FALSE, thenSignedZeroInfNanPreservefor 32-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat64-06295
IfshaderSignedZeroInfNanPreserveFloat64isVK_FALSE, thenSignedZeroInfNanPreservefor 64-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderDenormPreserveFloat16-06296
IfshaderDenormPreserveFloat16isVK_FALSE, thenDenormPreservefor 16-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderDenormPreserveFloat32-06297
IfshaderDenormPreserveFloat32isVK_FALSE, thenDenormPreservefor 32-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderDenormPreserveFloat64-06298
IfshaderDenormPreserveFloat64isVK_FALSE, thenDenormPreservefor 64-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderDenormFlushToZeroFloat16-06299
IfshaderDenormFlushToZeroFloat16isVK_FALSE, thenDenormFlushToZerofor 16-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderDenormFlushToZeroFloat32-06300
IfshaderDenormFlushToZeroFloat32isVK_FALSE, thenDenormFlushToZerofor 32-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderDenormFlushToZeroFloat64-06301
IfshaderDenormFlushToZeroFloat64isVK_FALSE, thenDenormFlushToZerofor 64-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderRoundingModeRTEFloat16-06302
IfshaderRoundingModeRTEFloat16isVK_FALSE, thenRoundingModeRTEfor 16-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderRoundingModeRTEFloat32-06303
IfshaderRoundingModeRTEFloat32isVK_FALSE, thenRoundingModeRTEfor 32-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderRoundingModeRTEFloat64-06304
IfshaderRoundingModeRTEFloat64isVK_FALSE, thenRoundingModeRTEfor 64-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderRoundingModeRTZFloat16-06305
IfshaderRoundingModeRTZFloat16isVK_FALSE, thenRoundingModeRTZfor 16-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderRoundingModeRTZFloat32-06306
IfshaderRoundingModeRTZFloat32isVK_FALSE, thenRoundingModeRTZfor 32-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderRoundingModeRTZFloat64-06307
IfshaderRoundingModeRTZFloat64isVK_FALSE, thenRoundingModeRTZfor 64-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat16-09559
IfshaderSignedZeroInfNanPreserveFloat16isVK_FALSEthen anyFPFastMathDefaultexecution mode with a type of 16-bit float must include theNSZ,NotInf, andNotNaNflags. -
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat16-09560
IfshaderSignedZeroInfNanPreserveFloat16isVK_FALSEthen anyFPFastMathdecoration on an instruction with result type or any operand type that includes a 16-bit float must include theNSZ,NotInf, andNotNaNflags. -
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat32-09561
IfshaderSignedZeroInfNanPreserveFloat32isVK_FALSEthen anyFPFastMathDefaultexecution mode with a type of 32-bit float must include theNSZ,NotInf, andNotNaNflags. -
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat32-09562
IfshaderSignedZeroInfNanPreserveFloat32isVK_FALSEthen anyFPFastMathdecoration on an instruction with result type or any operand type that includes a 32-bit float must include theNSZ,NotInf, andNotNaNflags. -
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat64-09563
IfshaderSignedZeroInfNanPreserveFloat64isVK_FALSEthen anyFPFastMathDefaultexecution mode with a type of 64-bit float must include theNSZ,NotInf, andNotNaNflags. -
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat64-09564
IfshaderSignedZeroInfNanPreserveFloat64isVK_FALSEthen anyFPFastMathdecoration on an instruction with result type or any operand type that includes a 64-bit float must include theNSZ,NotInf, andNotNaNflags. -
VUID-RuntimeSpirv-Offset-06308
TheOffsetplus size of the type of each variable, in the output interface of the entry point being compiled, decorated withXfbBuffermust not be greater than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferDataSize -
VUID-RuntimeSpirv-XfbBuffer-06309
For any givenXfbBuffervalue, define the buffer data size to be smallest number of bytes such that, for all outputs decorated with the sameXfbBuffervalue, the size of the output interface variable plus theOffsetis less than or equal to the buffer data size. For a givenStream, the sum of all the buffer data sizes for all buffers writing to that stream the must not exceed VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreamDataSize -
VUID-RuntimeSpirv-OpEmitStreamVertex-06310
The Stream value toOpEmitStreamVertexandOpEndStreamPrimitivemust be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams -
VUID-RuntimeSpirv-transformFeedbackStreamsLinesTriangles-06311
If the geometry shader emits to more than one vertex stream and VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackStreamsLinesTrianglesisVK_FALSE, thenExecutionModemust beOutputPoints -
VUID-RuntimeSpirv-Stream-06312
The stream number value toStreammust be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams -
VUID-RuntimeSpirv-XfbStride-06313
The XFB Stride value toXfbStridemust be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferDataStride -
VUID-RuntimeSpirv-PhysicalStorageBuffer64-06314
If thePhysicalStorageBuffer64addressing model is enabled any load or store through a physical pointer type must be aligned to a multiple of the size of the largest scalar type in the pointed-to type -
VUID-RuntimeSpirv-PhysicalStorageBuffer64-06315
If thePhysicalStorageBuffer64addressing model is enabled the pointer value of a memory access instruction must be at least as aligned as specified by theAlignedmemory access operand -
VUID-RuntimeSpirv-OpTypeCooperativeMatrixNV-06316
ForOpTypeCooperativeMatrixNV, the component type, scope, number of rows, and number of columns must match one of the matrices in any of the supported VkCooperativeMatrixPropertiesNV -
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06317
ForOpCooperativeMatrixMulAddNV, the type ofAmust have VkCooperativeMatrixPropertiesNV::MSizerows and VkCooperativeMatrixPropertiesNV::KSizecolumns and have a component type that matches VkCooperativeMatrixPropertiesNV::AType -
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06318
ForOpCooperativeMatrixMulAddNV, the type ofBmust have VkCooperativeMatrixPropertiesNV::KSizerows and VkCooperativeMatrixPropertiesNV::NSizecolumns and have a component type that matches VkCooperativeMatrixPropertiesNV::BType -
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06319
ForOpCooperativeMatrixMulAddNV, the type ofCmust have VkCooperativeMatrixPropertiesNV::MSizerows and VkCooperativeMatrixPropertiesNV::NSizecolumns and have a component type that matches VkCooperativeMatrixPropertiesNV::CType -
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06320
ForOpCooperativeMatrixMulAddNV, the type ofResultmust have VkCooperativeMatrixPropertiesNV::MSizerows and VkCooperativeMatrixPropertiesNV::NSizecolumns and have a component type that matches VkCooperativeMatrixPropertiesNV::DType -
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06321
ForOpCooperativeMatrixMulAddNV, the type ofA,B,C, andResultmust all have a scope ofscope -
VUID-RuntimeSpirv-OpTypeCooperativeMatrixNV-06322
OpTypeCooperativeMatrixNVandOpCooperativeMatrix*instructions must not be used in shader stages not included in VkPhysicalDeviceCooperativeMatrixPropertiesNV::cooperativeMatrixSupportedStages -
VUID-RuntimeSpirv-OpTypeCooperativeMatrixKHR-08974
ForOpTypeCooperativeMatrixKHR, the component type, scope, number of rows, and number of columns must match one of the matrices in any of the supported VkCooperativeMatrixPropertiesKHR. -
VUID-RuntimeSpirv-MSize-08975
ForOpCooperativeMatrixMulAddKHR, the type ofAmust have VkCooperativeMatrixPropertiesKHR::MSizerows and VkCooperativeMatrixPropertiesKHR::KSizecolumns and have a component type that matches VkCooperativeMatrixPropertiesKHR::AType. -
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddKHR-08976
ForOpCooperativeMatrixMulAddKHR, when the component type ofAis a signed integer type, theMatrixASignedComponentscooperative matrix operand must be present. -
VUID-RuntimeSpirv-KSize-08977
ForOpCooperativeMatrixMulAddKHR, the type ofBmust have VkCooperativeMatrixPropertiesKHR::KSizerows and VkCooperativeMatrixPropertiesKHR::NSizecolumns and have a component type that matches VkCooperativeMatrixPropertiesKHR::BType. -
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddKHR-08978
ForOpCooperativeMatrixMulAddKHR, when the component type ofBis a signed integer type, theMatrixBSignedComponentscooperative matrix operand must be present. -
VUID-RuntimeSpirv-MSize-08979
ForOpCooperativeMatrixMulAddKHR, the type ofCmust have VkCooperativeMatrixPropertiesKHR::MSizerows and VkCooperativeMatrixPropertiesKHR::NSizecolumns and have a component type that matches VkCooperativeMatrixPropertiesKHR::CType. -
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddKHR-08980
ForOpCooperativeMatrixMulAddKHR, when the component type ofCis a signed integer type, theMatrixCSignedComponentscooperative matrix operand must be present. -
VUID-RuntimeSpirv-MSize-08981
ForOpCooperativeMatrixMulAddKHR, the type ofResultmust have VkCooperativeMatrixPropertiesKHR::MSizerows and VkCooperativeMatrixPropertiesKHR::NSizecolumns and have a component type that matches VkCooperativeMatrixPropertiesKHR::ResultType. -
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddKHR-08982
ForOpCooperativeMatrixMulAddKHR, when the component type ofResultis a signed integer type, theMatrixResultSignedComponentscooperative matrix operand must be present. -
VUID-RuntimeSpirv-saturatingAccumulation-08983
ForOpCooperativeMatrixMulAddKHR, theSaturatingAccumulationcooperative matrix operand must be present if and only if VkCooperativeMatrixPropertiesKHR::saturatingAccumulationisVK_TRUE. -
VUID-RuntimeSpirv-scope-08984
ForOpCooperativeMatrixMulAddKHR, the type ofA,B,C, andResultmust all have a scope ofscope. -
VUID-RuntimeSpirv-cooperativeMatrixSupportedStages-08985
OpTypeCooperativeMatrixKHRandOpCooperativeMatrix*instructions must not be used in shader stages not included in VkPhysicalDeviceCooperativeMatrixPropertiesKHR::cooperativeMatrixSupportedStages. -
VUID-RuntimeSpirv-DescriptorSet-06323
DescriptorSetandBindingdecorations must obey the constraints onStorageClass, type, and descriptor type described in DescriptorSet and Binding Assignment -
VUID-RuntimeSpirv-OpCooperativeMatrixLoadNV-06324
ForOpCooperativeMatrixLoadNVandOpCooperativeMatrixStoreNVinstructions, thePointerandStrideoperands must be aligned to at least the lesser of 16 bytes or the natural alignment of a row or column (depending onColumnMajor) of the matrix (where the natural alignment is the number of columns/rows multiplied by the component size) -
VUID-RuntimeSpirv-MeshNV-07113
For mesh shaders using theMeshNVExecutionModeltheOutputVerticesOpExecutionModemust be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputVertices -
VUID-RuntimeSpirv-MeshNV-07114
For mesh shaders using theMeshNVExecutionModeltheOutputPrimitivesNVOpExecutionModemust be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputPrimitives -
VUID-RuntimeSpirv-MeshEXT-07115
For mesh shaders using theMeshEXTExecutionModeltheOutputVerticesOpExecutionModemust be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputVertices -
VUID-RuntimeSpirv-MeshEXT-07332
For mesh shaders using theMeshEXTExecutionModelthe “Vertex Count” operand ofOpSetMeshOutputsEXTmust be less than or equal toOutputVerticesOpExecutionMode -
VUID-RuntimeSpirv-MeshEXT-07116
For mesh shaders using theMeshEXTExecutionModeltheOutputPrimitivesEXTOpExecutionModemust be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputPrimitives -
VUID-RuntimeSpirv-MeshEXT-07333
For mesh shaders using theMeshEXTExecutionModelthe “Primitive Count” operand ofOpSetMeshOutputsEXTmust be less than or equal toOutputPrimitivesEXTOpExecutionMode -
VUID-RuntimeSpirv-TaskEXT-07117
In task shaders using theTaskEXTExecutionModelOpEmitMeshTasksEXTmust be called exactly once under dynamically uniform conditions -
VUID-RuntimeSpirv-MeshEXT-07118
In mesh shaders using theMeshEXTExecutionModelOpSetMeshOutputsEXTmust be called at most once under dynamically uniform conditions -
VUID-RuntimeSpirv-TaskEXT-07291
In task shaders using theTaskEXTExecutionModelthexsize inLocalSizeorLocalSizeIdmust be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupSize[0] -
VUID-RuntimeSpirv-TaskEXT-07292
In task shaders using theTaskEXTExecutionModeltheysize inLocalSizeorLocalSizeIdmust be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupSize[1] -
VUID-RuntimeSpirv-TaskEXT-07293
In task shaders using theTaskEXTExecutionModelthezsize inLocalSizeorLocalSizeIdmust be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupSize[2] -
VUID-RuntimeSpirv-TaskEXT-07294
In task shaders using theTaskEXTExecutionModelthe product ofxsize,ysize, andzsize inLocalSizeorLocalSizeIdmust be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupInvocations -
VUID-RuntimeSpirv-MeshEXT-07295
For mesh shaders using theMeshEXTExecutionModelthexsize inLocalSizeorLocalSizeIdmust be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupSize[0] -
VUID-RuntimeSpirv-MeshEXT-07296
For mesh shaders using theMeshEXTExecutionModeltheysize inLocalSizeorLocalSizeIdmust be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupSize[1] -
VUID-RuntimeSpirv-MeshEXT-07297
For mesh shaders using theMeshEXTExecutionModelthezsize inLocalSizeorLocalSizeIdmust be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupSize[2] -
VUID-RuntimeSpirv-MeshEXT-07298
For mesh shaders using theMeshEXTExecutionModelthe product ofxsize,ysize, andzsize inLocalSizeorLocalSizeIdmust be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupInvocations -
VUID-RuntimeSpirv-TaskEXT-07299
In task shaders using theTaskEXTExecutionModelthe value of the “Group Count X” operand ofOpEmitMeshTasksEXTmust be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[0] -
VUID-RuntimeSpirv-TaskEXT-07300
In task shaders using theTaskEXTExecutionModelthe value of the “Group Count Y” operand ofOpEmitMeshTasksEXTmust be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[1] -
VUID-RuntimeSpirv-TaskEXT-07301
In task shaders using theTaskEXTExecutionModelthe value of the “Group Count Z” operand ofOpEmitMeshTasksEXTmust be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount[2] -
VUID-RuntimeSpirv-TaskEXT-07302
In task shaders using theTaskEXTExecutionModelthe product of the “Group Count” operands ofOpEmitMeshTasksEXTmust be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupTotalCount -
VUID-RuntimeSpirv-maxMeshSharedMemorySize-08754
The sum of size in bytes for variables and padding in theWorkgroupStorageClassin theMeshEXTExecutionModelmust be less than or equal tomaxMeshSharedMemorySize -
VUID-RuntimeSpirv-maxMeshPayloadAndSharedMemorySize-08755
The sum of size in bytes for variables and padding in theTaskPayloadWorkgroupEXTorWorkgroupStorageClassin theMeshEXTExecutionModelmust be less than or equal tomaxMeshPayloadAndSharedMemorySize -
VUID-RuntimeSpirv-maxMeshOutputMemorySize-08756
The sum of size in bytes for variables in theOutputStorageClassin theMeshEXTExecutionModelmust be less than or equal tomaxMeshOutputMemorySizeaccording to the formula in Mesh Shader Output -
VUID-RuntimeSpirv-maxMeshPayloadAndOutputMemorySize-08757
The sum of size in bytes for variables and in theTaskPayloadWorkgroupEXTorOutputStorageClassin theMeshEXTExecutionModelmust be less than or equal tomaxMeshPayloadAndOutputMemorySizeaccording to the formula in Mesh Shader Output -
VUID-RuntimeSpirv-maxTaskPayloadSize-08758
The sum of size in bytes for variables and in theTaskPayloadWorkgroupEXTStorageClassin theTaskEXTExecutionModelmust be less than or equal tomaxTaskPayloadSize -
VUID-RuntimeSpirv-maxTaskSharedMemorySize-08759
The sum of size in bytes for variables and padding in theWorkgroupStorageClassin theTaskEXTExecutionModelmust be less than or equal tomaxTaskSharedMemorySize -
VUID-RuntimeSpirv-maxTaskPayloadAndSharedMemorySize-08760
The sum of size in bytes for variables and padding in theTaskPayloadWorkgroupEXTorWorkgroupStorageClassin theTaskEXTExecutionModelmust be less than or equal tomaxTaskPayloadAndSharedMemorySize -
VUID-RuntimeSpirv-OpCooperativeMatrixLoadKHR-08986
ForOpCooperativeMatrixLoadKHRandOpCooperativeMatrixStoreKHRinstructions, thePointerandStrideoperands must be aligned to at least the lesser of 16 bytes or the natural alignment of a row or column (depending onColumnMajor) of the matrix (where the natural alignment is the number of columns/rows multiplied by the component size). -
VUID-RuntimeSpirv-shaderSampleRateInterpolationFunctions-06325
If theVK_KHR_portability_subsetextension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::shaderSampleRateInterpolationFunctionsisVK_FALSE, thenGLSL.std.450fragment interpolation functions are not supported by the implementation andOpCapabilitymust not be set toInterpolationFunction -
VUID-RuntimeSpirv-tessellationShader-06326
IftessellationShaderis enabled, and theVK_KHR_portability_subsetextension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::tessellationIsolinesisVK_FALSE, thenOpExecutionModemust not be set toIsoLines -
VUID-RuntimeSpirv-tessellationShader-06327
IftessellationShaderis enabled, and theVK_KHR_portability_subsetextension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::tessellationPointModeisVK_FALSE, thenOpExecutionModemust not be set toPointMode -
VUID-RuntimeSpirv-storageBuffer8BitAccess-06328
IfstorageBuffer8BitAccessisVK_FALSE, then objects containing an 8-bit integer element must not haveStorageClassofStorageBuffer,ShaderRecordBufferKHR, orPhysicalStorageBuffer -
VUID-RuntimeSpirv-uniformAndStorageBuffer8BitAccess-06329
IfuniformAndStorageBuffer8BitAccessisVK_FALSE, then objects in theUniformStorageClasswith theBlockdecoration must not have an 8-bit integer member -
VUID-RuntimeSpirv-storagePushConstant8-06330
IfstoragePushConstant8isVK_FALSE, then objects containing an 8-bit integer element must not haveStorageClassofPushConstant -
VUID-RuntimeSpirv-storageBuffer16BitAccess-06331
IfstorageBuffer16BitAccessisVK_FALSE, then objects containing 16-bit integer or 16-bit floating-point elements must not haveStorageClassofStorageBuffer,ShaderRecordBufferKHR, orPhysicalStorageBuffer -
VUID-RuntimeSpirv-uniformAndStorageBuffer16BitAccess-06332
IfuniformAndStorageBuffer16BitAccessisVK_FALSE, then objects in theUniformStorageClasswith theBlockdecoration must not have 16-bit integer or 16-bit floating-point members -
VUID-RuntimeSpirv-storagePushConstant16-06333
IfstoragePushConstant16isVK_FALSE, then objects containing 16-bit integer or 16-bit floating-point elements must not haveStorageClassofPushConstant -
VUID-RuntimeSpirv-storageInputOutput16-06334
IfstorageInputOutput16isVK_FALSE, then objects containing 16-bit integer or 16-bit floating-point elements must not haveStorageClassofInputorOutput -
VUID-RuntimeSpirv-None-06337
shaderBufferFloat16Atomics, orshaderBufferFloat16AtomicAdd, orshaderBufferFloat16AtomicMinMax, orshaderSharedFloat16Atomics, orshaderSharedFloat16AtomicAdd, orshaderSharedFloat16AtomicMinMaxmust be enabled for 16-bit floating point atomic operations -
VUID-RuntimeSpirv-None-06338
shaderBufferFloat32Atomics, orshaderBufferFloat32AtomicAdd, orshaderSharedFloat32Atomics, orshaderSharedFloat32AtomicAdd, orshaderImageFloat32Atomics, orshaderImageFloat32AtomicAddorshaderBufferFloat32AtomicMinMax, orshaderSharedFloat32AtomicMinMax, orshaderImageFloat32AtomicMinMaxmust be enabled for 32-bit floating point atomic operations -
VUID-RuntimeSpirv-None-06339
shaderBufferFloat64Atomics, orshaderBufferFloat64AtomicAdd, orshaderSharedFloat64Atomics, orshaderSharedFloat64AtomicAdd, orshaderBufferFloat64AtomicMinMax, orshaderSharedFloat64AtomicMinMax, must be enabled for 64-bit floating point atomic operations -
VUID-RuntimeSpirv-NonWritable-06340
IffragmentStoresAndAtomicsis not enabled, then all storage image, storage texel buffer, and storage buffer variables in the fragment stage must be decorated with theNonWritabledecoration -
VUID-RuntimeSpirv-NonWritable-06341
IfvertexPipelineStoresAndAtomicsis not enabled, then all storage image, storage texel buffer, and storage buffer variables in the vertex, tessellation, and geometry stages must be decorated with theNonWritabledecoration -
VUID-RuntimeSpirv-None-06342
IfsubgroupQuadOperationsInAllStagesisVK_FALSE, then quad subgroup operations must not be used except for in fragment and compute stages -
VUID-RuntimeSpirv-None-06343
Group operations with subgroup scope must not be used if the shader stage is not insubgroupSupportedStages -
VUID-RuntimeSpirv-Offset-06344
The first element of theOffsetoperand ofInterpolateAtOffsetmust be greater than or equal to:
fragwidth ×minInterpolationOffset
where fragwidth is the width of the current fragment in pixels -
VUID-RuntimeSpirv-Offset-06345
The first element of theOffsetoperand ofInterpolateAtOffsetmust be less than or equal to
fragwidth × (maxInterpolationOffset+ ULP ) - ULP
where fragwidth is the width of the current fragment in pixels and ULP = 1 / 2subPixelInterpolationOffsetBits^ -
VUID-RuntimeSpirv-Offset-06346
The second element of theOffsetoperand ofInterpolateAtOffsetmust be greater than or equal to
fragheight ×minInterpolationOffset
where fragheight is the height of the current fragment in pixels -
VUID-RuntimeSpirv-Offset-06347
The second element of theOffsetoperand ofInterpolateAtOffsetmust be less than or equal to
fragheight × (maxInterpolationOffset+ ULP ) - ULP
where fragheight is the height of the current fragment in pixels and ULP = 1 / 2subPixelInterpolationOffsetBits^. -
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06348
ForOpRayQueryInitializeKHRinstructions, all components of theRayOriginandRayDirectionoperands must be finite floating-point values -
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06349
ForOpRayQueryInitializeKHRinstructions, theRayTminandRayTmaxoperands must be non-negative floating-point values -
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06350
ForOpRayQueryInitializeKHRinstructions, theRayTminoperand must be less than or equal to theRayTmaxoperand -
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06351
ForOpRayQueryInitializeKHRinstructions,RayOrigin,RayDirection,RayTmin, andRayTmaxoperands must not contain NaNs -
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06352
ForOpRayQueryInitializeKHRinstructions,AccelerationStructuremust be an acceleration structure built as a top-level acceleration structure -
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06889
ForOpRayQueryInitializeKHRinstructions, theRayflagsoperand must not contain bothSkipTrianglesKHRandSkipAABBsKHR -
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06890
ForOpRayQueryInitializeKHRinstructions, theRayflagsoperand must not contain more than one ofSkipTrianglesKHR,CullBackFacingTrianglesKHR, andCullFrontFacingTrianglesKHR -
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06891
ForOpRayQueryInitializeKHRinstructions, theRayflagsoperand must not contain more than one ofOpaqueKHR,NoOpaqueKHR,CullOpaqueKHR, andCullNoOpaqueKHR -
VUID-RuntimeSpirv-OpRayQueryGenerateIntersectionKHR-06353
ForOpRayQueryGenerateIntersectionKHRinstructions,HitTmust satisfy the conditionRayTmin≤HitT≤RayTmax, whereRayTminis equal to the value returned byOpRayQueryGetRayTMinKHRwith the same ray query object, andRayTmaxis equal to the value ofOpRayQueryGetIntersectionTKHRfor the current committed intersection with the same ray query object -
VUID-RuntimeSpirv-OpRayQueryGenerateIntersectionKHR-06354
ForOpRayQueryGenerateIntersectionKHRinstructions,AccelerationStructuremust not be built withVK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NVinflags -
VUID-RuntimeSpirv-flags-08761
ForOpRayQueryGetIntersectionTriangleVertexPositionsKHRinstructions,AccelerationStructuremust have been built withVK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHRinflags -
VUID-RuntimeSpirv-OpTraceRayKHR-06355
ForOpTraceRayKHRinstructions, all components of theRayOriginandRayDirectionoperands must be finite floating-point values -
VUID-RuntimeSpirv-OpTraceRayKHR-06356
ForOpTraceRayKHRinstructions, theRayTminandRayTmaxoperands must be non-negative floating-point values -
VUID-RuntimeSpirv-OpTraceRayKHR-06552
ForOpTraceRayKHRinstructions, theRayflagsoperand must not contain bothSkipTrianglesKHRandSkipAABBsKHR -
VUID-RuntimeSpirv-OpTraceRayKHR-06892
ForOpTraceRayKHRinstructions, theRayflagsoperand must not contain more than one ofSkipTrianglesKHR,CullBackFacingTrianglesKHR, andCullFrontFacingTrianglesKHR -
VUID-RuntimeSpirv-OpTraceRayKHR-06893
ForOpTraceRayKHRinstructions, theRayflagsoperand must not contain more than one ofOpaqueKHR,NoOpaqueKHR,CullOpaqueKHR, andCullNoOpaqueKHR -
VUID-RuntimeSpirv-OpTraceRayKHR-06553
ForOpTraceRayKHRinstructions, if theRayflagsoperand containsSkipTrianglesKHR, the pipeline must not have been created withVK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHRset -
VUID-RuntimeSpirv-OpTraceRayKHR-06554
ForOpTraceRayKHRinstructions, if theRayflagsoperand containsSkipAABBsKHR, the pipeline must not have been created withVK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHRset -
VUID-RuntimeSpirv-OpTraceRayKHR-06357
ForOpTraceRayKHRinstructions, theRayTminoperand must be less than or equal to theRayTmaxoperand -
VUID-RuntimeSpirv-OpTraceRayKHR-06358
ForOpTraceRayKHRinstructions,RayOrigin,RayDirection,RayTmin, andRayTmaxoperands must not contain NaNs -
VUID-RuntimeSpirv-OpTraceRayKHR-06359
ForOpTraceRayKHRinstructions,AccelerationStructuremust be an acceleration structure built as a top-level acceleration structure -
VUID-RuntimeSpirv-OpReportIntersectionKHR-06998
The value of the “Hit Kind” operand ofOpReportIntersectionKHRmust be in the range [0,127] -
VUID-RuntimeSpirv-OpTraceRayKHR-06360
ForOpTraceRayKHRinstructions, ifAccelerationStructurewas built withVK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NVinflags, the pipeline must have been created withVK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NVset -
VUID-RuntimeSpirv-OpTraceRayMotionNV-06361
ForOpTraceRayMotionNVinstructions, all components of theRayOriginandRayDirectionoperands must be finite floating-point values -
VUID-RuntimeSpirv-OpTraceRayMotionNV-06362
ForOpTraceRayMotionNVinstructions, theRayTminandRayTmaxoperands must be non-negative floating-point values -
VUID-RuntimeSpirv-OpTraceRayMotionNV-06363
ForOpTraceRayMotionNVinstructions, theRayTminoperand must be less than or equal to theRayTmaxoperand -
VUID-RuntimeSpirv-OpTraceRayMotionNV-06364
ForOpTraceRayMotionNVinstructions,RayOrigin,RayDirection,RayTmin, andRayTmaxoperands must not contain NaNs -
VUID-RuntimeSpirv-OpTraceRayMotionNV-06365
ForOpTraceRayMotionNVinstructions,AccelerationStructuremust be an acceleration structure built as a top-level acceleration structure withVK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NVinflags -
VUID-RuntimeSpirv-OpTraceRayMotionNV-06366
ForOpTraceRayMotionNVinstructions thetimeoperand must be between 0.0 and 1.0 -
VUID-RuntimeSpirv-OpTraceRayMotionNV-06367
ForOpTraceRayMotionNVinstructions the pipeline must have been created withVK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NVset -
VUID-RuntimeSpirv-OpHitObjectTraceRayMotionNV-07704
ForOpHitObjectTraceRayMotionNVinstructions, ifAccelerationStructurewas built withVK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NVinflags, the pipeline must have been created withVK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NVset -
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07705
ForOpHitObjectTraceRayNVandOpHitObjectTraceRayMotionNVinstructions, all components of theRayOriginandRayDirectionoperands must be finite floating-point values -
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07706
ForOpHitObjectTraceRayNVandOpHitObjectTraceRayMotionNVinstructions, theRayTminandRayTmaxoperands must be non-negative floating-point values -
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07707
ForOpHitObjectTraceRayNVandOpHitObjectTraceRayMotionNVinstructions, theRayTminoperand must be less than or equal to theRayTmaxoperand -
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07708
ForOpHitObjectTraceRayNVandOpHitObjectTraceRayMotionNVinstructions,RayOrigin,RayDirection,RayTmin, andRayTmaxoperands must not contain NaNs -
VUID-RuntimeSpirv-OpHitObjectTraceRayMotionNV-07709
ForOpHitObjectTraceRayMotionNVinstructions,AccelerationStructuremust be an acceleration structure built as a top-level acceleration structure withVK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NVinflags -
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07710
ForOpHitObjectTraceRayNVandOpHitObjectTraceRayMotionNVinstructions thetimeoperand must be between 0.0 and 1.0 -
VUID-RuntimeSpirv-OpHitObjectTraceRayMotionNV-07711
ForOpHitObjectTraceRayMotionNVinstructions the pipeline must have been created withVK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NVset -
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07712
ForOpHitObjectTraceRayNVandOpHitObjectTraceRayMotionNVinstructions, theRayflagsoperand must not contain bothSkipTrianglesKHRandSkipAABBsKHR -
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07713
ForOpHitObjectTraceRayNVandOpHitObjectTraceRayMotionNVinstructions, theRayflagsoperand must not contain more than one ofSkipTrianglesKHR,CullBackFacingTrianglesKHR, andCullFrontFacingTrianglesKHR -
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07714
ForOpHitObjectTraceRayNVandOpHitObjectTraceRayMotionNVinstructions, theRayflagsoperand must not contain more than one ofOpaqueKHR,NoOpaqueKHR,CullOpaqueKHR, andCullNoOpaqueKHR -
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07715
ForOpHitObjectTraceRayNVandOpHitObjectTraceRayMotionNVinstructions, if theRayflagsoperand containsSkipTrianglesKHR, the pipeline must not have been created withVK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHRset -
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07716
ForOpHitObjectTraceRayNVandOpHitObjectTraceRayMotionNVinstructions, if theRayflagsoperand containsSkipAABBsKHR, the pipeline must not have been created withVK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHRset -
VUID-RuntimeSpirv-x-06429
In compute shaders using theGLComputeExecutionModelthexsize inLocalSizeorLocalSizeIdmust be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0] -
VUID-RuntimeSpirv-y-06430
In compute shaders using theGLComputeExecutionModeltheysize inLocalSizeorLocalSizeIdmust be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1] -
VUID-RuntimeSpirv-z-06431
In compute shaders using theGLComputeExecutionModelthezsize inLocalSizeorLocalSizeIdmust be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2] -
VUID-RuntimeSpirv-x-06432
In compute shaders using theGLComputeExecutionModelthe product ofxsize,ysize, andzsize inLocalSizeorLocalSizeIdmust be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupInvocations -
VUID-RuntimeSpirv-LocalSizeId-06434
IfExecutionModeLocalSizeIdis used,maintenance4must be enabled -
VUID-RuntimeSpirv-maintenance4-06817
Ifmaintenance4is not enabled, anyOpTypeVectoroutput interface variables must not have a higherComponentCountthan a matchingOpTypeVectorinput interface variable -
VUID-RuntimeSpirv-OpEntryPoint-08743
Any user-defined variables shared between theOpEntryPointof two shader stages, and declared withInputas itsStorageClassfor the subsequent shader stage, must have allLocationslots andComponentwords declared in the preceding shader stage’sOpEntryPointwithOutputas theStorageClass -
VUID-RuntimeSpirv-OpEntryPoint-07754
Any user-defined variables between theOpEntryPointof two shader stages must have the same type and width for eachComponent -
VUID-RuntimeSpirv-OpVariable-08746
AnyOpVariable,Block-decoratedOpTypeStruct, orBlock-decoratedOpTypeStructmembers shared between theOpEntryPointof two shader stages must have matching decorations as defined in interface matching -
VUID-RuntimeSpirv-Workgroup-06530
The sum of size in bytes for variables and padding in theWorkgroupStorageClassin theGLComputeExecutionModelmust be less than or equal tomaxComputeSharedMemorySize -
VUID-RuntimeSpirv-shaderZeroInitializeWorkgroupMemory-06372
IfshaderZeroInitializeWorkgroupMemoryis not enabled, anyOpVariablewithWorkgroupas itsStorageClassmust not have anInitializeroperand -
VUID-RuntimeSpirv-OpImage-06376
If anOpImage*Gatheroperation has an image operand ofOffset,ConstOffset, orConstOffsetsthe offset value must be greater than or equal tominTexelGatherOffset -
VUID-RuntimeSpirv-OpImage-06377
If anOpImage*Gatheroperation has an image operand ofOffset,ConstOffset, orConstOffsetsthe offset value must be less than or equal tomaxTexelGatherOffset -
VUID-RuntimeSpirv-OpImageSample-06435
If anOpImageSample*orOpImageFetch*operation has an image operand ofConstOffsetthen the offset value must be greater than or equal tominTexelOffset -
VUID-RuntimeSpirv-OpImageSample-06436
If anOpImageSample*orOpImageFetch*operation has an image operand ofConstOffsetthen the offset value must be less than or equal tomaxTexelOffset -
VUID-RuntimeSpirv-samples-08725
If anOpTypeImagehas anMSoperand 0, its bound image must have been created with VkImageCreateInfo::samplesasVK_SAMPLE_COUNT_1_BIT -
VUID-RuntimeSpirv-samples-08726
If anOpTypeImagehas anMSoperand 1, its bound image must not have been created with VkImageCreateInfo::samplesasVK_SAMPLE_COUNT_1_BIT -
VUID-RuntimeSpirv-SampleRateShading-06378
If the subpass description containsVK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then the SPIR-V fragment shader CapabilitySampleRateShadingmust not be enabled -
VUID-RuntimeSpirv-SubgroupUniformControlFlowKHR-06379
TheExecutionModeSubgroupUniformControlFlowKHRmust not be applied to an entry point unlessshaderSubgroupUniformControlFlowis enabled and the corresponding shader stage bit is set in subgroupsupportedStagesand the entry point does not execute any invocation repack instructions -
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06767
IfshaderEarlyAndLateFragmentTestsis not enabled, theEarlyAndLateFragmentTestsEXTExecutionModemust not be used -
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06768
IfshaderEarlyAndLateFragmentTestsfeature is not enabled, theStencilRefUnchangedFrontEXTExecutionModemust not be used -
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06769
IfshaderEarlyAndLateFragmentTestsis not enabled, theStencilRefUnchangedBackEXTExecutionModemust not be used -
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06770
IfshaderEarlyAndLateFragmentTestsis not enabled, theStencilRefGreaterFrontEXTExecutionModemust not be used -
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06771
IfshaderEarlyAndLateFragmentTestsis not enabled, theStencilRefGreaterBackEXTExecutionModemust not be used -
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06772
IfshaderEarlyAndLateFragmentTestsis not enabled, theStencilRefLessFrontEXTExecutionModemust not be used -
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06773
IfshaderEarlyAndLateFragmentTestsis not enabled, theStencilRefLessBackEXTExecutionModemust not be used -
VUID-RuntimeSpirv-OpImageWeightedSampleQCOM-06979
If anOpImageWeightedSampleQCOMoperation is used, then theTextureSampledImageandWeightImageparameters must both be dynamically uniform for the quad -
VUID-RuntimeSpirv-OpImageWeightedSampleQCOM-06980
If anOpImageWeightedSampleQCOMoperation is used, then theWeightImageparameter must be ofStorageClassUniformConstantand typeOpTypeImagewithDepth=0,Dim=2D,Arrayed=1,MS=0, andSampled=1 -
VUID-RuntimeSpirv-OpImageWeightedSampleQCOM-06981
If anOpImageWeightedSampleQCOMoperation is used, then theWeightImageparameter must be decorated withWeightTextureQCOM -
VUID-RuntimeSpirv-OpImageBlockMatchSADQCOM-06982
If anOpImageBlockMatchSADQCOMorOpImageBlockMatchSSDQCOMoperation is used, then thetargetsampledimage,referencesampledimage, andBlockSizeparameters must both be dynamically uniform for the quad -
VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06983
If anOpImageBlockMatchSSDQCOMorOpImageBlockMatchSADQCOMoperation is used, thentargetsampledimageandreferencesampledimageparameters must be of storage classUniformConstantand typeOpTypeImagewithDepth=0,Dim=2D,Arrayed=0,MS=0, andSampled=1 -
VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06984
If anOpImageBlockMatchSSDQCOMorOpImageBlockMatchSADQCOMoperation is used, then thetargetsampledimageandreferencesampledimageparameters must be decorated withBlockMatchTextureQCOM -
VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06985
If anOpImageBlockMatchSSDQCOMorOpImageBlockMatchSADQCOMoperation is used, thentargetsampledimageandreferencesampledimageparameters must have been created using an identical sampler object -
VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06986
If anOpImageBlockMatchSSDQCOMorOpImageBlockMatchSADQCOMoperation is used, thentargetsampledimageandreferencesampledimageparameters must have been created with a sampler object withunnormalizedCoordinatesequal toVK_TRUE -
VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06987
If anOpImageBlockMatchSSDQCOMorOpImageBlockMatchSADQCOMoperation is used, thentargetsampledimageandreferencesampledimageparameters must have been created with a sampler object withunnormalizedCoordinatesequal toVK_TRUE -
VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06988
If anOpImageBlockMatchSSDQCOMorOpImageBlockMatchSADQCOMoperation is used, thenBlockSizeless than or equal tomaxBlockMatchRegion -
VUID-RuntimeSpirv-OpImageBoxFilterQCOM-06989
If anOpImageBoxFilterQCOMoperation is used, thenBoxSize.ymust be equal to or greater than 1.0 and less than or equal tomaxBoxFilterBlockSize.height -
VUID-RuntimeSpirv-OpImageBoxFilterQCOM-06990
If anOpImageBoxFilterQCOMoperation is used, thenSampledTextureImageandBoxSizeparameters must be dynamically uniform -
VUID-RuntimeSpirv-OpEntryPoint-08727
EachOpEntryPointmust not have more than one variable decorated withInputAttachmentIndexper image aspect of the attachment image bound to it, either explicitly or implicitly as described by input attachment interface -
VUID-RuntimeSpirv-shaderTileImageColorReadAccess-08728
IfshaderTileImageColorReadAccessis not enabled,OpColorAttachmentReadEXToperation must not be used -
VUID-RuntimeSpirv-shaderTileImageDepthReadAccess-08729
IfshaderTileImageDepthReadAccessis not enabled,OpDepthAttachmentReadEXToperation must not be used -
VUID-RuntimeSpirv-shaderTileImageStencilReadAccess-08730
IfshaderTileImageStencilReadAccessis not enabled,OpStencilAttachmentReadEXToperation must not be used -
VUID-RuntimeSpirv-minSampleShading-08731
If sample shading is enabled andminSampleShadingis 1.0, thesampleoperand of anyOpColorAttachmentReadEXT,OpDepthAttachmentReadEXT, orOpStencilAttachmentReadEXToperation must evaluate to the value of the coverage index for any given fragment invocation -
VUID-RuntimeSpirv-minSampleShading-08732
If sample shading is enabled and any of theOpColorAttachmentReadEXT,OpDepthAttachmentReadEXT, orOpStencilAttachmentReadEXToperations are used, thenminSampleShadingmust be 1.0 -
VUID-RuntimeSpirv-MeshEXT-09218
In mesh shaders using theMeshEXTorMeshNVExecutionModeland theOutputPointsExecutionMode, ifmaintenance5is not enabled, and if the number of output points is greater than 0, aPointSizedecorated variable must be written to for each output point -
VUID-RuntimeSpirv-maintenance5-09190
Ifmaintenance5is enabled and aPointSizedecorated variable is written to, all execution paths must write to aPointSizedecorated variable -
VUID-RuntimeSpirv-ShaderEnqueueAMDX-09191
TheShaderEnqueueAMDXcapability must only be used in shaders with theGLComputeexecution model -
VUID-RuntimeSpirv-NodePayloadAMDX-09192
Variables in theNodePayloadAMDXstorage class must only be declared in theGLComputeexecution model -
VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadSize-09193
Variables declared in theNodePayloadAMDXstorage class must not be larger than themaxExecutionGraphShaderPayloadSizelimit -
VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadSize-09194
Variables declared in theNodeOutputPayloadAMDXstorage class must not be larger than themaxExecutionGraphShaderPayloadSizelimit -
VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadSize-09195
For a given entry point, the sum of the size of any variable in theNodePayloadAMDXstorage class, and the combined size of all statically initialized variables in theNodeOutputPayloadAMDXstorage class must not be greater thanmaxExecutionGraphShaderPayloadSize -
VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadCount-09196
Shaders must not statically initialize more thanmaxExecutionGraphShaderPayloadCountvariables in theNodeOutputPayloadAMDXstorage class -
VUID-RuntimeSpirv-maxExecutionGraphShaderOutputNodes-09197
Shaders must not include more thanmaxExecutionGraphShaderOutputNodesinstances ofOpInitializeNodePayloadsAMDX -
VUID-RuntimeSpirv-OpImageBlockMatchWindow-09219
If aOpImageBlockMatchWindow*QCOMorOpImageBlockMatchGather*QCOMoperation is used, then thetargetsampledimage,referencesampledimage, andBlockSizeparameters must both be dynamically uniform for the quad -
VUID-RuntimeSpirv-OpImageBlockMatchWindow-09220
If aOpImageBlockMatchWindow*QCOMorOpImageBlockMatchGather*QCOMoperation is used, thentargetsampledimageandreferencesampledimageparameters must be of storage classUniformConstantand typeOpTypeImagewithDepth=0,Dim=2D,Arrayed=0,MS=0, andSampled=1 -
VUID-RuntimeSpirv-OpImageBlockMatchWindow-09221
If aOpImageBlockMatchWindow*QCOMorOpImageBlockMatchGather*QCOMoperation is used, then thetargetsampledimageandreferencesampledimageparameters must be decorated withBlockMatchTextureQCOM -
VUID-RuntimeSpirv-OpImageBlockMatchWindow-09222
If aOpImageBlockMatchWindow*QCOMorOpImageBlockMatchGather*QCOMoperation is used, thentargetsampledimageandreferencesampledimageparameters must have been created using an identical sampler object -
VUID-RuntimeSpirv-OpImageBlockMatchWindow-09223
If aOpImageBlockMatchWindow*QCOMorOpImageBlockMatchGather*QCOMoperation is used, thentargetsampledimageandreferencesampledimageparameters must have been created with a sampler object withunnormalizedCoordinatesequal toVK_TRUE -
VUID-RuntimeSpirv-OpImageBlockMatchWindow-09224
If aOpImageBlockMatchWindow*QCOMorOpImageBlockMatchGather*QCOMoperation is used, thentargetsampledimageandreferencesampledimageparameters must have been created with sampler object withunnormalizedCoordinatesequal toVK_TRUE -
VUID-RuntimeSpirv-maxBlockMatchRegion-09225
If aOpImageBlockMatchWindow*QCOMorOpImageBlockMatchGather*QCOMoperation is used, thenBlockSizeless than or equal tomaxBlockMatchRegion -
VUID-RuntimeSpirv-pNext-09226
If aOpImageBlockMatchWindow*QCOMoperation is used, thentargetsampledimagemust have been created using asampler object that included VkSamplerBlockMatchWindowCreateInfoQCOM in thepNextchain. ifdef:VK_KHR_shader_maximal_reconvergence[] -
VUID-RuntimeSpirv-MaximallyReconvergesKHR-09565
The execution modeMaximallyReconvergesKHRmust not be applied to an entry point unless the entry point does not execute any invocation repack instructions. endif:VK_KHR_shader_maximal_reconvergence[] -
VUID-RuntimeSpirv-shaderSubgroupRotateClustered-09566
IfshaderSubgroupRotateClusteredisVK_FALSE, then theClusterSizeoperand toOpGroupNonUniformRotateKHRmust not be used.
Document Notes
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.