Lines Matching refs:code
89 | SPIR-V code:OpCapability +
105 * any code:OpCapability not listed above,
139 | SPIR-V code:OpExtension +
181 The code:Logical or code:PhysicalStorageBuffer64 addressing model must:
184 code:Scope for execution must: be limited to code:Workgroup or
185 code:Subgroup
187 If the code:Scope for execution is code:Workgroup, then it must: only be
191 code:Scope for memory must: be limited to code:Device, code:QueueFamily,
192 code:Workgroup, code:ShaderCallKHR, code:Subgroup, or code:Invocation
194 If the {ExecutionModel} is code:TessellationControl, and the
195 code:MemoryModel is code:GLSL450, the code:Scope for memory must: not be
196 code:Workgroup
198 If the code:Scope for memory is code:Workgroup, then it must: only be
202 If the code:Scope for memory is code:ShaderCallKHR, then it must: only
206 If the code:Scope for memory is code:Invocation, then memory semantics
207 must: be code:None
209 code:Scope for <<shaders-group-operations,group operations>> must: be
210 limited to code:Subgroup
212 If none of the code:SubgroupVoteKHR, code:GroupNonUniform, or
213 code:SubgroupBallotKHR capabilities are declared, code:Scope for memory
214 must: not be code:Subgroup
216 {StorageClass} must: be limited to code:UniformConstant, code:Input,
217 code:Uniform, code:Output, code:Workgroup, code:Private, code:Function,
218 code:PushConstant, code:Image, code:StorageBuffer, code:RayPayloadKHR,
219 code:IncomingRayPayloadKHR, code:HitAttributeKHR, code:CallableDataKHR,
220 code:IncomingCallableDataKHR, code:ShaderRecordBufferKHR,
221 code:PhysicalStorageBuffer, or code:TileImageEXT
223 If the {StorageClass} is code:Output, then it must: not be used in the
224 code:GlCompute, code:RayGenerationKHR, code:IntersectionKHR,
225 code:AnyHitKHR, code:ClosestHitKHR, code:MissKHR, or code:CallableKHR
228 If the {StorageClass} is code:Workgroup, then it must: only be used in
231 If the {StorageClass} is code:TileImageEXT, then it must: only be used
234 code:OpAtomicStore must: not use code:Acquire, code:AcquireRelease, or
235 code:SequentiallyConsistent memory semantics
237 code:OpAtomicLoad must: not use code:Release, code:AcquireRelease, or
238 code:SequentiallyConsistent memory semantics
240 code:OpMemoryBarrier must: use one of code:Acquire, code:Release,
241 code:AcquireRelease, or code:SequentiallyConsistent memory semantics
243 code:OpMemoryBarrier must: include at least one {StorageClass}
245 If the semantics for code:OpControlBarrier includes one of code:Acquire,
246 code:Release, code:AcquireRelease, or code:SequentiallyConsistent memory
249 Any code:OpVariable with an code:Initializer operand must: have
250 code:Output, code:Private, code:Function, or code:Workgroup as its
253 Any code:OpVariable with an code:Initializer operand and code:Workgroup
254 as its {StorageClass} operand must: use code:OpConstantNull as the
257 code:Scope for code:OpReadClockKHR must: be limited to code:Subgroup or
258 code:Device
260 The code:OriginLowerLeft {ExecutionMode} must: not be used; fragment
261 entry points must: declare code:OriginUpperLeft
263 The code:PixelCenterInteger {ExecutionMode} must: not be used (pixels
266 Any variable in the code:UniformConstant {StorageClass} must: be typed
267 as either code:OpTypeImage, code:OpTypeSampler, code:OpTypeSampledImage,
268 code:OpTypeAccelerationStructureKHR, or an array of one of these types
270 Any variable in the code:Uniform or code:StorageBuffer {StorageClass}
271 must: be typed as code:OpTypeStruct or an array of this type
273 Any variable in the code:PushConstant {StorageClass} must: be typed as
274 code:OpTypeStruct
276 code:OpTypeImage must: declare a scalar 32-bit float, 64-bit integer, or
277 32-bit integer type for the "`Sampled Type`" (code:RelaxedPrecision can:
281 code:OpTypeImage must: have a "`Sampled`" operand of 1 (sampled image)
284 code:OpTypeSampledImage must: have a code:OpTypeImage with a "`Sampled`"
287 The <<spirv-type,SPIR-V Type>> of the code:Image code:Format operand of
288 an code:OpTypeImage must: match the code:Sampled code:Type, as defined
291 If an code:OpImageTexelPointer is used in an atomic operation, the image
292 type of the code:image parameter to code:OpImageTexelPointer must: have
293 an image format of code:R64i, code:R64ui, code:R32f, code:R32i, or
294 code:R32ui
296 code:OpImageQuerySizeLod, code:OpImageQueryLod, and
297 code:OpImageQueryLevels must: only consume an "`Image`" operand whose
300 An code:OpTypeImage with a "`Dim`" operand of code:SubpassData must:
304 The [eq]#(u,v)# coordinates used for a code:SubpassData must: be the
309 Objects of types code:OpTypeImage, code:OpTypeSampler,
310 code:OpTypeSampledImage, code:OpTypeAccelerationStructureKHR, and arrays
313 Any variable in the code:Uniform {StorageClass} decorated as code:Block
316 Image operand code:Offset must: only be used with code:OpImage*Gather
319 Any image instruction which uses an code:Offset, code:ConstOffset, or
320 code:ConstOffsets image operand, must only consume a "`Sampled Image`"
323 The "`Component`" operand of code:OpImageGather, and
324 code:OpImageSparseGather must: be the <id> of a constant instruction
326 code:OpImage*Dref* instructions must: not consume an image whose `Dim`
331 Any code:BuiltIn decoration not listed in
334 The code:Location or code:Component decorations must: only be used with
335 the code:Input, code:Output, code:RayPayloadKHR,
336 code:IncomingRayPayloadKHR, code:HitAttributeKHR,
337 code:HitObjectAttributeNV, code:CallableDataKHR,
338 code:IncomingCallableDataKHR, or code:ShaderRecordBufferKHR storage
341 The code:Location or code:Component decorations must: not be used with
342 code:BuiltIn
344 The code:Location decorations must: be used on
348 pointer to a code:Block decorated code:OpTypeStruct, then the
349 code:OpVariable must: have a code:Location decoration
352 code:Location decoration, and the variable is a pointer to a
353 code:OpTypeStruct, then the members of that structure must: not have
354 code:Location decorations
357 have a code:Location decoration, and the variable is a pointer to a
358 code:Block decorated code:OpTypeStruct, then each member of the struct
359 must: have a code:Location decoration
361 The code:Component decoration value must: not be greater than 3
363 If the code:Component decoration is used on an code:OpVariable that has
364 a code:OpTypeVector type with a code:Component code:Type with a
365 code:Width that is less than or equal to 32, the sum of its
366 code:Component code:Count and the code:Component decoration value must:
369 If the code:Component decoration is used on an code:OpVariable that has
370 a code:OpTypeVector type with a code:Component code:Type with a
371 code:Width that is equal to 64, the sum of two times its code:Component
372 code:Count and the code:Component decoration value must: be less than or
375 The code:Component decorations value must: not be 1 or 3 for scalar or
378 The code:Component decorations must: not be used with any type that is
381 The code:Component decorations must: not be used for a 64-bit vector
384 The code:GLSLShared and code:GLSLPacked decorations must: not be used
386 The code:Flat, code:NoPerspective, code:Sample, and code:Centroid
387 decorations must: only be used on variables with the code:Output or
388 code:Input {StorageClass}
390 The code:Flat, code:NoPerspective, code:Sample, and code:Centroid
391 decorations must: not be used on variables with the code:Output storage
394 The code:Flat, code:NoPerspective, code:Sample, and code:Centroid
395 decorations must: not be used on variables with the code:Input storage
398 The code:PerVertexKHR decoration must: only be used on variables with
399 the code:Input {StorageClass} in a fragment shader
402 with code:Input {StorageClass} in a fragment shader, must: be decorated
403 code:Flat
405 The code:ViewportRelativeNV decoration must: only be used on a variable
406 decorated with code:Layer in the vertex, tessellation evaluation, or
409 The code:ViewportRelativeNV decoration must: not be used unless a
410 variable decorated with one of code:ViewportIndex or code:ViewportMaskNV
411 is also statically used by the same code:OpEntryPoint
413 The code:ViewportMaskNV and code:ViewportIndex decorations must: not
414 both be statically used by one or more code:OpEntryPoint's that form the
419 must: not be used for the code:FPRoundingMode decoration
421 Variables decorated with code:Invariant and variables with structure
422 types that have any members decorated with code:Invariant must: be in
423 the code:Output or code:Input {StorageClass}, code:Invariant used on an
424 code:Input {StorageClass} variable or structure member has no effect
426 [[builtin-volatile-semantics]] If the code:VulkanMemoryModel capability
427 is not declared, the code:Volatile decoration must: be used on any
428 variable declaration that includes one of the code:SMIDNV,
429 code:WarpIDNV, code:SubgroupSize, code:SubgroupLocalInvocationId,
430 code:SubgroupEqMask, code:SubgroupGeMask, code:SubgroupGtMask,
431 code:SubgroupLeMask, or code:SubgroupLtMask code:BuiltIn decorations
433 callable shaders, or with the code:RayTmaxKHR code:Builtin decoration
436 If the code:VulkanMemoryModel capability is declared, the code:OpLoad
437 instruction must: use the code:Volatile memory semantics when it
438 accesses into any variable that includes one of the code:SMIDNV,
439 code:WarpIDNV, code:SubgroupSize, code:SubgroupLocalInvocationId,
440 code:SubgroupEqMask, code:SubgroupGeMask, code:SubgroupGtMask,
441 code:SubgroupLeMask, or code:SubgroupLtMask code:BuiltIn decorations
443 callable shaders, or with the code:RayTmaxKHR code:Builtin decoration
446 code:OpTypeRuntimeArray must: only be used for:
447 ** the last member of a code:Block-decorated code:OpTypeStruct in
448 code:StorageBuffer or code:PhysicalStorageBuffer storage {StorageClass}
449 ** code:BufferBlock-decorated code:OpTypeStruct in the code:Uniform
452 code:StorageBuffer, code:Uniform, or code:UniformConstant storage
454 ** variables in the code:NodePayloadAMDX storage {StorageClass} when the
455 code:CoalescingAMDX {ExecutionMode} is specified
460 code:Function, or code:Private {StorageClass}, c) _V_ is a non-Block
461 variable in the code:Workgroup {StorageClass}, or d) _V_ is an interface
466 If code:OpControlBarrier is used in ray generation, intersection,
468 or geometry shaders, the execution Scope must: be code:Subgroup
470 For each compute shader entry point, either a code:LocalSize or
471 code:LocalSizeId {ExecutionMode}, or an object decorated with the
472 code:WorkgroupSize decoration must: be specified
474 For compute shaders using the code:DerivativeGroupQuadsNV execution
478 For compute shaders using the code:DerivativeGroupLinearNV execution
482 If code:OpGroupNonUniformBallotBitCount is used, the group operation
483 must: be limited to code:Reduce, code:InclusiveScan, or
484 code:ExclusiveScan
487 {StorageClass} limited to code:Uniform, code:Workgroup, code:Image,
488 code:StorageBuffer, code:PhysicalStorageBuffer, or
489 code:TaskPayloadWorkgroupEXT
491 Output variables or block members decorated with code:Offset that have a
493 an code:Offset value aligned to a 8 byte boundary
496 code:Offset that is a 64-bit type must: be a multiple of 8
498 The first member of an output block specifying a code:Offset decoration
499 must: specify a code:Offset value that is aligned to an 8 byte boundary
500 if that block contains any member decorated with code:Offset and is a
503 Output variables or block members decorated with code:Offset that have a
505 an code:Offset value aligned to a 4 byte boundary
507 Output variables, blocks or block members decorated with code:Offset
512 code:Offset can: be captured for transform feedback, and those variables
513 or block members must: also be decorated with code:XfbBuffer and
514 code:XfbStride, or inherit code:XfbBuffer and code:XfbStride decorations
518 point being compiled decorated with a specific code:XfbBuffer value
519 must: all be decorated with identical code:XfbStride values
522 point being compiled are decorated with code:Stream, then all variables
523 belonging to the same code:XfbBuffer must: specify the same code:Stream
527 entry point being compiled with the same code:XfbBuffer value, the
528 ranges determined by the code:Offset decoration and the size of the type
533 code:XfbBuffer decoration must: specify the same code:XfbBuffer value
535 code:RayPayloadKHR {StorageClass} must: only be used in ray generation,
538 code:IncomingRayPayloadKHR {StorageClass} must: only be used in closest
541 There must: be at most one variable with the code:IncomingRayPayloadKHR
544 code:HitAttributeKHR {StorageClass} must: only be used in intersection,
547 There must: be at most one variable with the code:HitAttributeKHR
550 A variable with code:HitAttributeKHR {StorageClass} must: only be
553 code:CallableDataKHR {StorageClass} must: only be used in ray
556 code:IncomingCallableDataKHR {StorageClass} must: only be used in
560 code:IncomingCallableDataKHR {StorageClass} in the input interface of an
563 code:ShaderRecordBufferKHR {StorageClass} must: only be used in ray
567 The code:Base operand of code:OpPtrAccessChain must: have a storage
568 class of code:Workgroup, code:StorageBuffer, or
569 code:PhysicalStorageBuffer
571 If the code:Base operand of code:OpPtrAccessChain has a code:Workgroup
572 {StorageClass}, then the code:VariablePointers capability must: be
575 If the code:Base operand of code:OpPtrAccessChain has a
576 code:StorageBuffer {StorageClass}, then the code:VariablePointers or
577 code:VariablePointersStorageBuffer capability must: be declared
579 If the code:PhysicalStorageBuffer64 addressing model is enabled, all
581 pointer must: include the code:Aligned operand
583 If the code:PhysicalStorageBuffer64 addressing model is enabled, any
584 access chain instruction that accesses into a code:RowMajor matrix must:
585 only be used as the code:Pointer operand to code:OpLoad or code:OpStore
587 If the code:PhysicalStorageBuffer64 addressing model is enabled,
588 code:OpConvertUToPtr and code:OpConvertPtrToU must: use an integer type
589 whose code:Width is 64
591 code:OpTypeForwardPointer must: have a {StorageClass} of
592 code:PhysicalStorageBuffer
595 code:PushConstant declared as an array must: only be accessed by
598 There must: not be more than one code:OpVariable in the
599 code:PushConstant {StorageClass} listed in the code:Interface for each
600 code:OpEntryPoint
602 Each code:OpEntryPoint must: not statically use more than one
603 code:OpVariable in the code:PushConstant {StorageClass}
605 Each code:OpEntryPoint must: not have more than one code:Input variable
606 assigned the same code:Component word inside a code:Location slot,
609 Each code:OpEntryPoint must: not have more than one code:Output variable
610 assigned the same code:Component word inside a code:Location slot,
613 The code:Result code:Type operand of any code:OpImageRead or
614 code:OpImageSparseRead instruction must: be a vector of four components
616 The code:Base operand of any code:OpBitCount, code:OpBitReverse,
617 code:OpBitFieldInsert, code:OpBitFieldSExtract, or
618 code:OpBitFieldUExtract instruction must: be a 32-bit integer scalar or
621 Any variable in the code:PushConstant or code:StorageBuffer storage
622 class must: be decorated as code:Block
624 Any variable in the code:Uniform {StorageClass} must: be decorated as
625 code:Block or code:BufferBlock
627 Any variable in the code:UniformConstant, code:StorageBuffer, or
628 code:Uniform {StorageClass} must: be decorated with code:DescriptorSet
629 and code:Binding
631 Variables decorated with code:InputAttachmentIndex must: be in the
632 code:UniformConstant {StorageClass}
634 If a variable is decorated by code:DescriptorSet or code:Binding, the
639 Variables with a {StorageClass} of code:Input in a fragment shader stage
640 that are decorated with code:PerVertexKHR must: be declared as arrays
643 code:TaskEXT or code:MeshEXT {ExecutionModel} and an entry point that
644 uses the code:TaskNV or code:MeshNV {ExecutionModel}
646 In mesh shaders using the code:MeshEXT {ExecutionModel}
647 code:OpSetMeshOutputsEXT must: be called before any outputs are written
649 In mesh shaders using the code:MeshEXT {ExecutionModel} all variables
652 In mesh shaders using the code:MeshEXT {ExecutionModel} for
653 code:OpSetMeshOutputsEXT instructions, the "`Vertex Count`" and
654 "`Primitive Count`" operands must: not depend on code:ViewIndex
656 In mesh shaders using the code:MeshEXT {ExecutionModel} variables
657 decorated with code:PrimitivePointIndicesEXT,
658 code:PrimitiveLineIndicesEXT, or code:PrimitiveTriangleIndicesEXT
660 code:ViewIndex
662 In mesh shaders using the code:MeshEXT {ExecutionModel} any values
663 stored in variables decorated with code:PrimitivePointIndicesEXT,
664 code:PrimitiveLineIndicesEXT, or code:PrimitiveTriangleIndicesEXT must:
665 not depend on code:ViewIndex
667 In mesh shaders using the code:MeshEXT {ExecutionModel} variables in
670 code:ViewIndex
672 In mesh shaders using the code:MeshEXT {ExecutionModel} the
673 code:OutputVertices {ExecutionMode} must: be greater than 0
675 In mesh shaders using the code:MeshEXT {ExecutionModel} the
676 code:OutputPrimitivesEXT {ExecutionMode} must: be greater than 0
678 Variables with a {StorageClass} of code:Input or code:Output and a type
679 of code:OpTypeBool must: be decorated with the code:BuiltIn decoration
682 code:TileImageEXT {StorageClass} and the code:Location decoration
686 The code:TileImageEXT {StorageClass} must: only be used for declaring
689 The {StorageClass} of the code:Pointer operand to
690 code:OpCooperativeMatrixLoadKHR or code:OpCooperativeMatrixStoreKHR
691 must: be limited to code:Workgroup, code:StorageBuffer, or
692 code:PhysicalStorageBuffer.
714 pname:vulkanMemoryModelDeviceScope>> is not enabled, code:Device memory
720 enabled, code:QueueFamily memory scope must: not be used
725 enabled, the code:Subgroup scope must: not be used for
726 code:OpReadClockKHR
729 enabled, the code:Device scope must: not be used for code:OpReadClockKHR
735 variable created with a "`Type`" of code:OpTypeImage that has a
736 "`Sampled`" operand of 2 and an "`Image Format`" operand of code:Unknown
737 must: be decorated with code:NonWritable
741 created with a "`Type`" of code:OpTypeImage that has a "`Sampled`"
742 operand of 2 and an "`Image Format`" operand of code:Unknown must: be
743 decorated with code:NonReadable
751 variable created with a "`Type`" of code:OpTypeImage that has a
752 "`Sampled`" operand of 2 and an "`Image Format`" operand of code:Unknown
753 must: be decorated with code:NonWritable
758 created with a "`Type`" of code:OpTypeImage that has a "`Sampled`"
759 operand of 2 and an "`Image Format`" operand of code:Unknown must: be
760 decorated with code:NonReadable
768 variable created with a "`Type`" of code:OpTypeImage that has a
769 "`Sampled`" operand of 2 and an "`Image Format`" operand of code:Unknown
770 must: be decorated with code:NonWritable
776 created with a "`Type`" of code:OpTypeImage that has a "`Sampled`"
777 operand of 2 and an "`Image Format`" operand of code:Unknown must: be
778 decorated with code:NonReadable
787 variable created with a "`Type`" of code:OpTypeImage that has a
788 "`Sampled`" operand of 2 and an "`Image Format`" operand of code:Unknown
789 must: be decorated with code:NonWritable
794 created with a "`Type`" of code:OpTypeImage that has a "`Sampled`"
795 operand of 2 and an "`Image Format`" operand of code:Unknown must: be
796 decorated with code:NonReadable
800 code:OpImageWrite to any code:Image whose code:Image code:Format is not
801 code:Unknown must: have the code:Texel operand contain at least as many
805 The sum of code:Location and the number of locations the variable it
810 code:Location decorated color attachments written to in the
811 code:Fragment {ExecutionModel} must: be less than or equal to
820 code:NonUniform
836 code:OpGroupNonUniformQuadBroadcast must: be dynamically uniform within
843 code:OpGroupNonUniformBroadcast must: be dynamically uniform within the
851 a _Pointer_ with a {StorageClass} of code:StorageBuffer or code:Uniform
855 a _Pointer_ with a {StorageClass} of code:Workgroup
869 of code:StorageBuffer
880 of code:Workgroup
886 {StorageClass} of code:Image
915 {StorageClass} of code:StorageBuffer
936 {StorageClass} of code:Workgroup
944 {StorageClass} of code:Image
957 a _Pointer_ with a {StorageClass} of code:Image
985 code:SignedZeroInfNanPreserve for 16-bit floating-point type must: not
990 code:SignedZeroInfNanPreserve for 32-bit floating-point type must: not
995 code:SignedZeroInfNanPreserve for 64-bit floating-point type must: not
1000 code:DenormPreserve for 16-bit floating-point type must: not be used
1004 code:DenormPreserve for 32-bit floating-point type must: not be used
1008 code:DenormPreserve for 64-bit floating-point type must: not be used
1012 code:DenormFlushToZero for 16-bit floating-point type must: not be used
1016 code:DenormFlushToZero for 32-bit floating-point type must: not be used
1020 code:DenormFlushToZero for 64-bit floating-point type must: not be used
1024 code:RoundingModeRTE for 16-bit floating-point type must: not be used
1028 code:RoundingModeRTE for 32-bit floating-point type must: not be used
1032 code:RoundingModeRTE for 64-bit floating-point type must: not be used
1036 code:RoundingModeRTZ for 16-bit floating-point type must: not be used
1040 code:RoundingModeRTZ for 32-bit floating-point type must: not be used
1044 code:RoundingModeRTZ for 64-bit floating-point type must: not be used
1048 The code:Offset plus size of the type of each variable, in the output
1050 code:XfbBuffer must: not be greater than
1053 For any given code:XfbBuffer value, define the buffer data size to be
1055 same code:XfbBuffer value, the size of the output interface variable
1056 plus the code:Offset is less than or equal to the buffer data size.
1057 For a given code:Stream, the sum of all the buffer data sizes for all
1061 The Stream value to code:OpEmitStreamVertex and
1062 code:OpEndStreamPrimitive must: be less than
1067 is ename:VK_FALSE, then {ExecutionMode} must: be code:OutputPoints
1069 The stream number value to code:Stream must: be less than
1072 The XFB Stride value to code:XfbStride must: be less than or equal to
1077 If the code:PhysicalStorageBuffer64 addressing model is enabled any load
1081 If the code:PhysicalStorageBuffer64 addressing model is enabled the
1083 aligned as specified by the code:Aligned memory access operand
1087 For code:OpTypeCooperativeMatrixNV, the component type, scope, number of
1091 For code:OpCooperativeMatrixMulAddNV, the type of code:A must: have
1097 For code:OpCooperativeMatrixMulAddNV, the type of code:B must: have
1103 For code:OpCooperativeMatrixMulAddNV, the type of code:C must: have
1109 For code:OpCooperativeMatrixMulAddNV, the type of code:Result must: have
1115 For code:OpCooperativeMatrixMulAddNV, the type of code:A, code:B,
1116 code:C, and code:Result must: all have a scope of pname:scope
1118 code:OpTypeCooperativeMatrixNV and code:OpCooperativeMatrix*
1124 For code:OpTypeCooperativeMatrixKHR, the component type, scope, number
1128 For code:OpCooperativeMatrixMulAddKHR, the type of code:A must: have
1134 For code:OpCooperativeMatrixMulAddKHR, when the component type of code:A
1135 is a signed integer type, the code:MatrixASignedComponents cooperative
1138 For code:OpCooperativeMatrixMulAddKHR, the type of code:B must: have
1144 For code:OpCooperativeMatrixMulAddKHR, when the component type of code:B
1145 is a signed integer type, the code:MatrixBSignedComponents cooperative
1148 For code:OpCooperativeMatrixMulAddKHR, the type of code:C must: have
1154 For code:OpCooperativeMatrixMulAddKHR, when the component type of code:C
1155 is a signed integer type, the code:MatrixCSignedComponents cooperative
1158 For code:OpCooperativeMatrixMulAddKHR, the type of code:Result must:
1164 For code:OpCooperativeMatrixMulAddKHR, when the component type of
1165 code:Result is a signed integer type, the
1166 code:MatrixResultSignedComponents cooperative matrix operand must: be
1169 For code:OpCooperativeMatrixMulAddKHR, the code:SaturatingAccumulation
1174 For code:OpCooperativeMatrixMulAddKHR, the type of code:A, code:B,
1175 code:C, and code:Result must: all have a scope of pname:scope.
1177 code:OpTypeCooperativeMatrixKHR and code:OpCooperativeMatrix*
1182 code:DescriptorSet and code:Binding decorations must: obey the
1188 For code:OpCooperativeMatrixLoadNV and code:OpCooperativeMatrixStoreNV
1189 instructions, the code:Pointer and code:Stride operands must: be aligned
1191 column (depending on code:ColumnMajor) of the matrix (where the natural
1197 For mesh shaders using the code:MeshNV {ExecutionModel} the
1198 code:OutputVertices code:OpExecutionMode must: be less than or equal to
1201 For mesh shaders using the code:MeshNV {ExecutionModel} the
1202 code:OutputPrimitivesNV code:OpExecutionMode must: be less than or equal
1208 For mesh shaders using the code:MeshEXT {ExecutionModel} the
1209 code:OutputVertices code:OpExecutionMode must: be less than or equal to
1212 For mesh shaders using the code:MeshEXT {ExecutionModel} the "`Vertex
1213 Count`" operand of code:OpSetMeshOutputsEXT must: be less than or equal
1214 to code:OutputVertices code:OpExecutionMode
1216 For mesh shaders using the code:MeshEXT {ExecutionModel} the
1217 code:OutputPrimitivesEXT code:OpExecutionMode must: be less than or
1221 For mesh shaders using the code:MeshEXT {ExecutionModel} the "`Primitive
1222 Count`" operand of code:OpSetMeshOutputsEXT must: be less than or equal
1223 to code:OutputPrimitivesEXT code:OpExecutionMode
1225 In task shaders using the code:TaskEXT {ExecutionModel}
1226 code:OpEmitMeshTasksEXT must: be called exactly once under dynamically
1229 In mesh shaders using the code:MeshEXT {ExecutionModel}
1230 code:OpSetMeshOutputsEXT must: be called at most once under dynamically
1233 In task shaders using the code:TaskEXT {ExecutionModel} the pname:x size
1234 in code:LocalSize or code:LocalSizeId must: be less than or equal to
1237 In task shaders using the code:TaskEXT {ExecutionModel} the pname:y size
1238 in code:LocalSize or code:LocalSizeId must: be less than or equal to
1241 In task shaders using the code:TaskEXT {ExecutionModel} the pname:z size
1242 in code:LocalSize or code:LocalSizeId must: be less than or equal to
1245 In task shaders using the code:TaskEXT {ExecutionModel} the product of
1246 pname:x size, pname:y size, and pname:z size in code:LocalSize or
1247 code:LocalSizeId must: be less than or equal to
1250 For mesh shaders using the code:MeshEXT {ExecutionModel} the pname:x
1251 size in code:LocalSize or code:LocalSizeId must: be less than or equal
1255 For mesh shaders using the code:MeshEXT {ExecutionModel} the pname:y
1256 size in code:LocalSize or code:LocalSizeId must: be less than or equal
1260 For mesh shaders using the code:MeshEXT {ExecutionModel} the pname:z
1261 size in code:LocalSize or code:LocalSizeId must: be less than or equal
1265 For mesh shaders using the code:MeshEXT {ExecutionModel} the product of
1266 pname:x size, pname:y size, and pname:z size in code:LocalSize or
1267 code:LocalSizeId must: be less than or equal to
1270 In task shaders using the code:TaskEXT {ExecutionModel} the value of the
1271 "`Group Count X`" operand of code:OpEmitMeshTasksEXT must: be less than
1275 In task shaders using the code:TaskEXT {ExecutionModel} the value of the
1276 "`Group Count Y`" operand of code:OpEmitMeshTasksEXT must: be less than
1280 In task shaders using the code:TaskEXT {ExecutionModel} the value of the
1281 "`Group Count Z`" operand of code:OpEmitMeshTasksEXT must: be less than
1285 In task shaders using the code:TaskEXT {ExecutionModel} the product of
1286 the "`Group Count`" operands of code:OpEmitMeshTasksEXT must: be less
1291 padding>> in the code:Workgroup {StorageClass} in the code:MeshEXT
1296 padding>> in the code:TaskPayloadWorkgroupEXT or code:Workgroup
1297 {StorageClass} in the code:MeshEXT {ExecutionModel} must: be less than
1301 The sum of size in bytes for variables in the code:Output {StorageClass}
1302 in the code:MeshEXT {ExecutionModel} must: be less than or equal to
1307 code:TaskPayloadWorkgroupEXT or code:Output {StorageClass} in the
1308 code:MeshEXT {ExecutionModel} must: be less than or equal to
1314 code:TaskPayloadWorkgroupEXT {StorageClass} in the code:TaskEXT
1319 padding>> in the code:Workgroup {StorageClass} in the code:TaskEXT
1324 padding>> in the code:TaskPayloadWorkgroupEXT or code:Workgroup
1325 {StorageClass} in the code:TaskEXT {ExecutionModel} must: be less than
1331 For code:OpCooperativeMatrixLoadKHR and code:OpCooperativeMatrixStoreKHR
1332 instructions, the code:Pointer and code:Stride operands must: be aligned
1334 column (depending on code:ColumnMajor) of the matrix (where the natural
1343 are not supported by the implementation and code:OpCapability must: not
1344 be set to code:InterpolationFunction
1349 is ename:VK_FALSE, then code:OpExecutionMode must: not be set to
1350 code:IsoLines
1355 is ename:VK_FALSE, then code:OpExecutionMode must: not be set to
1356 code:PointMode
1362 must: not have {StorageClass} of code:StorageBuffer,
1363 code:ShaderRecordBufferKHR, or code:PhysicalStorageBuffer
1367 objects in the code:Uniform {StorageClass} with the code:Block
1372 not have {StorageClass} of code:PushConstant
1379 code:StorageBuffer, code:ShaderRecordBufferKHR, or
1380 code:PhysicalStorageBuffer
1384 objects in the code:Uniform {StorageClass} with the code:Block
1391 code:PushConstant
1395 floating-point elements must: not have {StorageClass} of code:Input or
1396 code:Output
1478 the code:NonWritable decoration
1484 code:NonWritable decoration
1489 (code:OpAtomic*) must: not be used <<SCID-1>>
1504 The first element of the code:Offset operand of code:InterpolateAtOffset
1510 The first element of the code:Offset operand of code:InterpolateAtOffset
1518 The second element of the code:Offset operand of
1519 code:InterpolateAtOffset must: be greater than or equal to +
1524 The second element of the code:Offset operand of
1525 code:InterpolateAtOffset must: be less than or equal to +
1534 For code:OpRayQueryInitializeKHR instructions, all components of the
1535 code:RayOrigin and code:RayDirection operands must: be finite
1538 For code:OpRayQueryInitializeKHR instructions, the code:RayTmin and
1539 code:RayTmax operands must: be non-negative floating-point values
1541 For code:OpRayQueryInitializeKHR instructions, the code:RayTmin operand
1542 must: be less than or equal to the code:RayTmax operand
1544 For code:OpRayQueryInitializeKHR instructions, code:RayOrigin,
1545 code:RayDirection, code:RayTmin, and code:RayTmax operands must: not
1548 For code:OpRayQueryInitializeKHR instructions, code:Acceleration
1549 code:Structure must: be an acceleration structure built as a
1552 For code:OpRayQueryInitializeKHR instructions, the code:Rayflags operand
1553 must: not contain both code:SkipTrianglesKHR and code:SkipAABBsKHR
1555 For code:OpRayQueryInitializeKHR instructions, the code:Rayflags operand
1556 must: not contain more than one of code:SkipTrianglesKHR,
1557 code:CullBackFacingTrianglesKHR, and code:CullFrontFacingTrianglesKHR
1559 For code:OpRayQueryInitializeKHR instructions, the code:Rayflags operand
1560 must: not contain more than one of code:OpaqueKHR, code:NoOpaqueKHR,
1561 code:CullOpaqueKHR, and code:CullNoOpaqueKHR
1563 For code:OpRayQueryGenerateIntersectionKHR instructions, code:Hit code:T
1564 must: satisfy the condition [eq]##code:RayTmin {leq} code:Hit code:T
1565 {leq} code:RayTmax##, where code:RayTmin is equal to the value returned
1566 by code:OpRayQueryGetRayTMinKHR with the same ray query object, and
1567 code:RayTmax is equal to the value of code:OpRayQueryGetIntersectionTKHR
1571 For code:OpRayQueryGenerateIntersectionKHR instructions,
1572 code:Acceleration code:Structure must: not be built with
1577 For code:OpRayQueryGetIntersectionTriangleVertexPositionsKHR
1578 instructions, code:Acceleration code:Structure must: have been built
1585 For code:OpTraceRayKHR instructions, all components of the
1586 code:RayOrigin and code:RayDirection operands must: be finite
1589 For code:OpTraceRayKHR instructions, the code:RayTmin and code:RayTmax
1592 For code:OpTraceRayKHR instructions, the code:Rayflags operand must: not
1593 contain both code:SkipTrianglesKHR and code:SkipAABBsKHR
1595 For code:OpTraceRayKHR instructions, the code:Rayflags operand must: not
1596 contain more than one of code:SkipTrianglesKHR,
1597 code:CullBackFacingTrianglesKHR, and code:CullFrontFacingTrianglesKHR
1599 For code:OpTraceRayKHR instructions, the code:Rayflags operand must: not
1600 contain more than one of code:OpaqueKHR, code:NoOpaqueKHR,
1601 code:CullOpaqueKHR, and code:CullNoOpaqueKHR
1603 For code:OpTraceRayKHR instructions, if the code:Rayflags operand
1604 contains code:SkipTrianglesKHR, the pipeline must: not have been created
1607 For code:OpTraceRayKHR instructions, if the code:Rayflags operand
1608 contains code:SkipAABBsKHR, the pipeline must: not have been created
1611 For code:OpTraceRayKHR instructions, the code:RayTmin operand must: be
1612 less than or equal to the code:RayTmax operand
1614 For code:OpTraceRayKHR instructions, code:RayOrigin, code:RayDirection,
1615 code:RayTmin, and code:RayTmax operands must: not contain NaNs
1617 For code:OpTraceRayKHR instructions, code:Acceleration code:Structure
1621 The value of the "`Hit Kind`" operand of code:OpReportIntersectionKHR
1626 For code:OpTraceRayKHR instructions, if code:Acceleration code:Structure
1631 For code:OpTraceRayMotionNV instructions, all components of the
1632 code:RayOrigin and code:RayDirection operands must: be finite
1635 For code:OpTraceRayMotionNV instructions, the code:RayTmin and
1636 code:RayTmax operands must: be non-negative floating-point values
1638 For code:OpTraceRayMotionNV instructions, the code:RayTmin operand must:
1639 be less than or equal to the code:RayTmax operand
1641 For code:OpTraceRayMotionNV instructions, code:RayOrigin,
1642 code:RayDirection, code:RayTmin, and code:RayTmax operands must: not
1645 For code:OpTraceRayMotionNV instructions, code:Acceleration
1646 code:Structure must: be an acceleration structure built as a
1650 For code:OpTraceRayMotionNV instructions the code:time operand must: be
1653 For code:OpTraceRayMotionNV instructions the pipeline must: have been
1659 For code:OpHitObjectTraceRayMotionNV instructions, if code:Acceleration
1660 code:Structure was built with
1665 For code:OpHitObjectTraceRayNV and code:OpHitObjectTraceRayMotionNV
1666 instructions, all components of the code:RayOrigin and code:RayDirection
1669 For code:OpHitObjectTraceRayNV and code:OpHitObjectTraceRayMotionNV
1670 instructions, the code:RayTmin and code:RayTmax operands must: be
1673 For code:OpHitObjectTraceRayNV and code:OpHitObjectTraceRayMotionNV
1674 instructions, the code:RayTmin operand must: be less than or equal to
1675 the code:RayTmax operand
1677 For code:OpHitObjectTraceRayNV and code:OpHitObjectTraceRayMotionNV
1678 instructions, code:RayOrigin, code:RayDirection, code:RayTmin, and
1679 code:RayTmax operands must: not contain NaNs
1681 For code:OpHitObjectTraceRayMotionNV instructions, code:Acceleration
1682 code:Structure must: be an acceleration structure built as a
1686 For code:OpHitObjectTraceRayNV and code:OpHitObjectTraceRayMotionNV
1687 instructions the code:time operand must: be between 0.0 and 1.0
1689 For code:OpHitObjectTraceRayMotionNV instructions the pipeline must:
1693 For code:OpHitObjectTraceRayNV and code:OpHitObjectTraceRayMotionNV
1694 instructions, the code:Rayflags operand must: not contain both
1695 code:SkipTrianglesKHR and code:SkipAABBsKHR
1697 For code:OpHitObjectTraceRayNV and code:OpHitObjectTraceRayMotionNV
1698 instructions, the code:Rayflags operand must: not contain more than one
1699 of code:SkipTrianglesKHR, code:CullBackFacingTrianglesKHR, and
1700 code:CullFrontFacingTrianglesKHR
1702 For code:OpHitObjectTraceRayNV and code:OpHitObjectTraceRayMotionNV
1703 instructions, the code:Rayflags operand must: not contain more than one
1704 of code:OpaqueKHR, code:NoOpaqueKHR, code:CullOpaqueKHR, and
1705 code:CullNoOpaqueKHR
1707 For code:OpHitObjectTraceRayNV and code:OpHitObjectTraceRayMotionNV
1708 instructions, if the code:Rayflags operand contains
1709 code:SkipTrianglesKHR, the pipeline must: not have been created with
1712 For code:OpHitObjectTraceRayNV and code:OpHitObjectTraceRayMotionNV
1713 instructions, if the code:Rayflags operand contains code:SkipAABBsKHR,
1718 In compute shaders using the code:GLCompute {ExecutionModel} the pname:x
1719 size in code:LocalSize or code:LocalSizeId must: be less than or equal
1722 In compute shaders using the code:GLCompute {ExecutionModel} the pname:y
1723 size in code:LocalSize or code:LocalSizeId must: be less than or equal
1726 In compute shaders using the code:GLCompute {ExecutionModel} the pname:z
1727 size in code:LocalSize or code:LocalSizeId must: be less than or equal
1730 In compute shaders using the code:GLCompute {ExecutionModel} the product
1731 of pname:x size, pname:y size, and pname:z size in code:LocalSize or
1732 code:LocalSizeId must: be less than or equal to
1736 The {ExecutionMode} code:LocalSizeId must: not be used
1738 Any code:OpTypeVector output interface variables must: not have a higher
1739 code:Component code:Count than a matching code:OpTypeVector input
1744 If {ExecutionMode} code:LocalSizeId is used, <<features-maintenance4,
1748 code:OpTypeVector output interface variables must: not have a higher
1749 code:Component code:Count than a matching code:OpTypeVector input
1754 between the code:OpEntryPoint of two shader stages, and declared with
1755 code:Input as its {StorageClass} for the subsequent shader stage, must:
1756 have all code:Location slots and code:Component words declared in the
1757 preceding shader stage's code:OpEntryPoint with code:Output as the
1761 code:OpEntryPoint of two shader stages must: have the same type and
1762 width for each code:Component
1764 Any code:OpVariable, code:Block-decorated code:OpTypeStruct, or
1765 code:Block-decorated code:OpTypeStruct members shared between the
1766 code:OpEntryPoint of two shader stages must: have matching decorations
1770 padding>> in the code:Workgroup {StorageClass} in the code:GLCompute
1777 code:OpVariable with code:Workgroup as its {StorageClass} must: not have
1778 an code:Initializer operand
1782 Any code:OpVariable with code:Workgroup as its {StorageClass} must: not
1783 have an code:Initializer operand
1786 If an code:OpImage*Gather operation has an image operand of code:Offset,
1787 code:ConstOffset, or code:ConstOffsets the offset value must: be greater
1791 If an code:OpImage*Gather operation has an image operand of code:Offset,
1792 code:ConstOffset, or code:ConstOffsets the offset value must: be less
1796 If an code:OpImageSample* or code:OpImageFetch* operation has an image
1797 operand of code:ConstOffset then the offset value must: be greater than
1800 If an code:OpImageSample* or code:OpImageFetch* operation has an image
1801 operand of code:ConstOffset then the offset value must: be less than or
1804 If an code:OpTypeImage has an code:MS operand 0, its bound image must:
1808 If an code:OpTypeImage has an code:MS operand 1, its bound image must:
1815 fragment shader Capability code:SampleRateShading must: not be enabled
1819 The {ExecutionMode} code:SubgroupUniformControlFlowKHR must: not be
1832 code:EarlyAndLateFragmentTestsEXT {ExecutionMode} must: not be used
1836 code:StencilRefUnchangedFrontEXT {ExecutionMode} must: not be used
1840 code:StencilRefUnchangedBackEXT {ExecutionMode} must: not be used
1844 code:StencilRefGreaterFrontEXT {ExecutionMode} must: not be used
1848 code:StencilRefGreaterBackEXT {ExecutionMode} must: not be used
1852 code:StencilRefLessFrontEXT {ExecutionMode} must: not be used
1856 code:StencilRefLessBackEXT {ExecutionMode} must: not be used
1860 If an code:OpImageWeightedSampleQCOM operation is used, then the
1861 code:Texture code:Sampled code:Image and code:Weight code:Image
1864 If an code:OpImageWeightedSampleQCOM operation is used, then the
1865 code:Weight code:Image parameter must: be of {StorageClass}
1866 code:UniformConstant and type code:OpTypeImage with code:Depth=0,
1867 code:Dim=code:2D, code:Arrayed=1, code:MS=0, and code:Sampled=1
1869 If an code:OpImageWeightedSampleQCOM operation is used, then the
1870 code:Weight code:Image parameter must: be decorated with
1871 code:WeightTextureQCOM
1873 If an code:OpImageBlockMatchSADQCOM or code:OpImageBlockMatchSSDQCOM
1874 operation is used, then the code:target code:sampled code:image,
1875 code:reference code:sampled code:image, and code:Block code:Size
1878 If an code:OpImageBlockMatchSSDQCOM or code:OpImageBlockMatchSADQCOM
1879 operation is used, then code:target code:sampled code:image and
1880 code:reference code:sampled code:image parameters must: be of storage
1881 class code:UniformConstant and type code:OpTypeImage with code:Depth=0,
1882 code:Dim=code:2D, code:Arrayed=0, code:MS=0, and code:Sampled=1
1884 If an code:OpImageBlockMatchSSDQCOM or code:OpImageBlockMatchSADQCOM
1885 operation is used, then the code:target code:sampled code:image and
1886 code:reference code:sampled code:image parameters must: be decorated
1887 with code:BlockMatchTextureQCOM
1889 If an code:OpImageBlockMatchSSDQCOM or code:OpImageBlockMatchSADQCOM
1890 operation is used, then code:target code:sampled code:image and
1891 code:reference code:sampled code:image parameters must: have been
1894 If an code:OpImageBlockMatchSSDQCOM or code:OpImageBlockMatchSADQCOM
1895 operation is used, then code:target code:sampled code:image and
1896 code:reference code:sampled code:image parameters must: have been
1900 If an code:OpImageBlockMatchSSDQCOM or code:OpImageBlockMatchSADQCOM
1901 operation is used, then code:target code:sampled code:image and
1902 code:reference code:sampled code:image parameters must: have been
1906 If an code:OpImageBlockMatchSSDQCOM or code:OpImageBlockMatchSADQCOM
1907 operation is used, then code:Block code:Size less than or equal to
1910 If an code:OpImageBoxFilterQCOM operation is used, then code:Box
1911 code:Size.y must: be equal to or greater than 1.0 and less than or equal
1913 pname:maxBoxFilterBlockSize>>.code:height
1915 If an code:OpImageBoxFilterQCOM operation is used, then code:Sampled
1916 code:Texture code:Image and code:Box code:Size parameters must: be
1920 Each code:OpEntryPoint must: not have more than one variable decorated
1921 with code:InputAttachmentIndex per image aspect of the attachment image
1928 code:OpColorAttachmentReadEXT operation must: not be used
1932 code:OpDepthAttachmentReadEXT operation must: not be used
1936 code:OpStencilAttachmentReadEXT operation must: not be used
1939 pname:minSampleShading is 1.0, the code:sample operand of any
1940 code:OpColorAttachmentReadEXT, code:OpDepthAttachmentReadEXT, or
1941 code:OpStencilAttachmentReadEXT operation must: evaluate to the value of
1946 code:OpColorAttachmentReadEXT, code:OpDepthAttachmentReadEXT, or
1947 code:OpStencilAttachmentReadEXT operations are used, then
1951 In mesh shaders using the code:MeshEXT or code:MeshNV {ExecutionModel}
1952 and the code:OutputPoints {ExecutionMode},
1956 if the number of output points is greater than 0, a code:PointSize
1961 code:PointSize decorated variable is written to, all execution paths
1962 must: write to a code:PointSize decorated variable
1966 The code:ShaderEnqueueAMDX capability must: only be used in shaders with
1967 the code:GLCompute execution model
1969 Variables in the code:NodePayloadAMDX storage class must: only be
1970 declared in the code:GLCompute execution model
1972 Variables declared in the code:NodePayloadAMDX storage class must: not
1976 Variables declared in the code:NodeOutputPayloadAMDX storage class must:
1981 code:NodePayloadAMDX storage class, and the combined size of all
1982 statically initialized variables in the code:NodeOutputPayloadAMDX
1990 code:NodeOutputPayloadAMDX storage class
1995 code:OpInitializeNodePayloadsAMDX
1999 If a code:OpImageBlockMatchWindow*QCOM or
2000 code:OpImageBlockMatchGather*QCOM operation is used, then the
2001 code:target code:sampled code:image, code:reference code:sampled
2002 code:image, and code:Block code:Size parameters must: both be
2005 If a code:OpImageBlockMatchWindow*QCOM or
2006 code:OpImageBlockMatchGather*QCOM operation is used, then code:target
2007 code:sampled code:image and code:reference code:sampled code:image
2008 parameters must: be of storage class code:UniformConstant and type
2009 code:OpTypeImage with code:Depth=0, code:Dim=code:2D, code:Arrayed=0,
2010 code:MS=0, and code:Sampled=1
2012 If a code:OpImageBlockMatchWindow*QCOM or
2013 code:OpImageBlockMatchGather*QCOM operation is used, then the
2014 code:target code:sampled code:image and code:reference code:sampled
2015 code:image parameters must: be decorated with code:BlockMatchTextureQCOM
2017 If a code:OpImageBlockMatchWindow*QCOM or
2018 code:OpImageBlockMatchGather*QCOM operation is used, then code:target
2019 code:sampled code:image and code:reference code:sampled code:image
2022 If a code:OpImageBlockMatchWindow*QCOM or
2023 code:OpImageBlockMatchGather*QCOM operation is used, then code:target
2024 code:sampled code:image and code:reference code:sampled code:image
2028 If a code:OpImageBlockMatchWindow*QCOM or
2029 code:OpImageBlockMatchGather*QCOM operation is used, then code:target
2030 code:sampled code:image and code:reference code:sampled code:image
2034 If a code:OpImageBlockMatchWindow*QCOM or
2035 code:OpImageBlockMatchGather*QCOM operation is used, then code:Block
2036 code:Size less than or equal to <<limits-blockmatch-maxblocksize,
2039 If a code:OpImageBlockMatchWindow*QCOM operation is used, then
2040 code:target code:sampled code:image must: have been created using
2069 If the entry point is declared with the code:SignedZeroInfNanPreserve
2073 code:SignedZeroInfNanPreserve {ExecutionMode}: code:OpPhi,
2074 code:OpSelect, code:OpReturnValue, code:OpVectorExtractDynamic,
2075 code:OpVectorInsertDynamic, code:OpVectorShuffle,
2076 code:OpCompositeConstruct, code:OpCompositeExtract,
2077 code:OpCompositeInsert, code:OpCopyObject, code:OpTranspose,
2078 code:OpFConvert, code:OpFNegate, code:OpFAdd, code:OpFSub, code:OpFMul,
2079 code:OpStore.
2080 This {ExecutionMode} must: also be respected by code:OpLoad except for
2081 loads from the code:Input {StorageClass} in the fragment shader stage
2084 code:SignedZeroInfNanPreserve {ExecutionMode}.
2087 code:OpConstant, code:OpConstantComposite, code:OpSpecConstant,
2088 code:OpSpecConstantComposite, code:OpLoad, code:OpStore, code:OpBitcast,
2089 code:OpPhi, code:OpSelect, code:OpFunctionCall, code:OpReturnValue,
2090 code:OpVectorExtractDynamic, code:OpVectorInsertDynamic,
2091 code:OpVectorShuffle, code:OpCompositeConstruct,
2092 code:OpCompositeExtract, code:OpCompositeInsert, code:OpCopyMemory,
2093 code:OpCopyObject.
2109 ** If the entry point is declared with the code:DenormFlushToZero
2117 code:DenormFlushToZero {ExecutionMode}: code:OpSpecConstantOp (with
2118 opcode code:OpFConvert), code:OpFConvert, code:OpFNegate, code:OpFAdd,
2119 code:OpFSub, code:OpFMul, code:OpFDiv, code:OpFRem, code:OpFMod,
2120 code:OpVectorTimesScalar, code:OpMatrixTimesScalar,
2121 code:OpVectorTimesMatrix, code:OpMatrixTimesVector,
2122 code:OpMatrixTimesMatrix, code:OpOuterProduct, code:OpDot; and the
2123 following extended instructions for GLSL: code:Round, code:RoundEven,
2124 code:Trunc, code:FAbs, code:Floor, code:Ceil, code:Fract, code:Radians,
2125 code:Degrees, code:Sin, code:Cos, code:Tan, code:Asin, code:Acos,
2126 code:Atan, code:Sinh, code:Cosh, code:Tanh, code:Asinh, code:Acosh,
2127 code:Atanh, code:Atan2, code:Pow, code:Exp, code:Log, code:Exp2,
2128 code:Log2, code:Sqrt, code:InverseSqrt, code:Determinant,
2129 code:MatrixInverse, code:Modf, code:ModfStruct, code:FMin, code:FMax,
2130 code:FClamp, code:FMix, code:Step, code:SmoothStep, code:Fma,
2131 code:UnpackHalf2x16, code:UnpackDouble2x32, code:Length, code:Distance,
2132 code:Cross, code:Normalize, code:FaceForward, code:Reflect,
2133 code:Refract, code:NMin, code:NMax, code:NClamp.
2137 code:DenormPreserve {ExecutionMode}: code:OpTranspose,
2138 code:OpSpecConstantOp, code:OpFConvert, code:OpFNegate, code:OpFAdd,
2139 code:OpFSub, code:OpFMul, code:OpVectorTimesScalar,
2140 code:OpMatrixTimesScalar, code:OpVectorTimesMatrix,
2141 code:OpMatrixTimesVector, code:OpMatrixTimesMatrix,
2142 code:OpOuterProduct, code:OpDot, code:OpFOrdEqual, code:OpFUnordEqual,
2143 code:OpFOrdNotEqual, code:OpFUnordNotEqual, code:OpFOrdLessThan,
2144 code:OpFUnordLessThan, code:OpFOrdGreaterThan,
2145 code:OpFUnordGreaterThan, code:OpFOrdLessThanEqual,
2146 code:OpFUnordLessThanEqual, code:OpFOrdGreaterThanEqual,
2147 code:OpFUnordGreaterThanEqual; and the following extended instructions
2148 for GLSL: code:FAbs, code:FSign, code:Radians, code:Degrees, code:FMin,
2149 code:FMax, code:FClamp, code:FMix, code:Fma, code:PackHalf2x16,
2150 code:PackDouble2x32, code:UnpackHalf2x16, code:UnpackDouble2x32,
2151 code:NMin, code:NMax, code:NClamp.
2174 In shaders that use the code:SignedZeroInfNanPreserve {ExecutionMode} the
2178 code:NoContraction decoration.
2184 For example, in the absence of the code:NoContraction decoration
2187 The code:SignedZeroInfNanPreserve does not prevent these transformations,
2191 If the code:NoContraction decoration is applied then operations may not be
2197 If both code:NoContraction and code:SignedZeroInfNanPreserve are used then
2217 the code:RoundingModeRTE or the code:RoundingModeRTZ {ExecutionMode}.
2219 These execution modes do not affect code:OpQuantizeToF16.
2270 If the entry point is declared with the code:DenormFlushToZero execution
2274 If the entry point is declared with the code:DenormPreserve {ExecutionMode},
2287 | code:OpFAdd
2289 | code:OpFSub
2291 | code:OpFMul, code:OpVectorTimesScalar, code:OpMatrixTimesScalar
2293 | code:OpDot(x, y)
2295 | code:OpFOrdEqual, code:OpFUnordEqual
2297 | code:OpFOrdLessThan, code:OpFUnordLessThan
2299 | code:OpFOrdGreaterThan, code:OpFUnordGreaterThan
2301 | code:OpFOrdLessThanEqual, code:OpFUnordLessThanEqual
2303 | code:OpFOrdGreaterThanEqual, code:OpFUnordGreaterThanEqual
2305 | code:OpFDiv(x,y)
2307 | code:OpFRem(x,y)
2309 | code:OpFMod(x,y)
2318 The code:OpFRem and code:OpFMod instructions use cheap approximations of
2331 | code:fma()
2332 2+| Inherited from code:OpFMul followed by code:OpFAdd.
2333 | code:exp(x), code:exp2(x)
2335 | code:log(), code:log2()
2338 | code:pow(x, y)
2339 2+| Inherited from code:exp2(y {times} code:log2(x)).
2340 | code:sqrt()
2341 2+| Inherited from 1.0 / code:inversesqrt().
2342 | code:inversesqrt()
2344 | code:radians(x)
2346 | code:degrees(x)
2348 | code:sin()
2350 | code:cos()
2352 | code:tan()
2354 | code:asin(x)
2356 | code:acos(x)
2358 | code:atan(), code:atan2()
2360 | code:sinh(x)
2362 | code:cosh(x)
2364 | code:tanh()
2366 | code:asinh(x)
2368 | code:acosh(x)
2370 | code:atanh(x)
2372 | code:frexp()
2374 | code:ldexp()
2376 | code:length(x)
2378 | code:distance(x, y)
2380 | code:cross()
2381 2+| Inherited from [eq]#code:OpFSub(code:OpFMul, code:OpFMul)#.
2382 | code:normalize(x)
2384 | code:faceforward(N, I, NRef)
2385 2+| Inherited from [eq]#code:dot(NRef, I) < 0.0 ? N : -N#.
2386 | code:reflect(x, y)
2387 2+| Inherited from [eq]#x - 2.0 {times} code:dot(y, x) {times} y#.
2388 | code:refract(I, N, eta)
2389 … (eta {times} code:dot(N, I) {plus} code:sqrt(k)) {times} N#, where [eq]#k = 1 - eta {times} eta {…
2390 | code:round
2392 | code:roundEven
2394 | code:trunc
2396 | code:fabs
2398 | code:fsign
2400 | code:floor
2402 | code:ceil
2404 | code:fract
2406 | code:modf
2408 | code:fmin
2410 | code:fmax
2412 | code:fclamp
2414 | code:fmix(x, y, a)
2416 | code:step
2418 | code:smoothStep(edge0, edge1, x)
2421 | code:nmin
2423 | code:nmax
2425 | code:nclamp
2438 | code:OpFAdd | Correctly rounded.
2439 | code:OpFSub | Correctly rounded.
2440 | code:OpFMul, code:OpVectorTimesScalar, code:OpMatrixTimesScalar | Correctly rounded.
2441 | code:OpFOrdEqual, code:OpFUnordEqual | Correct result.
2442 | code:OpFOrdLessThan, code:OpFUnordLessThan | Correct result.
2443 | code:OpFOrdGreaterThan, code:OpFUnordGreaterThan | Correct result.
2444 | code:OpFOrdLessThanEqual, code:OpFUnordLessThanEqual | Correct result.
2445 | code:OpFOrdGreaterThanEqual, code:OpFUnordGreaterThanEqual | Correct result.
2446 | code:OpFDiv(x,y) | 2.5 ULP for [eq]#{vert}y{vert}#…
2454 | code:fma() | Inherited from code:OpFMul followed by code:OpFAdd.
2455 | code:exp(x), code:exp2(x) | [eq]#3 {plus} 2 {times} {vert}x{vert}# ULP.
2456 | code:log(), code:log2() | 3 ULP outside the range [eq]#[0.5, 2.0]#. Absolute error < [eq]#2^-2…
2457 | code:pow(x, y) | Inherited from code:exp2(y {times} code:log2(x)).
2458 | code:sqrt() | Inherited from 1.0 / code:inversesqrt().
2459 | code:inversesqrt() | 2 ULP.
2468 For the code:OpSRem and code:OpSMod instructions, if either operand is
2474 While the code:OpSRem and code:OpSMod instructions are supported by the
2476 additional functionality beyond what code:OpUMod provides.
2480 code:OpCooperativeMatrixMulAddNV performs its operations in an
2485 code:OpCooperativeMatrixMulAddKHR performs its operations in an
2496 code:Image code:Operands and the underlying image's code:Sampled code:Type
2499 1. If the instruction's code:Image code:Operands contains the
2500 code:SignExtend operand then the access is signed.
2501 2. If the instruction's code:Image code:Operands contains the
2502 code:ZeroExtend operand then the access is unsigned.
2504 code:Sampled code:Type of the code:OpTypeImage being accessed.
2510 When specifying the code:Image code:Format of an code:OpTypeImage, the
2512 code:Sampled code:Type.
2526 For a given code:Image code:Format, the code:Sampled code:Type must: be the
2528 code:Literal code:Width set to that in the _Bit Width_ column.
2536 | code:Unknown | Any | Any | Any
2537 | code:Rgba32f .20+| code:OpTypeFloat .20+| 32 .20+| N/A
2538 | code:Rg32f
2539 | code:R32f
2540 | code:Rgba16f
2541 | code:Rg16f
2542 | code:R16f
2543 | code:Rgba16
2544 | code:Rg16
2545 | code:R16
2546 | code:Rgba16Snorm
2547 | code:Rg16Snorm
2548 | code:R16Snorm
2549 | code:Rgb10A2
2550 | code:R11fG11fB10f
2551 | code:Rgba8
2552 | code:Rg8
2553 | code:R8
2554 | code:Rgba8Snorm
2555 | code:Rg8Snorm
2556 | code:R8Snorm
2557 | code:Rgba32i .19+| code:OpTypeInt .19+| 32 .9+| 1
2558 | code:Rg32i
2559 | code:R32i
2560 | code:Rgba16i
2561 | code:Rg16i
2562 | code:R16i
2563 | code:Rgba8i
2564 | code:Rg8i
2565 | code:R8i
2566 | code:Rgba32ui .10+| 0
2567 | code:Rg32ui
2568 | code:R32ui
2569 | code:Rgba16ui
2570 | code:Rg16ui
2571 | code:R16ui
2572 | code:Rgb10a2ui
2573 | code:Rgba8ui
2574 | code:Rg8ui
2575 | code:R8ui
2576 | code:R64i .2+| code:OpTypeInt .2+| 64 | 1
2577 | code:R64ui | 0
2587 SPIR-V code:Image code:Format values are compatible with elink:VkFormat
2604 code:OpRayQueryGetIntersectionTriangleVertexPositionsKHR are transformed by