1 // Copyright (c) 2014-2020 The Khronos Group Inc.
2 //
3 // Permission is hereby granted, free of charge, to any person obtaining a copy
4 // of this software and/or associated documentation files (the "Materials"),
5 // to deal in the Materials without restriction, including without limitation
6 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
7 // and/or sell copies of the Materials, and to permit persons to whom the
8 // Materials are furnished to do so, subject to the following conditions:
9 //
10 // The above copyright notice and this permission notice shall be included in
11 // all copies or substantial portions of the Materials.
12 //
13 // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
14 // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
15 // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
16 //
17 // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
23 // IN THE MATERIALS.
24
25 // This header is automatically generated by the same tool that creates
26 // the Binary Section of the SPIR-V specification.
27
28 // Enumeration tokens for SPIR-V, in various styles:
29 // C, C++, C++11, JSON, Lua, Python, C#, D
30 //
31 // - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
32 // - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
33 // - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
34 // - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
35 // - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
36 // - C# will use enum classes in the Specification class located in the "Spv" namespace,
37 // e.g.: Spv.Specification.SourceLanguage.GLSL
38 // - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
39 //
40 // Some tokens act like mask values, which can be OR'd together,
41 // while others are mutually exclusive. The mask-like ones have
42 // "Mask" in their name, and a parallel enum that has the shift
43 // amount (1 << x) for each corresponding enumerant.
44
45 #ifndef spirv_HPP
46 #define spirv_HPP
47
48 namespace spv {
49
50 typedef unsigned int Id;
51
52 #define SPV_VERSION 0x10500
53 #define SPV_REVISION 3
54
55 static const unsigned int MagicNumber = 0x07230203;
56 static const unsigned int Version = 0x00010500;
57 static const unsigned int Revision = 3;
58 static const unsigned int OpCodeMask = 0xffff;
59 static const unsigned int WordCountShift = 16;
60
61 enum SourceLanguage {
62 SourceLanguageUnknown = 0,
63 SourceLanguageESSL = 1,
64 SourceLanguageGLSL = 2,
65 SourceLanguageOpenCL_C = 3,
66 SourceLanguageOpenCL_CPP = 4,
67 SourceLanguageHLSL = 5,
68 SourceLanguageMax = 0x7fffffff,
69 };
70
71 enum ExecutionModel {
72 ExecutionModelVertex = 0,
73 ExecutionModelTessellationControl = 1,
74 ExecutionModelTessellationEvaluation = 2,
75 ExecutionModelGeometry = 3,
76 ExecutionModelFragment = 4,
77 ExecutionModelGLCompute = 5,
78 ExecutionModelKernel = 6,
79 ExecutionModelTaskNV = 5267,
80 ExecutionModelMeshNV = 5268,
81 ExecutionModelRayGenerationKHR = 5313,
82 ExecutionModelRayGenerationNV = 5313,
83 ExecutionModelIntersectionKHR = 5314,
84 ExecutionModelIntersectionNV = 5314,
85 ExecutionModelAnyHitKHR = 5315,
86 ExecutionModelAnyHitNV = 5315,
87 ExecutionModelClosestHitKHR = 5316,
88 ExecutionModelClosestHitNV = 5316,
89 ExecutionModelMissKHR = 5317,
90 ExecutionModelMissNV = 5317,
91 ExecutionModelCallableKHR = 5318,
92 ExecutionModelCallableNV = 5318,
93 ExecutionModelMax = 0x7fffffff,
94 };
95
96 enum AddressingModel {
97 AddressingModelLogical = 0,
98 AddressingModelPhysical32 = 1,
99 AddressingModelPhysical64 = 2,
100 AddressingModelPhysicalStorageBuffer64 = 5348,
101 AddressingModelPhysicalStorageBuffer64EXT = 5348,
102 AddressingModelMax = 0x7fffffff,
103 };
104
105 enum MemoryModel {
106 MemoryModelSimple = 0,
107 MemoryModelGLSL450 = 1,
108 MemoryModelOpenCL = 2,
109 MemoryModelVulkan = 3,
110 MemoryModelVulkanKHR = 3,
111 MemoryModelMax = 0x7fffffff,
112 };
113
114 enum ExecutionMode {
115 ExecutionModeInvocations = 0,
116 ExecutionModeSpacingEqual = 1,
117 ExecutionModeSpacingFractionalEven = 2,
118 ExecutionModeSpacingFractionalOdd = 3,
119 ExecutionModeVertexOrderCw = 4,
120 ExecutionModeVertexOrderCcw = 5,
121 ExecutionModePixelCenterInteger = 6,
122 ExecutionModeOriginUpperLeft = 7,
123 ExecutionModeOriginLowerLeft = 8,
124 ExecutionModeEarlyFragmentTests = 9,
125 ExecutionModePointMode = 10,
126 ExecutionModeXfb = 11,
127 ExecutionModeDepthReplacing = 12,
128 ExecutionModeDepthGreater = 14,
129 ExecutionModeDepthLess = 15,
130 ExecutionModeDepthUnchanged = 16,
131 ExecutionModeLocalSize = 17,
132 ExecutionModeLocalSizeHint = 18,
133 ExecutionModeInputPoints = 19,
134 ExecutionModeInputLines = 20,
135 ExecutionModeInputLinesAdjacency = 21,
136 ExecutionModeTriangles = 22,
137 ExecutionModeInputTrianglesAdjacency = 23,
138 ExecutionModeQuads = 24,
139 ExecutionModeIsolines = 25,
140 ExecutionModeOutputVertices = 26,
141 ExecutionModeOutputPoints = 27,
142 ExecutionModeOutputLineStrip = 28,
143 ExecutionModeOutputTriangleStrip = 29,
144 ExecutionModeVecTypeHint = 30,
145 ExecutionModeContractionOff = 31,
146 ExecutionModeInitializer = 33,
147 ExecutionModeFinalizer = 34,
148 ExecutionModeSubgroupSize = 35,
149 ExecutionModeSubgroupsPerWorkgroup = 36,
150 ExecutionModeSubgroupsPerWorkgroupId = 37,
151 ExecutionModeLocalSizeId = 38,
152 ExecutionModeLocalSizeHintId = 39,
153 ExecutionModePostDepthCoverage = 4446,
154 ExecutionModeDenormPreserve = 4459,
155 ExecutionModeDenormFlushToZero = 4460,
156 ExecutionModeSignedZeroInfNanPreserve = 4461,
157 ExecutionModeRoundingModeRTE = 4462,
158 ExecutionModeRoundingModeRTZ = 4463,
159 ExecutionModeStencilRefReplacingEXT = 5027,
160 ExecutionModeOutputLinesNV = 5269,
161 ExecutionModeOutputPrimitivesNV = 5270,
162 ExecutionModeDerivativeGroupQuadsNV = 5289,
163 ExecutionModeDerivativeGroupLinearNV = 5290,
164 ExecutionModeOutputTrianglesNV = 5298,
165 ExecutionModePixelInterlockOrderedEXT = 5366,
166 ExecutionModePixelInterlockUnorderedEXT = 5367,
167 ExecutionModeSampleInterlockOrderedEXT = 5368,
168 ExecutionModeSampleInterlockUnorderedEXT = 5369,
169 ExecutionModeShadingRateInterlockOrderedEXT = 5370,
170 ExecutionModeShadingRateInterlockUnorderedEXT = 5371,
171 ExecutionModeMaxWorkgroupSizeINTEL = 5893,
172 ExecutionModeMaxWorkDimINTEL = 5894,
173 ExecutionModeNoGlobalOffsetINTEL = 5895,
174 ExecutionModeNumSIMDWorkitemsINTEL = 5896,
175 ExecutionModeMax = 0x7fffffff,
176 };
177
178 enum StorageClass {
179 StorageClassUniformConstant = 0,
180 StorageClassInput = 1,
181 StorageClassUniform = 2,
182 StorageClassOutput = 3,
183 StorageClassWorkgroup = 4,
184 StorageClassCrossWorkgroup = 5,
185 StorageClassPrivate = 6,
186 StorageClassFunction = 7,
187 StorageClassGeneric = 8,
188 StorageClassPushConstant = 9,
189 StorageClassAtomicCounter = 10,
190 StorageClassImage = 11,
191 StorageClassStorageBuffer = 12,
192 StorageClassCallableDataKHR = 5328,
193 StorageClassCallableDataNV = 5328,
194 StorageClassIncomingCallableDataKHR = 5329,
195 StorageClassIncomingCallableDataNV = 5329,
196 StorageClassRayPayloadKHR = 5338,
197 StorageClassRayPayloadNV = 5338,
198 StorageClassHitAttributeKHR = 5339,
199 StorageClassHitAttributeNV = 5339,
200 StorageClassIncomingRayPayloadKHR = 5342,
201 StorageClassIncomingRayPayloadNV = 5342,
202 StorageClassShaderRecordBufferKHR = 5343,
203 StorageClassShaderRecordBufferNV = 5343,
204 StorageClassPhysicalStorageBuffer = 5349,
205 StorageClassPhysicalStorageBufferEXT = 5349,
206 StorageClassCodeSectionINTEL = 5605,
207 StorageClassMax = 0x7fffffff,
208 };
209
210 enum Dim {
211 Dim1D = 0,
212 Dim2D = 1,
213 Dim3D = 2,
214 DimCube = 3,
215 DimRect = 4,
216 DimBuffer = 5,
217 DimSubpassData = 6,
218 DimMax = 0x7fffffff,
219 };
220
221 enum SamplerAddressingMode {
222 SamplerAddressingModeNone = 0,
223 SamplerAddressingModeClampToEdge = 1,
224 SamplerAddressingModeClamp = 2,
225 SamplerAddressingModeRepeat = 3,
226 SamplerAddressingModeRepeatMirrored = 4,
227 SamplerAddressingModeMax = 0x7fffffff,
228 };
229
230 enum SamplerFilterMode {
231 SamplerFilterModeNearest = 0,
232 SamplerFilterModeLinear = 1,
233 SamplerFilterModeMax = 0x7fffffff,
234 };
235
236 enum ImageFormat {
237 ImageFormatUnknown = 0,
238 ImageFormatRgba32f = 1,
239 ImageFormatRgba16f = 2,
240 ImageFormatR32f = 3,
241 ImageFormatRgba8 = 4,
242 ImageFormatRgba8Snorm = 5,
243 ImageFormatRg32f = 6,
244 ImageFormatRg16f = 7,
245 ImageFormatR11fG11fB10f = 8,
246 ImageFormatR16f = 9,
247 ImageFormatRgba16 = 10,
248 ImageFormatRgb10A2 = 11,
249 ImageFormatRg16 = 12,
250 ImageFormatRg8 = 13,
251 ImageFormatR16 = 14,
252 ImageFormatR8 = 15,
253 ImageFormatRgba16Snorm = 16,
254 ImageFormatRg16Snorm = 17,
255 ImageFormatRg8Snorm = 18,
256 ImageFormatR16Snorm = 19,
257 ImageFormatR8Snorm = 20,
258 ImageFormatRgba32i = 21,
259 ImageFormatRgba16i = 22,
260 ImageFormatRgba8i = 23,
261 ImageFormatR32i = 24,
262 ImageFormatRg32i = 25,
263 ImageFormatRg16i = 26,
264 ImageFormatRg8i = 27,
265 ImageFormatR16i = 28,
266 ImageFormatR8i = 29,
267 ImageFormatRgba32ui = 30,
268 ImageFormatRgba16ui = 31,
269 ImageFormatRgba8ui = 32,
270 ImageFormatR32ui = 33,
271 ImageFormatRgb10a2ui = 34,
272 ImageFormatRg32ui = 35,
273 ImageFormatRg16ui = 36,
274 ImageFormatRg8ui = 37,
275 ImageFormatR16ui = 38,
276 ImageFormatR8ui = 39,
277 ImageFormatR64ui = 40,
278 ImageFormatR64i = 41,
279 ImageFormatMax = 0x7fffffff,
280 };
281
282 enum ImageChannelOrder {
283 ImageChannelOrderR = 0,
284 ImageChannelOrderA = 1,
285 ImageChannelOrderRG = 2,
286 ImageChannelOrderRA = 3,
287 ImageChannelOrderRGB = 4,
288 ImageChannelOrderRGBA = 5,
289 ImageChannelOrderBGRA = 6,
290 ImageChannelOrderARGB = 7,
291 ImageChannelOrderIntensity = 8,
292 ImageChannelOrderLuminance = 9,
293 ImageChannelOrderRx = 10,
294 ImageChannelOrderRGx = 11,
295 ImageChannelOrderRGBx = 12,
296 ImageChannelOrderDepth = 13,
297 ImageChannelOrderDepthStencil = 14,
298 ImageChannelOrdersRGB = 15,
299 ImageChannelOrdersRGBx = 16,
300 ImageChannelOrdersRGBA = 17,
301 ImageChannelOrdersBGRA = 18,
302 ImageChannelOrderABGR = 19,
303 ImageChannelOrderMax = 0x7fffffff,
304 };
305
306 enum ImageChannelDataType {
307 ImageChannelDataTypeSnormInt8 = 0,
308 ImageChannelDataTypeSnormInt16 = 1,
309 ImageChannelDataTypeUnormInt8 = 2,
310 ImageChannelDataTypeUnormInt16 = 3,
311 ImageChannelDataTypeUnormShort565 = 4,
312 ImageChannelDataTypeUnormShort555 = 5,
313 ImageChannelDataTypeUnormInt101010 = 6,
314 ImageChannelDataTypeSignedInt8 = 7,
315 ImageChannelDataTypeSignedInt16 = 8,
316 ImageChannelDataTypeSignedInt32 = 9,
317 ImageChannelDataTypeUnsignedInt8 = 10,
318 ImageChannelDataTypeUnsignedInt16 = 11,
319 ImageChannelDataTypeUnsignedInt32 = 12,
320 ImageChannelDataTypeHalfFloat = 13,
321 ImageChannelDataTypeFloat = 14,
322 ImageChannelDataTypeUnormInt24 = 15,
323 ImageChannelDataTypeUnormInt101010_2 = 16,
324 ImageChannelDataTypeMax = 0x7fffffff,
325 };
326
327 enum ImageOperandsShift {
328 ImageOperandsBiasShift = 0,
329 ImageOperandsLodShift = 1,
330 ImageOperandsGradShift = 2,
331 ImageOperandsConstOffsetShift = 3,
332 ImageOperandsOffsetShift = 4,
333 ImageOperandsConstOffsetsShift = 5,
334 ImageOperandsSampleShift = 6,
335 ImageOperandsMinLodShift = 7,
336 ImageOperandsMakeTexelAvailableShift = 8,
337 ImageOperandsMakeTexelAvailableKHRShift = 8,
338 ImageOperandsMakeTexelVisibleShift = 9,
339 ImageOperandsMakeTexelVisibleKHRShift = 9,
340 ImageOperandsNonPrivateTexelShift = 10,
341 ImageOperandsNonPrivateTexelKHRShift = 10,
342 ImageOperandsVolatileTexelShift = 11,
343 ImageOperandsVolatileTexelKHRShift = 11,
344 ImageOperandsSignExtendShift = 12,
345 ImageOperandsZeroExtendShift = 13,
346 ImageOperandsMax = 0x7fffffff,
347 };
348
349 enum ImageOperandsMask {
350 ImageOperandsMaskNone = 0,
351 ImageOperandsBiasMask = 0x00000001,
352 ImageOperandsLodMask = 0x00000002,
353 ImageOperandsGradMask = 0x00000004,
354 ImageOperandsConstOffsetMask = 0x00000008,
355 ImageOperandsOffsetMask = 0x00000010,
356 ImageOperandsConstOffsetsMask = 0x00000020,
357 ImageOperandsSampleMask = 0x00000040,
358 ImageOperandsMinLodMask = 0x00000080,
359 ImageOperandsMakeTexelAvailableMask = 0x00000100,
360 ImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
361 ImageOperandsMakeTexelVisibleMask = 0x00000200,
362 ImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
363 ImageOperandsNonPrivateTexelMask = 0x00000400,
364 ImageOperandsNonPrivateTexelKHRMask = 0x00000400,
365 ImageOperandsVolatileTexelMask = 0x00000800,
366 ImageOperandsVolatileTexelKHRMask = 0x00000800,
367 ImageOperandsSignExtendMask = 0x00001000,
368 ImageOperandsZeroExtendMask = 0x00002000,
369 };
370
371 enum FPFastMathModeShift {
372 FPFastMathModeNotNaNShift = 0,
373 FPFastMathModeNotInfShift = 1,
374 FPFastMathModeNSZShift = 2,
375 FPFastMathModeAllowRecipShift = 3,
376 FPFastMathModeFastShift = 4,
377 FPFastMathModeMax = 0x7fffffff,
378 };
379
380 enum FPFastMathModeMask {
381 FPFastMathModeMaskNone = 0,
382 FPFastMathModeNotNaNMask = 0x00000001,
383 FPFastMathModeNotInfMask = 0x00000002,
384 FPFastMathModeNSZMask = 0x00000004,
385 FPFastMathModeAllowRecipMask = 0x00000008,
386 FPFastMathModeFastMask = 0x00000010,
387 };
388
389 enum FPRoundingMode {
390 FPRoundingModeRTE = 0,
391 FPRoundingModeRTZ = 1,
392 FPRoundingModeRTP = 2,
393 FPRoundingModeRTN = 3,
394 FPRoundingModeMax = 0x7fffffff,
395 };
396
397 enum LinkageType {
398 LinkageTypeExport = 0,
399 LinkageTypeImport = 1,
400 LinkageTypeMax = 0x7fffffff,
401 };
402
403 enum AccessQualifier {
404 AccessQualifierReadOnly = 0,
405 AccessQualifierWriteOnly = 1,
406 AccessQualifierReadWrite = 2,
407 AccessQualifierMax = 0x7fffffff,
408 };
409
410 enum FunctionParameterAttribute {
411 FunctionParameterAttributeZext = 0,
412 FunctionParameterAttributeSext = 1,
413 FunctionParameterAttributeByVal = 2,
414 FunctionParameterAttributeSret = 3,
415 FunctionParameterAttributeNoAlias = 4,
416 FunctionParameterAttributeNoCapture = 5,
417 FunctionParameterAttributeNoWrite = 6,
418 FunctionParameterAttributeNoReadWrite = 7,
419 FunctionParameterAttributeMax = 0x7fffffff,
420 };
421
422 enum Decoration {
423 DecorationRelaxedPrecision = 0,
424 DecorationSpecId = 1,
425 DecorationBlock = 2,
426 DecorationBufferBlock = 3,
427 DecorationRowMajor = 4,
428 DecorationColMajor = 5,
429 DecorationArrayStride = 6,
430 DecorationMatrixStride = 7,
431 DecorationGLSLShared = 8,
432 DecorationGLSLPacked = 9,
433 DecorationCPacked = 10,
434 DecorationBuiltIn = 11,
435 DecorationNoPerspective = 13,
436 DecorationFlat = 14,
437 DecorationPatch = 15,
438 DecorationCentroid = 16,
439 DecorationSample = 17,
440 DecorationInvariant = 18,
441 DecorationRestrict = 19,
442 DecorationAliased = 20,
443 DecorationVolatile = 21,
444 DecorationConstant = 22,
445 DecorationCoherent = 23,
446 DecorationNonWritable = 24,
447 DecorationNonReadable = 25,
448 DecorationUniform = 26,
449 DecorationUniformId = 27,
450 DecorationSaturatedConversion = 28,
451 DecorationStream = 29,
452 DecorationLocation = 30,
453 DecorationComponent = 31,
454 DecorationIndex = 32,
455 DecorationBinding = 33,
456 DecorationDescriptorSet = 34,
457 DecorationOffset = 35,
458 DecorationXfbBuffer = 36,
459 DecorationXfbStride = 37,
460 DecorationFuncParamAttr = 38,
461 DecorationFPRoundingMode = 39,
462 DecorationFPFastMathMode = 40,
463 DecorationLinkageAttributes = 41,
464 DecorationNoContraction = 42,
465 DecorationInputAttachmentIndex = 43,
466 DecorationAlignment = 44,
467 DecorationMaxByteOffset = 45,
468 DecorationAlignmentId = 46,
469 DecorationMaxByteOffsetId = 47,
470 DecorationNoSignedWrap = 4469,
471 DecorationNoUnsignedWrap = 4470,
472 DecorationExplicitInterpAMD = 4999,
473 DecorationOverrideCoverageNV = 5248,
474 DecorationPassthroughNV = 5250,
475 DecorationViewportRelativeNV = 5252,
476 DecorationSecondaryViewportRelativeNV = 5256,
477 DecorationPerPrimitiveNV = 5271,
478 DecorationPerViewNV = 5272,
479 DecorationPerTaskNV = 5273,
480 DecorationPerVertexNV = 5285,
481 DecorationNonUniform = 5300,
482 DecorationNonUniformEXT = 5300,
483 DecorationRestrictPointer = 5355,
484 DecorationRestrictPointerEXT = 5355,
485 DecorationAliasedPointer = 5356,
486 DecorationAliasedPointerEXT = 5356,
487 DecorationReferencedIndirectlyINTEL = 5602,
488 DecorationCounterBuffer = 5634,
489 DecorationHlslCounterBufferGOOGLE = 5634,
490 DecorationHlslSemanticGOOGLE = 5635,
491 DecorationUserSemantic = 5635,
492 DecorationUserTypeGOOGLE = 5636,
493 DecorationRegisterINTEL = 5825,
494 DecorationMemoryINTEL = 5826,
495 DecorationNumbanksINTEL = 5827,
496 DecorationBankwidthINTEL = 5828,
497 DecorationMaxPrivateCopiesINTEL = 5829,
498 DecorationSinglepumpINTEL = 5830,
499 DecorationDoublepumpINTEL = 5831,
500 DecorationMaxReplicatesINTEL = 5832,
501 DecorationSimpleDualPortINTEL = 5833,
502 DecorationMergeINTEL = 5834,
503 DecorationBankBitsINTEL = 5835,
504 DecorationForcePow2DepthINTEL = 5836,
505 DecorationMax = 0x7fffffff,
506 };
507
508 enum BuiltIn {
509 BuiltInPosition = 0,
510 BuiltInPointSize = 1,
511 BuiltInClipDistance = 3,
512 BuiltInCullDistance = 4,
513 BuiltInVertexId = 5,
514 BuiltInInstanceId = 6,
515 BuiltInPrimitiveId = 7,
516 BuiltInInvocationId = 8,
517 BuiltInLayer = 9,
518 BuiltInViewportIndex = 10,
519 BuiltInTessLevelOuter = 11,
520 BuiltInTessLevelInner = 12,
521 BuiltInTessCoord = 13,
522 BuiltInPatchVertices = 14,
523 BuiltInFragCoord = 15,
524 BuiltInPointCoord = 16,
525 BuiltInFrontFacing = 17,
526 BuiltInSampleId = 18,
527 BuiltInSamplePosition = 19,
528 BuiltInSampleMask = 20,
529 BuiltInFragDepth = 22,
530 BuiltInHelperInvocation = 23,
531 BuiltInNumWorkgroups = 24,
532 BuiltInWorkgroupSize = 25,
533 BuiltInWorkgroupId = 26,
534 BuiltInLocalInvocationId = 27,
535 BuiltInGlobalInvocationId = 28,
536 BuiltInLocalInvocationIndex = 29,
537 BuiltInWorkDim = 30,
538 BuiltInGlobalSize = 31,
539 BuiltInEnqueuedWorkgroupSize = 32,
540 BuiltInGlobalOffset = 33,
541 BuiltInGlobalLinearId = 34,
542 BuiltInSubgroupSize = 36,
543 BuiltInSubgroupMaxSize = 37,
544 BuiltInNumSubgroups = 38,
545 BuiltInNumEnqueuedSubgroups = 39,
546 BuiltInSubgroupId = 40,
547 BuiltInSubgroupLocalInvocationId = 41,
548 BuiltInVertexIndex = 42,
549 BuiltInInstanceIndex = 43,
550 BuiltInSubgroupEqMask = 4416,
551 BuiltInSubgroupEqMaskKHR = 4416,
552 BuiltInSubgroupGeMask = 4417,
553 BuiltInSubgroupGeMaskKHR = 4417,
554 BuiltInSubgroupGtMask = 4418,
555 BuiltInSubgroupGtMaskKHR = 4418,
556 BuiltInSubgroupLeMask = 4419,
557 BuiltInSubgroupLeMaskKHR = 4419,
558 BuiltInSubgroupLtMask = 4420,
559 BuiltInSubgroupLtMaskKHR = 4420,
560 BuiltInBaseVertex = 4424,
561 BuiltInBaseInstance = 4425,
562 BuiltInDrawIndex = 4426,
563 BuiltInPrimitiveShadingRateKHR = 4432,
564 BuiltInDeviceIndex = 4438,
565 BuiltInViewIndex = 4440,
566 BuiltInShadingRateKHR = 4444,
567 BuiltInBaryCoordNoPerspAMD = 4992,
568 BuiltInBaryCoordNoPerspCentroidAMD = 4993,
569 BuiltInBaryCoordNoPerspSampleAMD = 4994,
570 BuiltInBaryCoordSmoothAMD = 4995,
571 BuiltInBaryCoordSmoothCentroidAMD = 4996,
572 BuiltInBaryCoordSmoothSampleAMD = 4997,
573 BuiltInBaryCoordPullModelAMD = 4998,
574 BuiltInFragStencilRefEXT = 5014,
575 BuiltInViewportMaskNV = 5253,
576 BuiltInSecondaryPositionNV = 5257,
577 BuiltInSecondaryViewportMaskNV = 5258,
578 BuiltInPositionPerViewNV = 5261,
579 BuiltInViewportMaskPerViewNV = 5262,
580 BuiltInFullyCoveredEXT = 5264,
581 BuiltInTaskCountNV = 5274,
582 BuiltInPrimitiveCountNV = 5275,
583 BuiltInPrimitiveIndicesNV = 5276,
584 BuiltInClipDistancePerViewNV = 5277,
585 BuiltInCullDistancePerViewNV = 5278,
586 BuiltInLayerPerViewNV = 5279,
587 BuiltInMeshViewCountNV = 5280,
588 BuiltInMeshViewIndicesNV = 5281,
589 BuiltInBaryCoordNV = 5286,
590 BuiltInBaryCoordNoPerspNV = 5287,
591 BuiltInFragSizeEXT = 5292,
592 BuiltInFragmentSizeNV = 5292,
593 BuiltInFragInvocationCountEXT = 5293,
594 BuiltInInvocationsPerPixelNV = 5293,
595 BuiltInLaunchIdKHR = 5319,
596 BuiltInLaunchIdNV = 5319,
597 BuiltInLaunchSizeKHR = 5320,
598 BuiltInLaunchSizeNV = 5320,
599 BuiltInWorldRayOriginKHR = 5321,
600 BuiltInWorldRayOriginNV = 5321,
601 BuiltInWorldRayDirectionKHR = 5322,
602 BuiltInWorldRayDirectionNV = 5322,
603 BuiltInObjectRayOriginKHR = 5323,
604 BuiltInObjectRayOriginNV = 5323,
605 BuiltInObjectRayDirectionKHR = 5324,
606 BuiltInObjectRayDirectionNV = 5324,
607 BuiltInRayTminKHR = 5325,
608 BuiltInRayTminNV = 5325,
609 BuiltInRayTmaxKHR = 5326,
610 BuiltInRayTmaxNV = 5326,
611 BuiltInInstanceCustomIndexKHR = 5327,
612 BuiltInInstanceCustomIndexNV = 5327,
613 BuiltInObjectToWorldKHR = 5330,
614 BuiltInObjectToWorldNV = 5330,
615 BuiltInWorldToObjectKHR = 5331,
616 BuiltInWorldToObjectNV = 5331,
617 BuiltInHitTKHR = 5332,
618 BuiltInHitTNV = 5332,
619 BuiltInHitKindKHR = 5333,
620 BuiltInHitKindNV = 5333,
621 BuiltInIncomingRayFlagsKHR = 5351,
622 BuiltInIncomingRayFlagsNV = 5351,
623 BuiltInRayGeometryIndexKHR = 5352,
624 BuiltInWarpsPerSMNV = 5374,
625 BuiltInSMCountNV = 5375,
626 BuiltInWarpIDNV = 5376,
627 BuiltInSMIDNV = 5377,
628 BuiltInMax = 0x7fffffff,
629 };
630
631 enum SelectionControlShift {
632 SelectionControlFlattenShift = 0,
633 SelectionControlDontFlattenShift = 1,
634 SelectionControlMax = 0x7fffffff,
635 };
636
637 enum SelectionControlMask {
638 SelectionControlMaskNone = 0,
639 SelectionControlFlattenMask = 0x00000001,
640 SelectionControlDontFlattenMask = 0x00000002,
641 };
642
643 enum LoopControlShift {
644 LoopControlUnrollShift = 0,
645 LoopControlDontUnrollShift = 1,
646 LoopControlDependencyInfiniteShift = 2,
647 LoopControlDependencyLengthShift = 3,
648 LoopControlMinIterationsShift = 4,
649 LoopControlMaxIterationsShift = 5,
650 LoopControlIterationMultipleShift = 6,
651 LoopControlPeelCountShift = 7,
652 LoopControlPartialCountShift = 8,
653 LoopControlInitiationIntervalINTELShift = 16,
654 LoopControlMaxConcurrencyINTELShift = 17,
655 LoopControlDependencyArrayINTELShift = 18,
656 LoopControlPipelineEnableINTELShift = 19,
657 LoopControlLoopCoalesceINTELShift = 20,
658 LoopControlMaxInterleavingINTELShift = 21,
659 LoopControlSpeculatedIterationsINTELShift = 22,
660 LoopControlMax = 0x7fffffff,
661 };
662
663 enum LoopControlMask {
664 LoopControlMaskNone = 0,
665 LoopControlUnrollMask = 0x00000001,
666 LoopControlDontUnrollMask = 0x00000002,
667 LoopControlDependencyInfiniteMask = 0x00000004,
668 LoopControlDependencyLengthMask = 0x00000008,
669 LoopControlMinIterationsMask = 0x00000010,
670 LoopControlMaxIterationsMask = 0x00000020,
671 LoopControlIterationMultipleMask = 0x00000040,
672 LoopControlPeelCountMask = 0x00000080,
673 LoopControlPartialCountMask = 0x00000100,
674 LoopControlInitiationIntervalINTELMask = 0x00010000,
675 LoopControlMaxConcurrencyINTELMask = 0x00020000,
676 LoopControlDependencyArrayINTELMask = 0x00040000,
677 LoopControlPipelineEnableINTELMask = 0x00080000,
678 LoopControlLoopCoalesceINTELMask = 0x00100000,
679 LoopControlMaxInterleavingINTELMask = 0x00200000,
680 LoopControlSpeculatedIterationsINTELMask = 0x00400000,
681 };
682
683 enum FunctionControlShift {
684 FunctionControlInlineShift = 0,
685 FunctionControlDontInlineShift = 1,
686 FunctionControlPureShift = 2,
687 FunctionControlConstShift = 3,
688 FunctionControlMax = 0x7fffffff,
689 };
690
691 enum FunctionControlMask {
692 FunctionControlMaskNone = 0,
693 FunctionControlInlineMask = 0x00000001,
694 FunctionControlDontInlineMask = 0x00000002,
695 FunctionControlPureMask = 0x00000004,
696 FunctionControlConstMask = 0x00000008,
697 };
698
699 enum MemorySemanticsShift {
700 MemorySemanticsAcquireShift = 1,
701 MemorySemanticsReleaseShift = 2,
702 MemorySemanticsAcquireReleaseShift = 3,
703 MemorySemanticsSequentiallyConsistentShift = 4,
704 MemorySemanticsUniformMemoryShift = 6,
705 MemorySemanticsSubgroupMemoryShift = 7,
706 MemorySemanticsWorkgroupMemoryShift = 8,
707 MemorySemanticsCrossWorkgroupMemoryShift = 9,
708 MemorySemanticsAtomicCounterMemoryShift = 10,
709 MemorySemanticsImageMemoryShift = 11,
710 MemorySemanticsOutputMemoryShift = 12,
711 MemorySemanticsOutputMemoryKHRShift = 12,
712 MemorySemanticsMakeAvailableShift = 13,
713 MemorySemanticsMakeAvailableKHRShift = 13,
714 MemorySemanticsMakeVisibleShift = 14,
715 MemorySemanticsMakeVisibleKHRShift = 14,
716 MemorySemanticsVolatileShift = 15,
717 MemorySemanticsMax = 0x7fffffff,
718 };
719
720 enum MemorySemanticsMask {
721 MemorySemanticsMaskNone = 0,
722 MemorySemanticsAcquireMask = 0x00000002,
723 MemorySemanticsReleaseMask = 0x00000004,
724 MemorySemanticsAcquireReleaseMask = 0x00000008,
725 MemorySemanticsSequentiallyConsistentMask = 0x00000010,
726 MemorySemanticsUniformMemoryMask = 0x00000040,
727 MemorySemanticsSubgroupMemoryMask = 0x00000080,
728 MemorySemanticsWorkgroupMemoryMask = 0x00000100,
729 MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
730 MemorySemanticsAtomicCounterMemoryMask = 0x00000400,
731 MemorySemanticsImageMemoryMask = 0x00000800,
732 MemorySemanticsOutputMemoryMask = 0x00001000,
733 MemorySemanticsOutputMemoryKHRMask = 0x00001000,
734 MemorySemanticsMakeAvailableMask = 0x00002000,
735 MemorySemanticsMakeAvailableKHRMask = 0x00002000,
736 MemorySemanticsMakeVisibleMask = 0x00004000,
737 MemorySemanticsMakeVisibleKHRMask = 0x00004000,
738 MemorySemanticsVolatileMask = 0x00008000,
739 };
740
741 enum MemoryAccessShift {
742 MemoryAccessVolatileShift = 0,
743 MemoryAccessAlignedShift = 1,
744 MemoryAccessNontemporalShift = 2,
745 MemoryAccessMakePointerAvailableShift = 3,
746 MemoryAccessMakePointerAvailableKHRShift = 3,
747 MemoryAccessMakePointerVisibleShift = 4,
748 MemoryAccessMakePointerVisibleKHRShift = 4,
749 MemoryAccessNonPrivatePointerShift = 5,
750 MemoryAccessNonPrivatePointerKHRShift = 5,
751 MemoryAccessMax = 0x7fffffff,
752 };
753
754 enum MemoryAccessMask {
755 MemoryAccessMaskNone = 0,
756 MemoryAccessVolatileMask = 0x00000001,
757 MemoryAccessAlignedMask = 0x00000002,
758 MemoryAccessNontemporalMask = 0x00000004,
759 MemoryAccessMakePointerAvailableMask = 0x00000008,
760 MemoryAccessMakePointerAvailableKHRMask = 0x00000008,
761 MemoryAccessMakePointerVisibleMask = 0x00000010,
762 MemoryAccessMakePointerVisibleKHRMask = 0x00000010,
763 MemoryAccessNonPrivatePointerMask = 0x00000020,
764 MemoryAccessNonPrivatePointerKHRMask = 0x00000020,
765 };
766
767 enum Scope {
768 ScopeCrossDevice = 0,
769 ScopeDevice = 1,
770 ScopeWorkgroup = 2,
771 ScopeSubgroup = 3,
772 ScopeInvocation = 4,
773 ScopeQueueFamily = 5,
774 ScopeQueueFamilyKHR = 5,
775 ScopeShaderCallKHR = 6,
776 ScopeMax = 0x7fffffff,
777 };
778
779 enum GroupOperation {
780 GroupOperationReduce = 0,
781 GroupOperationInclusiveScan = 1,
782 GroupOperationExclusiveScan = 2,
783 GroupOperationClusteredReduce = 3,
784 GroupOperationPartitionedReduceNV = 6,
785 GroupOperationPartitionedInclusiveScanNV = 7,
786 GroupOperationPartitionedExclusiveScanNV = 8,
787 GroupOperationMax = 0x7fffffff,
788 };
789
790 enum KernelEnqueueFlags {
791 KernelEnqueueFlagsNoWait = 0,
792 KernelEnqueueFlagsWaitKernel = 1,
793 KernelEnqueueFlagsWaitWorkGroup = 2,
794 KernelEnqueueFlagsMax = 0x7fffffff,
795 };
796
797 enum KernelProfilingInfoShift {
798 KernelProfilingInfoCmdExecTimeShift = 0,
799 KernelProfilingInfoMax = 0x7fffffff,
800 };
801
802 enum KernelProfilingInfoMask {
803 KernelProfilingInfoMaskNone = 0,
804 KernelProfilingInfoCmdExecTimeMask = 0x00000001,
805 };
806
807 enum Capability {
808 CapabilityMatrix = 0,
809 CapabilityShader = 1,
810 CapabilityGeometry = 2,
811 CapabilityTessellation = 3,
812 CapabilityAddresses = 4,
813 CapabilityLinkage = 5,
814 CapabilityKernel = 6,
815 CapabilityVector16 = 7,
816 CapabilityFloat16Buffer = 8,
817 CapabilityFloat16 = 9,
818 CapabilityFloat64 = 10,
819 CapabilityInt64 = 11,
820 CapabilityInt64Atomics = 12,
821 CapabilityImageBasic = 13,
822 CapabilityImageReadWrite = 14,
823 CapabilityImageMipmap = 15,
824 CapabilityPipes = 17,
825 CapabilityGroups = 18,
826 CapabilityDeviceEnqueue = 19,
827 CapabilityLiteralSampler = 20,
828 CapabilityAtomicStorage = 21,
829 CapabilityInt16 = 22,
830 CapabilityTessellationPointSize = 23,
831 CapabilityGeometryPointSize = 24,
832 CapabilityImageGatherExtended = 25,
833 CapabilityStorageImageMultisample = 27,
834 CapabilityUniformBufferArrayDynamicIndexing = 28,
835 CapabilitySampledImageArrayDynamicIndexing = 29,
836 CapabilityStorageBufferArrayDynamicIndexing = 30,
837 CapabilityStorageImageArrayDynamicIndexing = 31,
838 CapabilityClipDistance = 32,
839 CapabilityCullDistance = 33,
840 CapabilityImageCubeArray = 34,
841 CapabilitySampleRateShading = 35,
842 CapabilityImageRect = 36,
843 CapabilitySampledRect = 37,
844 CapabilityGenericPointer = 38,
845 CapabilityInt8 = 39,
846 CapabilityInputAttachment = 40,
847 CapabilitySparseResidency = 41,
848 CapabilityMinLod = 42,
849 CapabilitySampled1D = 43,
850 CapabilityImage1D = 44,
851 CapabilitySampledCubeArray = 45,
852 CapabilitySampledBuffer = 46,
853 CapabilityImageBuffer = 47,
854 CapabilityImageMSArray = 48,
855 CapabilityStorageImageExtendedFormats = 49,
856 CapabilityImageQuery = 50,
857 CapabilityDerivativeControl = 51,
858 CapabilityInterpolationFunction = 52,
859 CapabilityTransformFeedback = 53,
860 CapabilityGeometryStreams = 54,
861 CapabilityStorageImageReadWithoutFormat = 55,
862 CapabilityStorageImageWriteWithoutFormat = 56,
863 CapabilityMultiViewport = 57,
864 CapabilitySubgroupDispatch = 58,
865 CapabilityNamedBarrier = 59,
866 CapabilityPipeStorage = 60,
867 CapabilityGroupNonUniform = 61,
868 CapabilityGroupNonUniformVote = 62,
869 CapabilityGroupNonUniformArithmetic = 63,
870 CapabilityGroupNonUniformBallot = 64,
871 CapabilityGroupNonUniformShuffle = 65,
872 CapabilityGroupNonUniformShuffleRelative = 66,
873 CapabilityGroupNonUniformClustered = 67,
874 CapabilityGroupNonUniformQuad = 68,
875 CapabilityShaderLayer = 69,
876 CapabilityShaderViewportIndex = 70,
877 CapabilityFragmentShadingRateKHR = 4422,
878 CapabilitySubgroupBallotKHR = 4423,
879 CapabilityDrawParameters = 4427,
880 CapabilitySubgroupVoteKHR = 4431,
881 CapabilityStorageBuffer16BitAccess = 4433,
882 CapabilityStorageUniformBufferBlock16 = 4433,
883 CapabilityStorageUniform16 = 4434,
884 CapabilityUniformAndStorageBuffer16BitAccess = 4434,
885 CapabilityStoragePushConstant16 = 4435,
886 CapabilityStorageInputOutput16 = 4436,
887 CapabilityDeviceGroup = 4437,
888 CapabilityMultiView = 4439,
889 CapabilityVariablePointersStorageBuffer = 4441,
890 CapabilityVariablePointers = 4442,
891 CapabilityAtomicStorageOps = 4445,
892 CapabilitySampleMaskPostDepthCoverage = 4447,
893 CapabilityStorageBuffer8BitAccess = 4448,
894 CapabilityUniformAndStorageBuffer8BitAccess = 4449,
895 CapabilityStoragePushConstant8 = 4450,
896 CapabilityDenormPreserve = 4464,
897 CapabilityDenormFlushToZero = 4465,
898 CapabilitySignedZeroInfNanPreserve = 4466,
899 CapabilityRoundingModeRTE = 4467,
900 CapabilityRoundingModeRTZ = 4468,
901 CapabilityRayQueryProvisionalKHR = 4471,
902 CapabilityRayTraversalPrimitiveCullingProvisionalKHR = 4478,
903 CapabilityFloat16ImageAMD = 5008,
904 CapabilityImageGatherBiasLodAMD = 5009,
905 CapabilityFragmentMaskAMD = 5010,
906 CapabilityStencilExportEXT = 5013,
907 CapabilityImageReadWriteLodAMD = 5015,
908 CapabilityInt64ImageEXT = 5016,
909 CapabilityShaderClockKHR = 5055,
910 CapabilitySampleMaskOverrideCoverageNV = 5249,
911 CapabilityGeometryShaderPassthroughNV = 5251,
912 CapabilityShaderViewportIndexLayerEXT = 5254,
913 CapabilityShaderViewportIndexLayerNV = 5254,
914 CapabilityShaderViewportMaskNV = 5255,
915 CapabilityShaderStereoViewNV = 5259,
916 CapabilityPerViewAttributesNV = 5260,
917 CapabilityFragmentFullyCoveredEXT = 5265,
918 CapabilityMeshShadingNV = 5266,
919 CapabilityImageFootprintNV = 5282,
920 CapabilityFragmentBarycentricNV = 5284,
921 CapabilityComputeDerivativeGroupQuadsNV = 5288,
922 CapabilityFragmentDensityEXT = 5291,
923 CapabilityShadingRateNV = 5291,
924 CapabilityGroupNonUniformPartitionedNV = 5297,
925 CapabilityShaderNonUniform = 5301,
926 CapabilityShaderNonUniformEXT = 5301,
927 CapabilityRuntimeDescriptorArray = 5302,
928 CapabilityRuntimeDescriptorArrayEXT = 5302,
929 CapabilityInputAttachmentArrayDynamicIndexing = 5303,
930 CapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
931 CapabilityUniformTexelBufferArrayDynamicIndexing = 5304,
932 CapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
933 CapabilityStorageTexelBufferArrayDynamicIndexing = 5305,
934 CapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
935 CapabilityUniformBufferArrayNonUniformIndexing = 5306,
936 CapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
937 CapabilitySampledImageArrayNonUniformIndexing = 5307,
938 CapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
939 CapabilityStorageBufferArrayNonUniformIndexing = 5308,
940 CapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
941 CapabilityStorageImageArrayNonUniformIndexing = 5309,
942 CapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
943 CapabilityInputAttachmentArrayNonUniformIndexing = 5310,
944 CapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
945 CapabilityUniformTexelBufferArrayNonUniformIndexing = 5311,
946 CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
947 CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
948 CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
949 CapabilityRayTracingNV = 5340,
950 CapabilityVulkanMemoryModel = 5345,
951 CapabilityVulkanMemoryModelKHR = 5345,
952 CapabilityVulkanMemoryModelDeviceScope = 5346,
953 CapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
954 CapabilityPhysicalStorageBufferAddresses = 5347,
955 CapabilityPhysicalStorageBufferAddressesEXT = 5347,
956 CapabilityComputeDerivativeGroupLinearNV = 5350,
957 CapabilityRayTracingProvisionalKHR = 5353,
958 CapabilityCooperativeMatrixNV = 5357,
959 CapabilityFragmentShaderSampleInterlockEXT = 5363,
960 CapabilityFragmentShaderShadingRateInterlockEXT = 5372,
961 CapabilityShaderSMBuiltinsNV = 5373,
962 CapabilityFragmentShaderPixelInterlockEXT = 5378,
963 CapabilityDemoteToHelperInvocationEXT = 5379,
964 CapabilitySubgroupShuffleINTEL = 5568,
965 CapabilitySubgroupBufferBlockIOINTEL = 5569,
966 CapabilitySubgroupImageBlockIOINTEL = 5570,
967 CapabilitySubgroupImageMediaBlockIOINTEL = 5579,
968 CapabilityIntegerFunctions2INTEL = 5584,
969 CapabilityFunctionPointersINTEL = 5603,
970 CapabilityIndirectReferencesINTEL = 5604,
971 CapabilitySubgroupAvcMotionEstimationINTEL = 5696,
972 CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
973 CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
974 CapabilityFPGAMemoryAttributesINTEL = 5824,
975 CapabilityUnstructuredLoopControlsINTEL = 5886,
976 CapabilityFPGALoopControlsINTEL = 5888,
977 CapabilityKernelAttributesINTEL = 5892,
978 CapabilityFPGAKernelAttributesINTEL = 5897,
979 CapabilityBlockingPipesINTEL = 5945,
980 CapabilityFPGARegINTEL = 5948,
981 CapabilityAtomicFloat32AddEXT = 6033,
982 CapabilityAtomicFloat64AddEXT = 6034,
983 CapabilityMax = 0x7fffffff,
984 };
985
986 enum RayFlagsShift {
987 RayFlagsOpaqueKHRShift = 0,
988 RayFlagsNoOpaqueKHRShift = 1,
989 RayFlagsTerminateOnFirstHitKHRShift = 2,
990 RayFlagsSkipClosestHitShaderKHRShift = 3,
991 RayFlagsCullBackFacingTrianglesKHRShift = 4,
992 RayFlagsCullFrontFacingTrianglesKHRShift = 5,
993 RayFlagsCullOpaqueKHRShift = 6,
994 RayFlagsCullNoOpaqueKHRShift = 7,
995 RayFlagsSkipTrianglesKHRShift = 8,
996 RayFlagsSkipAABBsKHRShift = 9,
997 RayFlagsMax = 0x7fffffff,
998 };
999
1000 enum RayFlagsMask {
1001 RayFlagsMaskNone = 0,
1002 RayFlagsOpaqueKHRMask = 0x00000001,
1003 RayFlagsNoOpaqueKHRMask = 0x00000002,
1004 RayFlagsTerminateOnFirstHitKHRMask = 0x00000004,
1005 RayFlagsSkipClosestHitShaderKHRMask = 0x00000008,
1006 RayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,
1007 RayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,
1008 RayFlagsCullOpaqueKHRMask = 0x00000040,
1009 RayFlagsCullNoOpaqueKHRMask = 0x00000080,
1010 RayFlagsSkipTrianglesKHRMask = 0x00000100,
1011 RayFlagsSkipAABBsKHRMask = 0x00000200,
1012 };
1013
1014 enum RayQueryIntersection {
1015 RayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,
1016 RayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,
1017 RayQueryIntersectionMax = 0x7fffffff,
1018 };
1019
1020 enum RayQueryCommittedIntersectionType {
1021 RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,
1022 RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1,
1023 RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2,
1024 RayQueryCommittedIntersectionTypeMax = 0x7fffffff,
1025 };
1026
1027 enum RayQueryCandidateIntersectionType {
1028 RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0,
1029 RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,
1030 RayQueryCandidateIntersectionTypeMax = 0x7fffffff,
1031 };
1032
1033 enum FragmentShadingRateShift {
1034 FragmentShadingRateVertical2PixelsShift = 0,
1035 FragmentShadingRateVertical4PixelsShift = 1,
1036 FragmentShadingRateHorizontal2PixelsShift = 2,
1037 FragmentShadingRateHorizontal4PixelsShift = 3,
1038 FragmentShadingRateMax = 0x7fffffff,
1039 };
1040
1041 enum FragmentShadingRateMask {
1042 FragmentShadingRateMaskNone = 0,
1043 FragmentShadingRateVertical2PixelsMask = 0x00000001,
1044 FragmentShadingRateVertical4PixelsMask = 0x00000002,
1045 FragmentShadingRateHorizontal2PixelsMask = 0x00000004,
1046 FragmentShadingRateHorizontal4PixelsMask = 0x00000008,
1047 };
1048
1049 enum Op {
1050 OpNop = 0,
1051 OpUndef = 1,
1052 OpSourceContinued = 2,
1053 OpSource = 3,
1054 OpSourceExtension = 4,
1055 OpName = 5,
1056 OpMemberName = 6,
1057 OpString = 7,
1058 OpLine = 8,
1059 OpExtension = 10,
1060 OpExtInstImport = 11,
1061 OpExtInst = 12,
1062 OpMemoryModel = 14,
1063 OpEntryPoint = 15,
1064 OpExecutionMode = 16,
1065 OpCapability = 17,
1066 OpTypeVoid = 19,
1067 OpTypeBool = 20,
1068 OpTypeInt = 21,
1069 OpTypeFloat = 22,
1070 OpTypeVector = 23,
1071 OpTypeMatrix = 24,
1072 OpTypeImage = 25,
1073 OpTypeSampler = 26,
1074 OpTypeSampledImage = 27,
1075 OpTypeArray = 28,
1076 OpTypeRuntimeArray = 29,
1077 OpTypeStruct = 30,
1078 OpTypeOpaque = 31,
1079 OpTypePointer = 32,
1080 OpTypeFunction = 33,
1081 OpTypeEvent = 34,
1082 OpTypeDeviceEvent = 35,
1083 OpTypeReserveId = 36,
1084 OpTypeQueue = 37,
1085 OpTypePipe = 38,
1086 OpTypeForwardPointer = 39,
1087 OpConstantTrue = 41,
1088 OpConstantFalse = 42,
1089 OpConstant = 43,
1090 OpConstantComposite = 44,
1091 OpConstantSampler = 45,
1092 OpConstantNull = 46,
1093 OpSpecConstantTrue = 48,
1094 OpSpecConstantFalse = 49,
1095 OpSpecConstant = 50,
1096 OpSpecConstantComposite = 51,
1097 OpSpecConstantOp = 52,
1098 OpFunction = 54,
1099 OpFunctionParameter = 55,
1100 OpFunctionEnd = 56,
1101 OpFunctionCall = 57,
1102 OpVariable = 59,
1103 OpImageTexelPointer = 60,
1104 OpLoad = 61,
1105 OpStore = 62,
1106 OpCopyMemory = 63,
1107 OpCopyMemorySized = 64,
1108 OpAccessChain = 65,
1109 OpInBoundsAccessChain = 66,
1110 OpPtrAccessChain = 67,
1111 OpArrayLength = 68,
1112 OpGenericPtrMemSemantics = 69,
1113 OpInBoundsPtrAccessChain = 70,
1114 OpDecorate = 71,
1115 OpMemberDecorate = 72,
1116 OpDecorationGroup = 73,
1117 OpGroupDecorate = 74,
1118 OpGroupMemberDecorate = 75,
1119 OpVectorExtractDynamic = 77,
1120 OpVectorInsertDynamic = 78,
1121 OpVectorShuffle = 79,
1122 OpCompositeConstruct = 80,
1123 OpCompositeExtract = 81,
1124 OpCompositeInsert = 82,
1125 OpCopyObject = 83,
1126 OpTranspose = 84,
1127 OpSampledImage = 86,
1128 OpImageSampleImplicitLod = 87,
1129 OpImageSampleExplicitLod = 88,
1130 OpImageSampleDrefImplicitLod = 89,
1131 OpImageSampleDrefExplicitLod = 90,
1132 OpImageSampleProjImplicitLod = 91,
1133 OpImageSampleProjExplicitLod = 92,
1134 OpImageSampleProjDrefImplicitLod = 93,
1135 OpImageSampleProjDrefExplicitLod = 94,
1136 OpImageFetch = 95,
1137 OpImageGather = 96,
1138 OpImageDrefGather = 97,
1139 OpImageRead = 98,
1140 OpImageWrite = 99,
1141 OpImage = 100,
1142 OpImageQueryFormat = 101,
1143 OpImageQueryOrder = 102,
1144 OpImageQuerySizeLod = 103,
1145 OpImageQuerySize = 104,
1146 OpImageQueryLod = 105,
1147 OpImageQueryLevels = 106,
1148 OpImageQuerySamples = 107,
1149 OpConvertFToU = 109,
1150 OpConvertFToS = 110,
1151 OpConvertSToF = 111,
1152 OpConvertUToF = 112,
1153 OpUConvert = 113,
1154 OpSConvert = 114,
1155 OpFConvert = 115,
1156 OpQuantizeToF16 = 116,
1157 OpConvertPtrToU = 117,
1158 OpSatConvertSToU = 118,
1159 OpSatConvertUToS = 119,
1160 OpConvertUToPtr = 120,
1161 OpPtrCastToGeneric = 121,
1162 OpGenericCastToPtr = 122,
1163 OpGenericCastToPtrExplicit = 123,
1164 OpBitcast = 124,
1165 OpSNegate = 126,
1166 OpFNegate = 127,
1167 OpIAdd = 128,
1168 OpFAdd = 129,
1169 OpISub = 130,
1170 OpFSub = 131,
1171 OpIMul = 132,
1172 OpFMul = 133,
1173 OpUDiv = 134,
1174 OpSDiv = 135,
1175 OpFDiv = 136,
1176 OpUMod = 137,
1177 OpSRem = 138,
1178 OpSMod = 139,
1179 OpFRem = 140,
1180 OpFMod = 141,
1181 OpVectorTimesScalar = 142,
1182 OpMatrixTimesScalar = 143,
1183 OpVectorTimesMatrix = 144,
1184 OpMatrixTimesVector = 145,
1185 OpMatrixTimesMatrix = 146,
1186 OpOuterProduct = 147,
1187 OpDot = 148,
1188 OpIAddCarry = 149,
1189 OpISubBorrow = 150,
1190 OpUMulExtended = 151,
1191 OpSMulExtended = 152,
1192 OpAny = 154,
1193 OpAll = 155,
1194 OpIsNan = 156,
1195 OpIsInf = 157,
1196 OpIsFinite = 158,
1197 OpIsNormal = 159,
1198 OpSignBitSet = 160,
1199 OpLessOrGreater = 161,
1200 OpOrdered = 162,
1201 OpUnordered = 163,
1202 OpLogicalEqual = 164,
1203 OpLogicalNotEqual = 165,
1204 OpLogicalOr = 166,
1205 OpLogicalAnd = 167,
1206 OpLogicalNot = 168,
1207 OpSelect = 169,
1208 OpIEqual = 170,
1209 OpINotEqual = 171,
1210 OpUGreaterThan = 172,
1211 OpSGreaterThan = 173,
1212 OpUGreaterThanEqual = 174,
1213 OpSGreaterThanEqual = 175,
1214 OpULessThan = 176,
1215 OpSLessThan = 177,
1216 OpULessThanEqual = 178,
1217 OpSLessThanEqual = 179,
1218 OpFOrdEqual = 180,
1219 OpFUnordEqual = 181,
1220 OpFOrdNotEqual = 182,
1221 OpFUnordNotEqual = 183,
1222 OpFOrdLessThan = 184,
1223 OpFUnordLessThan = 185,
1224 OpFOrdGreaterThan = 186,
1225 OpFUnordGreaterThan = 187,
1226 OpFOrdLessThanEqual = 188,
1227 OpFUnordLessThanEqual = 189,
1228 OpFOrdGreaterThanEqual = 190,
1229 OpFUnordGreaterThanEqual = 191,
1230 OpShiftRightLogical = 194,
1231 OpShiftRightArithmetic = 195,
1232 OpShiftLeftLogical = 196,
1233 OpBitwiseOr = 197,
1234 OpBitwiseXor = 198,
1235 OpBitwiseAnd = 199,
1236 OpNot = 200,
1237 OpBitFieldInsert = 201,
1238 OpBitFieldSExtract = 202,
1239 OpBitFieldUExtract = 203,
1240 OpBitReverse = 204,
1241 OpBitCount = 205,
1242 OpDPdx = 207,
1243 OpDPdy = 208,
1244 OpFwidth = 209,
1245 OpDPdxFine = 210,
1246 OpDPdyFine = 211,
1247 OpFwidthFine = 212,
1248 OpDPdxCoarse = 213,
1249 OpDPdyCoarse = 214,
1250 OpFwidthCoarse = 215,
1251 OpEmitVertex = 218,
1252 OpEndPrimitive = 219,
1253 OpEmitStreamVertex = 220,
1254 OpEndStreamPrimitive = 221,
1255 OpControlBarrier = 224,
1256 OpMemoryBarrier = 225,
1257 OpAtomicLoad = 227,
1258 OpAtomicStore = 228,
1259 OpAtomicExchange = 229,
1260 OpAtomicCompareExchange = 230,
1261 OpAtomicCompareExchangeWeak = 231,
1262 OpAtomicIIncrement = 232,
1263 OpAtomicIDecrement = 233,
1264 OpAtomicIAdd = 234,
1265 OpAtomicISub = 235,
1266 OpAtomicSMin = 236,
1267 OpAtomicUMin = 237,
1268 OpAtomicSMax = 238,
1269 OpAtomicUMax = 239,
1270 OpAtomicAnd = 240,
1271 OpAtomicOr = 241,
1272 OpAtomicXor = 242,
1273 OpPhi = 245,
1274 OpLoopMerge = 246,
1275 OpSelectionMerge = 247,
1276 OpLabel = 248,
1277 OpBranch = 249,
1278 OpBranchConditional = 250,
1279 OpSwitch = 251,
1280 OpKill = 252,
1281 OpReturn = 253,
1282 OpReturnValue = 254,
1283 OpUnreachable = 255,
1284 OpLifetimeStart = 256,
1285 OpLifetimeStop = 257,
1286 OpGroupAsyncCopy = 259,
1287 OpGroupWaitEvents = 260,
1288 OpGroupAll = 261,
1289 OpGroupAny = 262,
1290 OpGroupBroadcast = 263,
1291 OpGroupIAdd = 264,
1292 OpGroupFAdd = 265,
1293 OpGroupFMin = 266,
1294 OpGroupUMin = 267,
1295 OpGroupSMin = 268,
1296 OpGroupFMax = 269,
1297 OpGroupUMax = 270,
1298 OpGroupSMax = 271,
1299 OpReadPipe = 274,
1300 OpWritePipe = 275,
1301 OpReservedReadPipe = 276,
1302 OpReservedWritePipe = 277,
1303 OpReserveReadPipePackets = 278,
1304 OpReserveWritePipePackets = 279,
1305 OpCommitReadPipe = 280,
1306 OpCommitWritePipe = 281,
1307 OpIsValidReserveId = 282,
1308 OpGetNumPipePackets = 283,
1309 OpGetMaxPipePackets = 284,
1310 OpGroupReserveReadPipePackets = 285,
1311 OpGroupReserveWritePipePackets = 286,
1312 OpGroupCommitReadPipe = 287,
1313 OpGroupCommitWritePipe = 288,
1314 OpEnqueueMarker = 291,
1315 OpEnqueueKernel = 292,
1316 OpGetKernelNDrangeSubGroupCount = 293,
1317 OpGetKernelNDrangeMaxSubGroupSize = 294,
1318 OpGetKernelWorkGroupSize = 295,
1319 OpGetKernelPreferredWorkGroupSizeMultiple = 296,
1320 OpRetainEvent = 297,
1321 OpReleaseEvent = 298,
1322 OpCreateUserEvent = 299,
1323 OpIsValidEvent = 300,
1324 OpSetUserEventStatus = 301,
1325 OpCaptureEventProfilingInfo = 302,
1326 OpGetDefaultQueue = 303,
1327 OpBuildNDRange = 304,
1328 OpImageSparseSampleImplicitLod = 305,
1329 OpImageSparseSampleExplicitLod = 306,
1330 OpImageSparseSampleDrefImplicitLod = 307,
1331 OpImageSparseSampleDrefExplicitLod = 308,
1332 OpImageSparseSampleProjImplicitLod = 309,
1333 OpImageSparseSampleProjExplicitLod = 310,
1334 OpImageSparseSampleProjDrefImplicitLod = 311,
1335 OpImageSparseSampleProjDrefExplicitLod = 312,
1336 OpImageSparseFetch = 313,
1337 OpImageSparseGather = 314,
1338 OpImageSparseDrefGather = 315,
1339 OpImageSparseTexelsResident = 316,
1340 OpNoLine = 317,
1341 OpAtomicFlagTestAndSet = 318,
1342 OpAtomicFlagClear = 319,
1343 OpImageSparseRead = 320,
1344 OpSizeOf = 321,
1345 OpTypePipeStorage = 322,
1346 OpConstantPipeStorage = 323,
1347 OpCreatePipeFromPipeStorage = 324,
1348 OpGetKernelLocalSizeForSubgroupCount = 325,
1349 OpGetKernelMaxNumSubgroups = 326,
1350 OpTypeNamedBarrier = 327,
1351 OpNamedBarrierInitialize = 328,
1352 OpMemoryNamedBarrier = 329,
1353 OpModuleProcessed = 330,
1354 OpExecutionModeId = 331,
1355 OpDecorateId = 332,
1356 OpGroupNonUniformElect = 333,
1357 OpGroupNonUniformAll = 334,
1358 OpGroupNonUniformAny = 335,
1359 OpGroupNonUniformAllEqual = 336,
1360 OpGroupNonUniformBroadcast = 337,
1361 OpGroupNonUniformBroadcastFirst = 338,
1362 OpGroupNonUniformBallot = 339,
1363 OpGroupNonUniformInverseBallot = 340,
1364 OpGroupNonUniformBallotBitExtract = 341,
1365 OpGroupNonUniformBallotBitCount = 342,
1366 OpGroupNonUniformBallotFindLSB = 343,
1367 OpGroupNonUniformBallotFindMSB = 344,
1368 OpGroupNonUniformShuffle = 345,
1369 OpGroupNonUniformShuffleXor = 346,
1370 OpGroupNonUniformShuffleUp = 347,
1371 OpGroupNonUniformShuffleDown = 348,
1372 OpGroupNonUniformIAdd = 349,
1373 OpGroupNonUniformFAdd = 350,
1374 OpGroupNonUniformIMul = 351,
1375 OpGroupNonUniformFMul = 352,
1376 OpGroupNonUniformSMin = 353,
1377 OpGroupNonUniformUMin = 354,
1378 OpGroupNonUniformFMin = 355,
1379 OpGroupNonUniformSMax = 356,
1380 OpGroupNonUniformUMax = 357,
1381 OpGroupNonUniformFMax = 358,
1382 OpGroupNonUniformBitwiseAnd = 359,
1383 OpGroupNonUniformBitwiseOr = 360,
1384 OpGroupNonUniformBitwiseXor = 361,
1385 OpGroupNonUniformLogicalAnd = 362,
1386 OpGroupNonUniformLogicalOr = 363,
1387 OpGroupNonUniformLogicalXor = 364,
1388 OpGroupNonUniformQuadBroadcast = 365,
1389 OpGroupNonUniformQuadSwap = 366,
1390 OpCopyLogical = 400,
1391 OpPtrEqual = 401,
1392 OpPtrNotEqual = 402,
1393 OpPtrDiff = 403,
1394 OpTerminateInvocation = 4416,
1395 OpSubgroupBallotKHR = 4421,
1396 OpSubgroupFirstInvocationKHR = 4422,
1397 OpSubgroupAllKHR = 4428,
1398 OpSubgroupAnyKHR = 4429,
1399 OpSubgroupAllEqualKHR = 4430,
1400 OpSubgroupReadInvocationKHR = 4432,
1401 OpTypeRayQueryProvisionalKHR = 4472,
1402 OpRayQueryInitializeKHR = 4473,
1403 OpRayQueryTerminateKHR = 4474,
1404 OpRayQueryGenerateIntersectionKHR = 4475,
1405 OpRayQueryConfirmIntersectionKHR = 4476,
1406 OpRayQueryProceedKHR = 4477,
1407 OpRayQueryGetIntersectionTypeKHR = 4479,
1408 OpGroupIAddNonUniformAMD = 5000,
1409 OpGroupFAddNonUniformAMD = 5001,
1410 OpGroupFMinNonUniformAMD = 5002,
1411 OpGroupUMinNonUniformAMD = 5003,
1412 OpGroupSMinNonUniformAMD = 5004,
1413 OpGroupFMaxNonUniformAMD = 5005,
1414 OpGroupUMaxNonUniformAMD = 5006,
1415 OpGroupSMaxNonUniformAMD = 5007,
1416 OpFragmentMaskFetchAMD = 5011,
1417 OpFragmentFetchAMD = 5012,
1418 OpReadClockKHR = 5056,
1419 OpImageSampleFootprintNV = 5283,
1420 OpGroupNonUniformPartitionNV = 5296,
1421 OpWritePackedPrimitiveIndices4x8NV = 5299,
1422 OpReportIntersectionKHR = 5334,
1423 OpReportIntersectionNV = 5334,
1424 OpIgnoreIntersectionKHR = 5335,
1425 OpIgnoreIntersectionNV = 5335,
1426 OpTerminateRayKHR = 5336,
1427 OpTerminateRayNV = 5336,
1428 OpTraceNV = 5337,
1429 OpTraceRayKHR = 5337,
1430 OpTypeAccelerationStructureKHR = 5341,
1431 OpTypeAccelerationStructureNV = 5341,
1432 OpExecuteCallableKHR = 5344,
1433 OpExecuteCallableNV = 5344,
1434 OpTypeCooperativeMatrixNV = 5358,
1435 OpCooperativeMatrixLoadNV = 5359,
1436 OpCooperativeMatrixStoreNV = 5360,
1437 OpCooperativeMatrixMulAddNV = 5361,
1438 OpCooperativeMatrixLengthNV = 5362,
1439 OpBeginInvocationInterlockEXT = 5364,
1440 OpEndInvocationInterlockEXT = 5365,
1441 OpDemoteToHelperInvocationEXT = 5380,
1442 OpIsHelperInvocationEXT = 5381,
1443 OpSubgroupShuffleINTEL = 5571,
1444 OpSubgroupShuffleDownINTEL = 5572,
1445 OpSubgroupShuffleUpINTEL = 5573,
1446 OpSubgroupShuffleXorINTEL = 5574,
1447 OpSubgroupBlockReadINTEL = 5575,
1448 OpSubgroupBlockWriteINTEL = 5576,
1449 OpSubgroupImageBlockReadINTEL = 5577,
1450 OpSubgroupImageBlockWriteINTEL = 5578,
1451 OpSubgroupImageMediaBlockReadINTEL = 5580,
1452 OpSubgroupImageMediaBlockWriteINTEL = 5581,
1453 OpUCountLeadingZerosINTEL = 5585,
1454 OpUCountTrailingZerosINTEL = 5586,
1455 OpAbsISubINTEL = 5587,
1456 OpAbsUSubINTEL = 5588,
1457 OpIAddSatINTEL = 5589,
1458 OpUAddSatINTEL = 5590,
1459 OpIAverageINTEL = 5591,
1460 OpUAverageINTEL = 5592,
1461 OpIAverageRoundedINTEL = 5593,
1462 OpUAverageRoundedINTEL = 5594,
1463 OpISubSatINTEL = 5595,
1464 OpUSubSatINTEL = 5596,
1465 OpIMul32x16INTEL = 5597,
1466 OpUMul32x16INTEL = 5598,
1467 OpFunctionPointerINTEL = 5600,
1468 OpFunctionPointerCallINTEL = 5601,
1469 OpDecorateString = 5632,
1470 OpDecorateStringGOOGLE = 5632,
1471 OpMemberDecorateString = 5633,
1472 OpMemberDecorateStringGOOGLE = 5633,
1473 OpVmeImageINTEL = 5699,
1474 OpTypeVmeImageINTEL = 5700,
1475 OpTypeAvcImePayloadINTEL = 5701,
1476 OpTypeAvcRefPayloadINTEL = 5702,
1477 OpTypeAvcSicPayloadINTEL = 5703,
1478 OpTypeAvcMcePayloadINTEL = 5704,
1479 OpTypeAvcMceResultINTEL = 5705,
1480 OpTypeAvcImeResultINTEL = 5706,
1481 OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
1482 OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
1483 OpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
1484 OpTypeAvcImeDualReferenceStreaminINTEL = 5710,
1485 OpTypeAvcRefResultINTEL = 5711,
1486 OpTypeAvcSicResultINTEL = 5712,
1487 OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
1488 OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
1489 OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
1490 OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
1491 OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
1492 OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
1493 OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
1494 OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
1495 OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
1496 OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
1497 OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
1498 OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
1499 OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
1500 OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
1501 OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
1502 OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
1503 OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
1504 OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
1505 OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
1506 OpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
1507 OpSubgroupAvcMceConvertToImeResultINTEL = 5733,
1508 OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
1509 OpSubgroupAvcMceConvertToRefResultINTEL = 5735,
1510 OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
1511 OpSubgroupAvcMceConvertToSicResultINTEL = 5737,
1512 OpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
1513 OpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
1514 OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
1515 OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
1516 OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
1517 OpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
1518 OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
1519 OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
1520 OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
1521 OpSubgroupAvcImeInitializeINTEL = 5747,
1522 OpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
1523 OpSubgroupAvcImeSetDualReferenceINTEL = 5749,
1524 OpSubgroupAvcImeRefWindowSizeINTEL = 5750,
1525 OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
1526 OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
1527 OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
1528 OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
1529 OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
1530 OpSubgroupAvcImeSetWeightedSadINTEL = 5756,
1531 OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
1532 OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
1533 OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
1534 OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
1535 OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
1536 OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
1537 OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
1538 OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
1539 OpSubgroupAvcImeConvertToMceResultINTEL = 5765,
1540 OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
1541 OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
1542 OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
1543 OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
1544 OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
1545 OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
1546 OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
1547 OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
1548 OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
1549 OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
1550 OpSubgroupAvcImeGetBorderReachedINTEL = 5776,
1551 OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
1552 OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
1553 OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
1554 OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
1555 OpSubgroupAvcFmeInitializeINTEL = 5781,
1556 OpSubgroupAvcBmeInitializeINTEL = 5782,
1557 OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
1558 OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
1559 OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
1560 OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
1561 OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
1562 OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
1563 OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
1564 OpSubgroupAvcRefConvertToMceResultINTEL = 5790,
1565 OpSubgroupAvcSicInitializeINTEL = 5791,
1566 OpSubgroupAvcSicConfigureSkcINTEL = 5792,
1567 OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
1568 OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
1569 OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
1570 OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
1571 OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
1572 OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
1573 OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
1574 OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
1575 OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
1576 OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
1577 OpSubgroupAvcSicEvaluateIpeINTEL = 5803,
1578 OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
1579 OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
1580 OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
1581 OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
1582 OpSubgroupAvcSicConvertToMceResultINTEL = 5808,
1583 OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
1584 OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
1585 OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
1586 OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
1587 OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
1588 OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
1589 OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
1590 OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
1591 OpLoopControlINTEL = 5887,
1592 OpReadPipeBlockingINTEL = 5946,
1593 OpWritePipeBlockingINTEL = 5947,
1594 OpFPGARegINTEL = 5949,
1595 OpRayQueryGetRayTMinKHR = 6016,
1596 OpRayQueryGetRayFlagsKHR = 6017,
1597 OpRayQueryGetIntersectionTKHR = 6018,
1598 OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
1599 OpRayQueryGetIntersectionInstanceIdKHR = 6020,
1600 OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
1601 OpRayQueryGetIntersectionGeometryIndexKHR = 6022,
1602 OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
1603 OpRayQueryGetIntersectionBarycentricsKHR = 6024,
1604 OpRayQueryGetIntersectionFrontFaceKHR = 6025,
1605 OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
1606 OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
1607 OpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
1608 OpRayQueryGetWorldRayDirectionKHR = 6029,
1609 OpRayQueryGetWorldRayOriginKHR = 6030,
1610 OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
1611 OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
1612 OpAtomicFAddEXT = 6035,
1613 OpMax = 0x7fffffff,
1614 };
1615
1616 #ifdef SPV_ENABLE_UTILITY_CODE
HasResultAndType(Op opcode,bool * hasResult,bool * hasResultType)1617 inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
1618 *hasResult = *hasResultType = false;
1619 switch (opcode) {
1620 default: /* unknown opcode */ break;
1621 case OpNop: *hasResult = false; *hasResultType = false; break;
1622 case OpUndef: *hasResult = true; *hasResultType = true; break;
1623 case OpSourceContinued: *hasResult = false; *hasResultType = false; break;
1624 case OpSource: *hasResult = false; *hasResultType = false; break;
1625 case OpSourceExtension: *hasResult = false; *hasResultType = false; break;
1626 case OpName: *hasResult = false; *hasResultType = false; break;
1627 case OpMemberName: *hasResult = false; *hasResultType = false; break;
1628 case OpString: *hasResult = true; *hasResultType = false; break;
1629 case OpLine: *hasResult = false; *hasResultType = false; break;
1630 case OpExtension: *hasResult = false; *hasResultType = false; break;
1631 case OpExtInstImport: *hasResult = true; *hasResultType = false; break;
1632 case OpExtInst: *hasResult = true; *hasResultType = true; break;
1633 case OpMemoryModel: *hasResult = false; *hasResultType = false; break;
1634 case OpEntryPoint: *hasResult = false; *hasResultType = false; break;
1635 case OpExecutionMode: *hasResult = false; *hasResultType = false; break;
1636 case OpCapability: *hasResult = false; *hasResultType = false; break;
1637 case OpTypeVoid: *hasResult = true; *hasResultType = false; break;
1638 case OpTypeBool: *hasResult = true; *hasResultType = false; break;
1639 case OpTypeInt: *hasResult = true; *hasResultType = false; break;
1640 case OpTypeFloat: *hasResult = true; *hasResultType = false; break;
1641 case OpTypeVector: *hasResult = true; *hasResultType = false; break;
1642 case OpTypeMatrix: *hasResult = true; *hasResultType = false; break;
1643 case OpTypeImage: *hasResult = true; *hasResultType = false; break;
1644 case OpTypeSampler: *hasResult = true; *hasResultType = false; break;
1645 case OpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
1646 case OpTypeArray: *hasResult = true; *hasResultType = false; break;
1647 case OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
1648 case OpTypeStruct: *hasResult = true; *hasResultType = false; break;
1649 case OpTypeOpaque: *hasResult = true; *hasResultType = false; break;
1650 case OpTypePointer: *hasResult = true; *hasResultType = false; break;
1651 case OpTypeFunction: *hasResult = true; *hasResultType = false; break;
1652 case OpTypeEvent: *hasResult = true; *hasResultType = false; break;
1653 case OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
1654 case OpTypeReserveId: *hasResult = true; *hasResultType = false; break;
1655 case OpTypeQueue: *hasResult = true; *hasResultType = false; break;
1656 case OpTypePipe: *hasResult = true; *hasResultType = false; break;
1657 case OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
1658 case OpConstantTrue: *hasResult = true; *hasResultType = true; break;
1659 case OpConstantFalse: *hasResult = true; *hasResultType = true; break;
1660 case OpConstant: *hasResult = true; *hasResultType = true; break;
1661 case OpConstantComposite: *hasResult = true; *hasResultType = true; break;
1662 case OpConstantSampler: *hasResult = true; *hasResultType = true; break;
1663 case OpConstantNull: *hasResult = true; *hasResultType = true; break;
1664 case OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
1665 case OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
1666 case OpSpecConstant: *hasResult = true; *hasResultType = true; break;
1667 case OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
1668 case OpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
1669 case OpFunction: *hasResult = true; *hasResultType = true; break;
1670 case OpFunctionParameter: *hasResult = true; *hasResultType = true; break;
1671 case OpFunctionEnd: *hasResult = false; *hasResultType = false; break;
1672 case OpFunctionCall: *hasResult = true; *hasResultType = true; break;
1673 case OpVariable: *hasResult = true; *hasResultType = true; break;
1674 case OpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
1675 case OpLoad: *hasResult = true; *hasResultType = true; break;
1676 case OpStore: *hasResult = false; *hasResultType = false; break;
1677 case OpCopyMemory: *hasResult = false; *hasResultType = false; break;
1678 case OpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
1679 case OpAccessChain: *hasResult = true; *hasResultType = true; break;
1680 case OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
1681 case OpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
1682 case OpArrayLength: *hasResult = true; *hasResultType = true; break;
1683 case OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
1684 case OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
1685 case OpDecorate: *hasResult = false; *hasResultType = false; break;
1686 case OpMemberDecorate: *hasResult = false; *hasResultType = false; break;
1687 case OpDecorationGroup: *hasResult = true; *hasResultType = false; break;
1688 case OpGroupDecorate: *hasResult = false; *hasResultType = false; break;
1689 case OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
1690 case OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
1691 case OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
1692 case OpVectorShuffle: *hasResult = true; *hasResultType = true; break;
1693 case OpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
1694 case OpCompositeExtract: *hasResult = true; *hasResultType = true; break;
1695 case OpCompositeInsert: *hasResult = true; *hasResultType = true; break;
1696 case OpCopyObject: *hasResult = true; *hasResultType = true; break;
1697 case OpTranspose: *hasResult = true; *hasResultType = true; break;
1698 case OpSampledImage: *hasResult = true; *hasResultType = true; break;
1699 case OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
1700 case OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
1701 case OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
1702 case OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
1703 case OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
1704 case OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
1705 case OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
1706 case OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
1707 case OpImageFetch: *hasResult = true; *hasResultType = true; break;
1708 case OpImageGather: *hasResult = true; *hasResultType = true; break;
1709 case OpImageDrefGather: *hasResult = true; *hasResultType = true; break;
1710 case OpImageRead: *hasResult = true; *hasResultType = true; break;
1711 case OpImageWrite: *hasResult = false; *hasResultType = false; break;
1712 case OpImage: *hasResult = true; *hasResultType = true; break;
1713 case OpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
1714 case OpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
1715 case OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
1716 case OpImageQuerySize: *hasResult = true; *hasResultType = true; break;
1717 case OpImageQueryLod: *hasResult = true; *hasResultType = true; break;
1718 case OpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
1719 case OpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
1720 case OpConvertFToU: *hasResult = true; *hasResultType = true; break;
1721 case OpConvertFToS: *hasResult = true; *hasResultType = true; break;
1722 case OpConvertSToF: *hasResult = true; *hasResultType = true; break;
1723 case OpConvertUToF: *hasResult = true; *hasResultType = true; break;
1724 case OpUConvert: *hasResult = true; *hasResultType = true; break;
1725 case OpSConvert: *hasResult = true; *hasResultType = true; break;
1726 case OpFConvert: *hasResult = true; *hasResultType = true; break;
1727 case OpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
1728 case OpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
1729 case OpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
1730 case OpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
1731 case OpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
1732 case OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
1733 case OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
1734 case OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
1735 case OpBitcast: *hasResult = true; *hasResultType = true; break;
1736 case OpSNegate: *hasResult = true; *hasResultType = true; break;
1737 case OpFNegate: *hasResult = true; *hasResultType = true; break;
1738 case OpIAdd: *hasResult = true; *hasResultType = true; break;
1739 case OpFAdd: *hasResult = true; *hasResultType = true; break;
1740 case OpISub: *hasResult = true; *hasResultType = true; break;
1741 case OpFSub: *hasResult = true; *hasResultType = true; break;
1742 case OpIMul: *hasResult = true; *hasResultType = true; break;
1743 case OpFMul: *hasResult = true; *hasResultType = true; break;
1744 case OpUDiv: *hasResult = true; *hasResultType = true; break;
1745 case OpSDiv: *hasResult = true; *hasResultType = true; break;
1746 case OpFDiv: *hasResult = true; *hasResultType = true; break;
1747 case OpUMod: *hasResult = true; *hasResultType = true; break;
1748 case OpSRem: *hasResult = true; *hasResultType = true; break;
1749 case OpSMod: *hasResult = true; *hasResultType = true; break;
1750 case OpFRem: *hasResult = true; *hasResultType = true; break;
1751 case OpFMod: *hasResult = true; *hasResultType = true; break;
1752 case OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
1753 case OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
1754 case OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
1755 case OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
1756 case OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
1757 case OpOuterProduct: *hasResult = true; *hasResultType = true; break;
1758 case OpDot: *hasResult = true; *hasResultType = true; break;
1759 case OpIAddCarry: *hasResult = true; *hasResultType = true; break;
1760 case OpISubBorrow: *hasResult = true; *hasResultType = true; break;
1761 case OpUMulExtended: *hasResult = true; *hasResultType = true; break;
1762 case OpSMulExtended: *hasResult = true; *hasResultType = true; break;
1763 case OpAny: *hasResult = true; *hasResultType = true; break;
1764 case OpAll: *hasResult = true; *hasResultType = true; break;
1765 case OpIsNan: *hasResult = true; *hasResultType = true; break;
1766 case OpIsInf: *hasResult = true; *hasResultType = true; break;
1767 case OpIsFinite: *hasResult = true; *hasResultType = true; break;
1768 case OpIsNormal: *hasResult = true; *hasResultType = true; break;
1769 case OpSignBitSet: *hasResult = true; *hasResultType = true; break;
1770 case OpLessOrGreater: *hasResult = true; *hasResultType = true; break;
1771 case OpOrdered: *hasResult = true; *hasResultType = true; break;
1772 case OpUnordered: *hasResult = true; *hasResultType = true; break;
1773 case OpLogicalEqual: *hasResult = true; *hasResultType = true; break;
1774 case OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
1775 case OpLogicalOr: *hasResult = true; *hasResultType = true; break;
1776 case OpLogicalAnd: *hasResult = true; *hasResultType = true; break;
1777 case OpLogicalNot: *hasResult = true; *hasResultType = true; break;
1778 case OpSelect: *hasResult = true; *hasResultType = true; break;
1779 case OpIEqual: *hasResult = true; *hasResultType = true; break;
1780 case OpINotEqual: *hasResult = true; *hasResultType = true; break;
1781 case OpUGreaterThan: *hasResult = true; *hasResultType = true; break;
1782 case OpSGreaterThan: *hasResult = true; *hasResultType = true; break;
1783 case OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
1784 case OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
1785 case OpULessThan: *hasResult = true; *hasResultType = true; break;
1786 case OpSLessThan: *hasResult = true; *hasResultType = true; break;
1787 case OpULessThanEqual: *hasResult = true; *hasResultType = true; break;
1788 case OpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
1789 case OpFOrdEqual: *hasResult = true; *hasResultType = true; break;
1790 case OpFUnordEqual: *hasResult = true; *hasResultType = true; break;
1791 case OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
1792 case OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
1793 case OpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
1794 case OpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
1795 case OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
1796 case OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
1797 case OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
1798 case OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
1799 case OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
1800 case OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
1801 case OpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
1802 case OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
1803 case OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
1804 case OpBitwiseOr: *hasResult = true; *hasResultType = true; break;
1805 case OpBitwiseXor: *hasResult = true; *hasResultType = true; break;
1806 case OpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
1807 case OpNot: *hasResult = true; *hasResultType = true; break;
1808 case OpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
1809 case OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
1810 case OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
1811 case OpBitReverse: *hasResult = true; *hasResultType = true; break;
1812 case OpBitCount: *hasResult = true; *hasResultType = true; break;
1813 case OpDPdx: *hasResult = true; *hasResultType = true; break;
1814 case OpDPdy: *hasResult = true; *hasResultType = true; break;
1815 case OpFwidth: *hasResult = true; *hasResultType = true; break;
1816 case OpDPdxFine: *hasResult = true; *hasResultType = true; break;
1817 case OpDPdyFine: *hasResult = true; *hasResultType = true; break;
1818 case OpFwidthFine: *hasResult = true; *hasResultType = true; break;
1819 case OpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
1820 case OpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
1821 case OpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
1822 case OpEmitVertex: *hasResult = false; *hasResultType = false; break;
1823 case OpEndPrimitive: *hasResult = false; *hasResultType = false; break;
1824 case OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
1825 case OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
1826 case OpControlBarrier: *hasResult = false; *hasResultType = false; break;
1827 case OpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
1828 case OpAtomicLoad: *hasResult = true; *hasResultType = true; break;
1829 case OpAtomicStore: *hasResult = false; *hasResultType = false; break;
1830 case OpAtomicExchange: *hasResult = true; *hasResultType = true; break;
1831 case OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
1832 case OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
1833 case OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
1834 case OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
1835 case OpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
1836 case OpAtomicISub: *hasResult = true; *hasResultType = true; break;
1837 case OpAtomicSMin: *hasResult = true; *hasResultType = true; break;
1838 case OpAtomicUMin: *hasResult = true; *hasResultType = true; break;
1839 case OpAtomicSMax: *hasResult = true; *hasResultType = true; break;
1840 case OpAtomicUMax: *hasResult = true; *hasResultType = true; break;
1841 case OpAtomicAnd: *hasResult = true; *hasResultType = true; break;
1842 case OpAtomicOr: *hasResult = true; *hasResultType = true; break;
1843 case OpAtomicXor: *hasResult = true; *hasResultType = true; break;
1844 case OpPhi: *hasResult = true; *hasResultType = true; break;
1845 case OpLoopMerge: *hasResult = false; *hasResultType = false; break;
1846 case OpSelectionMerge: *hasResult = false; *hasResultType = false; break;
1847 case OpLabel: *hasResult = true; *hasResultType = false; break;
1848 case OpBranch: *hasResult = false; *hasResultType = false; break;
1849 case OpBranchConditional: *hasResult = false; *hasResultType = false; break;
1850 case OpSwitch: *hasResult = false; *hasResultType = false; break;
1851 case OpKill: *hasResult = false; *hasResultType = false; break;
1852 case OpReturn: *hasResult = false; *hasResultType = false; break;
1853 case OpReturnValue: *hasResult = false; *hasResultType = false; break;
1854 case OpUnreachable: *hasResult = false; *hasResultType = false; break;
1855 case OpLifetimeStart: *hasResult = false; *hasResultType = false; break;
1856 case OpLifetimeStop: *hasResult = false; *hasResultType = false; break;
1857 case OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
1858 case OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
1859 case OpGroupAll: *hasResult = true; *hasResultType = true; break;
1860 case OpGroupAny: *hasResult = true; *hasResultType = true; break;
1861 case OpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
1862 case OpGroupIAdd: *hasResult = true; *hasResultType = true; break;
1863 case OpGroupFAdd: *hasResult = true; *hasResultType = true; break;
1864 case OpGroupFMin: *hasResult = true; *hasResultType = true; break;
1865 case OpGroupUMin: *hasResult = true; *hasResultType = true; break;
1866 case OpGroupSMin: *hasResult = true; *hasResultType = true; break;
1867 case OpGroupFMax: *hasResult = true; *hasResultType = true; break;
1868 case OpGroupUMax: *hasResult = true; *hasResultType = true; break;
1869 case OpGroupSMax: *hasResult = true; *hasResultType = true; break;
1870 case OpReadPipe: *hasResult = true; *hasResultType = true; break;
1871 case OpWritePipe: *hasResult = true; *hasResultType = true; break;
1872 case OpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
1873 case OpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
1874 case OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
1875 case OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
1876 case OpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
1877 case OpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
1878 case OpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
1879 case OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
1880 case OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
1881 case OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
1882 case OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
1883 case OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
1884 case OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
1885 case OpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
1886 case OpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
1887 case OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
1888 case OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
1889 case OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
1890 case OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
1891 case OpRetainEvent: *hasResult = false; *hasResultType = false; break;
1892 case OpReleaseEvent: *hasResult = false; *hasResultType = false; break;
1893 case OpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
1894 case OpIsValidEvent: *hasResult = true; *hasResultType = true; break;
1895 case OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
1896 case OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
1897 case OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
1898 case OpBuildNDRange: *hasResult = true; *hasResultType = true; break;
1899 case OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
1900 case OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
1901 case OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
1902 case OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
1903 case OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
1904 case OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
1905 case OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
1906 case OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
1907 case OpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
1908 case OpImageSparseGather: *hasResult = true; *hasResultType = true; break;
1909 case OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
1910 case OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
1911 case OpNoLine: *hasResult = false; *hasResultType = false; break;
1912 case OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
1913 case OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
1914 case OpImageSparseRead: *hasResult = true; *hasResultType = true; break;
1915 case OpSizeOf: *hasResult = true; *hasResultType = true; break;
1916 case OpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
1917 case OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
1918 case OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
1919 case OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
1920 case OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
1921 case OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
1922 case OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
1923 case OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
1924 case OpModuleProcessed: *hasResult = false; *hasResultType = false; break;
1925 case OpExecutionModeId: *hasResult = false; *hasResultType = false; break;
1926 case OpDecorateId: *hasResult = false; *hasResultType = false; break;
1927 case OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
1928 case OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
1929 case OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
1930 case OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
1931 case OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
1932 case OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
1933 case OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
1934 case OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
1935 case OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
1936 case OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
1937 case OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
1938 case OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
1939 case OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
1940 case OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
1941 case OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
1942 case OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
1943 case OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
1944 case OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
1945 case OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
1946 case OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
1947 case OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
1948 case OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
1949 case OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
1950 case OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
1951 case OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
1952 case OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
1953 case OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
1954 case OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
1955 case OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
1956 case OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
1957 case OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
1958 case OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
1959 case OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
1960 case OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
1961 case OpCopyLogical: *hasResult = true; *hasResultType = true; break;
1962 case OpPtrEqual: *hasResult = true; *hasResultType = true; break;
1963 case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
1964 case OpPtrDiff: *hasResult = true; *hasResultType = true; break;
1965 case OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
1966 case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
1967 case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
1968 case OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
1969 case OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
1970 case OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
1971 case OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
1972 case OpTypeRayQueryProvisionalKHR: *hasResult = true; *hasResultType = false; break;
1973 case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
1974 case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
1975 case OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
1976 case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
1977 case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
1978 case OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
1979 case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1980 case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1981 case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1982 case OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1983 case OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1984 case OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1985 case OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1986 case OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1987 case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
1988 case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
1989 case OpReadClockKHR: *hasResult = true; *hasResultType = true; break;
1990 case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
1991 case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
1992 case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
1993 case OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
1994 case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
1995 case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
1996 case OpTraceNV: *hasResult = false; *hasResultType = false; break;
1997 case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
1998 case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
1999 case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
2000 case OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
2001 case OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
2002 case OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
2003 case OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
2004 case OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
2005 case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
2006 case OpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
2007 case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
2008 case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
2009 case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
2010 case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
2011 case OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
2012 case OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
2013 case OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
2014 case OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
2015 case OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
2016 case OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
2017 case OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
2018 case OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
2019 case OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
2020 case OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
2021 case OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
2022 case OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
2023 case OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
2024 case OpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
2025 case OpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
2026 case OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
2027 case OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
2028 case OpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
2029 case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
2030 case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
2031 case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
2032 case OpFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
2033 case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
2034 case OpDecorateString: *hasResult = false; *hasResultType = false; break;
2035 case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
2036 case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
2037 case OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
2038 case OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
2039 case OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
2040 case OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
2041 case OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
2042 case OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
2043 case OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
2044 case OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
2045 case OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
2046 case OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
2047 case OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
2048 case OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
2049 case OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
2050 case OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2051 case OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2052 case OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2053 case OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2054 case OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2055 case OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2056 case OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2057 case OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2058 case OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2059 case OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2060 case OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2061 case OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
2062 case OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2063 case OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2064 case OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2065 case OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
2066 case OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
2067 case OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
2068 case OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
2069 case OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2070 case OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
2071 case OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
2072 case OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
2073 case OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
2074 case OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
2075 case OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
2076 case OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2077 case OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2078 case OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
2079 case OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
2080 case OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
2081 case OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
2082 case OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
2083 case OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
2084 case OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2085 case OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2086 case OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2087 case OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
2088 case OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
2089 case OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2090 case OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
2091 case OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
2092 case OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
2093 case OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
2094 case OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2095 case OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2096 case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2097 case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2098 case OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2099 case OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2100 case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
2101 case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
2102 case OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
2103 case OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2104 case OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2105 case OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2106 case OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2107 case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
2108 case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2109 case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
2110 case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
2111 case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2112 case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
2113 case OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
2114 case OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
2115 case OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
2116 case OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
2117 case OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
2118 case OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2119 case OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2120 case OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2121 case OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
2122 case OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
2123 case OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2124 case OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2125 case OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2126 case OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
2127 case OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
2128 case OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2129 case OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
2130 case OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
2131 case OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
2132 case OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
2133 case OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2134 case OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2135 case OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
2136 case OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
2137 case OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
2138 case OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
2139 case OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
2140 case OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
2141 case OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2142 case OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2143 case OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2144 case OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
2145 case OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
2146 case OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
2147 case OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
2148 case OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
2149 case OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
2150 case OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
2151 case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
2152 case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
2153 case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
2154 case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
2155 case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
2156 case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
2157 case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
2158 case OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
2159 case OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
2160 case OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
2161 case OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
2162 case OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
2163 case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
2164 case OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
2165 case OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
2166 case OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
2167 case OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
2168 case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
2169 case OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
2170 case OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
2171 case OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
2172 case OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
2173 case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
2174 case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
2175 case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
2176 }
2177 }
2178 #endif /* SPV_ENABLE_UTILITY_CODE */
2179
2180 // Overload operator| for mask bit combining
2181
operator |(ImageOperandsMask a,ImageOperandsMask b)2182 inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
operator |(FPFastMathModeMask a,FPFastMathModeMask b)2183 inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
operator |(SelectionControlMask a,SelectionControlMask b)2184 inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
operator |(LoopControlMask a,LoopControlMask b)2185 inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
operator |(FunctionControlMask a,FunctionControlMask b)2186 inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
operator |(MemorySemanticsMask a,MemorySemanticsMask b)2187 inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
operator |(MemoryAccessMask a,MemoryAccessMask b)2188 inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
operator |(KernelProfilingInfoMask a,KernelProfilingInfoMask b)2189 inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
operator |(RayFlagsMask a,RayFlagsMask b)2190 inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }
operator |(FragmentShadingRateMask a,FragmentShadingRateMask b)2191 inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); }
2192
2193 } // end namespace spv
2194
2195 #endif // #ifndef spirv_HPP
2196
2197