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
IfvulkanMemoryModel
is enabled andvulkanMemoryModelDeviceScope
is not enabled,Device
memory scope must not be used -
VUID-RuntimeSpirv-vulkanMemoryModel-06266
IfvulkanMemoryModel
is not enabled,QueueFamily
memory scope must not be used -
VUID-RuntimeSpirv-shaderSubgroupClock-06267
IfshaderSubgroupClock
is not enabled, theSubgroup
scope must not be used forOpReadClockKHR
-
VUID-RuntimeSpirv-shaderDeviceClock-06268
IfshaderDeviceClock
is not enabled, theDevice
scope must not be used forOpReadClockKHR
-
VUID-RuntimeSpirv-None-09558
IfdynamicRenderingLocalRead
is not enabled, any variable created with a “Type” ofOpTypeImage
that has a “Dim” operand ofSubpassData
must be decorated withInputAttachmentIndex
-
VUID-RuntimeSpirv-OpTypeImage-09644
Any variable created with a “Type” ofOpTypeImage
that has a “Dim” operand ofSubpassData
andArrayed
=1 must be decorated withInputAttachmentIndex
-
VUID-RuntimeSpirv-apiVersion-07954
If VkPhysicalDeviceProperties::apiVersion
is less than Vulkan 1.3, the VK_KHR_format_feature_flags2 extension is not supported, andshaderStorageImageWriteWithoutFormat
is not enabled, any variable created with a “Type” ofOpTypeImage
that has a “Sampled” operand of 2 and an “Image Format” operand ofUnknown
must be decorated withNonWritable
-
VUID-RuntimeSpirv-apiVersion-07955
If VkPhysicalDeviceProperties::apiVersion
is less than Vulkan 1.3, the VK_KHR_format_feature_flags2 extension is not supported, andshaderStorageImageReadWithoutFormat
is not enabled, any variable created with a “Type” ofOpTypeImage
that has a “Sampled” operand of 2 and an “Image Format” operand ofUnknown
must be decorated withNonReadable
-
VUID-RuntimeSpirv-OpImageWrite-07112
OpImageWrite
to anyImage
whoseImage
Format
is notUnknown
must have theTexel
operand 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 ofLocation
and the number of locations the variable it decorates consumes must be less than or equal to the value for the matchingExecution
Model
defined 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 outputLocation
decorated color attachments written to in theFragment
Execution
Model
must 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
shaderSubgroupExtendedTypes
must be enabled for group operations to use 8-bit integer, 16-bit integer, 64-bit integer, 16-bit floating-point, and vectors of these types -
VUID-RuntimeSpirv-subgroupBroadcastDynamicId-06276
IfsubgroupBroadcastDynamicId
isVK_TRUE
, and the shader module version is 1.5 or higher, the “Index” forOpGroupNonUniformQuadBroadcast
must be dynamically uniform within the derivative group. Otherwise, “Index” must be a constant -
VUID-RuntimeSpirv-subgroupBroadcastDynamicId-06277
IfsubgroupBroadcastDynamicId
isVK_TRUE
, and the shader module version is 1.5 or higher, the “Id” forOpGroupNonUniformBroadcast
must be dynamically uniform within the subgroup. Otherwise, “Id” must be a constant -
VUID-RuntimeSpirv-None-06278
shaderBufferInt64Atomics
must be enabled for 64-bit integer atomic operations to be supported on a Pointer with aStorage
Class
ofStorageBuffer
orUniform
-
VUID-RuntimeSpirv-None-06279
shaderSharedInt64Atomics
must be enabled for 64-bit integer atomic operations to be supported on a Pointer with aStorage
Class
ofWorkgroup
-
VUID-RuntimeSpirv-None-06284
shaderBufferFloat32Atomics
, orshaderBufferFloat32AtomicAdd
, orshaderBufferFloat64Atomics
, orshaderBufferFloat64AtomicAdd
, orshaderBufferFloat16Atomics
, orshaderBufferFloat16AtomicAdd
, orshaderBufferFloat16AtomicMinMax
, orshaderBufferFloat32AtomicMinMax
, orshaderBufferFloat64AtomicMinMax
, orshaderFloat16VectorAtomics
must be enabled for floating-point atomic operations to be supported on a Pointer with aStorage
Class
ofStorageBuffer
-
VUID-RuntimeSpirv-None-06285
shaderSharedFloat32Atomics
, orshaderSharedFloat32AtomicAdd
, orshaderSharedFloat64Atomics
, orshaderSharedFloat64AtomicAdd
, orshaderSharedFloat16Atomics
, orshaderSharedFloat16AtomicAdd
, orshaderSharedFloat16AtomicMinMax
, orshaderSharedFloat32AtomicMinMax
, orshaderSharedFloat64AtomicMinMax
, orshaderFloat16VectorAtomics
, must be enabled for floating-point atomic operations to be supported on a Pointer with aStorage
Class
ofWorkgroup
-
VUID-RuntimeSpirv-None-06286
shaderImageFloat32Atomics
, orshaderImageFloat32AtomicAdd
, orshaderImageFloat32AtomicMinMax
, must be enabled for 32-bit floating-point atomic operations to be supported on a Pointer with aStorage
Class
ofImage
-
VUID-RuntimeSpirv-None-06287
sparseImageFloat32Atomics
, orsparseImageFloat32AtomicAdd
, orsparseImageFloat32AtomicMinMax
, must be enabled for 32-bit floating-point atomics to be supported on sparse images -
VUID-RuntimeSpirv-None-06288
shaderImageInt64Atomics
must be enabled for 64-bit integer atomic operations to be supported on a Pointer with aStorage
Class
ofImage
-
VUID-RuntimeSpirv-denormBehaviorIndependence-06289
IfdenormBehaviorIndependence
isVK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY
, then the entry point must use the same denormalsExecution
Mode
for both 16-bit and 64-bit floating-point types -
VUID-RuntimeSpirv-denormBehaviorIndependence-06290
IfdenormBehaviorIndependence
isVK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
, then the entry point must use the same denormalsExecution
Mode
for all floating-point types -
VUID-RuntimeSpirv-roundingModeIndependence-06291
IfroundingModeIndependence
isVK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY
, then the entry point must use the same roundingExecution
Mode
for both 16-bit and 64-bit floating-point types -
VUID-RuntimeSpirv-roundingModeIndependence-06292
IfroundingModeIndependence
isVK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
, then the entry point must use the same roundingExecution
Mode
for all floating-point types -
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat16-06293
IfshaderSignedZeroInfNanPreserveFloat16
isVK_FALSE
, thenSignedZeroInfNanPreserve
for 16-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat32-06294
IfshaderSignedZeroInfNanPreserveFloat32
isVK_FALSE
, thenSignedZeroInfNanPreserve
for 32-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat64-06295
IfshaderSignedZeroInfNanPreserveFloat64
isVK_FALSE
, thenSignedZeroInfNanPreserve
for 64-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderDenormPreserveFloat16-06296
IfshaderDenormPreserveFloat16
isVK_FALSE
, thenDenormPreserve
for 16-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderDenormPreserveFloat32-06297
IfshaderDenormPreserveFloat32
isVK_FALSE
, thenDenormPreserve
for 32-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderDenormPreserveFloat64-06298
IfshaderDenormPreserveFloat64
isVK_FALSE
, thenDenormPreserve
for 64-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderDenormFlushToZeroFloat16-06299
IfshaderDenormFlushToZeroFloat16
isVK_FALSE
, thenDenormFlushToZero
for 16-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderDenormFlushToZeroFloat32-06300
IfshaderDenormFlushToZeroFloat32
isVK_FALSE
, thenDenormFlushToZero
for 32-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderDenormFlushToZeroFloat64-06301
IfshaderDenormFlushToZeroFloat64
isVK_FALSE
, thenDenormFlushToZero
for 64-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderRoundingModeRTEFloat16-06302
IfshaderRoundingModeRTEFloat16
isVK_FALSE
, thenRoundingModeRTE
for 16-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderRoundingModeRTEFloat32-06303
IfshaderRoundingModeRTEFloat32
isVK_FALSE
, thenRoundingModeRTE
for 32-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderRoundingModeRTEFloat64-06304
IfshaderRoundingModeRTEFloat64
isVK_FALSE
, thenRoundingModeRTE
for 64-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderRoundingModeRTZFloat16-06305
IfshaderRoundingModeRTZFloat16
isVK_FALSE
, thenRoundingModeRTZ
for 16-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderRoundingModeRTZFloat32-06306
IfshaderRoundingModeRTZFloat32
isVK_FALSE
, thenRoundingModeRTZ
for 32-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderRoundingModeRTZFloat64-06307
IfshaderRoundingModeRTZFloat64
isVK_FALSE
, thenRoundingModeRTZ
for 64-bit floating-point type must not be used -
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat16-09559
IfshaderSignedZeroInfNanPreserveFloat16
isVK_FALSE
then anyFPFastMathDefault
execution mode with a type of 16-bit float must include theNSZ
,NotInf
, andNotNaN
flags -
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat16-09560
IfshaderSignedZeroInfNanPreserveFloat16
isVK_FALSE
then anyFPFastMathMode
decoration on an instruction with result type or any operand type that includes a 16-bit float must include theNSZ
,NotInf
, andNotNaN
flags -
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat32-09561
IfshaderSignedZeroInfNanPreserveFloat32
isVK_FALSE
then anyFPFastMathDefault
execution mode with a type of 32-bit float must include theNSZ
,NotInf
, andNotNaN
flags -
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat32-09562
IfshaderSignedZeroInfNanPreserveFloat32
isVK_FALSE
then anyFPFastMathMode
decoration on an instruction with result type or any operand type that includes a 32-bit float must include theNSZ
,NotInf
, andNotNaN
flags -
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat64-09563
IfshaderSignedZeroInfNanPreserveFloat64
isVK_FALSE
then anyFPFastMathDefault
execution mode with a type of 64-bit float must include theNSZ
,NotInf
, andNotNaN
flags -
VUID-RuntimeSpirv-shaderSignedZeroInfNanPreserveFloat64-09564
IfshaderSignedZeroInfNanPreserveFloat64
isVK_FALSE
then anyFPFastMathMode
decoration on an instruction with result type or any operand type that includes a 64-bit float must include theNSZ
,NotInf
, andNotNaN
flags -
VUID-RuntimeSpirv-Offset-06308
TheOffset
plus size of the type of each variable, in the output interface of the entry point being compiled, decorated withXfbBuffer
must not be greater than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferDataSize
-
VUID-RuntimeSpirv-XfbBuffer-06309
For any givenXfbBuffer
value, define the buffer data size to be smallest number of bytes such that, for all outputs decorated with the sameXfbBuffer
value, the size of the output interface variable plus theOffset
is 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 toOpEmitStreamVertex
andOpEndStreamPrimitive
must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams
-
VUID-RuntimeSpirv-transformFeedbackStreamsLinesTriangles-06311
If the geometry shader emits to more than one vertex stream and VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackStreamsLinesTriangles
isVK_FALSE
, thenExecution
Mode
must beOutputPoints
-
VUID-RuntimeSpirv-Stream-06312
The stream number value toStream
must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams
-
VUID-RuntimeSpirv-XfbStride-06313
The XFB Stride value toXfbStride
must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferDataStride
-
VUID-RuntimeSpirv-PhysicalStorageBuffer64-06314
If thePhysicalStorageBuffer64
addressing model is enabled any load or store through a physical pointer type must be aligned to a multiple of the size of the largest scalar type in the pointed-to type -
VUID-RuntimeSpirv-PhysicalStorageBuffer64-06315
If thePhysicalStorageBuffer64
addressing model is enabled the pointer value of a memory access instruction must be at least as aligned as specified by theAligned
memory 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 ofA
must have VkCooperativeMatrixPropertiesNV::MSize
rows and VkCooperativeMatrixPropertiesNV::KSize
columns and have a component type that matches VkCooperativeMatrixPropertiesNV::AType
-
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06318
ForOpCooperativeMatrixMulAddNV
, the type ofB
must have VkCooperativeMatrixPropertiesNV::KSize
rows and VkCooperativeMatrixPropertiesNV::NSize
columns and have a component type that matches VkCooperativeMatrixPropertiesNV::BType
-
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06319
ForOpCooperativeMatrixMulAddNV
, the type ofC
must have VkCooperativeMatrixPropertiesNV::MSize
rows and VkCooperativeMatrixPropertiesNV::NSize
columns and have a component type that matches VkCooperativeMatrixPropertiesNV::CType
-
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06320
ForOpCooperativeMatrixMulAddNV
, the type ofResult
must have VkCooperativeMatrixPropertiesNV::MSize
rows and VkCooperativeMatrixPropertiesNV::NSize
columns and have a component type that matches VkCooperativeMatrixPropertiesNV::DType
-
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddNV-06321
ForOpCooperativeMatrixMulAddNV
, the type ofA
,B
,C
, andResult
must all have a scope ofscope
-
VUID-RuntimeSpirv-OpTypeCooperativeMatrixNV-06322
OpTypeCooperativeMatrixNV
andOpCooperativeMatrix*
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 ofA
must have VkCooperativeMatrixPropertiesKHR::MSize
rows and VkCooperativeMatrixPropertiesKHR::KSize
columns and have a component type that matches VkCooperativeMatrixPropertiesKHR::AType
-
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddKHR-08976
ForOpCooperativeMatrixMulAddKHR
, when the component type ofA
is a signed integer type, theMatrixASignedComponents
cooperative matrix operand must be present -
VUID-RuntimeSpirv-KSize-08977
ForOpCooperativeMatrixMulAddKHR
, the type ofB
must have VkCooperativeMatrixPropertiesKHR::KSize
rows and VkCooperativeMatrixPropertiesKHR::NSize
columns and have a component type that matches VkCooperativeMatrixPropertiesKHR::BType
-
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddKHR-08978
ForOpCooperativeMatrixMulAddKHR
, when the component type ofB
is a signed integer type, theMatrixBSignedComponents
cooperative matrix operand must be present -
VUID-RuntimeSpirv-MSize-08979
ForOpCooperativeMatrixMulAddKHR
, the type ofC
must have VkCooperativeMatrixPropertiesKHR::MSize
rows and VkCooperativeMatrixPropertiesKHR::NSize
columns and have a component type that matches VkCooperativeMatrixPropertiesKHR::CType
-
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddKHR-08980
ForOpCooperativeMatrixMulAddKHR
, when the component type ofC
is a signed integer type, theMatrixCSignedComponents
cooperative matrix operand must be present -
VUID-RuntimeSpirv-MSize-08981
ForOpCooperativeMatrixMulAddKHR
, the type ofResult
must have VkCooperativeMatrixPropertiesKHR::MSize
rows and VkCooperativeMatrixPropertiesKHR::NSize
columns and have a component type that matches VkCooperativeMatrixPropertiesKHR::ResultType
-
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddKHR-08982
ForOpCooperativeMatrixMulAddKHR
, when the component type ofResult
is a signed integer type, theMatrixResultSignedComponents
cooperative matrix operand must be present -
VUID-RuntimeSpirv-saturatingAccumulation-08983
ForOpCooperativeMatrixMulAddKHR
, theSaturatingAccumulation
cooperative matrix operand must be present if and only if VkCooperativeMatrixPropertiesKHR::saturatingAccumulation
isVK_TRUE
-
VUID-RuntimeSpirv-scope-08984
ForOpCooperativeMatrixMulAddKHR
, the type ofA
,B
,C
, andResult
must all have a scope ofscope
-
VUID-RuntimeSpirv-cooperativeMatrixSupportedStages-08985
OpTypeCooperativeMatrixKHR
andOpCooperativeMatrix*
instructions must not be used in shader stages not included in VkPhysicalDeviceCooperativeMatrixPropertiesKHR::cooperativeMatrixSupportedStages
-
VUID-RuntimeSpirv-DescriptorSet-06323
DescriptorSet
andBinding
decorations must obey the constraints onStorage
Class
, type, and descriptor type described in DescriptorSet and Binding Assignment -
VUID-RuntimeSpirv-OpCooperativeMatrixLoadNV-06324
ForOpCooperativeMatrixLoadNV
andOpCooperativeMatrixStoreNV
instructions, thePointer
andStride
operands 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 theMeshNV
Execution
Model
theOutputVertices
OpExecutionMode
must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputVertices
-
VUID-RuntimeSpirv-MeshNV-07114
For mesh shaders using theMeshNV
Execution
Model
theOutputPrimitivesNV
OpExecutionMode
must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputPrimitives
-
VUID-RuntimeSpirv-MeshEXT-07115
For mesh shaders using theMeshEXT
Execution
Model
theOutputVertices
OpExecutionMode
must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputVertices
-
VUID-RuntimeSpirv-MeshEXT-07332
For mesh shaders using theMeshEXT
Execution
Model
the “Vertex Count” operand ofOpSetMeshOutputsEXT
must be less than or equal toOutputVertices
OpExecutionMode
-
VUID-RuntimeSpirv-MeshEXT-07116
For mesh shaders using theMeshEXT
Execution
Model
theOutputPrimitivesEXT
OpExecutionMode
must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshOutputPrimitives
-
VUID-RuntimeSpirv-MeshEXT-07333
For mesh shaders using theMeshEXT
Execution
Model
the “Primitive Count” operand ofOpSetMeshOutputsEXT
must be less than or equal toOutputPrimitivesEXT
OpExecutionMode
-
VUID-RuntimeSpirv-TaskEXT-07117
In task shaders using theTaskEXT
Execution
Model
OpEmitMeshTasksEXT
must be called exactly once under dynamically uniform conditions -
VUID-RuntimeSpirv-MeshEXT-07118
In mesh shaders using theMeshEXT
Execution
Model
OpSetMeshOutputsEXT
must be called at most once under dynamically uniform conditions -
VUID-RuntimeSpirv-TaskEXT-07291
In task shaders using theTaskEXT
Execution
Model
thex
size inLocalSize
orLocalSizeId
must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupSize
[0] -
VUID-RuntimeSpirv-TaskEXT-07292
In task shaders using theTaskEXT
Execution
Model
they
size inLocalSize
orLocalSizeId
must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupSize
[1] -
VUID-RuntimeSpirv-TaskEXT-07293
In task shaders using theTaskEXT
Execution
Model
thez
size inLocalSize
orLocalSizeId
must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupSize
[2] -
VUID-RuntimeSpirv-TaskEXT-07294
In task shaders using theTaskEXT
Execution
Model
the product ofx
size,y
size, andz
size inLocalSize
orLocalSizeId
must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxTaskWorkGroupInvocations
-
VUID-RuntimeSpirv-MeshEXT-07295
For mesh shaders using theMeshEXT
Execution
Model
thex
size inLocalSize
orLocalSizeId
must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupSize
[0] -
VUID-RuntimeSpirv-MeshEXT-07296
For mesh shaders using theMeshEXT
Execution
Model
they
size inLocalSize
orLocalSizeId
must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupSize
[1] -
VUID-RuntimeSpirv-MeshEXT-07297
For mesh shaders using theMeshEXT
Execution
Model
thez
size inLocalSize
orLocalSizeId
must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupSize
[2] -
VUID-RuntimeSpirv-MeshEXT-07298
For mesh shaders using theMeshEXT
Execution
Model
the product ofx
size,y
size, andz
size inLocalSize
orLocalSizeId
must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupInvocations
-
VUID-RuntimeSpirv-TaskEXT-07299
In task shaders using theTaskEXT
Execution
Model
the value of the “Group Count X” operand ofOpEmitMeshTasksEXT
must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount
[0] -
VUID-RuntimeSpirv-TaskEXT-07300
In task shaders using theTaskEXT
Execution
Model
the value of the “Group Count Y” operand ofOpEmitMeshTasksEXT
must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount
[1] -
VUID-RuntimeSpirv-TaskEXT-07301
In task shaders using theTaskEXT
Execution
Model
the value of the “Group Count Z” operand ofOpEmitMeshTasksEXT
must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupCount
[2] -
VUID-RuntimeSpirv-TaskEXT-07302
In task shaders using theTaskEXT
Execution
Model
the product of the “Group Count” operands ofOpEmitMeshTasksEXT
must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesEXT::maxMeshWorkGroupTotalCount
-
VUID-RuntimeSpirv-maxMeshSharedMemorySize-08754
The sum of size in bytes for variables and padding in theWorkgroup
Storage
Class
in theMeshEXT
Execution
Model
must be less than or equal tomaxMeshSharedMemorySize
-
VUID-RuntimeSpirv-maxMeshPayloadAndSharedMemorySize-08755
The sum of size in bytes for variables and padding in theTaskPayloadWorkgroupEXT
orWorkgroup
Storage
Class
in theMeshEXT
Execution
Model
must be less than or equal tomaxMeshPayloadAndSharedMemorySize
-
VUID-RuntimeSpirv-maxMeshOutputMemorySize-08756
The sum of size in bytes for variables in theOutput
Storage
Class
in theMeshEXT
Execution
Model
must be less than or equal tomaxMeshOutputMemorySize
according to the formula in Mesh Shader Output -
VUID-RuntimeSpirv-maxMeshPayloadAndOutputMemorySize-08757
The sum of size in bytes for variables and in theTaskPayloadWorkgroupEXT
orOutput
Storage
Class
in theMeshEXT
Execution
Model
must be less than or equal tomaxMeshPayloadAndOutputMemorySize
according to the formula in Mesh Shader Output -
VUID-RuntimeSpirv-maxTaskPayloadSize-08758
The sum of size in bytes for variables and in theTaskPayloadWorkgroupEXT
Storage
Class
in theTaskEXT
Execution
Model
must be less than or equal tomaxTaskPayloadSize
-
VUID-RuntimeSpirv-maxTaskSharedMemorySize-08759
The sum of size in bytes for variables and padding in theWorkgroup
Storage
Class
in theTaskEXT
Execution
Model
must be less than or equal tomaxTaskSharedMemorySize
-
VUID-RuntimeSpirv-maxTaskPayloadAndSharedMemorySize-08760
The sum of size in bytes for variables and padding in theTaskPayloadWorkgroupEXT
orWorkgroup
Storage
Class
in theTaskEXT
Execution
Model
must be less than or equal tomaxTaskPayloadAndSharedMemorySize
-
VUID-RuntimeSpirv-OpCooperativeMatrixLoadKHR-08986
ForOpCooperativeMatrixLoadKHR
andOpCooperativeMatrixStoreKHR
instructions, thePointer
andStride
operands 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_subset
extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::shaderSampleRateInterpolationFunctions
isVK_FALSE
, thenGLSL.std.450
fragment interpolation functions are not supported by the implementation andOpCapability
must not be set toInterpolationFunction
-
VUID-RuntimeSpirv-tessellationShader-06326
IftessellationShader
is enabled, and theVK_KHR_portability_subset
extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::tessellationIsolines
isVK_FALSE
, thenOpExecutionMode
must not be set toIsoLines
-
VUID-RuntimeSpirv-tessellationShader-06327
IftessellationShader
is enabled, and theVK_KHR_portability_subset
extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::tessellationPointMode
isVK_FALSE
, thenOpExecutionMode
must not be set toPointMode
-
VUID-RuntimeSpirv-storageBuffer8BitAccess-06328
IfstorageBuffer8BitAccess
isVK_FALSE
, then objects containing an 8-bit integer element must not haveStorage
Class
ofStorageBuffer
,ShaderRecordBufferKHR
, orPhysicalStorageBuffer
-
VUID-RuntimeSpirv-uniformAndStorageBuffer8BitAccess-06329
IfuniformAndStorageBuffer8BitAccess
isVK_FALSE
, then objects in theUniform
Storage
Class
with theBlock
decoration must not have an 8-bit integer member -
VUID-RuntimeSpirv-storagePushConstant8-06330
IfstoragePushConstant8
isVK_FALSE
, then objects containing an 8-bit integer element must not haveStorage
Class
ofPushConstant
-
VUID-RuntimeSpirv-storageBuffer16BitAccess-06331
IfstorageBuffer16BitAccess
isVK_FALSE
, then objects containing 16-bit integer or 16-bit floating-point elements must not haveStorage
Class
ofStorageBuffer
,ShaderRecordBufferKHR
, orPhysicalStorageBuffer
-
VUID-RuntimeSpirv-uniformAndStorageBuffer16BitAccess-06332
IfuniformAndStorageBuffer16BitAccess
isVK_FALSE
, then objects in theUniform
Storage
Class
with theBlock
decoration must not have 16-bit integer or 16-bit floating-point members -
VUID-RuntimeSpirv-storagePushConstant16-06333
IfstoragePushConstant16
isVK_FALSE
, then objects containing 16-bit integer or 16-bit floating-point elements must not haveStorage
Class
ofPushConstant
-
VUID-RuntimeSpirv-storageInputOutput16-06334
IfstorageInputOutput16
isVK_FALSE
, then objects containing 16-bit integer or 16-bit floating-point elements must not haveStorage
Class
ofInput
orOutput
-
VUID-RuntimeSpirv-None-06337
shaderBufferFloat16Atomics
, orshaderBufferFloat16AtomicAdd
, orshaderBufferFloat16AtomicMinMax
, orshaderSharedFloat16Atomics
, orshaderSharedFloat16AtomicAdd
, orshaderSharedFloat16AtomicMinMax
must be enabled for 16-bit floating point atomic operations -
VUID-RuntimeSpirv-None-06338
shaderBufferFloat32Atomics
, orshaderBufferFloat32AtomicAdd
, orshaderSharedFloat32Atomics
, orshaderSharedFloat32AtomicAdd
, orshaderImageFloat32Atomics
, orshaderImageFloat32AtomicAdd
orshaderBufferFloat32AtomicMinMax
, orshaderSharedFloat32AtomicMinMax
, orshaderImageFloat32AtomicMinMax
must 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-shaderFloat16VectorAtomics-09581
shaderFloat16VectorAtomics
, must be enabled for 16-bit floating-point, 2- and 4-component vector atomic operations to be supported -
VUID-RuntimeSpirv-NonWritable-06340
IffragmentStoresAndAtomics
is not enabled, then all storage image, storage texel buffer, and storage buffer variables in the fragment stage must be decorated with theNonWritable
decoration -
VUID-RuntimeSpirv-NonWritable-06341
IfvertexPipelineStoresAndAtomics
is not enabled, then all storage image, storage texel buffer, and storage buffer variables in the vertex, tessellation, and geometry stages must be decorated with theNonWritable
decoration -
VUID-RuntimeSpirv-None-06342
IfsubgroupQuadOperationsInAllStages
isVK_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 theOffset
operand ofInterpolateAtOffset
must 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 theOffset
operand ofInterpolateAtOffset
must 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 theOffset
operand ofInterpolateAtOffset
must 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 theOffset
operand ofInterpolateAtOffset
must 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
ForOpRayQueryInitializeKHR
instructions, all components of theRayOrigin
andRayDirection
operands must be finite floating-point values -
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06349
ForOpRayQueryInitializeKHR
instructions, theRayTmin
andRayTmax
operands must be non-negative floating-point values -
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06350
ForOpRayQueryInitializeKHR
instructions, theRayTmin
operand must be less than or equal to theRayTmax
operand -
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06351
ForOpRayQueryInitializeKHR
instructions,RayOrigin
,RayDirection
,RayTmin
, andRayTmax
operands must not contain NaNs -
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06352
ForOpRayQueryInitializeKHR
instructions,Acceleration
Structure
must be an acceleration structure built as a top-level acceleration structure -
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06889
ForOpRayQueryInitializeKHR
instructions, theRayflags
operand must not contain bothSkipTrianglesKHR
andSkipAABBsKHR
-
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06890
ForOpRayQueryInitializeKHR
instructions, theRayflags
operand must not contain more than one ofSkipTrianglesKHR
,CullBackFacingTrianglesKHR
, andCullFrontFacingTrianglesKHR
-
VUID-RuntimeSpirv-OpRayQueryInitializeKHR-06891
ForOpRayQueryInitializeKHR
instructions, theRayflags
operand must not contain more than one ofOpaqueKHR
,NoOpaqueKHR
,CullOpaqueKHR
, andCullNoOpaqueKHR
-
VUID-RuntimeSpirv-OpRayQueryGenerateIntersectionKHR-06353
ForOpRayQueryGenerateIntersectionKHR
instructions,Hit
T
must satisfy the conditionRayTmin
≤Hit
T
≤RayTmax
, whereRayTmin
is equal to the value returned byOpRayQueryGetRayTMinKHR
with the same ray query object, andRayTmax
is equal to the value ofOpRayQueryGetIntersectionTKHR
for the current committed intersection with the same ray query object -
VUID-RuntimeSpirv-OpRayQueryGenerateIntersectionKHR-06354
ForOpRayQueryGenerateIntersectionKHR
instructions,Acceleration
Structure
must not be built withVK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV
inflags
-
VUID-RuntimeSpirv-flags-08761
ForOpRayQueryGetIntersectionTriangleVertexPositionsKHR
instructions,Acceleration
Structure
must have been built withVK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR
inflags
-
VUID-RuntimeSpirv-OpTraceRayKHR-06355
ForOpTraceRayKHR
instructions, all components of theRayOrigin
andRayDirection
operands must be finite floating-point values -
VUID-RuntimeSpirv-OpTraceRayKHR-06356
ForOpTraceRayKHR
instructions, theRayTmin
andRayTmax
operands must be non-negative floating-point values -
VUID-RuntimeSpirv-OpTraceRayKHR-06552
ForOpTraceRayKHR
instructions, theRayflags
operand must not contain bothSkipTrianglesKHR
andSkipAABBsKHR
-
VUID-RuntimeSpirv-OpTraceRayKHR-06892
ForOpTraceRayKHR
instructions, theRayflags
operand must not contain more than one ofSkipTrianglesKHR
,CullBackFacingTrianglesKHR
, andCullFrontFacingTrianglesKHR
-
VUID-RuntimeSpirv-OpTraceRayKHR-06893
ForOpTraceRayKHR
instructions, theRayflags
operand must not contain more than one ofOpaqueKHR
,NoOpaqueKHR
,CullOpaqueKHR
, andCullNoOpaqueKHR
-
VUID-RuntimeSpirv-OpTraceRayKHR-06553
ForOpTraceRayKHR
instructions, if theRayflags
operand containsSkipTrianglesKHR
, the pipeline must not have been created withVK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
set -
VUID-RuntimeSpirv-OpTraceRayKHR-06554
ForOpTraceRayKHR
instructions, if theRayflags
operand containsSkipAABBsKHR
, the pipeline must not have been created withVK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
set -
VUID-RuntimeSpirv-OpTraceRayKHR-06357
ForOpTraceRayKHR
instructions, theRayTmin
operand must be less than or equal to theRayTmax
operand -
VUID-RuntimeSpirv-OpTraceRayKHR-06358
ForOpTraceRayKHR
instructions,RayOrigin
,RayDirection
,RayTmin
, andRayTmax
operands must not contain NaNs -
VUID-RuntimeSpirv-OpTraceRayKHR-06359
ForOpTraceRayKHR
instructions,Acceleration
Structure
must be an acceleration structure built as a top-level acceleration structure -
VUID-RuntimeSpirv-OpReportIntersectionKHR-06998
The value of the “Hit Kind” operand ofOpReportIntersectionKHR
must be in the range [0,127] -
VUID-RuntimeSpirv-OpTraceRayKHR-06360
ForOpTraceRayKHR
instructions, ifAcceleration
Structure
was built withVK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV
inflags
, the pipeline must have been created withVK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
set -
VUID-RuntimeSpirv-OpTraceRayMotionNV-06361
ForOpTraceRayMotionNV
instructions, all components of theRayOrigin
andRayDirection
operands must be finite floating-point values -
VUID-RuntimeSpirv-OpTraceRayMotionNV-06362
ForOpTraceRayMotionNV
instructions, theRayTmin
andRayTmax
operands must be non-negative floating-point values -
VUID-RuntimeSpirv-OpTraceRayMotionNV-06363
ForOpTraceRayMotionNV
instructions, theRayTmin
operand must be less than or equal to theRayTmax
operand -
VUID-RuntimeSpirv-OpTraceRayMotionNV-06364
ForOpTraceRayMotionNV
instructions,RayOrigin
,RayDirection
,RayTmin
, andRayTmax
operands must not contain NaNs -
VUID-RuntimeSpirv-OpTraceRayMotionNV-06365
ForOpTraceRayMotionNV
instructions,Acceleration
Structure
must be an acceleration structure built as a top-level acceleration structure withVK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV
inflags
-
VUID-RuntimeSpirv-OpTraceRayMotionNV-06366
ForOpTraceRayMotionNV
instructions thetime
operand must be between 0.0 and 1.0 -
VUID-RuntimeSpirv-OpTraceRayMotionNV-06367
ForOpTraceRayMotionNV
instructions the pipeline must have been created withVK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
set -
VUID-RuntimeSpirv-OpHitObjectTraceRayMotionNV-07704
ForOpHitObjectTraceRayMotionNV
instructions, ifAcceleration
Structure
was built withVK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV
inflags
, the pipeline must have been created withVK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
set -
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07705
ForOpHitObjectTraceRayNV
andOpHitObjectTraceRayMotionNV
instructions, all components of theRayOrigin
andRayDirection
operands must be finite floating-point values -
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07706
ForOpHitObjectTraceRayNV
andOpHitObjectTraceRayMotionNV
instructions, theRayTmin
andRayTmax
operands must be non-negative floating-point values -
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07707
ForOpHitObjectTraceRayNV
andOpHitObjectTraceRayMotionNV
instructions, theRayTmin
operand must be less than or equal to theRayTmax
operand -
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07708
ForOpHitObjectTraceRayNV
andOpHitObjectTraceRayMotionNV
instructions,RayOrigin
,RayDirection
,RayTmin
, andRayTmax
operands must not contain NaNs -
VUID-RuntimeSpirv-OpHitObjectTraceRayMotionNV-07709
ForOpHitObjectTraceRayMotionNV
instructions,Acceleration
Structure
must be an acceleration structure built as a top-level acceleration structure withVK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV
inflags
-
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07710
ForOpHitObjectTraceRayNV
andOpHitObjectTraceRayMotionNV
instructions thetime
operand must be between 0.0 and 1.0 -
VUID-RuntimeSpirv-OpHitObjectTraceRayMotionNV-07711
ForOpHitObjectTraceRayMotionNV
instructions the pipeline must have been created withVK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
set -
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07712
ForOpHitObjectTraceRayNV
andOpHitObjectTraceRayMotionNV
instructions, theRayflags
operand must not contain bothSkipTrianglesKHR
andSkipAABBsKHR
-
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07713
ForOpHitObjectTraceRayNV
andOpHitObjectTraceRayMotionNV
instructions, theRayflags
operand must not contain more than one ofSkipTrianglesKHR
,CullBackFacingTrianglesKHR
, andCullFrontFacingTrianglesKHR
-
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07714
ForOpHitObjectTraceRayNV
andOpHitObjectTraceRayMotionNV
instructions, theRayflags
operand must not contain more than one ofOpaqueKHR
,NoOpaqueKHR
,CullOpaqueKHR
, andCullNoOpaqueKHR
-
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07715
ForOpHitObjectTraceRayNV
andOpHitObjectTraceRayMotionNV
instructions, if theRayflags
operand containsSkipTrianglesKHR
, the pipeline must not have been created withVK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR
set -
VUID-RuntimeSpirv-OpHitObjectTraceRayNV-07716
ForOpHitObjectTraceRayNV
andOpHitObjectTraceRayMotionNV
instructions, if theRayflags
operand containsSkipAABBsKHR
, the pipeline must not have been created withVK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR
set -
VUID-RuntimeSpirv-x-06429
In compute shaders using theGLCompute
Execution
Model
thex
size inLocalSize
orLocalSizeId
must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupSize
[0] -
VUID-RuntimeSpirv-y-06430
In compute shaders using theGLCompute
Execution
Model
they
size inLocalSize
orLocalSizeId
must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupSize
[1] -
VUID-RuntimeSpirv-z-06431
In compute shaders using theGLCompute
Execution
Model
thez
size inLocalSize
orLocalSizeId
must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupSize
[2] -
VUID-RuntimeSpirv-x-06432
In compute shaders using theGLCompute
Execution
Model
the product ofx
size,y
size, andz
size inLocalSize
orLocalSizeId
must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupInvocations
-
VUID-RuntimeSpirv-LocalSizeId-06434
IfExecution
Mode
LocalSizeId
is used,maintenance4
must be enabled -
VUID-RuntimeSpirv-maintenance4-06817
Ifmaintenance4
is not enabled, anyOpTypeVector
output interface variables must not have a higherComponent
Count
than a matchingOpTypeVector
input interface variable -
VUID-RuntimeSpirv-OpEntryPoint-08743
Any user-defined variables shared between theOpEntryPoint
of two shader stages, and declared withInput
as itsStorage
Class
for the subsequent shader stage, must have allLocation
slots andComponent
words declared in the preceding shader stage’sOpEntryPoint
withOutput
as theStorage
Class
-
VUID-RuntimeSpirv-OpEntryPoint-07754
Any user-defined variables between theOpEntryPoint
of two shader stages must have the same type and width for eachComponent
-
VUID-RuntimeSpirv-OpVariable-08746
AnyOpVariable
,Block
-decoratedOpTypeStruct
, orBlock
-decoratedOpTypeStruct
members shared between theOpEntryPoint
of 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 theWorkgroup
Storage
Class
in theGLCompute
Execution
Model
must be less than or equal tomaxComputeSharedMemorySize
-
VUID-RuntimeSpirv-shaderZeroInitializeWorkgroupMemory-06372
IfshaderZeroInitializeWorkgroupMemory
is not enabled, anyOpVariable
withWorkgroup
as itsStorage
Class
must not have anInitializer
operand -
VUID-RuntimeSpirv-OpImage-06376
If anOpImage*Gather
operation has an image operand ofOffset
,ConstOffset
, orConstOffsets
the offset value must be greater than or equal tominTexelGatherOffset
-
VUID-RuntimeSpirv-OpImage-06377
If anOpImage*Gather
operation has an image operand ofOffset
,ConstOffset
, orConstOffsets
the offset value must be less than or equal tomaxTexelGatherOffset
-
VUID-RuntimeSpirv-OpImageSample-06435
If anOpImageSample*
orOpImageFetch*
operation has an image operand ofConstOffset
then the offset value must be greater than or equal tominTexelOffset
-
VUID-RuntimeSpirv-OpImageSample-06436
If anOpImageSample*
orOpImageFetch*
operation has an image operand ofConstOffset
then the offset value must be less than or equal tomaxTexelOffset
-
VUID-RuntimeSpirv-samples-08725
If anOpTypeImage
has anMS
operand 0, its bound image must have been created with VkImageCreateInfo::samples
asVK_SAMPLE_COUNT_1_BIT
-
VUID-RuntimeSpirv-samples-08726
If anOpTypeImage
has anMS
operand 1, its bound image must not have been created with VkImageCreateInfo::samples
asVK_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 CapabilitySampleRateShading
must not be enabled -
VUID-RuntimeSpirv-SubgroupUniformControlFlowKHR-06379
TheExecution
Mode
SubgroupUniformControlFlowKHR
must not be applied to an entry point unlessshaderSubgroupUniformControlFlow
is enabled and the corresponding shader stage bit is set in subgroupsupportedStages
and the entry point does not execute any invocation repack instructions -
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06767
IfshaderEarlyAndLateFragmentTests
is not enabled, theEarlyAndLateFragmentTestsEXT
Execution
Mode
must not be used -
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06768
IfshaderEarlyAndLateFragmentTests
feature is not enabled, theStencilRefUnchangedFrontEXT
Execution
Mode
must not be used -
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06769
IfshaderEarlyAndLateFragmentTests
is not enabled, theStencilRefUnchangedBackEXT
Execution
Mode
must not be used -
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06770
IfshaderEarlyAndLateFragmentTests
is not enabled, theStencilRefGreaterFrontEXT
Execution
Mode
must not be used -
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06771
IfshaderEarlyAndLateFragmentTests
is not enabled, theStencilRefGreaterBackEXT
Execution
Mode
must not be used -
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06772
IfshaderEarlyAndLateFragmentTests
is not enabled, theStencilRefLessFrontEXT
Execution
Mode
must not be used -
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06773
IfshaderEarlyAndLateFragmentTests
is not enabled, theStencilRefLessBackEXT
Execution
Mode
must not be used -
VUID-RuntimeSpirv-OpImageWeightedSampleQCOM-06979
If anOpImageWeightedSampleQCOM
operation is used, then theTexture
Sampled
Image
andWeight
Image
parameters must both be dynamically uniform for the quad -
VUID-RuntimeSpirv-OpImageWeightedSampleQCOM-06980
If anOpImageWeightedSampleQCOM
operation is used, then theWeight
Image
parameter must be ofStorage
Class
UniformConstant
and typeOpTypeImage
withDepth
=0,Dim
=2D
,Arrayed
=1,MS
=0, andSampled
=1 -
VUID-RuntimeSpirv-OpImageWeightedSampleQCOM-06981
If anOpImageWeightedSampleQCOM
operation is used, then theWeight
Image
parameter must be decorated withWeightTextureQCOM
-
VUID-RuntimeSpirv-OpImageBlockMatchSADQCOM-06982
If anOpImageBlockMatchSADQCOM
orOpImageBlockMatchSSDQCOM
operation is used, then thetarget
sampled
image
,reference
sampled
image
, andBlock
Size
parameters must both be dynamically uniform for the quad -
VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06983
If anOpImageBlockMatchSSDQCOM
orOpImageBlockMatchSADQCOM
operation is used, thentarget
sampled
image
andreference
sampled
image
parameters must be of storage classUniformConstant
and typeOpTypeImage
withDepth
=0,Dim
=2D
,Arrayed
=0,MS
=0, andSampled
=1 -
VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06984
If anOpImageBlockMatchSSDQCOM
orOpImageBlockMatchSADQCOM
operation is used, then thetarget
sampled
image
andreference
sampled
image
parameters must be decorated withBlockMatchTextureQCOM
-
VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06985
If anOpImageBlockMatchSSDQCOM
orOpImageBlockMatchSADQCOM
operation is used, thentarget
sampled
image
andreference
sampled
image
parameters must have been created using an identical sampler object -
VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06986
If anOpImageBlockMatchSSDQCOM
orOpImageBlockMatchSADQCOM
operation is used, thentarget
sampled
image
andreference
sampled
image
parameters must have been created with a sampler object withunnormalizedCoordinates
equal toVK_TRUE
-
VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06987
If anOpImageBlockMatchSSDQCOM
orOpImageBlockMatchSADQCOM
operation is used, thentarget
sampled
image
andreference
sampled
image
parameters must have been created with a sampler object withunnormalizedCoordinates
equal toVK_TRUE
-
VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06988
If anOpImageBlockMatchSSDQCOM
orOpImageBlockMatchSADQCOM
operation is used, thenBlock
Size
less than or equal tomaxBlockMatchRegion
-
VUID-RuntimeSpirv-OpImageBoxFilterQCOM-06989
If anOpImageBoxFilterQCOM
operation is used, thenBox
Size.y
must be equal to or greater than 1.0 and less than or equal tomaxBoxFilterBlockSize
.height
-
VUID-RuntimeSpirv-OpImageBoxFilterQCOM-06990
If anOpImageBoxFilterQCOM
operation is used, thenSampled
Texture
Image
andBox
Size
parameters must be dynamically uniform -
VUID-RuntimeSpirv-OpEntryPoint-08727
EachOpEntryPoint
must not have more than one variable decorated withInputAttachmentIndex
per image aspect of the attachment image bound to it, either explicitly or implicitly as described by input attachment interface -
VUID-RuntimeSpirv-shaderTileImageColorReadAccess-08728
IfshaderTileImageColorReadAccess
is not enabled,OpColorAttachmentReadEXT
operation must not be used -
VUID-RuntimeSpirv-shaderTileImageDepthReadAccess-08729
IfshaderTileImageDepthReadAccess
is not enabled,OpDepthAttachmentReadEXT
operation must not be used -
VUID-RuntimeSpirv-shaderTileImageStencilReadAccess-08730
IfshaderTileImageStencilReadAccess
is not enabled,OpStencilAttachmentReadEXT
operation must not be used -
VUID-RuntimeSpirv-minSampleShading-08731
If sample shading is enabled andminSampleShading
is 1.0, thesample
operand of anyOpColorAttachmentReadEXT
,OpDepthAttachmentReadEXT
, orOpStencilAttachmentReadEXT
operation 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
, orOpStencilAttachmentReadEXT
operations are used, thenminSampleShading
must be 1.0 -
VUID-RuntimeSpirv-MeshEXT-09218
In mesh shaders using theMeshEXT
orMeshNV
Execution
Model
and theOutputPoints
Execution
Mode
, ifmaintenance5
is not enabled, and if the number of output points is greater than 0, aPointSize
decorated variable must be written to for each output point -
VUID-RuntimeSpirv-maintenance5-09190
Ifmaintenance5
is enabled and aPointSize
decorated variable is written to, all execution paths must write to aPointSize
decorated variable -
VUID-RuntimeSpirv-ShaderEnqueueAMDX-09191
TheShaderEnqueueAMDX
capability must only be used in shaders with theGLCompute
execution model -
VUID-RuntimeSpirv-NodePayloadAMDX-09192
Variables in theNodePayloadAMDX
storage class must only be declared in theGLCompute
execution model -
VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadSize-09193
Variables declared in theNodePayloadAMDX
storage class must not be larger than themaxExecutionGraphShaderPayloadSize
limit -
VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadSize-09194
Variables declared in theNodeOutputPayloadAMDX
storage class must not be larger than themaxExecutionGraphShaderPayloadSize
limit -
VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadSize-09195
For a given entry point, the sum of the size of any variable in theNodePayloadAMDX
storage class, and the combined size of all statically initialized variables in theNodeOutputPayloadAMDX
storage class must not be greater thanmaxExecutionGraphShaderPayloadSize
-
VUID-RuntimeSpirv-maxExecutionGraphShaderPayloadCount-09196
Shaders must not statically initialize more thanmaxExecutionGraphShaderPayloadCount
variables in theNodeOutputPayloadAMDX
storage class -
VUID-RuntimeSpirv-maxExecutionGraphShaderOutputNodes-09197
Shaders must not include more thanmaxExecutionGraphShaderOutputNodes
instances ofOpInitializeNodePayloadsAMDX
-
VUID-RuntimeSpirv-OpImageBlockMatchWindow-09219
If aOpImageBlockMatchWindow*QCOM
orOpImageBlockMatchGather*QCOM
operation is used, then thetarget
sampled
image
,reference
sampled
image
, andBlock
Size
parameters must both be dynamically uniform for the quad -
VUID-RuntimeSpirv-OpImageBlockMatchWindow-09220
If aOpImageBlockMatchWindow*QCOM
orOpImageBlockMatchGather*QCOM
operation is used, thentarget
sampled
image
andreference
sampled
image
parameters must be of storage classUniformConstant
and typeOpTypeImage
withDepth
=0,Dim
=2D
,Arrayed
=0,MS
=0, andSampled
=1 -
VUID-RuntimeSpirv-OpImageBlockMatchWindow-09221
If aOpImageBlockMatchWindow*QCOM
orOpImageBlockMatchGather*QCOM
operation is used, then thetarget
sampled
image
andreference
sampled
image
parameters must be decorated withBlockMatchTextureQCOM
-
VUID-RuntimeSpirv-OpImageBlockMatchWindow-09222
If aOpImageBlockMatchWindow*QCOM
orOpImageBlockMatchGather*QCOM
operation is used, thentarget
sampled
image
andreference
sampled
image
parameters must have been created using an identical sampler object -
VUID-RuntimeSpirv-OpImageBlockMatchWindow-09223
If aOpImageBlockMatchWindow*QCOM
orOpImageBlockMatchGather*QCOM
operation is used, thentarget
sampled
image
andreference
sampled
image
parameters must have been created with a sampler object withunnormalizedCoordinates
equal toVK_TRUE
-
VUID-RuntimeSpirv-OpImageBlockMatchWindow-09224
If aOpImageBlockMatchWindow*QCOM
orOpImageBlockMatchGather*QCOM
operation is used, thentarget
sampled
image
andreference
sampled
image
parameters must have been created with sampler object withunnormalizedCoordinates
equal toVK_TRUE
-
VUID-RuntimeSpirv-maxBlockMatchRegion-09225
If aOpImageBlockMatchWindow*QCOM
orOpImageBlockMatchGather*QCOM
operation is used, thenBlock
Size
less than or equal tomaxBlockMatchRegion
-
VUID-RuntimeSpirv-pNext-09226
If aOpImageBlockMatchWindow*QCOM
operation is used, thentarget
sampled
image
must have been created using asampler object that included VkSamplerBlockMatchWindowCreateInfoQCOM in thepNext
chain -
VUID-RuntimeSpirv-MaximallyReconvergesKHR-09565
The execution modeMaximallyReconvergesKHR
must not be applied to an entry point unless the entry point does not execute any invocation repack instructions -
VUID-RuntimeSpirv-shaderSubgroupRotateClustered-09566
IfshaderSubgroupRotateClustered
isVK_FALSE
, then theClusterSize
operand toOpGroupNonUniformRotateKHR
must not be used -
VUID-RuntimeSpirv-protectedNoFault-09645
IfprotectedNoFault
is not supported, theStorage
Class
of thePhysicalStorageBuffer
must not be used if the buffer being accessed is protected
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.