• Home
  • Raw
  • Download

Lines Matching refs:code

68 | SPIR-V code:OpCapability +
76 * any code:OpCapability not listed above,
100 | SPIR-V code:OpExtension +
174 code:OpAtomicStore must: not use *Acquire*, *AcquireRelease*, or
177 code:OpAtomicLoad must: not use *Release*, *AcquireRelease*, or
180 code:OpMemoryBarrier must: use one of *Acquire*, *Release*,
183 code:OpMemoryBarrier must: include at least one storage class
185 If the semantics for code:OpControlBarrier includes one of *Acquire*,
189 Any code:OpVariable with an code:Initializer operand must: have
193 Any code:OpVariable with an code:Initializer operand and *Workgroup* as
194 its *Storage Class* operand must: use code:OpConstantNull as the
197 *Scope* for code:OpReadClockKHR must: be limited to *Subgroup* or
200 The code:OriginLowerLeft execution mode must: not be used; fragment
201 entry points must: declare code:OriginUpperLeft
203 The code:PixelCenterInteger execution mode must: not be used (pixels are
206 Any variable in the code:UniformConstant storage class must: be typed as
207 either code:OpTypeImage, code:OpTypeSampler, code:OpTypeSampledImage,
208 code:OpTypeAccelerationStructureKHR, or an array of one of these types
210 code:OpTypeImage must: declare a scalar 32-bit float, 64-bit integer, or
211 32-bit integer type for the "`Sampled Type`" (code:RelaxedPrecision can:
215 code:OpTypeImage must: have a "`Sampled`" operand of 1 (sampled image)
218 The converted bit width, signedness, and numeric type of the code:Image
219 code:Format operand of an code:OpTypeImage must: match the code:Sampled
220 code:Type, as defined in <<spirvenv-format-type-matching>>
222 If an code:OpImageTexelPointer is used in an atomic operation, the image
223 type of the code:image parameter to code:OpImageTexelPointer must: have
224 an image format of code:R64i, code:R64ui, code:R32f, code:R32i, or
225 code:R32ui
227 code:OpImageQuerySizeLod, code:OpImageQueryLod, and
228 code:OpImageQueryLevels must: only consume an "`Image`" operand whose
231 An code:OpTypeImage with a "`Dim`" operand of code:SubpassData must:
235 The [eq]#(u,v)# coordinates used for a code:SubpassData must: be the
240 Objects of types code:OpTypeImage, code:OpTypeSampler,
241 code:OpTypeSampledImage, and arrays of these types must: not be stored
244 Any image operation must: use at most one of the code:Offset,
245 code:ConstOffset, and code:ConstOffsets image operands
247 Image operand code:Offset must: only be used with code:OpImage*Gather
250 Any image instruction which uses an code:Offset, code:ConstOffset, or
251 code:ConstOffsets image operand, must only consume a "`Sampled Image`"
254 The "`Component`" operand of code:OpImageGather, and
255 code:OpImageSparseGather must: be the <id> of a constant instruction
257 code:OpImage*Dref must: not consume an image whose `Dim` is 3D
259 Objects of types code:OpTypeAccelerationStructureKHR and arrays of this
262 The value of the "`Hit Kind`" operand of code:OpReportIntersectionKHR
267 Any code:BuiltIn decoration not listed in
270 The code:Location or code:Component decorations must: not be used with
271 code:BuiltIn
273 The code:Location decorations must: be used on
276 The code:Location decorations must: be used on an code:OpVariable with a
279 The code:Location decorations must: not be used on the members of
280 code:OpVariable with a structure type that is decorated with
281 code:Location
283 The code:Location decorations must: be used on each member of
284 code:OpVariable with a structure type that is a block not decorated with
285 code:Location
287 The code:Component decoration value must: not be greater than 3
289 If the code:Component decoration is used on an code:OpVariable that has
290 a code:OpTypeVector type with a code:Component code:Type with a
291 code:Width that is less than or equal to 32, the sum of its
292 code:Component code:Count and the code:Component decoration value must:
295 If the code:Component decoration is used on an code:OpVariable that has
296 a code:OpTypeVector type with a code:Component code:Type with a
297 code:Width that is equal to 64, the sum of two times its code:Component
298 code:Count and the code:Component decoration value must: be less than 4
300 The code:Component decorations value must: not be 1 or 3 for scalar or
303 The code:Component decorations must: not used with any type that is not
306 The code:GLSLShared and code:GLSLPacked decorations must: not be used
308 The code:Flat, code:NoPerspective, code:Sample, and code:Centroid
309 decorations must: only be used on variables with the code:Output or
310 code:Input storage class
312 The code:Flat, code:NoPerspective, code:Sample, and code:Centroid
313 decorations must: not be used on variables with the code:Output storage
316 The code:Flat, code:NoPerspective, code:Sample, and code:Centroid
317 decorations must: not be used on variables with the code:Input storage
321 with code:Input storage class in a fragment shader, must: be decorated
322 code:Flat
324 The code:ViewportRelativeNV decoration must: only be used on a variable
325 decorated with code:Layer in the vertex, tessellation evaluation, or
328 The code:ViewportRelativeNV decoration must: not be used unless a
329 variable decorated with one of code:ViewportIndex or code:ViewportMaskNV
330 is also statically used by the same code:OpEntryPoint
332 The code:ViewportMaskNV and code:ViewportIndex decorations must: not
333 both be statically used by one or more code:OpEntryPoint's that form the
338 must: not be used for the code:FPRoundingMode decoration
340 The code:FPRoundingMode decoration must: only be used for a width-only
341 conversion instruction whose only uses are code:Object operands of
342 code:OpStore instructions storing through a pointer to a 16-bit
343 floating-point object in the code:StorageBuffer,
344 code:PhysicalStorageBuffer, code:Uniform, or code:Output storage class
346 Variables decorated with code:Invariant and variables with structure
347 types that have any members decorated with code:Invariant must: be in
348 the code:Output or code:Input storage class, code:Invariant used on an
349 code:Input storage class variable or structure member has no effect
351 [[builtin-volatile-semantics]] If the code:VulkanMemoryModel capability
352 is not declared, the code:Volatile decoration must: be used on any
353 variable declaration that includes one of the code:SMIDNV,
354 code:WarpIDNV, code:SubgroupSize, code:SubgroupLocalInvocationId,
355 code:SubgroupEqMask, code:SubgroupGeMask, code:SubgroupGtMask,
356 code:SubgroupLeMask, or code:SubgroupLtMask code:BuiltIn decorations
358 callable shaders, or with the code:RayTmaxKHR code:Builtin decoration
361 If the code:VulkanMemoryModel capability is declared, the code:OpLoad
362 instruction must: use the code:Volatile memory semantics when it
363 accesses into any variable that includes one of the code:SMIDNV,
364 code:WarpIDNV, code:SubgroupSize, code:SubgroupLocalInvocationId,
365 code:SubgroupEqMask, code:SubgroupGeMask, code:SubgroupGtMask,
366 code:SubgroupLeMask, or code:SubgroupLtMask code:BuiltIn decorations
368 callable shaders, or with the code:RayTmaxKHR code:Builtin decoration
371 code:OpTypeRuntimeArray must: only be used for the last member of an
372 code:OpTypeStruct that is in the code:StorageBuffer or
373 code:PhysicalStorageBuffer storage class decorated as code:Block, or
374 that is in the code:Uniform storage class decorated as code:BufferBlock
379 code:Function, or code:Private storage classes, c) _V_ is a non-Block
380 variable in the code:Workgroup storage class, or d) _V_ is an interface
385 If code:OpControlBarrier is used in ray generation, intersection,
387 or geometry shaders, the execution Scope must: be code:Subgroup
389 For each compute shader entry point, either a code:LocalSize or
390 code:LocalSizeId execution mode, or an object decorated with the
391 code:WorkgroupSize decoration must: be specified
393 For compute shaders using the code:DerivativeGroupQuadsNV execution
397 For compute shaders using the code:DerivativeGroupLinearNV execution
401 If code:OpGroupNonUniformBallotBitCount is used, the group operation
408 Output variables or block members decorated with code:Offset that have a
410 an code:Offset value aligned to a 8 byte boundary
413 code:Offset that is a 64-bit type must: be a multiple of 8
415 The first member of an output block specifying a code:Offset decoration
416 must: specify a code:Offset value that is aligned to an 8 byte boundary
417 if that block contains any member decorated with code:Offset and is a
420 Output variables or block members decorated with code:Offset that have a
422 an code:Offset value aligned to a 4 byte boundary
424 Output variables, blocks or block members decorated with code:Offset
429 code:Offset can: be captured for transform feedback, and those variables
430 or block members must: also be decorated with code:XfbBuffer and
431 code:XfbStride, or inherit code:XfbBuffer and code:XfbStride decorations
435 point being compiled decorated with a specific code:XfbBuffer value
436 must: all be decorated with identical code:XfbStride values
439 point being compiled are decorated with code:Stream, then all variables
440 belonging to the same code:XfbBuffer must: specify the same code:Stream
444 entry point being compiled with the same code:XfbBuffer value, the
445 ranges determined by the code:Offset decoration and the size of the type
450 code:XfbBuffer decoration must: specify the same code:XfbBuffer value
452 code:RayPayloadKHR storage class must: only be used in ray generation,
455 code:IncomingRayPayloadKHR storage class must: only be used in closest
458 There must: be at most one variable with the code:IncomingRayPayloadKHR
461 code:HitAttributeKHR storage class must: only be used in intersection,
464 There must: be at most one variable with the code:HitAttributeKHR
467 A variable with code:HitAttributeKHR storage class must: only be written
470 code:CallableDataKHR storage class must: only be used in ray generation,
473 code:IncomingCallableDataKHR storage class must: only be used in
477 code:IncomingCallableDataKHR storage class in the input interface of an
480 The code:Base operand of code:OpPtrAccessChain must: point to one of the
481 following: *Workgroup*, if code:VariablePointers is enabled;
482 *StorageBuffer*, if code:VariablePointers or
483 code:VariablePointersStorageBuffer is enabled; *PhysicalStorageBuffer*,
484 if the code:PhysicalStorageBuffer64 addressing model is enabled
486 If the code:PhysicalStorageBuffer64 addressing model is enabled, all
488 pointer must: include the code:Aligned operand
490 If the code:PhysicalStorageBuffer64 addressing model is enabled, any
491 access chain instruction that accesses into a code:RowMajor matrix must:
492 only be used as the code:Pointer operand to code:OpLoad or code:OpStore
494 If the code:PhysicalStorageBuffer64 addressing model is enabled,
495 code:OpConvertUToPtr and code:OpConvertPtrToU must: use an integer type
496 whose code:Width is 64
498 code:OpTypeForwardPointer must: have a storage class of
499 code:PhysicalStorageBuffer
504 The code:Result code:Type operand of any code:OpImageRead or
505 code:OpImageSparseRead instruction must: be a vector of four components
507 The code:Base operand of any code:OpBitCount, code:OpBitReverse,
508 code:OpBitFieldInsert, code:OpBitFieldSExtract, or
509 code:OpBitFieldUExtract instruction must: be a 32-bit integer scalar or
541 enabled, the code:Subgroup scope must: not be used for
542 code:OpReadClockKHR.
545 enabled, the code:Device scope must: not be used for
546 code:OpReadClockKHR.
552 is not enabled, any variable created with a "`Type`" of code:OpTypeImage
554 code:Unknown must: be decorated with code:NonWritable.
558 is not enabled, any variable created with a "`Type`" of code:OpTypeImage
560 code:Unknown must: be decorated with code:NonReadable.
563 The sum of code:Location and the number of locations the variable it
569 code:Fragment {ExecutionModel} must: be less than or equal to
573 code:Location decorated color attachments written to in the
574 code:Fragment {ExecutionModel} must: be less than or equal to
578 code:OpTypeRuntimeArray must: only be used for an array of variables
579 with storage class code:Uniform, code:StorageBuffer, or
580 code:UniformConstant, or for the outermost dimension of an array of
589 code:NonUniform.
603 <<features-subgroupBroadcastDynamicId,code:subgroupBroadcastDynamicId>>
605 "`Index`" for code:OpGroupNonUniformQuadBroadcast must: be dynamically
610 <<features-subgroupBroadcastDynamicId,code:subgroupBroadcastDynamicId>>
612 "`Id`" for code:OpGroupNonUniformBroadcast must: be dynamically uniform
738 is ename:VK_FALSE, then code:SignedZeroInfNanPreserve for 16-bit
743 is ename:VK_FALSE, then code:SignedZeroInfNanPreserve for 32-bit
748 is ename:VK_FALSE, then code:SignedZeroInfNanPreserve for 64-bit
753 is ename:VK_FALSE, then code:DenormPreserve for 16-bit floating-point
758 is ename:VK_FALSE, then code:DenormPreserve for 32-bit floating-point
763 is ename:VK_FALSE, then code:DenormPreserve for 64-bit floating-point
768 is ename:VK_FALSE, then code:DenormFlushToZero for 16-bit floating-point
773 is ename:VK_FALSE, then code:DenormFlushToZero for 32-bit floating-point
778 is ename:VK_FALSE, then code:DenormFlushToZero for 64-bit floating-point
783 is ename:VK_FALSE, then code:RoundingModeRTE for 16-bit floating-point
788 is ename:VK_FALSE, then code:RoundingModeRTE for 32-bit floating-point
793 is ename:VK_FALSE, then code:RoundingModeRTE for 64-bit floating-point
798 is ename:VK_FALSE, then code:RoundingModeRTZ for 16-bit floating-point
803 is ename:VK_FALSE, then code:RoundingModeRTZ for 32-bit floating-point
808 is ename:VK_FALSE, then code:RoundingModeRTZ for 64-bit floating-point
813 The code:Offset plus size of the type of each variable, in the output
815 code:XfbBuffer must: not be greater than
818 For any given code:XfbBuffer value, define the buffer data size to be
820 same code:XfbBuffer value, the size of the output interface variable
821 plus the code:Offset is less than or equal to the buffer data size.
822 For a given code:Stream, the sum of all the buffer data sizes for all
826 The Stream value to code:OpEmitStreamVertex and
827 code:OpEndStreamPrimitive must: be less than
832 is ename:VK_FALSE, then execution mode must: be code:OutputPoints
834 The stream number value to code:Stream must: be less than
837 The XFB Stride value to code:XfbStride must: be less than or equal to
842 If the code:PhysicalStorageBuffer64 addressing model is enabled any load
846 If the code:PhysicalStorageBuffer64 addressing model is enabled the
848 aligned as specified by the code:Aligned memory access operand.
852 For code:OpTypeCooperativeMatrixNV, the component type, scope, number of
856 For code:OpCooperativeMatrixMulAddNV, the type of code:A must: have
862 For code:OpCooperativeMatrixMulAddNV, the type of code:B must: have
868 For code:OpCooperativeMatrixMulAddNV, the type of code:C must: have
874 For code:OpCooperativeMatrixMulAddNV, the type of code:Result must: have
880 For code:OpCooperativeMatrixMulAddNV, the type of code:A, code:B,
881 code:C, and code:Result must: all have a scope of pname:scope.
883 code:OpTypeCooperativeMatrixNV and code:OpCooperativeMatrix*
888 code:DescriptorSet and code:Binding decorations must: obey the
894 For code:OpCooperativeMatrixLoadNV and code:OpCooperativeMatrixStoreNV
895 instructions, the code:Pointer and code:Stride operands must: be aligned
897 column (depending on code:ColumnMajor) of the matrix (where the natural
906 are not supported by the implementation and code:OpCapability must: not
907 be set to code:InterpolationFunction.
912 is ename:VK_FALSE, then code:OpExecutionMode must: not be set to
913 code:IsoLines.
918 is ename:VK_FALSE, then code:OpExecutionMode must: not be set to
919 code:PointMode.
1021 code:NonWritable decoration.
1027 code:NonWritable decoration.
1041 The first element of the code:Offset operand of code:InterpolateAtOffset
1048 The first element of the code:Offset operand of code:InterpolateAtOffset
1057 The second element of the code:Offset operand of
1058 code:InterpolateAtOffset must: be greater than or equal to:
1064 The second element of the code:Offset operand of
1065 code:InterpolateAtOffset must: be less than or equal to:
1075 For code:OpRayQueryInitializeKHR instructions, all components of the
1076 code:RayOrigin and code:RayDirection operands must: be finite
1079 For code:OpRayQueryInitializeKHR instructions, the code:RayTmin and
1080 code:RayTmax operands must: be non-negative floating-point values.
1082 For code:OpRayQueryInitializeKHR instructions, the code:RayTmin operand
1083 must: be less than or equal to the code:RayTmax operand.
1085 For code:OpRayQueryInitializeKHR instructions, code:RayOrigin,
1086 code:RayDirection, code:RayTmin, and code:RayTmax operands must: not
1089 For code:OpRayQueryInitializeKHR instructions, code:Acceleration
1090 code:Structure must: be an acceleration structure built as a
1093 For code:OpRayQueryGenerateIntersectionKHR instructions, code:Hit code:T
1094 must: satisfy the condition [eq]##code:RayTmin {leq} code:Hit code:T
1095 {leq} code:RayTmax##, where code:RayTmin is equal to the value returned
1096 by code:OpRayQueryGetRayTMinKHR with the same ray query object, and
1097 code:RayTmax is equal to the value of code:OpRayQueryGetIntersectionTKHR
1101 For code:OpRayQueryGenerateIntersectionKHR instructions,
1102 code:Acceleration code:Structure must: not be built with
1108 For code:OpTraceRayKHR instructions, all components of the
1109 code:RayOrigin and code:RayDirection operands must: be finite
1112 For code:OpTraceRayKHR instructions, the code:RayTmin and code:RayTmax
1115 For code:OpTraceRayKHR instructions, the code:RayTmin operand must: be
1116 less than or equal to the code:RayTmax operand.
1118 For code:OpTraceRayKHR instructions, code:RayOrigin, code:RayDirection,
1119 code:RayTmin, and code:RayTmax operands must: not contain NaNs.
1121 For code:OpTraceRayKHR instructions, code:Acceleration code:Structure
1127 For code:OpTraceRayKHR instructions, if code:Acceleration code:Structure
1132 For code:OpTraceRayMotionNV instructions, all components of the
1133 code:RayOrigin and code:RayDirection operands must: be finite
1136 For code:OpTraceRayMotionNV instructions, the code:RayTmin and
1137 code:RayTmax operands must: be non-negative floating-point values.
1139 For code:OpTraceRayMotionNV instructions, the code:RayTmin operand must:
1140 be less than or equal to the code:RayTmax operand.
1142 For code:OpTraceRayMotionNV instructions, code:RayOrigin,
1143 code:RayDirection, code:RayTmin, and code:RayTmax operands must: not
1146 For code:OpTraceRayMotionNV instructions, code:Acceleration
1147 code:Structure must: be an acceleration structure built as a
1151 For code:OpTraceRayMotionNV instructions the code:time operand must: be
1154 For code:OpTraceRayMotionNV instructions the pipeline must: have been
1159 The pname:x size in code:LocalSize or code:LocalSizeId must: be less
1163 The pname:y size in code:LocalSize or code:LocalSizeId must: be less
1167 The pname:z size in code:LocalSize or code:LocalSizeId must: be less
1172 code:LocalSize or code:LocalSizeId must: be less than or equal to
1176 The execution mode code:LocalSizeId must: not be used
1180 if execution mode code:LocalSizeId is used, <<features-maintenance4,
1187 is not enabled, any code:OpVariable with *Workgroup* as its *Storage
1188 Class* must: not have an code:Initializer operand
1192 Any code:OpVariable with *Workgroup* as its *Storage Class* must: not
1193 have an code:Initializer operand
1196 If an code:OpImage*Gather operation has an image operand of code:Offset,
1197 code:ConstOffset, or code:ConstOffsets the offset value must: be greater
1200 If an code:OpImage*Gather operation has an image operand of code:Offset,
1201 code:ConstOffset, or code:ConstOffsets the offset value must: be less
1204 If an code:OpImageSample* or code:OpImageFetch* operation has an image
1205 operand of code:ConstOffset then the offset value must: be greater than
1208 If an code:OpImageSample* or code:OpImageFetch* operation has an image
1209 operand of code:ConstOffset then the offset value must: be less than or
1215 fragment shader Capability code:SampleRateShading must: not be enabled.
1219 The execution mode code:SubgroupUniformControlFlowKHR must: not be
1251 If the entry point is declared with the code:SignedZeroInfNanPreserve
1255 code:SignedZeroInfNanPreserve execution mode: code:OpPhi,
1256 code:OpSelect, code:OpReturnValue, code:OpVectorExtractDynamic,
1257 code:OpVectorInsertDynamic, code:OpVectorShuffle,
1258 code:OpCompositeConstruct, code:OpCompositeExtract,
1259 code:OpCompositeInsert, code:OpCopyObject, code:OpTranspose,
1260 code:OpFConvert, code:OpFNegate, code:OpFAdd, code:OpFSub, code:OpFMul,
1261 code:OpStore.
1262 This execution mode must: also be respected by code:OpLoad except for
1263 loads from the code:Input storage class in the fragment shader stage
1266 code:SignedZeroInfNanPreserve execution mode.
1269 code:OpConstant, code:OpConstantComposite, code:OpSpecConstant,
1270 code:OpSpecConstantComposite, code:OpLoad, code:OpStore, code:OpBitcast,
1271 code:OpPhi, code:OpSelect, code:OpFunctionCall, code:OpReturnValue,
1272 code:OpVectorExtractDynamic, code:OpVectorInsertDynamic,
1273 code:OpVectorShuffle, code:OpCompositeConstruct,
1274 code:OpCompositeExtract, code:OpCompositeInsert, code:OpCopyMemory,
1275 code:OpCopyObject.
1291 ** If the entry point is declared with the code:DenormFlushToZero
1299 code:DenormFlushToZero execution mode: code:OpSpecConstantOp (with
1300 opcode code:OpFConvert), code:OpFConvert, code:OpFNegate, code:OpFAdd,
1301 code:OpFSub, code:OpFMul, code:OpFDiv, code:OpFRem, code:OpFMod,
1302 code:OpVectorTimesScalar, code:OpMatrixTimesScalar,
1303 code:OpVectorTimesMatrix, code:OpMatrixTimesVector,
1304 code:OpMatrixTimesMatrix, code:OpOuterProduct, code:OpDot; and the
1305 following extended instructions for GLSL: code:Round, code:RoundEven,
1306 code:Trunc, code:FAbs, code:Floor, code:Ceil, code:Fract, code:Radians,
1307 code:Degrees, code:Sin, code:Cos, code:Tan, code:Asin, code:Acos,
1308 code:Atan, code:Sinh, code:Cosh, code:Tanh, code:Asinh, code:Acosh,
1309 code:Atanh, code:Atan2, code:Pow, code:Exp, code:Log, code:Exp2,
1310 code:Log2, code:Sqrt, code:InverseSqrt, code:Determinant,
1311 code:MatrixInverse, code:Modf, code:ModfStruct, code:FMin, code:FMax,
1312 code:FClamp, code:FMix, code:Step, code:SmoothStep, code:Fma,
1313 code:UnpackHalf2x16, code:UnpackDouble2x32, code:Length, code:Distance,
1314 code:Cross, code:Normalize, code:FaceForward, code:Reflect,
1315 code:Refract, code:NMin, code:NMax, code:NClamp.
1319 code:DenormPreserve execution mode: code:OpTranspose,
1320 code:OpSpecConstantOp, code:OpFConvert, code:OpFNegate, code:OpFAdd,
1321 code:OpFSub, code:OpFMul, code:OpVectorTimesScalar,
1322 code:OpMatrixTimesScalar, code:OpVectorTimesMatrix,
1323 code:OpMatrixTimesVector, code:OpMatrixTimesMatrix,
1324 code:OpOuterProduct, code:OpDot, code:OpFOrdEqual, code:OpFUnordEqual,
1325 code:OpFOrdNotEqual, code:OpFUnordNotEqual, code:OpFOrdLessThan,
1326 code:OpFUnordLessThan, code:OpFOrdGreaterThan,
1327 code:OpFUnordGreaterThan, code:OpFOrdLessThanEqual,
1328 code:OpFUnordLessThanEqual, code:OpFOrdGreaterThanEqual,
1329 code:OpFUnordGreaterThanEqual; and the following extended instructions
1330 for GLSL: code:FAbs, code:FSign, code:Radians, code:Degrees, code:FMin,
1331 code:FMax, code:FClamp, code:FMix, code:Fma, code:PackHalf2x16,
1332 code:PackDouble2x32, code:UnpackHalf2x16, code:UnpackDouble2x32,
1333 code:NMin, code:NMax, code:NClamp.
1350 the code:RoundingModeRTE or the code:RoundingModeRTZ execution mode.
1352 These execution modes do not affect code:OpQuantizeToF16.
1403 If the entry point is declared with the code:DenormFlushToZero execution
1407 If the entry point is declared with the code:DenormPreserve execution mode,
1420 | code:OpFAdd
1422 | code:OpFSub
1424 | code:OpFMul, code:OpVectorTimesScalar, code:OpMatrixTimesScalar
1426 | code:OpDot(x, y)
1428 | code:OpFOrdEqual, code:OpFUnordEqual
1430 | code:OpFOrdLessThan, code:OpFUnordLessThan
1432 | code:OpFOrdGreaterThan, code:OpFUnordGreaterThan
1434 | code:OpFOrdLessThanEqual, code:OpFUnordLessThanEqual
1436 | code:OpFOrdGreaterThanEqual, code:OpFUnordGreaterThanEqual
1438 | code:OpFDiv(x,y)
1440 | code:OpFRem(x,y)
1442 | code:OpFMod(x,y)
1451 The code:OpFRem and code:OpFMod instructions use cheap approximations of
1464 | code:fma()
1465 2+| Inherited from code:OpFMul followed by code:OpFAdd.
1466 | code:exp(x), code:exp2(x)
1468 | code:log(), code:log2()
1471 | code:pow(x, y)
1472 2+| Inherited from code:exp2(y {times} code:log2(x)).
1473 | code:sqrt()
1474 2+| Inherited from 1.0 / code:inversesqrt().
1475 | code:inversesqrt()
1477 | code:radians(x)
1479 | code:degrees(x)
1481 | code:sin()
1483 | code:cos()
1485 | code:tan()
1487 | code:asin(x)
1489 | code:acos(x)
1491 | code:atan(), code:atan2()
1493 | code:sinh(x)
1495 | code:cosh(x)
1497 | code:tanh()
1499 | code:asinh(x)
1501 | code:acosh(x)
1503 | code:atanh(x)
1505 | code:frexp()
1507 | code:ldexp()
1509 | code:length(x)
1511 | code:distance(x, y)
1513 | code:cross()
1514 2+| Inherited from [eq]#code:OpFSub(code:OpFMul, code:OpFMul)#.
1515 | code:normalize(x)
1517 | code:faceforward(N, I, NRef)
1518 2+| Inherited from [eq]#code:dot(NRef, I) < 0.0 ? N : -N#.
1519 | code:reflect(x, y)
1520 2+| Inherited from [eq]#x - 2.0 {times} code:dot(y, x) {times} y#.
1521 | code:refract(I, N, eta)
1522 … (eta {times} code:dot(N, I) {plus} code:sqrt(k)) {times} N#, where [eq]#k = 1 - eta {times} eta {…
1523 | code:round
1525 | code:roundEven
1527 | code:trunc
1529 | code:fabs
1531 | code:fsign
1533 | code:floor
1535 | code:ceil
1537 | code:fract
1539 | code:modf
1541 | code:fmin
1543 | code:fmax
1545 | code:fclamp
1547 | code:fmix(x, y, a)
1549 | code:step
1551 | code:smoothStep(edge0, edge1, x)
1554 | code:nmin
1556 | code:nmax
1558 | code:nclamp
1571 | code:OpFAdd | Correctly rounded.
1572 | code:OpFSub | Correctly rounded.
1573 | code:OpFMul, code:OpVectorTimesScalar, code:OpMatrixTimesScalar | Correctly rounded.
1574 | code:OpFOrdEqual, code:OpFUnordEqual | Correct result.
1575 | code:OpFOrdLessThan, code:OpFUnordLessThan | Correct result.
1576 | code:OpFOrdGreaterThan, code:OpFUnordGreaterThan | Correct result.
1577 | code:OpFOrdLessThanEqual, code:OpFUnordLessThanEqual | Correct result.
1578 | code:OpFOrdGreaterThanEqual, code:OpFUnordGreaterThanEqual | Correct result.
1579 | code:OpFDiv(x,y) | 2.5 ULP for [eq]#{vert}y{vert}#…
1587 | code:fma() | Inherited from code:OpFMul followed by code:OpFAdd.
1588 | code:exp(x), code:exp2(x) | [eq]#3 {plus} 2 {times} {vert}x{vert}# ULP.
1589 | code:log(), code:log2() | 3 ULP outside the range [eq]#[0.5, 2.0]#. Absolute error < [eq]#2^-2…
1590 | code:pow(x, y) | Inherited from code:exp2(y {times} code:log2(x)).
1591 | code:sqrt() | Inherited from 1.0 / code:inversesqrt().
1592 | code:inversesqrt() | 2 ULP.
1601 For the code:OpSRem and code:OpSMod instructions, if either operand is
1607 While the code:OpSRem and code:OpSMod instructions are supported by the
1609 additional functionality beyond what code:OpUMod provides.
1613 code:OpCooperativeMatrixMulAddNV performs its operations in an
1624 code:Image code:Operands and the underlying image's code:Sampled code:Type
1627 1. If the instruction's code:Image code:Operands contains the
1628 code:SignExtend operand then the access is signed.
1629 2. If the instruction's code:Image code:Operands contains the
1630 code:ZeroExtend operand then the access is unsigned.
1632 code:Sampled code:Type of the code:OpTypeImage being accessed.
1637 When specifying the code:Image code:Format of an code:OpTypeImage, the
1639 code:Sampled code:Type.
1653 For a given code:Image code:Format, the code:Sampled code:Type must: be the
1655 code:Literal code:Width set to that in the _Bit Width_ column.
1663 | code:Unknown | Any | Any | Any
1664 | code:Rgba32f .20+| code:OpTypeFloat .20+| 32 .20+| N/A
1665 | code:Rg32f
1666 | code:R32f
1667 | code:Rgba16f
1668 | code:Rg16f
1669 | code:R16f
1670 | code:Rgba16
1671 | code:Rg16
1672 | code:R16
1673 | code:Rgba16Snorm
1674 | code:Rg16Snorm
1675 | code:R16Snorm
1676 | code:Rgb10A2
1677 | code:R11fG11fB10f
1678 | code:Rgba8
1679 | code:Rg8
1680 | code:R8
1681 | code:Rgba8Snorm
1682 | code:Rg8Snorm
1683 | code:R8Snorm
1684 | code:Rgba32i .19+| code:OpTypeInt .19+| 32 .9+| 1
1685 | code:Rg32i
1686 | code:R32i
1687 | code:Rgba16i
1688 | code:Rg16i
1689 | code:R16i
1690 | code:Rgba8i
1691 | code:Rg8i
1692 | code:R8i
1693 | code:Rgba32ui .10+| 0
1694 | code:Rg32ui
1695 | code:R32ui
1696 | code:Rgba16ui
1697 | code:Rg16ui
1698 | code:R16ui
1699 | code:Rgb10a2ui
1700 | code:Rgba8ui
1701 | code:Rg8ui
1702 | code:R8ui
1703 | code:R64i .2+| code:OpTypeInt .2+| 64 | 1
1704 | code:R64ui | 0
1710 SPIR-V code:Image code:Format values are compatible with elink:VkFormat
1717 |code:Unknown |Any
1718 |code:Rgba32f |ename:VK_FORMAT_R32G32B32A32_SFLOAT
1719 |code:Rgba16f |ename:VK_FORMAT_R16G16B16A16_SFLOAT
1720 |code:R32f |ename:VK_FORMAT_R32_SFLOAT
1721 |code:Rgba8 |ename:VK_FORMAT_R8G8B8A8_UNORM
1722 |code:Rgba8Snorm |ename:VK_FORMAT_R8G8B8A8_SNORM
1723 |code:Rg32f |ename:VK_FORMAT_R32G32_SFLOAT
1724 |code:Rg16f |ename:VK_FORMAT_R16G16_SFLOAT
1725 |code:R11fG11fB10f |ename:VK_FORMAT_B10G11R11_UFLOAT_PACK32
1726 |code:R16f |ename:VK_FORMAT_R16_SFLOAT
1727 |code:Rgba16 |ename:VK_FORMAT_R16G16B16A16_UNORM
1728 |code:Rgb10A2 |ename:VK_FORMAT_A2B10G10R10_UNORM_PACK32
1729 |code:Rg16 |ename:VK_FORMAT_R16G16_UNORM
1730 |code:Rg8 |ename:VK_FORMAT_R8G8_UNORM
1731 |code:R16 |ename:VK_FORMAT_R16_UNORM
1732 |code:R8 |ename:VK_FORMAT_R8_UNORM
1733 |code:Rgba16Snorm |ename:VK_FORMAT_R16G16B16A16_SNORM
1734 |code:Rg16Snorm |ename:VK_FORMAT_R16G16_SNORM
1735 |code:Rg8Snorm |ename:VK_FORMAT_R8G8_SNORM
1736 |code:R16Snorm |ename:VK_FORMAT_R16_SNORM
1737 |code:R8Snorm |ename:VK_FORMAT_R8_SNORM
1738 |code:Rgba32i |ename:VK_FORMAT_R32G32B32A32_SINT
1739 |code:Rgba16i |ename:VK_FORMAT_R16G16B16A16_SINT
1740 |code:Rgba8i |ename:VK_FORMAT_R8G8B8A8_SINT
1741 |code:R32i |ename:VK_FORMAT_R32_SINT
1742 |code:Rg32i |ename:VK_FORMAT_R32G32_SINT
1743 |code:Rg16i |ename:VK_FORMAT_R16G16_SINT
1744 |code:Rg8i |ename:VK_FORMAT_R8G8_SINT
1745 |code:R16i |ename:VK_FORMAT_R16_SINT
1746 |code:R8i |ename:VK_FORMAT_R8_SINT
1747 |code:Rgba32ui |ename:VK_FORMAT_R32G32B32A32_UINT
1748 |code:Rgba16ui |ename:VK_FORMAT_R16G16B16A16_UINT
1749 |code:Rgba8ui |ename:VK_FORMAT_R8G8B8A8_UINT
1750 |code:R32ui |ename:VK_FORMAT_R32_UINT
1751 |code:Rgb10a2ui |ename:VK_FORMAT_A2B10G10R10_UINT_PACK32
1752 |code:Rg32ui |ename:VK_FORMAT_R32G32_UINT
1753 |code:Rg16ui |ename:VK_FORMAT_R16G16_UINT
1754 |code:Rg8ui |ename:VK_FORMAT_R8G8_UINT
1755 |code:R16ui |ename:VK_FORMAT_R16_UINT
1756 |code:R8ui |ename:VK_FORMAT_R8_UINT
1757 |code:R64i |ename:VK_FORMAT_R64_SINT
1758 |code:R64ui |ename:VK_FORMAT_R64_UINT