glsl: copy the new data fields when converting to nir
[mesa.git] / src / compiler / spirv / spirv.h
1 /*
2 ** Copyright (c) 2014-2019 The Khronos Group Inc.
3 **
4 ** Permission is hereby granted, free of charge, to any person obtaining a copy
5 ** of this software and/or associated documentation files (the "Materials"),
6 ** to deal in the Materials without restriction, including without limitation
7 ** the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 ** and/or sell copies of the Materials, and to permit persons to whom the
9 ** Materials are furnished to do so, subject to the following conditions:
10 **
11 ** The above copyright notice and this permission notice shall be included in
12 ** all copies or substantial portions of the Materials.
13 **
14 ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
15 ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
16 ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
17 **
18 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19 ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21 ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23 ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
24 ** IN THE MATERIALS.
25 */
26
27 /*
28 ** This header is automatically generated by the same tool that creates
29 ** the Binary Section of the SPIR-V specification.
30 */
31
32 /*
33 ** Enumeration tokens for SPIR-V, in various styles:
34 ** C, C++, C++11, JSON, Lua, Python, C#, D
35 **
36 ** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
37 ** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
38 ** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
39 ** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
40 ** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
41 ** - C# will use enum classes in the Specification class located in the "Spv" namespace,
42 ** e.g.: Spv.Specification.SourceLanguage.GLSL
43 ** - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
44 **
45 ** Some tokens act like mask values, which can be OR'd together,
46 ** while others are mutually exclusive. The mask-like ones have
47 ** "Mask" in their name, and a parallel enum that has the shift
48 ** amount (1 << x) for each corresponding enumerant.
49 */
50
51 #ifndef spirv_H
52 #define spirv_H
53
54 typedef unsigned int SpvId;
55
56 #define SPV_VERSION 0x10400
57 #define SPV_REVISION 1
58
59 static const unsigned int SpvMagicNumber = 0x07230203;
60 static const unsigned int SpvVersion = 0x00010400;
61 static const unsigned int SpvRevision = 1;
62 static const unsigned int SpvOpCodeMask = 0xffff;
63 static const unsigned int SpvWordCountShift = 16;
64
65 typedef enum SpvSourceLanguage_ {
66 SpvSourceLanguageUnknown = 0,
67 SpvSourceLanguageESSL = 1,
68 SpvSourceLanguageGLSL = 2,
69 SpvSourceLanguageOpenCL_C = 3,
70 SpvSourceLanguageOpenCL_CPP = 4,
71 SpvSourceLanguageHLSL = 5,
72 SpvSourceLanguageMax = 0x7fffffff,
73 } SpvSourceLanguage;
74
75 typedef enum SpvExecutionModel_ {
76 SpvExecutionModelVertex = 0,
77 SpvExecutionModelTessellationControl = 1,
78 SpvExecutionModelTessellationEvaluation = 2,
79 SpvExecutionModelGeometry = 3,
80 SpvExecutionModelFragment = 4,
81 SpvExecutionModelGLCompute = 5,
82 SpvExecutionModelKernel = 6,
83 SpvExecutionModelTaskNV = 5267,
84 SpvExecutionModelMeshNV = 5268,
85 SpvExecutionModelRayGenerationNV = 5313,
86 SpvExecutionModelIntersectionNV = 5314,
87 SpvExecutionModelAnyHitNV = 5315,
88 SpvExecutionModelClosestHitNV = 5316,
89 SpvExecutionModelMissNV = 5317,
90 SpvExecutionModelCallableNV = 5318,
91 SpvExecutionModelMax = 0x7fffffff,
92 } SpvExecutionModel;
93
94 typedef enum SpvAddressingModel_ {
95 SpvAddressingModelLogical = 0,
96 SpvAddressingModelPhysical32 = 1,
97 SpvAddressingModelPhysical64 = 2,
98 SpvAddressingModelPhysicalStorageBuffer64 = 5348,
99 SpvAddressingModelPhysicalStorageBuffer64EXT = 5348,
100 SpvAddressingModelMax = 0x7fffffff,
101 } SpvAddressingModel;
102
103 typedef enum SpvMemoryModel_ {
104 SpvMemoryModelSimple = 0,
105 SpvMemoryModelGLSL450 = 1,
106 SpvMemoryModelOpenCL = 2,
107 SpvMemoryModelVulkan = 3,
108 SpvMemoryModelVulkanKHR = 3,
109 SpvMemoryModelMax = 0x7fffffff,
110 } SpvMemoryModel;
111
112 typedef enum SpvExecutionMode_ {
113 SpvExecutionModeInvocations = 0,
114 SpvExecutionModeSpacingEqual = 1,
115 SpvExecutionModeSpacingFractionalEven = 2,
116 SpvExecutionModeSpacingFractionalOdd = 3,
117 SpvExecutionModeVertexOrderCw = 4,
118 SpvExecutionModeVertexOrderCcw = 5,
119 SpvExecutionModePixelCenterInteger = 6,
120 SpvExecutionModeOriginUpperLeft = 7,
121 SpvExecutionModeOriginLowerLeft = 8,
122 SpvExecutionModeEarlyFragmentTests = 9,
123 SpvExecutionModePointMode = 10,
124 SpvExecutionModeXfb = 11,
125 SpvExecutionModeDepthReplacing = 12,
126 SpvExecutionModeDepthGreater = 14,
127 SpvExecutionModeDepthLess = 15,
128 SpvExecutionModeDepthUnchanged = 16,
129 SpvExecutionModeLocalSize = 17,
130 SpvExecutionModeLocalSizeHint = 18,
131 SpvExecutionModeInputPoints = 19,
132 SpvExecutionModeInputLines = 20,
133 SpvExecutionModeInputLinesAdjacency = 21,
134 SpvExecutionModeTriangles = 22,
135 SpvExecutionModeInputTrianglesAdjacency = 23,
136 SpvExecutionModeQuads = 24,
137 SpvExecutionModeIsolines = 25,
138 SpvExecutionModeOutputVertices = 26,
139 SpvExecutionModeOutputPoints = 27,
140 SpvExecutionModeOutputLineStrip = 28,
141 SpvExecutionModeOutputTriangleStrip = 29,
142 SpvExecutionModeVecTypeHint = 30,
143 SpvExecutionModeContractionOff = 31,
144 SpvExecutionModeInitializer = 33,
145 SpvExecutionModeFinalizer = 34,
146 SpvExecutionModeSubgroupSize = 35,
147 SpvExecutionModeSubgroupsPerWorkgroup = 36,
148 SpvExecutionModeSubgroupsPerWorkgroupId = 37,
149 SpvExecutionModeLocalSizeId = 38,
150 SpvExecutionModeLocalSizeHintId = 39,
151 SpvExecutionModePostDepthCoverage = 4446,
152 SpvExecutionModeDenormPreserve = 4459,
153 SpvExecutionModeDenormFlushToZero = 4460,
154 SpvExecutionModeSignedZeroInfNanPreserve = 4461,
155 SpvExecutionModeRoundingModeRTE = 4462,
156 SpvExecutionModeRoundingModeRTZ = 4463,
157 SpvExecutionModeStencilRefReplacingEXT = 5027,
158 SpvExecutionModeOutputLinesNV = 5269,
159 SpvExecutionModeOutputPrimitivesNV = 5270,
160 SpvExecutionModeDerivativeGroupQuadsNV = 5289,
161 SpvExecutionModeDerivativeGroupLinearNV = 5290,
162 SpvExecutionModeOutputTrianglesNV = 5298,
163 SpvExecutionModePixelInterlockOrderedEXT = 5366,
164 SpvExecutionModePixelInterlockUnorderedEXT = 5367,
165 SpvExecutionModeSampleInterlockOrderedEXT = 5368,
166 SpvExecutionModeSampleInterlockUnorderedEXT = 5369,
167 SpvExecutionModeShadingRateInterlockOrderedEXT = 5370,
168 SpvExecutionModeShadingRateInterlockUnorderedEXT = 5371,
169 SpvExecutionModeMax = 0x7fffffff,
170 } SpvExecutionMode;
171
172 typedef enum SpvStorageClass_ {
173 SpvStorageClassUniformConstant = 0,
174 SpvStorageClassInput = 1,
175 SpvStorageClassUniform = 2,
176 SpvStorageClassOutput = 3,
177 SpvStorageClassWorkgroup = 4,
178 SpvStorageClassCrossWorkgroup = 5,
179 SpvStorageClassPrivate = 6,
180 SpvStorageClassFunction = 7,
181 SpvStorageClassGeneric = 8,
182 SpvStorageClassPushConstant = 9,
183 SpvStorageClassAtomicCounter = 10,
184 SpvStorageClassImage = 11,
185 SpvStorageClassStorageBuffer = 12,
186 SpvStorageClassCallableDataNV = 5328,
187 SpvStorageClassIncomingCallableDataNV = 5329,
188 SpvStorageClassRayPayloadNV = 5338,
189 SpvStorageClassHitAttributeNV = 5339,
190 SpvStorageClassIncomingRayPayloadNV = 5342,
191 SpvStorageClassShaderRecordBufferNV = 5343,
192 SpvStorageClassPhysicalStorageBuffer = 5349,
193 SpvStorageClassPhysicalStorageBufferEXT = 5349,
194 SpvStorageClassMax = 0x7fffffff,
195 } SpvStorageClass;
196
197 typedef enum SpvDim_ {
198 SpvDim1D = 0,
199 SpvDim2D = 1,
200 SpvDim3D = 2,
201 SpvDimCube = 3,
202 SpvDimRect = 4,
203 SpvDimBuffer = 5,
204 SpvDimSubpassData = 6,
205 SpvDimMax = 0x7fffffff,
206 } SpvDim;
207
208 typedef enum SpvSamplerAddressingMode_ {
209 SpvSamplerAddressingModeNone = 0,
210 SpvSamplerAddressingModeClampToEdge = 1,
211 SpvSamplerAddressingModeClamp = 2,
212 SpvSamplerAddressingModeRepeat = 3,
213 SpvSamplerAddressingModeRepeatMirrored = 4,
214 SpvSamplerAddressingModeMax = 0x7fffffff,
215 } SpvSamplerAddressingMode;
216
217 typedef enum SpvSamplerFilterMode_ {
218 SpvSamplerFilterModeNearest = 0,
219 SpvSamplerFilterModeLinear = 1,
220 SpvSamplerFilterModeMax = 0x7fffffff,
221 } SpvSamplerFilterMode;
222
223 typedef enum SpvImageFormat_ {
224 SpvImageFormatUnknown = 0,
225 SpvImageFormatRgba32f = 1,
226 SpvImageFormatRgba16f = 2,
227 SpvImageFormatR32f = 3,
228 SpvImageFormatRgba8 = 4,
229 SpvImageFormatRgba8Snorm = 5,
230 SpvImageFormatRg32f = 6,
231 SpvImageFormatRg16f = 7,
232 SpvImageFormatR11fG11fB10f = 8,
233 SpvImageFormatR16f = 9,
234 SpvImageFormatRgba16 = 10,
235 SpvImageFormatRgb10A2 = 11,
236 SpvImageFormatRg16 = 12,
237 SpvImageFormatRg8 = 13,
238 SpvImageFormatR16 = 14,
239 SpvImageFormatR8 = 15,
240 SpvImageFormatRgba16Snorm = 16,
241 SpvImageFormatRg16Snorm = 17,
242 SpvImageFormatRg8Snorm = 18,
243 SpvImageFormatR16Snorm = 19,
244 SpvImageFormatR8Snorm = 20,
245 SpvImageFormatRgba32i = 21,
246 SpvImageFormatRgba16i = 22,
247 SpvImageFormatRgba8i = 23,
248 SpvImageFormatR32i = 24,
249 SpvImageFormatRg32i = 25,
250 SpvImageFormatRg16i = 26,
251 SpvImageFormatRg8i = 27,
252 SpvImageFormatR16i = 28,
253 SpvImageFormatR8i = 29,
254 SpvImageFormatRgba32ui = 30,
255 SpvImageFormatRgba16ui = 31,
256 SpvImageFormatRgba8ui = 32,
257 SpvImageFormatR32ui = 33,
258 SpvImageFormatRgb10a2ui = 34,
259 SpvImageFormatRg32ui = 35,
260 SpvImageFormatRg16ui = 36,
261 SpvImageFormatRg8ui = 37,
262 SpvImageFormatR16ui = 38,
263 SpvImageFormatR8ui = 39,
264 SpvImageFormatMax = 0x7fffffff,
265 } SpvImageFormat;
266
267 typedef enum SpvImageChannelOrder_ {
268 SpvImageChannelOrderR = 0,
269 SpvImageChannelOrderA = 1,
270 SpvImageChannelOrderRG = 2,
271 SpvImageChannelOrderRA = 3,
272 SpvImageChannelOrderRGB = 4,
273 SpvImageChannelOrderRGBA = 5,
274 SpvImageChannelOrderBGRA = 6,
275 SpvImageChannelOrderARGB = 7,
276 SpvImageChannelOrderIntensity = 8,
277 SpvImageChannelOrderLuminance = 9,
278 SpvImageChannelOrderRx = 10,
279 SpvImageChannelOrderRGx = 11,
280 SpvImageChannelOrderRGBx = 12,
281 SpvImageChannelOrderDepth = 13,
282 SpvImageChannelOrderDepthStencil = 14,
283 SpvImageChannelOrdersRGB = 15,
284 SpvImageChannelOrdersRGBx = 16,
285 SpvImageChannelOrdersRGBA = 17,
286 SpvImageChannelOrdersBGRA = 18,
287 SpvImageChannelOrderABGR = 19,
288 SpvImageChannelOrderMax = 0x7fffffff,
289 } SpvImageChannelOrder;
290
291 typedef enum SpvImageChannelDataType_ {
292 SpvImageChannelDataTypeSnormInt8 = 0,
293 SpvImageChannelDataTypeSnormInt16 = 1,
294 SpvImageChannelDataTypeUnormInt8 = 2,
295 SpvImageChannelDataTypeUnormInt16 = 3,
296 SpvImageChannelDataTypeUnormShort565 = 4,
297 SpvImageChannelDataTypeUnormShort555 = 5,
298 SpvImageChannelDataTypeUnormInt101010 = 6,
299 SpvImageChannelDataTypeSignedInt8 = 7,
300 SpvImageChannelDataTypeSignedInt16 = 8,
301 SpvImageChannelDataTypeSignedInt32 = 9,
302 SpvImageChannelDataTypeUnsignedInt8 = 10,
303 SpvImageChannelDataTypeUnsignedInt16 = 11,
304 SpvImageChannelDataTypeUnsignedInt32 = 12,
305 SpvImageChannelDataTypeHalfFloat = 13,
306 SpvImageChannelDataTypeFloat = 14,
307 SpvImageChannelDataTypeUnormInt24 = 15,
308 SpvImageChannelDataTypeUnormInt101010_2 = 16,
309 SpvImageChannelDataTypeMax = 0x7fffffff,
310 } SpvImageChannelDataType;
311
312 typedef enum SpvImageOperandsShift_ {
313 SpvImageOperandsBiasShift = 0,
314 SpvImageOperandsLodShift = 1,
315 SpvImageOperandsGradShift = 2,
316 SpvImageOperandsConstOffsetShift = 3,
317 SpvImageOperandsOffsetShift = 4,
318 SpvImageOperandsConstOffsetsShift = 5,
319 SpvImageOperandsSampleShift = 6,
320 SpvImageOperandsMinLodShift = 7,
321 SpvImageOperandsMakeTexelAvailableShift = 8,
322 SpvImageOperandsMakeTexelAvailableKHRShift = 8,
323 SpvImageOperandsMakeTexelVisibleShift = 9,
324 SpvImageOperandsMakeTexelVisibleKHRShift = 9,
325 SpvImageOperandsNonPrivateTexelShift = 10,
326 SpvImageOperandsNonPrivateTexelKHRShift = 10,
327 SpvImageOperandsVolatileTexelShift = 11,
328 SpvImageOperandsVolatileTexelKHRShift = 11,
329 SpvImageOperandsSignExtendShift = 12,
330 SpvImageOperandsZeroExtendShift = 13,
331 SpvImageOperandsMax = 0x7fffffff,
332 } SpvImageOperandsShift;
333
334 typedef enum SpvImageOperandsMask_ {
335 SpvImageOperandsMaskNone = 0,
336 SpvImageOperandsBiasMask = 0x00000001,
337 SpvImageOperandsLodMask = 0x00000002,
338 SpvImageOperandsGradMask = 0x00000004,
339 SpvImageOperandsConstOffsetMask = 0x00000008,
340 SpvImageOperandsOffsetMask = 0x00000010,
341 SpvImageOperandsConstOffsetsMask = 0x00000020,
342 SpvImageOperandsSampleMask = 0x00000040,
343 SpvImageOperandsMinLodMask = 0x00000080,
344 SpvImageOperandsMakeTexelAvailableMask = 0x00000100,
345 SpvImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
346 SpvImageOperandsMakeTexelVisibleMask = 0x00000200,
347 SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
348 SpvImageOperandsNonPrivateTexelMask = 0x00000400,
349 SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400,
350 SpvImageOperandsVolatileTexelMask = 0x00000800,
351 SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
352 SpvImageOperandsSignExtendMask = 0x00001000,
353 SpvImageOperandsZeroExtendMask = 0x00002000,
354 } SpvImageOperandsMask;
355
356 typedef enum SpvFPFastMathModeShift_ {
357 SpvFPFastMathModeNotNaNShift = 0,
358 SpvFPFastMathModeNotInfShift = 1,
359 SpvFPFastMathModeNSZShift = 2,
360 SpvFPFastMathModeAllowRecipShift = 3,
361 SpvFPFastMathModeFastShift = 4,
362 SpvFPFastMathModeMax = 0x7fffffff,
363 } SpvFPFastMathModeShift;
364
365 typedef enum SpvFPFastMathModeMask_ {
366 SpvFPFastMathModeMaskNone = 0,
367 SpvFPFastMathModeNotNaNMask = 0x00000001,
368 SpvFPFastMathModeNotInfMask = 0x00000002,
369 SpvFPFastMathModeNSZMask = 0x00000004,
370 SpvFPFastMathModeAllowRecipMask = 0x00000008,
371 SpvFPFastMathModeFastMask = 0x00000010,
372 } SpvFPFastMathModeMask;
373
374 typedef enum SpvFPRoundingMode_ {
375 SpvFPRoundingModeRTE = 0,
376 SpvFPRoundingModeRTZ = 1,
377 SpvFPRoundingModeRTP = 2,
378 SpvFPRoundingModeRTN = 3,
379 SpvFPRoundingModeMax = 0x7fffffff,
380 } SpvFPRoundingMode;
381
382 typedef enum SpvLinkageType_ {
383 SpvLinkageTypeExport = 0,
384 SpvLinkageTypeImport = 1,
385 SpvLinkageTypeMax = 0x7fffffff,
386 } SpvLinkageType;
387
388 typedef enum SpvAccessQualifier_ {
389 SpvAccessQualifierReadOnly = 0,
390 SpvAccessQualifierWriteOnly = 1,
391 SpvAccessQualifierReadWrite = 2,
392 SpvAccessQualifierMax = 0x7fffffff,
393 } SpvAccessQualifier;
394
395 typedef enum SpvFunctionParameterAttribute_ {
396 SpvFunctionParameterAttributeZext = 0,
397 SpvFunctionParameterAttributeSext = 1,
398 SpvFunctionParameterAttributeByVal = 2,
399 SpvFunctionParameterAttributeSret = 3,
400 SpvFunctionParameterAttributeNoAlias = 4,
401 SpvFunctionParameterAttributeNoCapture = 5,
402 SpvFunctionParameterAttributeNoWrite = 6,
403 SpvFunctionParameterAttributeNoReadWrite = 7,
404 SpvFunctionParameterAttributeMax = 0x7fffffff,
405 } SpvFunctionParameterAttribute;
406
407 typedef enum SpvDecoration_ {
408 SpvDecorationRelaxedPrecision = 0,
409 SpvDecorationSpecId = 1,
410 SpvDecorationBlock = 2,
411 SpvDecorationBufferBlock = 3,
412 SpvDecorationRowMajor = 4,
413 SpvDecorationColMajor = 5,
414 SpvDecorationArrayStride = 6,
415 SpvDecorationMatrixStride = 7,
416 SpvDecorationGLSLShared = 8,
417 SpvDecorationGLSLPacked = 9,
418 SpvDecorationCPacked = 10,
419 SpvDecorationBuiltIn = 11,
420 SpvDecorationNoPerspective = 13,
421 SpvDecorationFlat = 14,
422 SpvDecorationPatch = 15,
423 SpvDecorationCentroid = 16,
424 SpvDecorationSample = 17,
425 SpvDecorationInvariant = 18,
426 SpvDecorationRestrict = 19,
427 SpvDecorationAliased = 20,
428 SpvDecorationVolatile = 21,
429 SpvDecorationConstant = 22,
430 SpvDecorationCoherent = 23,
431 SpvDecorationNonWritable = 24,
432 SpvDecorationNonReadable = 25,
433 SpvDecorationUniform = 26,
434 SpvDecorationUniformId = 27,
435 SpvDecorationSaturatedConversion = 28,
436 SpvDecorationStream = 29,
437 SpvDecorationLocation = 30,
438 SpvDecorationComponent = 31,
439 SpvDecorationIndex = 32,
440 SpvDecorationBinding = 33,
441 SpvDecorationDescriptorSet = 34,
442 SpvDecorationOffset = 35,
443 SpvDecorationXfbBuffer = 36,
444 SpvDecorationXfbStride = 37,
445 SpvDecorationFuncParamAttr = 38,
446 SpvDecorationFPRoundingMode = 39,
447 SpvDecorationFPFastMathMode = 40,
448 SpvDecorationLinkageAttributes = 41,
449 SpvDecorationNoContraction = 42,
450 SpvDecorationInputAttachmentIndex = 43,
451 SpvDecorationAlignment = 44,
452 SpvDecorationMaxByteOffset = 45,
453 SpvDecorationAlignmentId = 46,
454 SpvDecorationMaxByteOffsetId = 47,
455 SpvDecorationNoSignedWrap = 4469,
456 SpvDecorationNoUnsignedWrap = 4470,
457 SpvDecorationExplicitInterpAMD = 4999,
458 SpvDecorationOverrideCoverageNV = 5248,
459 SpvDecorationPassthroughNV = 5250,
460 SpvDecorationViewportRelativeNV = 5252,
461 SpvDecorationSecondaryViewportRelativeNV = 5256,
462 SpvDecorationPerPrimitiveNV = 5271,
463 SpvDecorationPerViewNV = 5272,
464 SpvDecorationPerTaskNV = 5273,
465 SpvDecorationPerVertexNV = 5285,
466 SpvDecorationNonUniform = 5300,
467 SpvDecorationNonUniformEXT = 5300,
468 SpvDecorationRestrictPointer = 5355,
469 SpvDecorationRestrictPointerEXT = 5355,
470 SpvDecorationAliasedPointer = 5356,
471 SpvDecorationAliasedPointerEXT = 5356,
472 SpvDecorationCounterBuffer = 5634,
473 SpvDecorationHlslCounterBufferGOOGLE = 5634,
474 SpvDecorationHlslSemanticGOOGLE = 5635,
475 SpvDecorationUserSemantic = 5635,
476 SpvDecorationUserTypeGOOGLE = 5636,
477 SpvDecorationMax = 0x7fffffff,
478 } SpvDecoration;
479
480 typedef enum SpvBuiltIn_ {
481 SpvBuiltInPosition = 0,
482 SpvBuiltInPointSize = 1,
483 SpvBuiltInClipDistance = 3,
484 SpvBuiltInCullDistance = 4,
485 SpvBuiltInVertexId = 5,
486 SpvBuiltInInstanceId = 6,
487 SpvBuiltInPrimitiveId = 7,
488 SpvBuiltInInvocationId = 8,
489 SpvBuiltInLayer = 9,
490 SpvBuiltInViewportIndex = 10,
491 SpvBuiltInTessLevelOuter = 11,
492 SpvBuiltInTessLevelInner = 12,
493 SpvBuiltInTessCoord = 13,
494 SpvBuiltInPatchVertices = 14,
495 SpvBuiltInFragCoord = 15,
496 SpvBuiltInPointCoord = 16,
497 SpvBuiltInFrontFacing = 17,
498 SpvBuiltInSampleId = 18,
499 SpvBuiltInSamplePosition = 19,
500 SpvBuiltInSampleMask = 20,
501 SpvBuiltInFragDepth = 22,
502 SpvBuiltInHelperInvocation = 23,
503 SpvBuiltInNumWorkgroups = 24,
504 SpvBuiltInWorkgroupSize = 25,
505 SpvBuiltInWorkgroupId = 26,
506 SpvBuiltInLocalInvocationId = 27,
507 SpvBuiltInGlobalInvocationId = 28,
508 SpvBuiltInLocalInvocationIndex = 29,
509 SpvBuiltInWorkDim = 30,
510 SpvBuiltInGlobalSize = 31,
511 SpvBuiltInEnqueuedWorkgroupSize = 32,
512 SpvBuiltInGlobalOffset = 33,
513 SpvBuiltInGlobalLinearId = 34,
514 SpvBuiltInSubgroupSize = 36,
515 SpvBuiltInSubgroupMaxSize = 37,
516 SpvBuiltInNumSubgroups = 38,
517 SpvBuiltInNumEnqueuedSubgroups = 39,
518 SpvBuiltInSubgroupId = 40,
519 SpvBuiltInSubgroupLocalInvocationId = 41,
520 SpvBuiltInVertexIndex = 42,
521 SpvBuiltInInstanceIndex = 43,
522 SpvBuiltInSubgroupEqMask = 4416,
523 SpvBuiltInSubgroupEqMaskKHR = 4416,
524 SpvBuiltInSubgroupGeMask = 4417,
525 SpvBuiltInSubgroupGeMaskKHR = 4417,
526 SpvBuiltInSubgroupGtMask = 4418,
527 SpvBuiltInSubgroupGtMaskKHR = 4418,
528 SpvBuiltInSubgroupLeMask = 4419,
529 SpvBuiltInSubgroupLeMaskKHR = 4419,
530 SpvBuiltInSubgroupLtMask = 4420,
531 SpvBuiltInSubgroupLtMaskKHR = 4420,
532 SpvBuiltInBaseVertex = 4424,
533 SpvBuiltInBaseInstance = 4425,
534 SpvBuiltInDrawIndex = 4426,
535 SpvBuiltInDeviceIndex = 4438,
536 SpvBuiltInViewIndex = 4440,
537 SpvBuiltInBaryCoordNoPerspAMD = 4992,
538 SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
539 SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
540 SpvBuiltInBaryCoordSmoothAMD = 4995,
541 SpvBuiltInBaryCoordSmoothCentroidAMD = 4996,
542 SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
543 SpvBuiltInBaryCoordPullModelAMD = 4998,
544 SpvBuiltInFragStencilRefEXT = 5014,
545 SpvBuiltInViewportMaskNV = 5253,
546 SpvBuiltInSecondaryPositionNV = 5257,
547 SpvBuiltInSecondaryViewportMaskNV = 5258,
548 SpvBuiltInPositionPerViewNV = 5261,
549 SpvBuiltInViewportMaskPerViewNV = 5262,
550 SpvBuiltInFullyCoveredEXT = 5264,
551 SpvBuiltInTaskCountNV = 5274,
552 SpvBuiltInPrimitiveCountNV = 5275,
553 SpvBuiltInPrimitiveIndicesNV = 5276,
554 SpvBuiltInClipDistancePerViewNV = 5277,
555 SpvBuiltInCullDistancePerViewNV = 5278,
556 SpvBuiltInLayerPerViewNV = 5279,
557 SpvBuiltInMeshViewCountNV = 5280,
558 SpvBuiltInMeshViewIndicesNV = 5281,
559 SpvBuiltInBaryCoordNV = 5286,
560 SpvBuiltInBaryCoordNoPerspNV = 5287,
561 SpvBuiltInFragSizeEXT = 5292,
562 SpvBuiltInFragmentSizeNV = 5292,
563 SpvBuiltInFragInvocationCountEXT = 5293,
564 SpvBuiltInInvocationsPerPixelNV = 5293,
565 SpvBuiltInLaunchIdNV = 5319,
566 SpvBuiltInLaunchSizeNV = 5320,
567 SpvBuiltInWorldRayOriginNV = 5321,
568 SpvBuiltInWorldRayDirectionNV = 5322,
569 SpvBuiltInObjectRayOriginNV = 5323,
570 SpvBuiltInObjectRayDirectionNV = 5324,
571 SpvBuiltInRayTminNV = 5325,
572 SpvBuiltInRayTmaxNV = 5326,
573 SpvBuiltInInstanceCustomIndexNV = 5327,
574 SpvBuiltInObjectToWorldNV = 5330,
575 SpvBuiltInWorldToObjectNV = 5331,
576 SpvBuiltInHitTNV = 5332,
577 SpvBuiltInHitKindNV = 5333,
578 SpvBuiltInIncomingRayFlagsNV = 5351,
579 SpvBuiltInWarpsPerSMNV = 5374,
580 SpvBuiltInSMCountNV = 5375,
581 SpvBuiltInWarpIDNV = 5376,
582 SpvBuiltInSMIDNV = 5377,
583 SpvBuiltInMax = 0x7fffffff,
584 } SpvBuiltIn;
585
586 typedef enum SpvSelectionControlShift_ {
587 SpvSelectionControlFlattenShift = 0,
588 SpvSelectionControlDontFlattenShift = 1,
589 SpvSelectionControlMax = 0x7fffffff,
590 } SpvSelectionControlShift;
591
592 typedef enum SpvSelectionControlMask_ {
593 SpvSelectionControlMaskNone = 0,
594 SpvSelectionControlFlattenMask = 0x00000001,
595 SpvSelectionControlDontFlattenMask = 0x00000002,
596 } SpvSelectionControlMask;
597
598 typedef enum SpvLoopControlShift_ {
599 SpvLoopControlUnrollShift = 0,
600 SpvLoopControlDontUnrollShift = 1,
601 SpvLoopControlDependencyInfiniteShift = 2,
602 SpvLoopControlDependencyLengthShift = 3,
603 SpvLoopControlMinIterationsShift = 4,
604 SpvLoopControlMaxIterationsShift = 5,
605 SpvLoopControlIterationMultipleShift = 6,
606 SpvLoopControlPeelCountShift = 7,
607 SpvLoopControlPartialCountShift = 8,
608 SpvLoopControlMax = 0x7fffffff,
609 } SpvLoopControlShift;
610
611 typedef enum SpvLoopControlMask_ {
612 SpvLoopControlMaskNone = 0,
613 SpvLoopControlUnrollMask = 0x00000001,
614 SpvLoopControlDontUnrollMask = 0x00000002,
615 SpvLoopControlDependencyInfiniteMask = 0x00000004,
616 SpvLoopControlDependencyLengthMask = 0x00000008,
617 SpvLoopControlMinIterationsMask = 0x00000010,
618 SpvLoopControlMaxIterationsMask = 0x00000020,
619 SpvLoopControlIterationMultipleMask = 0x00000040,
620 SpvLoopControlPeelCountMask = 0x00000080,
621 SpvLoopControlPartialCountMask = 0x00000100,
622 } SpvLoopControlMask;
623
624 typedef enum SpvFunctionControlShift_ {
625 SpvFunctionControlInlineShift = 0,
626 SpvFunctionControlDontInlineShift = 1,
627 SpvFunctionControlPureShift = 2,
628 SpvFunctionControlConstShift = 3,
629 SpvFunctionControlMax = 0x7fffffff,
630 } SpvFunctionControlShift;
631
632 typedef enum SpvFunctionControlMask_ {
633 SpvFunctionControlMaskNone = 0,
634 SpvFunctionControlInlineMask = 0x00000001,
635 SpvFunctionControlDontInlineMask = 0x00000002,
636 SpvFunctionControlPureMask = 0x00000004,
637 SpvFunctionControlConstMask = 0x00000008,
638 } SpvFunctionControlMask;
639
640 typedef enum SpvMemorySemanticsShift_ {
641 SpvMemorySemanticsAcquireShift = 1,
642 SpvMemorySemanticsReleaseShift = 2,
643 SpvMemorySemanticsAcquireReleaseShift = 3,
644 SpvMemorySemanticsSequentiallyConsistentShift = 4,
645 SpvMemorySemanticsUniformMemoryShift = 6,
646 SpvMemorySemanticsSubgroupMemoryShift = 7,
647 SpvMemorySemanticsWorkgroupMemoryShift = 8,
648 SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
649 SpvMemorySemanticsAtomicCounterMemoryShift = 10,
650 SpvMemorySemanticsImageMemoryShift = 11,
651 SpvMemorySemanticsOutputMemoryShift = 12,
652 SpvMemorySemanticsOutputMemoryKHRShift = 12,
653 SpvMemorySemanticsMakeAvailableShift = 13,
654 SpvMemorySemanticsMakeAvailableKHRShift = 13,
655 SpvMemorySemanticsMakeVisibleShift = 14,
656 SpvMemorySemanticsMakeVisibleKHRShift = 14,
657 SpvMemorySemanticsVolatileShift = 15,
658 SpvMemorySemanticsMax = 0x7fffffff,
659 } SpvMemorySemanticsShift;
660
661 typedef enum SpvMemorySemanticsMask_ {
662 SpvMemorySemanticsMaskNone = 0,
663 SpvMemorySemanticsAcquireMask = 0x00000002,
664 SpvMemorySemanticsReleaseMask = 0x00000004,
665 SpvMemorySemanticsAcquireReleaseMask = 0x00000008,
666 SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010,
667 SpvMemorySemanticsUniformMemoryMask = 0x00000040,
668 SpvMemorySemanticsSubgroupMemoryMask = 0x00000080,
669 SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100,
670 SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
671 SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400,
672 SpvMemorySemanticsImageMemoryMask = 0x00000800,
673 SpvMemorySemanticsOutputMemoryMask = 0x00001000,
674 SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000,
675 SpvMemorySemanticsMakeAvailableMask = 0x00002000,
676 SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000,
677 SpvMemorySemanticsMakeVisibleMask = 0x00004000,
678 SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000,
679 SpvMemorySemanticsVolatileMask = 0x00008000,
680 } SpvMemorySemanticsMask;
681
682 typedef enum SpvMemoryAccessShift_ {
683 SpvMemoryAccessVolatileShift = 0,
684 SpvMemoryAccessAlignedShift = 1,
685 SpvMemoryAccessNontemporalShift = 2,
686 SpvMemoryAccessMakePointerAvailableShift = 3,
687 SpvMemoryAccessMakePointerAvailableKHRShift = 3,
688 SpvMemoryAccessMakePointerVisibleShift = 4,
689 SpvMemoryAccessMakePointerVisibleKHRShift = 4,
690 SpvMemoryAccessNonPrivatePointerShift = 5,
691 SpvMemoryAccessNonPrivatePointerKHRShift = 5,
692 SpvMemoryAccessMax = 0x7fffffff,
693 } SpvMemoryAccessShift;
694
695 typedef enum SpvMemoryAccessMask_ {
696 SpvMemoryAccessMaskNone = 0,
697 SpvMemoryAccessVolatileMask = 0x00000001,
698 SpvMemoryAccessAlignedMask = 0x00000002,
699 SpvMemoryAccessNontemporalMask = 0x00000004,
700 SpvMemoryAccessMakePointerAvailableMask = 0x00000008,
701 SpvMemoryAccessMakePointerAvailableKHRMask = 0x00000008,
702 SpvMemoryAccessMakePointerVisibleMask = 0x00000010,
703 SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010,
704 SpvMemoryAccessNonPrivatePointerMask = 0x00000020,
705 SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020,
706 } SpvMemoryAccessMask;
707
708 typedef enum SpvScope_ {
709 SpvScopeCrossDevice = 0,
710 SpvScopeDevice = 1,
711 SpvScopeWorkgroup = 2,
712 SpvScopeSubgroup = 3,
713 SpvScopeInvocation = 4,
714 SpvScopeQueueFamily = 5,
715 SpvScopeQueueFamilyKHR = 5,
716 SpvScopeMax = 0x7fffffff,
717 } SpvScope;
718
719 typedef enum SpvGroupOperation_ {
720 SpvGroupOperationReduce = 0,
721 SpvGroupOperationInclusiveScan = 1,
722 SpvGroupOperationExclusiveScan = 2,
723 SpvGroupOperationClusteredReduce = 3,
724 SpvGroupOperationPartitionedReduceNV = 6,
725 SpvGroupOperationPartitionedInclusiveScanNV = 7,
726 SpvGroupOperationPartitionedExclusiveScanNV = 8,
727 SpvGroupOperationMax = 0x7fffffff,
728 } SpvGroupOperation;
729
730 typedef enum SpvKernelEnqueueFlags_ {
731 SpvKernelEnqueueFlagsNoWait = 0,
732 SpvKernelEnqueueFlagsWaitKernel = 1,
733 SpvKernelEnqueueFlagsWaitWorkGroup = 2,
734 SpvKernelEnqueueFlagsMax = 0x7fffffff,
735 } SpvKernelEnqueueFlags;
736
737 typedef enum SpvKernelProfilingInfoShift_ {
738 SpvKernelProfilingInfoCmdExecTimeShift = 0,
739 SpvKernelProfilingInfoMax = 0x7fffffff,
740 } SpvKernelProfilingInfoShift;
741
742 typedef enum SpvKernelProfilingInfoMask_ {
743 SpvKernelProfilingInfoMaskNone = 0,
744 SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
745 } SpvKernelProfilingInfoMask;
746
747 typedef enum SpvCapability_ {
748 SpvCapabilityMatrix = 0,
749 SpvCapabilityShader = 1,
750 SpvCapabilityGeometry = 2,
751 SpvCapabilityTessellation = 3,
752 SpvCapabilityAddresses = 4,
753 SpvCapabilityLinkage = 5,
754 SpvCapabilityKernel = 6,
755 SpvCapabilityVector16 = 7,
756 SpvCapabilityFloat16Buffer = 8,
757 SpvCapabilityFloat16 = 9,
758 SpvCapabilityFloat64 = 10,
759 SpvCapabilityInt64 = 11,
760 SpvCapabilityInt64Atomics = 12,
761 SpvCapabilityImageBasic = 13,
762 SpvCapabilityImageReadWrite = 14,
763 SpvCapabilityImageMipmap = 15,
764 SpvCapabilityPipes = 17,
765 SpvCapabilityGroups = 18,
766 SpvCapabilityDeviceEnqueue = 19,
767 SpvCapabilityLiteralSampler = 20,
768 SpvCapabilityAtomicStorage = 21,
769 SpvCapabilityInt16 = 22,
770 SpvCapabilityTessellationPointSize = 23,
771 SpvCapabilityGeometryPointSize = 24,
772 SpvCapabilityImageGatherExtended = 25,
773 SpvCapabilityStorageImageMultisample = 27,
774 SpvCapabilityUniformBufferArrayDynamicIndexing = 28,
775 SpvCapabilitySampledImageArrayDynamicIndexing = 29,
776 SpvCapabilityStorageBufferArrayDynamicIndexing = 30,
777 SpvCapabilityStorageImageArrayDynamicIndexing = 31,
778 SpvCapabilityClipDistance = 32,
779 SpvCapabilityCullDistance = 33,
780 SpvCapabilityImageCubeArray = 34,
781 SpvCapabilitySampleRateShading = 35,
782 SpvCapabilityImageRect = 36,
783 SpvCapabilitySampledRect = 37,
784 SpvCapabilityGenericPointer = 38,
785 SpvCapabilityInt8 = 39,
786 SpvCapabilityInputAttachment = 40,
787 SpvCapabilitySparseResidency = 41,
788 SpvCapabilityMinLod = 42,
789 SpvCapabilitySampled1D = 43,
790 SpvCapabilityImage1D = 44,
791 SpvCapabilitySampledCubeArray = 45,
792 SpvCapabilitySampledBuffer = 46,
793 SpvCapabilityImageBuffer = 47,
794 SpvCapabilityImageMSArray = 48,
795 SpvCapabilityStorageImageExtendedFormats = 49,
796 SpvCapabilityImageQuery = 50,
797 SpvCapabilityDerivativeControl = 51,
798 SpvCapabilityInterpolationFunction = 52,
799 SpvCapabilityTransformFeedback = 53,
800 SpvCapabilityGeometryStreams = 54,
801 SpvCapabilityStorageImageReadWithoutFormat = 55,
802 SpvCapabilityStorageImageWriteWithoutFormat = 56,
803 SpvCapabilityMultiViewport = 57,
804 SpvCapabilitySubgroupDispatch = 58,
805 SpvCapabilityNamedBarrier = 59,
806 SpvCapabilityPipeStorage = 60,
807 SpvCapabilityGroupNonUniform = 61,
808 SpvCapabilityGroupNonUniformVote = 62,
809 SpvCapabilityGroupNonUniformArithmetic = 63,
810 SpvCapabilityGroupNonUniformBallot = 64,
811 SpvCapabilityGroupNonUniformShuffle = 65,
812 SpvCapabilityGroupNonUniformShuffleRelative = 66,
813 SpvCapabilityGroupNonUniformClustered = 67,
814 SpvCapabilityGroupNonUniformQuad = 68,
815 SpvCapabilityShaderLayer = 69,
816 SpvCapabilityShaderViewportIndex = 70,
817 SpvCapabilitySubgroupBallotKHR = 4423,
818 SpvCapabilityDrawParameters = 4427,
819 SpvCapabilitySubgroupVoteKHR = 4431,
820 SpvCapabilityStorageBuffer16BitAccess = 4433,
821 SpvCapabilityStorageUniformBufferBlock16 = 4433,
822 SpvCapabilityStorageUniform16 = 4434,
823 SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434,
824 SpvCapabilityStoragePushConstant16 = 4435,
825 SpvCapabilityStorageInputOutput16 = 4436,
826 SpvCapabilityDeviceGroup = 4437,
827 SpvCapabilityMultiView = 4439,
828 SpvCapabilityVariablePointersStorageBuffer = 4441,
829 SpvCapabilityVariablePointers = 4442,
830 SpvCapabilityAtomicStorageOps = 4445,
831 SpvCapabilitySampleMaskPostDepthCoverage = 4447,
832 SpvCapabilityStorageBuffer8BitAccess = 4448,
833 SpvCapabilityUniformAndStorageBuffer8BitAccess = 4449,
834 SpvCapabilityStoragePushConstant8 = 4450,
835 SpvCapabilityDenormPreserve = 4464,
836 SpvCapabilityDenormFlushToZero = 4465,
837 SpvCapabilitySignedZeroInfNanPreserve = 4466,
838 SpvCapabilityRoundingModeRTE = 4467,
839 SpvCapabilityRoundingModeRTZ = 4468,
840 SpvCapabilityFloat16ImageAMD = 5008,
841 SpvCapabilityImageGatherBiasLodAMD = 5009,
842 SpvCapabilityFragmentMaskAMD = 5010,
843 SpvCapabilityStencilExportEXT = 5013,
844 SpvCapabilityImageReadWriteLodAMD = 5015,
845 SpvCapabilityShaderClockKHR = 5055,
846 SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
847 SpvCapabilityGeometryShaderPassthroughNV = 5251,
848 SpvCapabilityShaderViewportIndexLayerEXT = 5254,
849 SpvCapabilityShaderViewportIndexLayerNV = 5254,
850 SpvCapabilityShaderViewportMaskNV = 5255,
851 SpvCapabilityShaderStereoViewNV = 5259,
852 SpvCapabilityPerViewAttributesNV = 5260,
853 SpvCapabilityFragmentFullyCoveredEXT = 5265,
854 SpvCapabilityMeshShadingNV = 5266,
855 SpvCapabilityImageFootprintNV = 5282,
856 SpvCapabilityFragmentBarycentricNV = 5284,
857 SpvCapabilityComputeDerivativeGroupQuadsNV = 5288,
858 SpvCapabilityFragmentDensityEXT = 5291,
859 SpvCapabilityShadingRateNV = 5291,
860 SpvCapabilityGroupNonUniformPartitionedNV = 5297,
861 SpvCapabilityShaderNonUniform = 5301,
862 SpvCapabilityShaderNonUniformEXT = 5301,
863 SpvCapabilityRuntimeDescriptorArray = 5302,
864 SpvCapabilityRuntimeDescriptorArrayEXT = 5302,
865 SpvCapabilityInputAttachmentArrayDynamicIndexing = 5303,
866 SpvCapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
867 SpvCapabilityUniformTexelBufferArrayDynamicIndexing = 5304,
868 SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
869 SpvCapabilityStorageTexelBufferArrayDynamicIndexing = 5305,
870 SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
871 SpvCapabilityUniformBufferArrayNonUniformIndexing = 5306,
872 SpvCapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
873 SpvCapabilitySampledImageArrayNonUniformIndexing = 5307,
874 SpvCapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
875 SpvCapabilityStorageBufferArrayNonUniformIndexing = 5308,
876 SpvCapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
877 SpvCapabilityStorageImageArrayNonUniformIndexing = 5309,
878 SpvCapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
879 SpvCapabilityInputAttachmentArrayNonUniformIndexing = 5310,
880 SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
881 SpvCapabilityUniformTexelBufferArrayNonUniformIndexing = 5311,
882 SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
883 SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
884 SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
885 SpvCapabilityRayTracingNV = 5340,
886 SpvCapabilityVulkanMemoryModel = 5345,
887 SpvCapabilityVulkanMemoryModelKHR = 5345,
888 SpvCapabilityVulkanMemoryModelDeviceScope = 5346,
889 SpvCapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
890 SpvCapabilityPhysicalStorageBufferAddresses = 5347,
891 SpvCapabilityPhysicalStorageBufferAddressesEXT = 5347,
892 SpvCapabilityComputeDerivativeGroupLinearNV = 5350,
893 SpvCapabilityCooperativeMatrixNV = 5357,
894 SpvCapabilityFragmentShaderSampleInterlockEXT = 5363,
895 SpvCapabilityFragmentShaderShadingRateInterlockEXT = 5372,
896 SpvCapabilityShaderSMBuiltinsNV = 5373,
897 SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
898 SpvCapabilityDemoteToHelperInvocationEXT = 5379,
899 SpvCapabilitySubgroupShuffleINTEL = 5568,
900 SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
901 SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
902 SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579,
903 SpvCapabilityIntegerFunctions2INTEL = 5584,
904 SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696,
905 SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
906 SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
907 SpvCapabilityMax = 0x7fffffff,
908 } SpvCapability;
909
910 typedef enum SpvOp_ {
911 SpvOpNop = 0,
912 SpvOpUndef = 1,
913 SpvOpSourceContinued = 2,
914 SpvOpSource = 3,
915 SpvOpSourceExtension = 4,
916 SpvOpName = 5,
917 SpvOpMemberName = 6,
918 SpvOpString = 7,
919 SpvOpLine = 8,
920 SpvOpExtension = 10,
921 SpvOpExtInstImport = 11,
922 SpvOpExtInst = 12,
923 SpvOpMemoryModel = 14,
924 SpvOpEntryPoint = 15,
925 SpvOpExecutionMode = 16,
926 SpvOpCapability = 17,
927 SpvOpTypeVoid = 19,
928 SpvOpTypeBool = 20,
929 SpvOpTypeInt = 21,
930 SpvOpTypeFloat = 22,
931 SpvOpTypeVector = 23,
932 SpvOpTypeMatrix = 24,
933 SpvOpTypeImage = 25,
934 SpvOpTypeSampler = 26,
935 SpvOpTypeSampledImage = 27,
936 SpvOpTypeArray = 28,
937 SpvOpTypeRuntimeArray = 29,
938 SpvOpTypeStruct = 30,
939 SpvOpTypeOpaque = 31,
940 SpvOpTypePointer = 32,
941 SpvOpTypeFunction = 33,
942 SpvOpTypeEvent = 34,
943 SpvOpTypeDeviceEvent = 35,
944 SpvOpTypeReserveId = 36,
945 SpvOpTypeQueue = 37,
946 SpvOpTypePipe = 38,
947 SpvOpTypeForwardPointer = 39,
948 SpvOpConstantTrue = 41,
949 SpvOpConstantFalse = 42,
950 SpvOpConstant = 43,
951 SpvOpConstantComposite = 44,
952 SpvOpConstantSampler = 45,
953 SpvOpConstantNull = 46,
954 SpvOpSpecConstantTrue = 48,
955 SpvOpSpecConstantFalse = 49,
956 SpvOpSpecConstant = 50,
957 SpvOpSpecConstantComposite = 51,
958 SpvOpSpecConstantOp = 52,
959 SpvOpFunction = 54,
960 SpvOpFunctionParameter = 55,
961 SpvOpFunctionEnd = 56,
962 SpvOpFunctionCall = 57,
963 SpvOpVariable = 59,
964 SpvOpImageTexelPointer = 60,
965 SpvOpLoad = 61,
966 SpvOpStore = 62,
967 SpvOpCopyMemory = 63,
968 SpvOpCopyMemorySized = 64,
969 SpvOpAccessChain = 65,
970 SpvOpInBoundsAccessChain = 66,
971 SpvOpPtrAccessChain = 67,
972 SpvOpArrayLength = 68,
973 SpvOpGenericPtrMemSemantics = 69,
974 SpvOpInBoundsPtrAccessChain = 70,
975 SpvOpDecorate = 71,
976 SpvOpMemberDecorate = 72,
977 SpvOpDecorationGroup = 73,
978 SpvOpGroupDecorate = 74,
979 SpvOpGroupMemberDecorate = 75,
980 SpvOpVectorExtractDynamic = 77,
981 SpvOpVectorInsertDynamic = 78,
982 SpvOpVectorShuffle = 79,
983 SpvOpCompositeConstruct = 80,
984 SpvOpCompositeExtract = 81,
985 SpvOpCompositeInsert = 82,
986 SpvOpCopyObject = 83,
987 SpvOpTranspose = 84,
988 SpvOpSampledImage = 86,
989 SpvOpImageSampleImplicitLod = 87,
990 SpvOpImageSampleExplicitLod = 88,
991 SpvOpImageSampleDrefImplicitLod = 89,
992 SpvOpImageSampleDrefExplicitLod = 90,
993 SpvOpImageSampleProjImplicitLod = 91,
994 SpvOpImageSampleProjExplicitLod = 92,
995 SpvOpImageSampleProjDrefImplicitLod = 93,
996 SpvOpImageSampleProjDrefExplicitLod = 94,
997 SpvOpImageFetch = 95,
998 SpvOpImageGather = 96,
999 SpvOpImageDrefGather = 97,
1000 SpvOpImageRead = 98,
1001 SpvOpImageWrite = 99,
1002 SpvOpImage = 100,
1003 SpvOpImageQueryFormat = 101,
1004 SpvOpImageQueryOrder = 102,
1005 SpvOpImageQuerySizeLod = 103,
1006 SpvOpImageQuerySize = 104,
1007 SpvOpImageQueryLod = 105,
1008 SpvOpImageQueryLevels = 106,
1009 SpvOpImageQuerySamples = 107,
1010 SpvOpConvertFToU = 109,
1011 SpvOpConvertFToS = 110,
1012 SpvOpConvertSToF = 111,
1013 SpvOpConvertUToF = 112,
1014 SpvOpUConvert = 113,
1015 SpvOpSConvert = 114,
1016 SpvOpFConvert = 115,
1017 SpvOpQuantizeToF16 = 116,
1018 SpvOpConvertPtrToU = 117,
1019 SpvOpSatConvertSToU = 118,
1020 SpvOpSatConvertUToS = 119,
1021 SpvOpConvertUToPtr = 120,
1022 SpvOpPtrCastToGeneric = 121,
1023 SpvOpGenericCastToPtr = 122,
1024 SpvOpGenericCastToPtrExplicit = 123,
1025 SpvOpBitcast = 124,
1026 SpvOpSNegate = 126,
1027 SpvOpFNegate = 127,
1028 SpvOpIAdd = 128,
1029 SpvOpFAdd = 129,
1030 SpvOpISub = 130,
1031 SpvOpFSub = 131,
1032 SpvOpIMul = 132,
1033 SpvOpFMul = 133,
1034 SpvOpUDiv = 134,
1035 SpvOpSDiv = 135,
1036 SpvOpFDiv = 136,
1037 SpvOpUMod = 137,
1038 SpvOpSRem = 138,
1039 SpvOpSMod = 139,
1040 SpvOpFRem = 140,
1041 SpvOpFMod = 141,
1042 SpvOpVectorTimesScalar = 142,
1043 SpvOpMatrixTimesScalar = 143,
1044 SpvOpVectorTimesMatrix = 144,
1045 SpvOpMatrixTimesVector = 145,
1046 SpvOpMatrixTimesMatrix = 146,
1047 SpvOpOuterProduct = 147,
1048 SpvOpDot = 148,
1049 SpvOpIAddCarry = 149,
1050 SpvOpISubBorrow = 150,
1051 SpvOpUMulExtended = 151,
1052 SpvOpSMulExtended = 152,
1053 SpvOpAny = 154,
1054 SpvOpAll = 155,
1055 SpvOpIsNan = 156,
1056 SpvOpIsInf = 157,
1057 SpvOpIsFinite = 158,
1058 SpvOpIsNormal = 159,
1059 SpvOpSignBitSet = 160,
1060 SpvOpLessOrGreater = 161,
1061 SpvOpOrdered = 162,
1062 SpvOpUnordered = 163,
1063 SpvOpLogicalEqual = 164,
1064 SpvOpLogicalNotEqual = 165,
1065 SpvOpLogicalOr = 166,
1066 SpvOpLogicalAnd = 167,
1067 SpvOpLogicalNot = 168,
1068 SpvOpSelect = 169,
1069 SpvOpIEqual = 170,
1070 SpvOpINotEqual = 171,
1071 SpvOpUGreaterThan = 172,
1072 SpvOpSGreaterThan = 173,
1073 SpvOpUGreaterThanEqual = 174,
1074 SpvOpSGreaterThanEqual = 175,
1075 SpvOpULessThan = 176,
1076 SpvOpSLessThan = 177,
1077 SpvOpULessThanEqual = 178,
1078 SpvOpSLessThanEqual = 179,
1079 SpvOpFOrdEqual = 180,
1080 SpvOpFUnordEqual = 181,
1081 SpvOpFOrdNotEqual = 182,
1082 SpvOpFUnordNotEqual = 183,
1083 SpvOpFOrdLessThan = 184,
1084 SpvOpFUnordLessThan = 185,
1085 SpvOpFOrdGreaterThan = 186,
1086 SpvOpFUnordGreaterThan = 187,
1087 SpvOpFOrdLessThanEqual = 188,
1088 SpvOpFUnordLessThanEqual = 189,
1089 SpvOpFOrdGreaterThanEqual = 190,
1090 SpvOpFUnordGreaterThanEqual = 191,
1091 SpvOpShiftRightLogical = 194,
1092 SpvOpShiftRightArithmetic = 195,
1093 SpvOpShiftLeftLogical = 196,
1094 SpvOpBitwiseOr = 197,
1095 SpvOpBitwiseXor = 198,
1096 SpvOpBitwiseAnd = 199,
1097 SpvOpNot = 200,
1098 SpvOpBitFieldInsert = 201,
1099 SpvOpBitFieldSExtract = 202,
1100 SpvOpBitFieldUExtract = 203,
1101 SpvOpBitReverse = 204,
1102 SpvOpBitCount = 205,
1103 SpvOpDPdx = 207,
1104 SpvOpDPdy = 208,
1105 SpvOpFwidth = 209,
1106 SpvOpDPdxFine = 210,
1107 SpvOpDPdyFine = 211,
1108 SpvOpFwidthFine = 212,
1109 SpvOpDPdxCoarse = 213,
1110 SpvOpDPdyCoarse = 214,
1111 SpvOpFwidthCoarse = 215,
1112 SpvOpEmitVertex = 218,
1113 SpvOpEndPrimitive = 219,
1114 SpvOpEmitStreamVertex = 220,
1115 SpvOpEndStreamPrimitive = 221,
1116 SpvOpControlBarrier = 224,
1117 SpvOpMemoryBarrier = 225,
1118 SpvOpAtomicLoad = 227,
1119 SpvOpAtomicStore = 228,
1120 SpvOpAtomicExchange = 229,
1121 SpvOpAtomicCompareExchange = 230,
1122 SpvOpAtomicCompareExchangeWeak = 231,
1123 SpvOpAtomicIIncrement = 232,
1124 SpvOpAtomicIDecrement = 233,
1125 SpvOpAtomicIAdd = 234,
1126 SpvOpAtomicISub = 235,
1127 SpvOpAtomicSMin = 236,
1128 SpvOpAtomicUMin = 237,
1129 SpvOpAtomicSMax = 238,
1130 SpvOpAtomicUMax = 239,
1131 SpvOpAtomicAnd = 240,
1132 SpvOpAtomicOr = 241,
1133 SpvOpAtomicXor = 242,
1134 SpvOpPhi = 245,
1135 SpvOpLoopMerge = 246,
1136 SpvOpSelectionMerge = 247,
1137 SpvOpLabel = 248,
1138 SpvOpBranch = 249,
1139 SpvOpBranchConditional = 250,
1140 SpvOpSwitch = 251,
1141 SpvOpKill = 252,
1142 SpvOpReturn = 253,
1143 SpvOpReturnValue = 254,
1144 SpvOpUnreachable = 255,
1145 SpvOpLifetimeStart = 256,
1146 SpvOpLifetimeStop = 257,
1147 SpvOpGroupAsyncCopy = 259,
1148 SpvOpGroupWaitEvents = 260,
1149 SpvOpGroupAll = 261,
1150 SpvOpGroupAny = 262,
1151 SpvOpGroupBroadcast = 263,
1152 SpvOpGroupIAdd = 264,
1153 SpvOpGroupFAdd = 265,
1154 SpvOpGroupFMin = 266,
1155 SpvOpGroupUMin = 267,
1156 SpvOpGroupSMin = 268,
1157 SpvOpGroupFMax = 269,
1158 SpvOpGroupUMax = 270,
1159 SpvOpGroupSMax = 271,
1160 SpvOpReadPipe = 274,
1161 SpvOpWritePipe = 275,
1162 SpvOpReservedReadPipe = 276,
1163 SpvOpReservedWritePipe = 277,
1164 SpvOpReserveReadPipePackets = 278,
1165 SpvOpReserveWritePipePackets = 279,
1166 SpvOpCommitReadPipe = 280,
1167 SpvOpCommitWritePipe = 281,
1168 SpvOpIsValidReserveId = 282,
1169 SpvOpGetNumPipePackets = 283,
1170 SpvOpGetMaxPipePackets = 284,
1171 SpvOpGroupReserveReadPipePackets = 285,
1172 SpvOpGroupReserveWritePipePackets = 286,
1173 SpvOpGroupCommitReadPipe = 287,
1174 SpvOpGroupCommitWritePipe = 288,
1175 SpvOpEnqueueMarker = 291,
1176 SpvOpEnqueueKernel = 292,
1177 SpvOpGetKernelNDrangeSubGroupCount = 293,
1178 SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
1179 SpvOpGetKernelWorkGroupSize = 295,
1180 SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
1181 SpvOpRetainEvent = 297,
1182 SpvOpReleaseEvent = 298,
1183 SpvOpCreateUserEvent = 299,
1184 SpvOpIsValidEvent = 300,
1185 SpvOpSetUserEventStatus = 301,
1186 SpvOpCaptureEventProfilingInfo = 302,
1187 SpvOpGetDefaultQueue = 303,
1188 SpvOpBuildNDRange = 304,
1189 SpvOpImageSparseSampleImplicitLod = 305,
1190 SpvOpImageSparseSampleExplicitLod = 306,
1191 SpvOpImageSparseSampleDrefImplicitLod = 307,
1192 SpvOpImageSparseSampleDrefExplicitLod = 308,
1193 SpvOpImageSparseSampleProjImplicitLod = 309,
1194 SpvOpImageSparseSampleProjExplicitLod = 310,
1195 SpvOpImageSparseSampleProjDrefImplicitLod = 311,
1196 SpvOpImageSparseSampleProjDrefExplicitLod = 312,
1197 SpvOpImageSparseFetch = 313,
1198 SpvOpImageSparseGather = 314,
1199 SpvOpImageSparseDrefGather = 315,
1200 SpvOpImageSparseTexelsResident = 316,
1201 SpvOpNoLine = 317,
1202 SpvOpAtomicFlagTestAndSet = 318,
1203 SpvOpAtomicFlagClear = 319,
1204 SpvOpImageSparseRead = 320,
1205 SpvOpSizeOf = 321,
1206 SpvOpTypePipeStorage = 322,
1207 SpvOpConstantPipeStorage = 323,
1208 SpvOpCreatePipeFromPipeStorage = 324,
1209 SpvOpGetKernelLocalSizeForSubgroupCount = 325,
1210 SpvOpGetKernelMaxNumSubgroups = 326,
1211 SpvOpTypeNamedBarrier = 327,
1212 SpvOpNamedBarrierInitialize = 328,
1213 SpvOpMemoryNamedBarrier = 329,
1214 SpvOpModuleProcessed = 330,
1215 SpvOpExecutionModeId = 331,
1216 SpvOpDecorateId = 332,
1217 SpvOpGroupNonUniformElect = 333,
1218 SpvOpGroupNonUniformAll = 334,
1219 SpvOpGroupNonUniformAny = 335,
1220 SpvOpGroupNonUniformAllEqual = 336,
1221 SpvOpGroupNonUniformBroadcast = 337,
1222 SpvOpGroupNonUniformBroadcastFirst = 338,
1223 SpvOpGroupNonUniformBallot = 339,
1224 SpvOpGroupNonUniformInverseBallot = 340,
1225 SpvOpGroupNonUniformBallotBitExtract = 341,
1226 SpvOpGroupNonUniformBallotBitCount = 342,
1227 SpvOpGroupNonUniformBallotFindLSB = 343,
1228 SpvOpGroupNonUniformBallotFindMSB = 344,
1229 SpvOpGroupNonUniformShuffle = 345,
1230 SpvOpGroupNonUniformShuffleXor = 346,
1231 SpvOpGroupNonUniformShuffleUp = 347,
1232 SpvOpGroupNonUniformShuffleDown = 348,
1233 SpvOpGroupNonUniformIAdd = 349,
1234 SpvOpGroupNonUniformFAdd = 350,
1235 SpvOpGroupNonUniformIMul = 351,
1236 SpvOpGroupNonUniformFMul = 352,
1237 SpvOpGroupNonUniformSMin = 353,
1238 SpvOpGroupNonUniformUMin = 354,
1239 SpvOpGroupNonUniformFMin = 355,
1240 SpvOpGroupNonUniformSMax = 356,
1241 SpvOpGroupNonUniformUMax = 357,
1242 SpvOpGroupNonUniformFMax = 358,
1243 SpvOpGroupNonUniformBitwiseAnd = 359,
1244 SpvOpGroupNonUniformBitwiseOr = 360,
1245 SpvOpGroupNonUniformBitwiseXor = 361,
1246 SpvOpGroupNonUniformLogicalAnd = 362,
1247 SpvOpGroupNonUniformLogicalOr = 363,
1248 SpvOpGroupNonUniformLogicalXor = 364,
1249 SpvOpGroupNonUniformQuadBroadcast = 365,
1250 SpvOpGroupNonUniformQuadSwap = 366,
1251 SpvOpCopyLogical = 400,
1252 SpvOpPtrEqual = 401,
1253 SpvOpPtrNotEqual = 402,
1254 SpvOpPtrDiff = 403,
1255 SpvOpSubgroupBallotKHR = 4421,
1256 SpvOpSubgroupFirstInvocationKHR = 4422,
1257 SpvOpSubgroupAllKHR = 4428,
1258 SpvOpSubgroupAnyKHR = 4429,
1259 SpvOpSubgroupAllEqualKHR = 4430,
1260 SpvOpSubgroupReadInvocationKHR = 4432,
1261 SpvOpGroupIAddNonUniformAMD = 5000,
1262 SpvOpGroupFAddNonUniformAMD = 5001,
1263 SpvOpGroupFMinNonUniformAMD = 5002,
1264 SpvOpGroupUMinNonUniformAMD = 5003,
1265 SpvOpGroupSMinNonUniformAMD = 5004,
1266 SpvOpGroupFMaxNonUniformAMD = 5005,
1267 SpvOpGroupUMaxNonUniformAMD = 5006,
1268 SpvOpGroupSMaxNonUniformAMD = 5007,
1269 SpvOpFragmentMaskFetchAMD = 5011,
1270 SpvOpFragmentFetchAMD = 5012,
1271 SpvOpReadClockKHR = 5056,
1272 SpvOpImageSampleFootprintNV = 5283,
1273 SpvOpGroupNonUniformPartitionNV = 5296,
1274 SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
1275 SpvOpReportIntersectionNV = 5334,
1276 SpvOpIgnoreIntersectionNV = 5335,
1277 SpvOpTerminateRayNV = 5336,
1278 SpvOpTraceNV = 5337,
1279 SpvOpTypeAccelerationStructureNV = 5341,
1280 SpvOpExecuteCallableNV = 5344,
1281 SpvOpTypeCooperativeMatrixNV = 5358,
1282 SpvOpCooperativeMatrixLoadNV = 5359,
1283 SpvOpCooperativeMatrixStoreNV = 5360,
1284 SpvOpCooperativeMatrixMulAddNV = 5361,
1285 SpvOpCooperativeMatrixLengthNV = 5362,
1286 SpvOpBeginInvocationInterlockEXT = 5364,
1287 SpvOpEndInvocationInterlockEXT = 5365,
1288 SpvOpDemoteToHelperInvocationEXT = 5380,
1289 SpvOpIsHelperInvocationEXT = 5381,
1290 SpvOpSubgroupShuffleINTEL = 5571,
1291 SpvOpSubgroupShuffleDownINTEL = 5572,
1292 SpvOpSubgroupShuffleUpINTEL = 5573,
1293 SpvOpSubgroupShuffleXorINTEL = 5574,
1294 SpvOpSubgroupBlockReadINTEL = 5575,
1295 SpvOpSubgroupBlockWriteINTEL = 5576,
1296 SpvOpSubgroupImageBlockReadINTEL = 5577,
1297 SpvOpSubgroupImageBlockWriteINTEL = 5578,
1298 SpvOpSubgroupImageMediaBlockReadINTEL = 5580,
1299 SpvOpSubgroupImageMediaBlockWriteINTEL = 5581,
1300 SpvOpUCountLeadingZerosINTEL = 5585,
1301 SpvOpUCountTrailingZerosINTEL = 5586,
1302 SpvOpAbsISubINTEL = 5587,
1303 SpvOpAbsUSubINTEL = 5588,
1304 SpvOpIAddSatINTEL = 5589,
1305 SpvOpUAddSatINTEL = 5590,
1306 SpvOpIAverageINTEL = 5591,
1307 SpvOpUAverageINTEL = 5592,
1308 SpvOpIAverageRoundedINTEL = 5593,
1309 SpvOpUAverageRoundedINTEL = 5594,
1310 SpvOpISubSatINTEL = 5595,
1311 SpvOpUSubSatINTEL = 5596,
1312 SpvOpIMul32x16INTEL = 5597,
1313 SpvOpUMul32x16INTEL = 5598,
1314 SpvOpDecorateString = 5632,
1315 SpvOpDecorateStringGOOGLE = 5632,
1316 SpvOpMemberDecorateString = 5633,
1317 SpvOpMemberDecorateStringGOOGLE = 5633,
1318 SpvOpVmeImageINTEL = 5699,
1319 SpvOpTypeVmeImageINTEL = 5700,
1320 SpvOpTypeAvcImePayloadINTEL = 5701,
1321 SpvOpTypeAvcRefPayloadINTEL = 5702,
1322 SpvOpTypeAvcSicPayloadINTEL = 5703,
1323 SpvOpTypeAvcMcePayloadINTEL = 5704,
1324 SpvOpTypeAvcMceResultINTEL = 5705,
1325 SpvOpTypeAvcImeResultINTEL = 5706,
1326 SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
1327 SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
1328 SpvOpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
1329 SpvOpTypeAvcImeDualReferenceStreaminINTEL = 5710,
1330 SpvOpTypeAvcRefResultINTEL = 5711,
1331 SpvOpTypeAvcSicResultINTEL = 5712,
1332 SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
1333 SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
1334 SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
1335 SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
1336 SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
1337 SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
1338 SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
1339 SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
1340 SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
1341 SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
1342 SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
1343 SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
1344 SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
1345 SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
1346 SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
1347 SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
1348 SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
1349 SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
1350 SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
1351 SpvOpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
1352 SpvOpSubgroupAvcMceConvertToImeResultINTEL = 5733,
1353 SpvOpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
1354 SpvOpSubgroupAvcMceConvertToRefResultINTEL = 5735,
1355 SpvOpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
1356 SpvOpSubgroupAvcMceConvertToSicResultINTEL = 5737,
1357 SpvOpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
1358 SpvOpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
1359 SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
1360 SpvOpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
1361 SpvOpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
1362 SpvOpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
1363 SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
1364 SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
1365 SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
1366 SpvOpSubgroupAvcImeInitializeINTEL = 5747,
1367 SpvOpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
1368 SpvOpSubgroupAvcImeSetDualReferenceINTEL = 5749,
1369 SpvOpSubgroupAvcImeRefWindowSizeINTEL = 5750,
1370 SpvOpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
1371 SpvOpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
1372 SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
1373 SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
1374 SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
1375 SpvOpSubgroupAvcImeSetWeightedSadINTEL = 5756,
1376 SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
1377 SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
1378 SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
1379 SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
1380 SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
1381 SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
1382 SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
1383 SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
1384 SpvOpSubgroupAvcImeConvertToMceResultINTEL = 5765,
1385 SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
1386 SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
1387 SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
1388 SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
1389 SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
1390 SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
1391 SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
1392 SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
1393 SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
1394 SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
1395 SpvOpSubgroupAvcImeGetBorderReachedINTEL = 5776,
1396 SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
1397 SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
1398 SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
1399 SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
1400 SpvOpSubgroupAvcFmeInitializeINTEL = 5781,
1401 SpvOpSubgroupAvcBmeInitializeINTEL = 5782,
1402 SpvOpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
1403 SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
1404 SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
1405 SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
1406 SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
1407 SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
1408 SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
1409 SpvOpSubgroupAvcRefConvertToMceResultINTEL = 5790,
1410 SpvOpSubgroupAvcSicInitializeINTEL = 5791,
1411 SpvOpSubgroupAvcSicConfigureSkcINTEL = 5792,
1412 SpvOpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
1413 SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
1414 SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
1415 SpvOpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
1416 SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
1417 SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
1418 SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
1419 SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
1420 SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
1421 SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
1422 SpvOpSubgroupAvcSicEvaluateIpeINTEL = 5803,
1423 SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
1424 SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
1425 SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
1426 SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
1427 SpvOpSubgroupAvcSicConvertToMceResultINTEL = 5808,
1428 SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
1429 SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
1430 SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
1431 SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
1432 SpvOpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
1433 SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
1434 SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
1435 SpvOpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
1436 SpvOpMax = 0x7fffffff,
1437 } SpvOp;
1438
1439 #ifdef SPV_ENABLE_UTILITY_CODE
1440 inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultType) {
1441 *hasResult = *hasResultType = false;
1442 switch (opcode) {
1443 default: /* unknown opcode */ break;
1444 case SpvOpNop: *hasResult = false; *hasResultType = false; break;
1445 case SpvOpUndef: *hasResult = true; *hasResultType = true; break;
1446 case SpvOpSourceContinued: *hasResult = false; *hasResultType = false; break;
1447 case SpvOpSource: *hasResult = false; *hasResultType = false; break;
1448 case SpvOpSourceExtension: *hasResult = false; *hasResultType = false; break;
1449 case SpvOpName: *hasResult = false; *hasResultType = false; break;
1450 case SpvOpMemberName: *hasResult = false; *hasResultType = false; break;
1451 case SpvOpString: *hasResult = true; *hasResultType = false; break;
1452 case SpvOpLine: *hasResult = false; *hasResultType = false; break;
1453 case SpvOpExtension: *hasResult = false; *hasResultType = false; break;
1454 case SpvOpExtInstImport: *hasResult = true; *hasResultType = false; break;
1455 case SpvOpExtInst: *hasResult = true; *hasResultType = true; break;
1456 case SpvOpMemoryModel: *hasResult = false; *hasResultType = false; break;
1457 case SpvOpEntryPoint: *hasResult = false; *hasResultType = false; break;
1458 case SpvOpExecutionMode: *hasResult = false; *hasResultType = false; break;
1459 case SpvOpCapability: *hasResult = false; *hasResultType = false; break;
1460 case SpvOpTypeVoid: *hasResult = true; *hasResultType = false; break;
1461 case SpvOpTypeBool: *hasResult = true; *hasResultType = false; break;
1462 case SpvOpTypeInt: *hasResult = true; *hasResultType = false; break;
1463 case SpvOpTypeFloat: *hasResult = true; *hasResultType = false; break;
1464 case SpvOpTypeVector: *hasResult = true; *hasResultType = false; break;
1465 case SpvOpTypeMatrix: *hasResult = true; *hasResultType = false; break;
1466 case SpvOpTypeImage: *hasResult = true; *hasResultType = false; break;
1467 case SpvOpTypeSampler: *hasResult = true; *hasResultType = false; break;
1468 case SpvOpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
1469 case SpvOpTypeArray: *hasResult = true; *hasResultType = false; break;
1470 case SpvOpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
1471 case SpvOpTypeStruct: *hasResult = true; *hasResultType = false; break;
1472 case SpvOpTypeOpaque: *hasResult = true; *hasResultType = false; break;
1473 case SpvOpTypePointer: *hasResult = true; *hasResultType = false; break;
1474 case SpvOpTypeFunction: *hasResult = true; *hasResultType = false; break;
1475 case SpvOpTypeEvent: *hasResult = true; *hasResultType = false; break;
1476 case SpvOpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
1477 case SpvOpTypeReserveId: *hasResult = true; *hasResultType = false; break;
1478 case SpvOpTypeQueue: *hasResult = true; *hasResultType = false; break;
1479 case SpvOpTypePipe: *hasResult = true; *hasResultType = false; break;
1480 case SpvOpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
1481 case SpvOpConstantTrue: *hasResult = true; *hasResultType = true; break;
1482 case SpvOpConstantFalse: *hasResult = true; *hasResultType = true; break;
1483 case SpvOpConstant: *hasResult = true; *hasResultType = true; break;
1484 case SpvOpConstantComposite: *hasResult = true; *hasResultType = true; break;
1485 case SpvOpConstantSampler: *hasResult = true; *hasResultType = true; break;
1486 case SpvOpConstantNull: *hasResult = true; *hasResultType = true; break;
1487 case SpvOpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
1488 case SpvOpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
1489 case SpvOpSpecConstant: *hasResult = true; *hasResultType = true; break;
1490 case SpvOpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
1491 case SpvOpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
1492 case SpvOpFunction: *hasResult = true; *hasResultType = true; break;
1493 case SpvOpFunctionParameter: *hasResult = true; *hasResultType = true; break;
1494 case SpvOpFunctionEnd: *hasResult = false; *hasResultType = false; break;
1495 case SpvOpFunctionCall: *hasResult = true; *hasResultType = true; break;
1496 case SpvOpVariable: *hasResult = true; *hasResultType = true; break;
1497 case SpvOpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
1498 case SpvOpLoad: *hasResult = true; *hasResultType = true; break;
1499 case SpvOpStore: *hasResult = false; *hasResultType = false; break;
1500 case SpvOpCopyMemory: *hasResult = false; *hasResultType = false; break;
1501 case SpvOpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
1502 case SpvOpAccessChain: *hasResult = true; *hasResultType = true; break;
1503 case SpvOpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
1504 case SpvOpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
1505 case SpvOpArrayLength: *hasResult = true; *hasResultType = true; break;
1506 case SpvOpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
1507 case SpvOpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
1508 case SpvOpDecorate: *hasResult = false; *hasResultType = false; break;
1509 case SpvOpMemberDecorate: *hasResult = false; *hasResultType = false; break;
1510 case SpvOpDecorationGroup: *hasResult = true; *hasResultType = false; break;
1511 case SpvOpGroupDecorate: *hasResult = false; *hasResultType = false; break;
1512 case SpvOpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
1513 case SpvOpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
1514 case SpvOpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
1515 case SpvOpVectorShuffle: *hasResult = true; *hasResultType = true; break;
1516 case SpvOpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
1517 case SpvOpCompositeExtract: *hasResult = true; *hasResultType = true; break;
1518 case SpvOpCompositeInsert: *hasResult = true; *hasResultType = true; break;
1519 case SpvOpCopyObject: *hasResult = true; *hasResultType = true; break;
1520 case SpvOpTranspose: *hasResult = true; *hasResultType = true; break;
1521 case SpvOpSampledImage: *hasResult = true; *hasResultType = true; break;
1522 case SpvOpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
1523 case SpvOpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
1524 case SpvOpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
1525 case SpvOpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
1526 case SpvOpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
1527 case SpvOpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
1528 case SpvOpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
1529 case SpvOpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
1530 case SpvOpImageFetch: *hasResult = true; *hasResultType = true; break;
1531 case SpvOpImageGather: *hasResult = true; *hasResultType = true; break;
1532 case SpvOpImageDrefGather: *hasResult = true; *hasResultType = true; break;
1533 case SpvOpImageRead: *hasResult = true; *hasResultType = true; break;
1534 case SpvOpImageWrite: *hasResult = false; *hasResultType = false; break;
1535 case SpvOpImage: *hasResult = true; *hasResultType = true; break;
1536 case SpvOpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
1537 case SpvOpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
1538 case SpvOpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
1539 case SpvOpImageQuerySize: *hasResult = true; *hasResultType = true; break;
1540 case SpvOpImageQueryLod: *hasResult = true; *hasResultType = true; break;
1541 case SpvOpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
1542 case SpvOpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
1543 case SpvOpConvertFToU: *hasResult = true; *hasResultType = true; break;
1544 case SpvOpConvertFToS: *hasResult = true; *hasResultType = true; break;
1545 case SpvOpConvertSToF: *hasResult = true; *hasResultType = true; break;
1546 case SpvOpConvertUToF: *hasResult = true; *hasResultType = true; break;
1547 case SpvOpUConvert: *hasResult = true; *hasResultType = true; break;
1548 case SpvOpSConvert: *hasResult = true; *hasResultType = true; break;
1549 case SpvOpFConvert: *hasResult = true; *hasResultType = true; break;
1550 case SpvOpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
1551 case SpvOpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
1552 case SpvOpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
1553 case SpvOpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
1554 case SpvOpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
1555 case SpvOpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
1556 case SpvOpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
1557 case SpvOpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
1558 case SpvOpBitcast: *hasResult = true; *hasResultType = true; break;
1559 case SpvOpSNegate: *hasResult = true; *hasResultType = true; break;
1560 case SpvOpFNegate: *hasResult = true; *hasResultType = true; break;
1561 case SpvOpIAdd: *hasResult = true; *hasResultType = true; break;
1562 case SpvOpFAdd: *hasResult = true; *hasResultType = true; break;
1563 case SpvOpISub: *hasResult = true; *hasResultType = true; break;
1564 case SpvOpFSub: *hasResult = true; *hasResultType = true; break;
1565 case SpvOpIMul: *hasResult = true; *hasResultType = true; break;
1566 case SpvOpFMul: *hasResult = true; *hasResultType = true; break;
1567 case SpvOpUDiv: *hasResult = true; *hasResultType = true; break;
1568 case SpvOpSDiv: *hasResult = true; *hasResultType = true; break;
1569 case SpvOpFDiv: *hasResult = true; *hasResultType = true; break;
1570 case SpvOpUMod: *hasResult = true; *hasResultType = true; break;
1571 case SpvOpSRem: *hasResult = true; *hasResultType = true; break;
1572 case SpvOpSMod: *hasResult = true; *hasResultType = true; break;
1573 case SpvOpFRem: *hasResult = true; *hasResultType = true; break;
1574 case SpvOpFMod: *hasResult = true; *hasResultType = true; break;
1575 case SpvOpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
1576 case SpvOpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
1577 case SpvOpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
1578 case SpvOpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
1579 case SpvOpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
1580 case SpvOpOuterProduct: *hasResult = true; *hasResultType = true; break;
1581 case SpvOpDot: *hasResult = true; *hasResultType = true; break;
1582 case SpvOpIAddCarry: *hasResult = true; *hasResultType = true; break;
1583 case SpvOpISubBorrow: *hasResult = true; *hasResultType = true; break;
1584 case SpvOpUMulExtended: *hasResult = true; *hasResultType = true; break;
1585 case SpvOpSMulExtended: *hasResult = true; *hasResultType = true; break;
1586 case SpvOpAny: *hasResult = true; *hasResultType = true; break;
1587 case SpvOpAll: *hasResult = true; *hasResultType = true; break;
1588 case SpvOpIsNan: *hasResult = true; *hasResultType = true; break;
1589 case SpvOpIsInf: *hasResult = true; *hasResultType = true; break;
1590 case SpvOpIsFinite: *hasResult = true; *hasResultType = true; break;
1591 case SpvOpIsNormal: *hasResult = true; *hasResultType = true; break;
1592 case SpvOpSignBitSet: *hasResult = true; *hasResultType = true; break;
1593 case SpvOpLessOrGreater: *hasResult = true; *hasResultType = true; break;
1594 case SpvOpOrdered: *hasResult = true; *hasResultType = true; break;
1595 case SpvOpUnordered: *hasResult = true; *hasResultType = true; break;
1596 case SpvOpLogicalEqual: *hasResult = true; *hasResultType = true; break;
1597 case SpvOpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
1598 case SpvOpLogicalOr: *hasResult = true; *hasResultType = true; break;
1599 case SpvOpLogicalAnd: *hasResult = true; *hasResultType = true; break;
1600 case SpvOpLogicalNot: *hasResult = true; *hasResultType = true; break;
1601 case SpvOpSelect: *hasResult = true; *hasResultType = true; break;
1602 case SpvOpIEqual: *hasResult = true; *hasResultType = true; break;
1603 case SpvOpINotEqual: *hasResult = true; *hasResultType = true; break;
1604 case SpvOpUGreaterThan: *hasResult = true; *hasResultType = true; break;
1605 case SpvOpSGreaterThan: *hasResult = true; *hasResultType = true; break;
1606 case SpvOpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
1607 case SpvOpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
1608 case SpvOpULessThan: *hasResult = true; *hasResultType = true; break;
1609 case SpvOpSLessThan: *hasResult = true; *hasResultType = true; break;
1610 case SpvOpULessThanEqual: *hasResult = true; *hasResultType = true; break;
1611 case SpvOpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
1612 case SpvOpFOrdEqual: *hasResult = true; *hasResultType = true; break;
1613 case SpvOpFUnordEqual: *hasResult = true; *hasResultType = true; break;
1614 case SpvOpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
1615 case SpvOpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
1616 case SpvOpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
1617 case SpvOpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
1618 case SpvOpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
1619 case SpvOpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
1620 case SpvOpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
1621 case SpvOpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
1622 case SpvOpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
1623 case SpvOpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
1624 case SpvOpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
1625 case SpvOpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
1626 case SpvOpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
1627 case SpvOpBitwiseOr: *hasResult = true; *hasResultType = true; break;
1628 case SpvOpBitwiseXor: *hasResult = true; *hasResultType = true; break;
1629 case SpvOpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
1630 case SpvOpNot: *hasResult = true; *hasResultType = true; break;
1631 case SpvOpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
1632 case SpvOpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
1633 case SpvOpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
1634 case SpvOpBitReverse: *hasResult = true; *hasResultType = true; break;
1635 case SpvOpBitCount: *hasResult = true; *hasResultType = true; break;
1636 case SpvOpDPdx: *hasResult = true; *hasResultType = true; break;
1637 case SpvOpDPdy: *hasResult = true; *hasResultType = true; break;
1638 case SpvOpFwidth: *hasResult = true; *hasResultType = true; break;
1639 case SpvOpDPdxFine: *hasResult = true; *hasResultType = true; break;
1640 case SpvOpDPdyFine: *hasResult = true; *hasResultType = true; break;
1641 case SpvOpFwidthFine: *hasResult = true; *hasResultType = true; break;
1642 case SpvOpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
1643 case SpvOpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
1644 case SpvOpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
1645 case SpvOpEmitVertex: *hasResult = false; *hasResultType = false; break;
1646 case SpvOpEndPrimitive: *hasResult = false; *hasResultType = false; break;
1647 case SpvOpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
1648 case SpvOpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
1649 case SpvOpControlBarrier: *hasResult = false; *hasResultType = false; break;
1650 case SpvOpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
1651 case SpvOpAtomicLoad: *hasResult = true; *hasResultType = true; break;
1652 case SpvOpAtomicStore: *hasResult = false; *hasResultType = false; break;
1653 case SpvOpAtomicExchange: *hasResult = true; *hasResultType = true; break;
1654 case SpvOpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
1655 case SpvOpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
1656 case SpvOpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
1657 case SpvOpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
1658 case SpvOpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
1659 case SpvOpAtomicISub: *hasResult = true; *hasResultType = true; break;
1660 case SpvOpAtomicSMin: *hasResult = true; *hasResultType = true; break;
1661 case SpvOpAtomicUMin: *hasResult = true; *hasResultType = true; break;
1662 case SpvOpAtomicSMax: *hasResult = true; *hasResultType = true; break;
1663 case SpvOpAtomicUMax: *hasResult = true; *hasResultType = true; break;
1664 case SpvOpAtomicAnd: *hasResult = true; *hasResultType = true; break;
1665 case SpvOpAtomicOr: *hasResult = true; *hasResultType = true; break;
1666 case SpvOpAtomicXor: *hasResult = true; *hasResultType = true; break;
1667 case SpvOpPhi: *hasResult = true; *hasResultType = true; break;
1668 case SpvOpLoopMerge: *hasResult = false; *hasResultType = false; break;
1669 case SpvOpSelectionMerge: *hasResult = false; *hasResultType = false; break;
1670 case SpvOpLabel: *hasResult = true; *hasResultType = false; break;
1671 case SpvOpBranch: *hasResult = false; *hasResultType = false; break;
1672 case SpvOpBranchConditional: *hasResult = false; *hasResultType = false; break;
1673 case SpvOpSwitch: *hasResult = false; *hasResultType = false; break;
1674 case SpvOpKill: *hasResult = false; *hasResultType = false; break;
1675 case SpvOpReturn: *hasResult = false; *hasResultType = false; break;
1676 case SpvOpReturnValue: *hasResult = false; *hasResultType = false; break;
1677 case SpvOpUnreachable: *hasResult = false; *hasResultType = false; break;
1678 case SpvOpLifetimeStart: *hasResult = false; *hasResultType = false; break;
1679 case SpvOpLifetimeStop: *hasResult = false; *hasResultType = false; break;
1680 case SpvOpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
1681 case SpvOpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
1682 case SpvOpGroupAll: *hasResult = true; *hasResultType = true; break;
1683 case SpvOpGroupAny: *hasResult = true; *hasResultType = true; break;
1684 case SpvOpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
1685 case SpvOpGroupIAdd: *hasResult = true; *hasResultType = true; break;
1686 case SpvOpGroupFAdd: *hasResult = true; *hasResultType = true; break;
1687 case SpvOpGroupFMin: *hasResult = true; *hasResultType = true; break;
1688 case SpvOpGroupUMin: *hasResult = true; *hasResultType = true; break;
1689 case SpvOpGroupSMin: *hasResult = true; *hasResultType = true; break;
1690 case SpvOpGroupFMax: *hasResult = true; *hasResultType = true; break;
1691 case SpvOpGroupUMax: *hasResult = true; *hasResultType = true; break;
1692 case SpvOpGroupSMax: *hasResult = true; *hasResultType = true; break;
1693 case SpvOpReadPipe: *hasResult = true; *hasResultType = true; break;
1694 case SpvOpWritePipe: *hasResult = true; *hasResultType = true; break;
1695 case SpvOpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
1696 case SpvOpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
1697 case SpvOpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
1698 case SpvOpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
1699 case SpvOpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
1700 case SpvOpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
1701 case SpvOpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
1702 case SpvOpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
1703 case SpvOpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
1704 case SpvOpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
1705 case SpvOpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
1706 case SpvOpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
1707 case SpvOpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
1708 case SpvOpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
1709 case SpvOpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
1710 case SpvOpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
1711 case SpvOpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
1712 case SpvOpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
1713 case SpvOpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
1714 case SpvOpRetainEvent: *hasResult = false; *hasResultType = false; break;
1715 case SpvOpReleaseEvent: *hasResult = false; *hasResultType = false; break;
1716 case SpvOpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
1717 case SpvOpIsValidEvent: *hasResult = true; *hasResultType = true; break;
1718 case SpvOpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
1719 case SpvOpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
1720 case SpvOpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
1721 case SpvOpBuildNDRange: *hasResult = true; *hasResultType = true; break;
1722 case SpvOpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
1723 case SpvOpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
1724 case SpvOpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
1725 case SpvOpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
1726 case SpvOpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
1727 case SpvOpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
1728 case SpvOpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
1729 case SpvOpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
1730 case SpvOpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
1731 case SpvOpImageSparseGather: *hasResult = true; *hasResultType = true; break;
1732 case SpvOpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
1733 case SpvOpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
1734 case SpvOpNoLine: *hasResult = false; *hasResultType = false; break;
1735 case SpvOpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
1736 case SpvOpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
1737 case SpvOpImageSparseRead: *hasResult = true; *hasResultType = true; break;
1738 case SpvOpSizeOf: *hasResult = true; *hasResultType = true; break;
1739 case SpvOpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
1740 case SpvOpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
1741 case SpvOpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
1742 case SpvOpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
1743 case SpvOpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
1744 case SpvOpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
1745 case SpvOpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
1746 case SpvOpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
1747 case SpvOpModuleProcessed: *hasResult = false; *hasResultType = false; break;
1748 case SpvOpExecutionModeId: *hasResult = false; *hasResultType = false; break;
1749 case SpvOpDecorateId: *hasResult = false; *hasResultType = false; break;
1750 case SpvOpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
1751 case SpvOpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
1752 case SpvOpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
1753 case SpvOpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
1754 case SpvOpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
1755 case SpvOpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
1756 case SpvOpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
1757 case SpvOpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
1758 case SpvOpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
1759 case SpvOpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
1760 case SpvOpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
1761 case SpvOpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
1762 case SpvOpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
1763 case SpvOpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
1764 case SpvOpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
1765 case SpvOpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
1766 case SpvOpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
1767 case SpvOpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
1768 case SpvOpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
1769 case SpvOpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
1770 case SpvOpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
1771 case SpvOpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
1772 case SpvOpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
1773 case SpvOpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
1774 case SpvOpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
1775 case SpvOpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
1776 case SpvOpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
1777 case SpvOpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
1778 case SpvOpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
1779 case SpvOpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
1780 case SpvOpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
1781 case SpvOpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
1782 case SpvOpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
1783 case SpvOpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
1784 case SpvOpCopyLogical: *hasResult = true; *hasResultType = true; break;
1785 case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break;
1786 case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
1787 case SpvOpPtrDiff: *hasResult = true; *hasResultType = true; break;
1788 case SpvOpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
1789 case SpvOpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
1790 case SpvOpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
1791 case SpvOpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
1792 case SpvOpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
1793 case SpvOpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
1794 case SpvOpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1795 case SpvOpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1796 case SpvOpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1797 case SpvOpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1798 case SpvOpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1799 case SpvOpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1800 case SpvOpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1801 case SpvOpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1802 case SpvOpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
1803 case SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
1804 case SpvOpReadClockKHR: *hasResult = true; *hasResultType = true; break;
1805 case SpvOpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
1806 case SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
1807 case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
1808 case SpvOpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
1809 case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
1810 case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
1811 case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break;
1812 case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
1813 case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
1814 case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
1815 case SpvOpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
1816 case SpvOpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
1817 case SpvOpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
1818 case SpvOpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
1819 case SpvOpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
1820 case SpvOpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
1821 case SpvOpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
1822 case SpvOpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
1823 case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
1824 case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
1825 case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
1826 case SpvOpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
1827 case SpvOpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
1828 case SpvOpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
1829 case SpvOpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
1830 case SpvOpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
1831 case SpvOpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
1832 case SpvOpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
1833 case SpvOpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
1834 case SpvOpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
1835 case SpvOpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
1836 case SpvOpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
1837 case SpvOpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
1838 case SpvOpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
1839 case SpvOpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
1840 case SpvOpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
1841 case SpvOpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
1842 case SpvOpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
1843 case SpvOpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
1844 case SpvOpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
1845 case SpvOpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
1846 case SpvOpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
1847 case SpvOpDecorateString: *hasResult = false; *hasResultType = false; break;
1848 case SpvOpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
1849 case SpvOpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
1850 case SpvOpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
1851 case SpvOpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
1852 case SpvOpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
1853 case SpvOpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
1854 case SpvOpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
1855 case SpvOpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
1856 case SpvOpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
1857 case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
1858 case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
1859 case SpvOpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
1860 case SpvOpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
1861 case SpvOpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
1862 case SpvOpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
1863 case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1864 case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1865 case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1866 case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1867 case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1868 case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1869 case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1870 case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
1871 case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
1872 case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
1873 case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
1874 case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
1875 case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1876 case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1877 case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1878 case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
1879 case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
1880 case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
1881 case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
1882 case SpvOpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
1883 case SpvOpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
1884 case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
1885 case SpvOpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
1886 case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
1887 case SpvOpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
1888 case SpvOpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
1889 case SpvOpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
1890 case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
1891 case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
1892 case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
1893 case SpvOpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
1894 case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
1895 case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
1896 case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
1897 case SpvOpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
1898 case SpvOpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1899 case SpvOpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1900 case SpvOpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
1901 case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
1902 case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
1903 case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
1904 case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
1905 case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
1906 case SpvOpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
1907 case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1908 case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1909 case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
1910 case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
1911 case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
1912 case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
1913 case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
1914 case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
1915 case SpvOpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
1916 case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
1917 case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
1918 case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
1919 case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
1920 case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
1921 case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
1922 case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
1923 case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
1924 case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
1925 case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
1926 case SpvOpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
1927 case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
1928 case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
1929 case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
1930 case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
1931 case SpvOpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
1932 case SpvOpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
1933 case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
1934 case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
1935 case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
1936 case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1937 case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1938 case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1939 case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
1940 case SpvOpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
1941 case SpvOpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
1942 case SpvOpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
1943 case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
1944 case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
1945 case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
1946 case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
1947 case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1948 case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
1949 case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
1950 case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
1951 case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
1952 case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
1953 case SpvOpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
1954 case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1955 case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1956 case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1957 case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
1958 case SpvOpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
1959 case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
1960 case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
1961 case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
1962 case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
1963 case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
1964 case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
1965 case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
1966 case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
1967 }
1968 }
1969 #endif /* SPV_ENABLE_UTILITY_CODE */
1970
1971 #endif
1972