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
If thevulkanMemoryModelfeature is enabled and thevulkanMemoryModelDeviceScopefeature is not enabled,Devicememory scope must not be used -
VUID-RuntimeSpirv-vulkanMemoryModel-06266
If thevulkanMemoryModelfeature is not enabled,QueueFamilymemory scope must not be used -
VUID-RuntimeSpirv-shaderSubgroupClock-06267
If theshaderSubgroupClockfeature is not enabled, theSubgroupscope must not be used forOpReadClockKHR -
VUID-RuntimeSpirv-shaderDeviceClock-06268
If theshaderDeviceClockfeature is not enabled, theDevicescope must not be used forOpReadClockKHR -
VUID-RuntimeSpirv-None-09558
If thedynamicRenderingLocalReadfeature is not enabled, any variable created with a “Type” ofOpTypeImagethat has a “Dim” operand ofSubpassDatamust be decorated withInputAttachmentIndex -
VUID-RuntimeSpirv-OpTypeImage-09644
Any variable declared as anOpTypeArraywhere theElementTypeis anOpTypeImagewith 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, and theshaderStorageImageWriteWithoutFormatfeature is 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, and theshaderStorageImageReadWithoutFormatfeature is 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/latest/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-UniformBufferArrayNonUniformIndexing-10134
If theUniformBufferArrayNonUniformIndexingcapability is not declared, and an instruction accesses memory through a uniform buffer, the uniform buffer through which that memory is accessed must be dynamically uniform within the invocation group or subgroup -
VUID-RuntimeSpirv-SampledImageArrayNonUniformIndexing-10135
If theSampledImageArrayNonUniformIndexingcapability is not declared, and an instruction accesses memory through a sampled image or sampler, the sampled image or sampler through which that memory is accessed must be dynamically uniform within the invocation group or subgroup -
VUID-RuntimeSpirv-StorageBufferArrayNonUniformIndexing-10136
If theStorageBufferArrayNonUniformIndexingcapability is not declared, and an instruction accesses memory through a storage buffer, the storage buffer through which that memory is accessed must be dynamically uniform within the invocation group or subgroup -
VUID-RuntimeSpirv-StorageImageArrayNonUniformIndexing-10137
If theStorageImageArrayNonUniformIndexingcapability is not declared, and an instruction accesses memory through a storage image, the storage image through which that memory is accessed must be dynamically uniform within the invocation group or subgroup -
VUID-RuntimeSpirv-InputAttachmentArrayNonUniformIndexing-10138
If theInputAttachmentArrayNonUniformIndexingcapability is not declared, and an instruction accesses memory through an input attachment, the input attachment through which that memory is accessed must be dynamically uniform within the invocation group or subgroup -
VUID-RuntimeSpirv-UniformTexelBufferArrayNonUniformIndexing-10139
If theUniformTexelBufferArrayNonUniformIndexingcapability is not declared, and an instruction accesses memory through a uniform texel buffer, the uniform texel buffer through which that memory is accessed must be dynamically uniform within the invocation group or subgroup -
VUID-RuntimeSpirv-StorageTexelBufferArrayNonUniformIndexing-10140
If theStorageTexelBufferArrayNonUniformIndexingcapability is not declared, and an instruction accesses memory through a storage texel buffer, the storage texel buffer through which that memory is accessed must be dynamically uniform within the invocation group or subgroup -
VUID-RuntimeSpirv-subgroupSize-10141
If the effective subgroup size is 1, theUniformBufferArrayNonUniformIndexingcapability is not declared, and an instruction accesses memory through a uniform buffer, the uniform buffer through which that memory is accessed must be dynamically uniform within the invocation group -
VUID-RuntimeSpirv-subgroupSize-10142
If the effective subgroup size is 1, theSampledImageArrayNonUniformIndexingcapability is not declared, and an instruction accesses memory through a sampled image or sampler, the sampled image or sampler through which that memory is accessed must be dynamically uniform within the invocation group -
VUID-RuntimeSpirv-subgroupSize-10143
If the effective subgroup size is 1, theStorageBufferArrayNonUniformIndexingcapability is not declared, and an instruction accesses memory through a storage buffer, the storage buffer through which that memory is accessed must be dynamically uniform within the invocation group -
VUID-RuntimeSpirv-subgroupSize-10144
If the effective subgroup size is 1, theStorageImageArrayNonUniformIndexingcapability is not declared, and an instruction accesses memory through a storage image, the storage image through which that memory is accessed must be dynamically uniform within the invocation group -
VUID-RuntimeSpirv-subgroupSize-10145
If the effective subgroup size is 1, theInputAttachmentArrayNonUniformIndexingcapability is not declared, and an instruction accesses memory through an input attachment, the input attachment through which that memory is accessed must be dynamically uniform within the invocation group -
VUID-RuntimeSpirv-subgroupSize-10146
If the effective subgroup size is 1, theUniformTexelBufferArrayNonUniformIndexingcapability is not declared, and an instruction accesses memory through a uniform texel buffer, the uniform texel buffer through which that memory is accessed must be dynamically uniform within the invocation group -
VUID-RuntimeSpirv-subgroupSize-10147
If the effective subgroup size is 1, theStorageTexelBufferArrayNonUniformIndexingcapability is not is not declared, and an instruction accesses memory through a storage texel buffer, the storage texel buffer through which that memory is accessed must be dynamically uniform within the invocation group -
VUID-RuntimeSpirv-None-10148
If an instruction accesses memory through any resource, the effective subgroup size is 1, and the resource through which that memory is accessed is not uniform within the invocation group, then the operand corresponding to that resource (e.g. the pointer or sampled image operand) must be decorated withNonUniform -
VUID-RuntimeSpirv-subgroupSize-10149
If an instruction accesses memory through any resource, the effective subgroup size is greater than 1, and the resource through which that memory is accessed is not uniform within the invocation group, and not uniform within the subgroup, 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, orshaderBufferFloat64AtomicMinMax, orshaderFloat16VectorAtomicsmust 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, orshaderSharedFloat64AtomicMinMax, orshaderFloat16VectorAtomics, must be enabled for floating-point atomic operations to be supported on a Pointer with aStorageClassofWorkgroup -
VUID-RuntimeSpirv-None-06286
shaderImageFloat32Atomics, orshaderImageFloat32AtomicAdd, orshaderImageFloat32AtomicMinMax, must be enabled for 32-bit floating-point atomic operations to be supported on a Pointer with aStorageClassofImage -
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
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 anyFPFastMathModedecoration 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 anyFPFastMathModedecoration 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 anyFPFastMathModedecoration 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-OpTypeCooperativeMatrixMulAddNV-10059
ForOpTypeCooperativeMatrixMulAddNV, the operands must match a supported VkCooperativeMatrixPropertiesNV, such that:-
The type of
Amust haveRowsmatch VkCooperativeMatrixPropertiesNV::MSize,Columnsmatch VkCooperativeMatrixPropertiesNV::KSize, andComponentTypematch VkCooperativeMatrixPropertiesNV::AType. -
The type of
Bmust haveRowsmatch VkCooperativeMatrixPropertiesNV::KSize,Columnsmatch VkCooperativeMatrixPropertiesNV::NSize, andComponentTypematch VkCooperativeMatrixPropertiesNV::BType. -
The type of
Cmust haveRowsmatch VkCooperativeMatrixPropertiesNV::MSize,Columnsmatch VkCooperativeMatrixPropertiesNV::NSize, andComponentTypematch VkCooperativeMatrixPropertiesNV::CType. -
The type of
Resultmust haveRowsmatch VkCooperativeMatrixPropertiesNV::MSize,Columnsmatch VkCooperativeMatrixPropertiesNV::NSize, andComponentTypematch VkCooperativeMatrixPropertiesNV::DType. -
The scope of all cooperative matrix operands must be VkScopeNV::
VK_SCOPE_SUBGROUP_NV. -
If
ComponentTypeofA,B,C, orResultis a signed integral type, theSignednessoperand of theOpTypeIntmust be 1. -
If
ComponentTypeofA,B,C, orResultis an unsigned integral type, theSignednessoperand of theOpTypeIntmust be 0
-
-
VUID-RuntimeSpirv-OpTypeCooperativeMatrixNV-06322
OpTypeCooperativeMatrixNVandOpCooperativeMatrix*instructions must not be used in shader stages not included in VkPhysicalDeviceCooperativeMatrixPropertiesNV::cooperativeMatrixSupportedStages -
VUID-RuntimeSpirv-OpTypeCooperativeMatrixKHR-10163
ForOpTypeCooperativeMatrixKHR, if thecooperativeMatrixFlexibleDimensionsfeature is not enabled, the component type, scope, number of rows, and number of columns must match one of the matrices in any of the supported VkCooperativeMatrixPropertiesKHR, where-
for
UseofMatrixA, the number of rows must match VkCooperativeMatrixPropertiesKHR::MSizeand the number of columns must match VkCooperativeMatrixPropertiesKHR::KSizeand the type must match VkCooperativeMatrixPropertiesKHR::AType -
for
UseofMatrixB, the number of rows must match VkCooperativeMatrixPropertiesKHR::KSizeand the number of columns must match VkCooperativeMatrixPropertiesKHR::NSizeand the type must match VkCooperativeMatrixPropertiesKHR::BType -
for
UseofMatrixAccumulator, the number of rows must match VkCooperativeMatrixPropertiesKHR::MSizeand the number of columns must match VkCooperativeMatrixPropertiesKHR::NSizeand the type must match VkCooperativeMatrixPropertiesKHR::CTypeor VkCooperativeMatrixPropertiesKHR::ResultType
-
-
VUID-RuntimeSpirv-OpCooperativeMatrixMulAddKHR-10060
ForOpCooperativeMatrixMulAddKHR, if thecooperativeMatrixFlexibleDimensionsfeature is not enabled, the operands must match a supported VkCooperativeMatrixPropertiesKHR, such that:-
The type of
Amust haveRowsmatch VkCooperativeMatrixPropertiesKHR::MSize,Columnsmatch VkCooperativeMatrixPropertiesKHR::KSize,UsebeMatrixAKHR, andComponentTypematch VkCooperativeMatrixPropertiesKHR::AType. -
The type of
Bmust haveRowsmatch VkCooperativeMatrixPropertiesKHR::KSize,Columnsmatch VkCooperativeMatrixPropertiesKHR::NSize,UsebeMatrixBKHR, andComponentTypematch VkCooperativeMatrixPropertiesKHR::BType. -
The type of
Cmust haveRowsmatch VkCooperativeMatrixPropertiesKHR::MSize,Columnsmatch VkCooperativeMatrixPropertiesKHR::NSize,UsebeMatrixAccumulatorKHR, andComponentTypematch VkCooperativeMatrixPropertiesKHR::CType. -
The type of
Resultmust haveRowsmatch VkCooperativeMatrixPropertiesKHR::MSize,Columnsmatch VkCooperativeMatrixPropertiesKHR::NSize,UsebeMatrixAccumulatorKHR, andComponentTypematch VkCooperativeMatrixPropertiesKHR::ResultType. -
If and only if VkCooperativeMatrixPropertiesKHR::
ATypeis a signed integer type,MatrixASignedComponentsmust be used. -
If and only if VkCooperativeMatrixPropertiesKHR::
BTypeis a signed integer type,MatrixBSignedComponentsmust be used. -
If and only if VkCooperativeMatrixPropertiesKHR::
CTypeis a signed integer type,MatrixCSignedComponentsmust be used. -
If and only if VkCooperativeMatrixPropertiesKHR::
ResultTypeis a signed integer type,MatrixResultSignedComponentsmust be used. -
If and only if VkCooperativeMatrixPropertiesKHR::
saturatingAccumulationisVK_TRUE,SaturatingAccumulationKHRmust be used. -
If and only if VkCooperativeMatrixPropertiesKHR::
saturatingAccumulationisVK_FALSE,SaturatingAccumulationKHRmust not be used. -
The scope of all cooperative matrix operands must match VkCooperativeMatrixPropertiesKHR::
scope.
-
-
VUID-RuntimeSpirv-cooperativeMatrixWorkgroupScope-10164
If thecooperativeMatrixWorkgroupScopefeature is not enabled, the scope of allOpTypeCooperativeMatrixKHRmust not be VkScopeKHR::VK_SCOPE_WORKGROUP_KHR -
VUID-RuntimeSpirv-cooperativeMatrixFlexibleDimensions-10165
ForOpTypeCooperativeMatrixKHR, if thecooperativeMatrixFlexibleDimensionsfeature is enabled, the component type, scope, number of rows, and number of columns must match either one of the matrices in one of the supported VkCooperativeMatrixPropertiesKHR as described above, or one of the supported VkCooperativeMatrixFlexibleDimensionsPropertiesNV, where-
for
MatrixA, the number of rows must be a multiple of VkCooperativeMatrixFlexibleDimensionsPropertiesNV::MGranularityand the number of columns must be a multiple of VkCooperativeMatrixFlexibleDimensionsPropertiesNV::KGranularityand the type must match VkCooperativeMatrixFlexibleDimensionsPropertiesNV::AType -
for
MatrixB, the number of rows must be a multiple of VkCooperativeMatrixFlexibleDimensionsPropertiesNV::KGranularityand the number of columns must be a multiple of VkCooperativeMatrixFlexibleDimensionsPropertiesNV::NGranularityand the type must match VkCooperativeMatrixFlexibleDimensionsPropertiesNV::BType -
for
MatrixAccumulator, the number of rows must be a multiple of VkCooperativeMatrixFlexibleDimensionsPropertiesNV::MGranularityand the number of columns must be a multiple of VkCooperativeMatrixFlexibleDimensionsPropertiesNV::NGranularityand the type must match VkCooperativeMatrixFlexibleDimensionsPropertiesNV::CTypeor VkCooperativeMatrixFlexibleDimensionsPropertiesNV::ResultType -
if the scope is
VK_SCOPE_WORKGROUP_KHR, the number of invocations in the local workgroup must match VkCooperativeMatrixFlexibleDimensionsPropertiesNV::workgroupInvocations
-
-
VUID-RuntimeSpirv-cooperativeMatrixFlexibleDimensions-10166
ForOpCooperativeMatrixMulAddKHR, if thecooperativeMatrixFlexibleDimensionsfeature is enabled, the operands must match either one of the supported VkCooperativeMatrixPropertiesKHR as described above, or one of the supported VkCooperativeMatrixFlexibleDimensionsPropertiesNV, such that:-
The type of
Amust haveRowsbe a multiple of VkCooperativeMatrixFlexibleDimensionsPropertiesNV::MGranularity,Columnsbe a multiple of VkCooperativeMatrixFlexibleDimensionsPropertiesNV::KGranularity,UsebeMatrixAKHR, andComponentTypematch VkCooperativeMatrixFlexibleDimensionsPropertiesNV::AType. -
The type of
Bmust haveRowsbe a multiple of VkCooperativeMatrixFlexibleDimensionsPropertiesNV::KGranularity,Columnsbe a multiple of VkCooperativeMatrixFlexibleDimensionsPropertiesNV::NGranularity,UsebeMatrixBKHR, andComponentTypematch VkCooperativeMatrixFlexibleDimensionsPropertiesNV::BType. -
The type of
Cmust haveRowsbe a multiple of VkCooperativeMatrixFlexibleDimensionsPropertiesNV::MGranularity,Columnsbe a multiple of VkCooperativeMatrixFlexibleDimensionsPropertiesNV::NGranularity,UsebeMatrixAccumulatorKHR, andComponentTypematch VkCooperativeMatrixFlexibleDimensionsPropertiesNV::CType. -
The type of
Resultmust haveRowsbe a multiple of VkCooperativeMatrixFlexibleDimensionsPropertiesNV::MGranularity,Columnsbe a multiple of VkCooperativeMatrixFlexibleDimensionsPropertiesNV::NGranularity,UsebeMatrixAccumulatorKHR, andComponentTypematch VkCooperativeMatrixFlexibleDimensionsPropertiesNV::ResultType. -
If and only if VkCooperativeMatrixFlexibleDimensionsPropertiesNV::
ATypeis a signed integer type,MatrixASignedComponentsmust be used. -
If and only if VkCooperativeMatrixFlexibleDimensionsPropertiesNV::
BTypeis a signed integer type,MatrixBSignedComponentsmust be used. -
If and only if VkCooperativeMatrixFlexibleDimensionsPropertiesNV::
CTypeis a signed integer type,MatrixCSignedComponentsmust be used. -
If and only if VkCooperativeMatrixFlexibleDimensionsPropertiesNV::
ResultTypeis a signed integer type,MatrixResultSignedComponentsmust be used. -
If and only if VkCooperativeMatrixFlexibleDimensionsPropertiesNV::
saturatingAccumulationisVK_TRUE,SaturatingAccumulationKHRmust be used. -
If and only if VkCooperativeMatrixFlexibleDimensionsPropertiesNV::
saturatingAccumulationisVK_FALSE,SaturatingAccumulationKHRmust not be used. -
The scope of all cooperative matrix operands must match VkCooperativeMatrixFlexibleDimensionsPropertiesNV::
scope. -
If the scope is
VK_SCOPE_WORKGROUP_KHR, the number of invocations in the local workgroup must match VkCooperativeMatrixFlexibleDimensionsPropertiesNV::workgroupInvocations
-
-
VUID-RuntimeSpirv-cooperativeMatrixFlexibleDimensionsMaxDimension-10167
AllOpTypeCooperativeMatrixKHRdimensions must be less than or equal tocooperativeMatrixFlexibleDimensionsMaxDimension -
VUID-RuntimeSpirv-maxComputeSharedMemorySize-10168
If the module usesOpTypeCooperativeMatrixKHRwithScopeequal toWorkgroup, the sum of size in bytes for variables and padding in theWorkgroupStorageClassin theGLComputeExecutionModelmust be less than or equal tomaxComputeSharedMemorySizeminuscooperativeMatrixWorkgroupScopeReservedSharedMemory -
VUID-RuntimeSpirv-cooperativeMatrixSupportedStages-08985
OpTypeCooperativeMatrixKHRandOpCooperativeMatrix*instructions must not be used in shader stages not included in VkPhysicalDeviceCooperativeMatrixPropertiesKHR::cooperativeMatrixSupportedStages -
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-OpCooperativeVectorMatrixMulNV-10089
ForOpCooperativeVectorMatrixMulNVandOpCooperativeVectorMatrixMulAddNV, the following must be satisfied by the same entry in the VkCooperativeVectorPropertiesNV array returned by vkGetPhysicalDeviceCooperativeVectorPropertiesNV:-
The component type of
Inputmust match VkCooperativeVectorPropertiesNV::inputType -
The
InputInterpretationmust match VkCooperativeVectorPropertiesNV::inputInterpretation -
The
MatrixInterpretationmust match VkCooperativeVectorPropertiesNV::matrixInterpretation -
For
OpCooperativeVectorMatrixMulAddNV, theBiasInterpretationmust match VkCooperativeVectorPropertiesNV::biasInterpretation -
The
ResultTypemust match VkCooperativeVectorPropertiesNV::resultType -
If
Transposeis true, VkCooperativeVectorPropertiesNV::transposemust beVK_TRUE
-
-
VUID-RuntimeSpirv-OpCooperativeVectorMatrixMulNV-10090
ForOpCooperativeVectorMatrixMulNVandOpCooperativeVectorMatrixMulAddNV, ifMatrixInterpretationis eitherVK_COMPONENT_TYPE_FLOAT_E4M3_NVorVK_COMPONENT_TYPE_FLOAT_E5M2_NVthenMemoryLayoutmust be eitherVK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_INFERENCING_OPTIMAL_NVorVK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_TRAINING_OPTIMAL_NV -
VUID-RuntimeSpirv-cooperativeVectorSupportedStages-10091
OpTypeCooperativeVectorNVandOpCooperativeVector*instructions must not be used in shader stages not included in VkPhysicalDeviceCooperativeVectorPropertiesNV::cooperativeVectorSupportedStages -
VUID-RuntimeSpirv-OpCooperativeVectorReduceSumAccumulateNV-10092
ForOpCooperativeVectorReduceSumAccumulateNV:-
The component type of
Vmust be either 16- or 32-bit floating-point -
If the component type of
Vis 16-bit floating-point,cooperativeVectorTrainingFloat16Accumulationmust be supported -
If the component type of
Vis 32-bit floating-point,cooperativeVectorTrainingFloat32Accumulationmust be supported -
The pointer’s storage class must be
StorageBufferorPhysicalStorageBuffer
-
-
VUID-RuntimeSpirv-OpCooperativeVectorOuterProductAccumulateNV-10093
ForOpCooperativeVectorOuterProductAccumulateNV:-
MatrixInterpretationmust beVK_COMPONENT_TYPE_FLOAT16_KHRorVK_COMPONENT_TYPE_FLOAT32_KHR -
If
MatrixInterpretationisVK_COMPONENT_TYPE_FLOAT16_KHR,cooperativeVectorTrainingFloat16Accumulationmust be supported -
If
MatrixInterpretationisVK_COMPONENT_TYPE_FLOAT32_KHR,cooperativeVectorTrainingFloat32Accumulationmust be supported -
The component types of
AandBmust be 16-bit floating-point -
The matrix layout must be training-optimal
-
The pointer’s storage class must be
StorageBufferorPhysicalStorageBuffer
-
-
VUID-RuntimeSpirv-maxCooperativeVectorComponents-10094
OpTypeCooperativeVectorinstructions must haveComponentCountless than or equal tomaxCooperativeVectorComponents -
VUID-RuntimeSpirv-OpTypeCooperativeVector-10095
OpTypeCooperativeVectorinstructions must haveComponentTypethat is any supported type reported by vkGetPhysicalDeviceCooperativeVectorPropertiesNV -
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-OpCooperativeVectorMatrixMulNV-10096
ForOpCooperativeVectorMatrixMulNVandOpCooperativeVectorMatrixMulAddNVinstructions using non-optimal layouts, theStrideoperand must be aligned to 16 bytes -
VUID-RuntimeSpirv-OpCooperativeVectorMatrixMulNV-10097
ForOpCooperativeVectorMatrixMulNVandOpCooperativeVectorMatrixMulAddNVinstructions, theMatrixandMatrixOffsetmust be aligned to 64 bytes -
VUID-RuntimeSpirv-OpCooperativeVectorMatrixMulAddNV-10098
ForOpCooperativeVectorMatrixMulAddNVinstructions, theBiasandBiasOffsetmust be aligned to 16 bytes -
VUID-RuntimeSpirv-OpCooperativeVectorLoadNV-10099
ForOpCooperativeVectorLoadNVandOpCooperativeVectorStoreNVinstructions, thePointerandOffsetmust be aligned to 16 bytes -
VUID-RuntimeSpirv-OpCooperativeVectorReduceSumAccumulateNV-10100
ForOpCooperativeVectorReduceSumAccumulateNVinstructions, thePointerandOffsetmust be aligned to 16 bytes -
VUID-RuntimeSpirv-OpCooperativeVectorOuterProductAccumulateNV-10101
ForOpCooperativeVectorOuterProductAccumulateNVinstructions, thePointerandOffsetmust be aligned to 64 bytes -
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 beInterpolationFunction -
VUID-RuntimeSpirv-tessellationShader-06326
If thetessellationShaderfeature is enabled, and theVK_KHR_portability_subsetextension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::tessellationIsolinesisVK_FALSE, thenOpExecutionModemust not beIsoLines -
VUID-RuntimeSpirv-tessellationShader-06327
If thetessellationShaderfeature is enabled, and theVK_KHR_portability_subsetextension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::tessellationPointModeisVK_FALSE, thenOpExecutionModemust not bePointMode -
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-workgroupMemoryExplicitLayout8BitAccess-10756
IfworkgroupMemoryExplicitLayout8BitAccessisVK_FALSE, then objects in theWorkgroupStorageClasswith theBlockdecoration must not have an 8-bit integer element. -
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-workgroupMemoryExplicitLayout16BitAccess-10757
IfworkgroupMemoryExplicitLayout16BitAccessisVK_FALSE, then objects in theWorkgroupStorageClasswith theBlockdecoration must not have an 16-bit integer or 16-bit floating-point elements. -
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-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
If thefragmentStoresAndAtomicsfeature is 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
If thevertexPipelineStoresAndAtomicsfeature 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 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
If themaintenance4feature is 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
If theshaderZeroInitializeWorkgroupMemoryfeature is not enabled, anyOpVariablewithWorkgroupas itsStorageClassmust not have anInitializeroperand -
VUID-RuntimeSpirv-Offset-10213
If themaintenance8feature is not enabled, image operandOffsetmust only be used withOpImage*Gatherinstructions -
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 ofOffsetorConstOffsetthen the offset value must be greater than or equal tominTexelOffset -
VUID-RuntimeSpirv-OpImageSample-06436
If anOpImageSample*orOpImageFetch*operation has an image operand ofOffsetorConstOffsetthen 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 unless theshaderSubgroupUniformControlFlowfeature is enabled, the corresponding shader stage bit is set insubgroupSupportedStages, and the entry point does not execute any invocation repack instructions -
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06767
If theshaderEarlyAndLateFragmentTestsfeature is not enabled, theEarlyAndLateFragmentTestsEXTExecutionModemust not be used -
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06768
If theshaderEarlyAndLateFragmentTestsfeature is not enabled, theStencilRefUnchangedFrontEXTExecutionModemust not be used -
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06769
If theshaderEarlyAndLateFragmentTestsfeature is not enabled, theStencilRefUnchangedBackEXTExecutionModemust not be used -
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06770
If theshaderEarlyAndLateFragmentTestsfeature is not enabled, theStencilRefGreaterFrontEXTExecutionModemust not be used -
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06771
If theshaderEarlyAndLateFragmentTestsfeature is not enabled, theStencilRefGreaterBackEXTExecutionModemust not be used -
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06772
If theshaderEarlyAndLateFragmentTestsfeature is not enabled, theStencilRefLessFrontEXTExecutionModemust not be used -
VUID-RuntimeSpirv-shaderEarlyAndLateFragmentTests-06773
If theshaderEarlyAndLateFragmentTestsfeature is 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-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, if themaintenance5feature is 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
If themaintenance5feature is 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 theGLComputeorMeshEXTexecution model -
VUID-RuntimeSpirv-NodePayloadAMDX-09192
Variables in theNodePayloadAMDXstorage class must only be declared in theGLComputeorMeshEXTexecution 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 -
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 -
VUID-RuntimeSpirv-shaderSubgroupRotateClustered-09566
IfshaderSubgroupRotateClusteredisVK_FALSE, then theClusterSizeoperand toOpGroupNonUniformRotateKHRmust not be used -
VUID-RuntimeSpirv-protectedNoFault-09645
IfprotectedNoFaultis not supported, theStorageClassof thePhysicalStorageBuffermust not be used if the buffer being accessed is protected -
VUID-RuntimeSpirv-meshAndTaskShaderDerivatives-10153
IfmeshAndTaskShaderDerivativesisVK_FALSE, theDerivativeGroupLinearKHRandDerivativeGroupQuadsKHRexecution modes must not be used in theMeshEXT,MeshNV,TaskEXT, orTaskNVExecutionModel -
VUID-RuntimeSpirv-TileShadingQCOM-10698
TileShadingQCOMcapability must not be declared in the compute stage unless the tileShading feature is enabled -
VUID-RuntimeSpirv-TileShadingQCOM-10699
TheTileShadingQCOMcapability must not be declared in the fragment stage unless the tileShadingFragmentStage feature is enabled -
VUID-RuntimeSpirv-TileShadingQCOM-10700
A shader that enables SPIR-V capabilityTileShadingQCOMmust not be invoked outside a tile shading render pass -
VUID-RuntimeSpirv-TileShadingQCOM-10701
A compute shader that enables SPIR-V capabilityTileShadingQCOMmust only be invoked inside those portions of a command buffer where per-tile execution model is enabled -
VUID-RuntimeSpirv-x-10702
In compute shaders that enables SPIR-V capabilityTileShadingQCOM, thexsize inTileShadingRateQCOMmust be less than or equal to VkPhysicalDeviceTileShadingPropertiesQCOM::maxTileShadingRate::x -
VUID-RuntimeSpirv-y-10703
In compute shaders that enables SPIR-V capabilityTileShadingQCOM, theysize inTileShadingRateQCOMmust be less than or equal to VkPhysicalDeviceTileShadingPropertiesQCOM::maxTileShadingRate::y -
VUID-RuntimeSpirv-z-10704
In compute shaders that enables SPIR-V capabilityTileShadingQCOM, thezsize inTileShadingRateQCOMmust be less than or equal to VkTilePropertiesQCOM::tileSize::z -
VUID-RuntimeSpirv-tileSize-10705
In compute shaders that enables SPIR-V capabilityTileShadingQCOM, VkTilePropertiesQCOM::tileSize::z%TileShadingRateQCOM::zmust equal0 -
VUID-RuntimeSpirv-OpImage-10706
AnOpImagewithStorageClassTileAttachmentQCOMmust not be consumed byOpImageTexelPointerunless the tileShadingAtomicOps feature is enabled -
VUID-RuntimeSpirv-OpTypeImage-10707
AnOpTypeImagewithStorageClassTileAttachmentQCOMmust not be backed by a view equivalent to the color attachment of the current subpass instance unless the tileShadingColorAttachments feature is enabled -
VUID-RuntimeSpirv-OpTypeImage-10708
AnOpTypeImagewithStorageClassTileAttachmentQCOMmust not be backed by a view equivalent to the depth aspect of the depth/stencil attachment of the current subpass instance unless the tileShadingDepthAttachments -
VUID-RuntimeSpirv-OpTypeImage-10709
AnOpTypeImagewithStorageClassTileAttachmentQCOMmust not be backed by a view equivalent to the stencil aspect of the depth/stencil attachment of the current subpass instance unless the tileShadingStencilAttachments feature is enabled -
VUID-RuntimeSpirv-OpTypeImage-10710
AnOpTypeImagewithStorageClassTileAttachmentQCOMmust not be backed by a view equivalent to the input attachment of the current subpass instance unless the tileShadingInputAttachments feature is enabled -
VUID-RuntimeSpirv-OpTypeSampledImage-10711
AnOpTypeSampledImagewithStorageClassTileAttachmentQCOMmust not be backed by a view equivalent to an attachment of the current subpass instance unless the tileShadingSampledAttachments feature is enabled -
VUID-RuntimeSpirv-tileShadingImageProcessing-10712
If anOpTypeSampledImagewithStorageClassTileAttachmentQCOMis consumed by any argument of the following operations,tileShadingImageProcessingmust be enabled:-
OpImageSampleWeightedQCOM -
OpImageBoxFilterQCOM -
OpImageBlockMatch*QCOM
-
-
VUID-RuntimeSpirv-Coordinate-10713
TheCoordinateoperand of anyOpImageRead,OpImageSparseRead,OpImageWrite, orOpImageTexelPointerinstruction that consumes anOpTypeImagewith an imageStorageClassTileAttachmentQCOMmust not result in any texels accessed outside the boundaries of the current tile, computed as described in Tile Attachments -
VUID-RuntimeSpirv-Coordinate-10714
TheCoordinateoperand(s) of any of the following instructions that consumes anOpTypeSampledImagewith an image ofStorageClassTileAttachmentQCOMmust not result in any texels accessed outside boundaries of the current tile, computed as described in Tile Attachments:-
OpImageSample* -
OpImageSparseSample* -
OpImageFetch -
OpImageSparseFetch -
OpImage*Gather -
OpImageSparse*Gather -
OpImageSampleWeightedQCOM -
OpImageBoxFilterQCOM -
OpImageBlockMatch*QCOM
-
-
VUID-RuntimeSpirv-None-10715
If a VkSampler object that enables sampler Y′CBCR conversion is accessed in a shader, both the sampler and image accessed must be determined by constant integral expressions -
VUID-RuntimeSpirv-None-10716
If a VkSampler object that enables sampler Y′CBCR conversion is statically used, it must only be used withOpImageSample*orOpImageSparseSample*instructions -
VUID-RuntimeSpirv-OpImage-10717
AnOpImageinstruction must not be used on a VkSampler object that enables sampler Y′CBCR conversion -
VUID-RuntimeSpirv-ConstOffset-10718
If a VkSampler object that enables sampler Y′CBCR conversion is statically used, it must not use theConstOffsetorOffsetoperands
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.