spirv.h 34 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021
  1. /*
  2. ** Copyright (c) 2014-2018 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. ** This header is automatically generated by the same tool that creates
  28. ** the Binary Section of the SPIR-V specification.
  29. */
  30. /*
  31. ** Enumeration tokens for SPIR-V, in various styles:
  32. ** C, C++, C++11, JSON, Lua, Python
  33. **
  34. ** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
  35. ** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
  36. ** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
  37. ** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
  38. ** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
  39. **
  40. ** Some tokens act like mask values, which can be OR'd together,
  41. ** while others are mutually exclusive. The mask-like ones have
  42. ** "Mask" in their name, and a parallel enum that has the shift
  43. ** amount (1 << x) for each corresponding enumerant.
  44. */
  45. #ifndef spirv_H
  46. #define spirv_H
  47. typedef unsigned int SpvId;
  48. #define SPV_VERSION 0x10200
  49. #define SPV_REVISION 2
  50. static const unsigned int SpvMagicNumber = 0x07230203;
  51. static const unsigned int SpvVersion = 0x00010200;
  52. static const unsigned int SpvRevision = 2;
  53. static const unsigned int SpvOpCodeMask = 0xffff;
  54. static const unsigned int SpvWordCountShift = 16;
  55. typedef enum SpvSourceLanguage_ {
  56. SpvSourceLanguageUnknown = 0,
  57. SpvSourceLanguageESSL = 1,
  58. SpvSourceLanguageGLSL = 2,
  59. SpvSourceLanguageOpenCL_C = 3,
  60. SpvSourceLanguageOpenCL_CPP = 4,
  61. SpvSourceLanguageHLSL = 5,
  62. SpvSourceLanguageMax = 0x7fffffff,
  63. } SpvSourceLanguage;
  64. typedef enum SpvExecutionModel_ {
  65. SpvExecutionModelVertex = 0,
  66. SpvExecutionModelTessellationControl = 1,
  67. SpvExecutionModelTessellationEvaluation = 2,
  68. SpvExecutionModelGeometry = 3,
  69. SpvExecutionModelFragment = 4,
  70. SpvExecutionModelGLCompute = 5,
  71. SpvExecutionModelKernel = 6,
  72. SpvExecutionModelMax = 0x7fffffff,
  73. } SpvExecutionModel;
  74. typedef enum SpvAddressingModel_ {
  75. SpvAddressingModelLogical = 0,
  76. SpvAddressingModelPhysical32 = 1,
  77. SpvAddressingModelPhysical64 = 2,
  78. SpvAddressingModelMax = 0x7fffffff,
  79. } SpvAddressingModel;
  80. typedef enum SpvMemoryModel_ {
  81. SpvMemoryModelSimple = 0,
  82. SpvMemoryModelGLSL450 = 1,
  83. SpvMemoryModelOpenCL = 2,
  84. SpvMemoryModelMax = 0x7fffffff,
  85. } SpvMemoryModel;
  86. typedef enum SpvExecutionMode_ {
  87. SpvExecutionModeInvocations = 0,
  88. SpvExecutionModeSpacingEqual = 1,
  89. SpvExecutionModeSpacingFractionalEven = 2,
  90. SpvExecutionModeSpacingFractionalOdd = 3,
  91. SpvExecutionModeVertexOrderCw = 4,
  92. SpvExecutionModeVertexOrderCcw = 5,
  93. SpvExecutionModePixelCenterInteger = 6,
  94. SpvExecutionModeOriginUpperLeft = 7,
  95. SpvExecutionModeOriginLowerLeft = 8,
  96. SpvExecutionModeEarlyFragmentTests = 9,
  97. SpvExecutionModePointMode = 10,
  98. SpvExecutionModeXfb = 11,
  99. SpvExecutionModeDepthReplacing = 12,
  100. SpvExecutionModeDepthGreater = 14,
  101. SpvExecutionModeDepthLess = 15,
  102. SpvExecutionModeDepthUnchanged = 16,
  103. SpvExecutionModeLocalSize = 17,
  104. SpvExecutionModeLocalSizeHint = 18,
  105. SpvExecutionModeInputPoints = 19,
  106. SpvExecutionModeInputLines = 20,
  107. SpvExecutionModeInputLinesAdjacency = 21,
  108. SpvExecutionModeTriangles = 22,
  109. SpvExecutionModeInputTrianglesAdjacency = 23,
  110. SpvExecutionModeQuads = 24,
  111. SpvExecutionModeIsolines = 25,
  112. SpvExecutionModeOutputVertices = 26,
  113. SpvExecutionModeOutputPoints = 27,
  114. SpvExecutionModeOutputLineStrip = 28,
  115. SpvExecutionModeOutputTriangleStrip = 29,
  116. SpvExecutionModeVecTypeHint = 30,
  117. SpvExecutionModeContractionOff = 31,
  118. SpvExecutionModeInitializer = 33,
  119. SpvExecutionModeFinalizer = 34,
  120. SpvExecutionModeSubgroupSize = 35,
  121. SpvExecutionModeSubgroupsPerWorkgroup = 36,
  122. SpvExecutionModeSubgroupsPerWorkgroupId = 37,
  123. SpvExecutionModeLocalSizeId = 38,
  124. SpvExecutionModeLocalSizeHintId = 39,
  125. SpvExecutionModePostDepthCoverage = 4446,
  126. SpvExecutionModeStencilRefReplacingEXT = 5027,
  127. SpvExecutionModeMax = 0x7fffffff,
  128. } SpvExecutionMode;
  129. typedef enum SpvStorageClass_ {
  130. SpvStorageClassUniformConstant = 0,
  131. SpvStorageClassInput = 1,
  132. SpvStorageClassUniform = 2,
  133. SpvStorageClassOutput = 3,
  134. SpvStorageClassWorkgroup = 4,
  135. SpvStorageClassCrossWorkgroup = 5,
  136. SpvStorageClassPrivate = 6,
  137. SpvStorageClassFunction = 7,
  138. SpvStorageClassGeneric = 8,
  139. SpvStorageClassPushConstant = 9,
  140. SpvStorageClassAtomicCounter = 10,
  141. SpvStorageClassImage = 11,
  142. SpvStorageClassStorageBuffer = 12,
  143. SpvStorageClassMax = 0x7fffffff,
  144. } SpvStorageClass;
  145. typedef enum SpvDim_ {
  146. SpvDim1D = 0,
  147. SpvDim2D = 1,
  148. SpvDim3D = 2,
  149. SpvDimCube = 3,
  150. SpvDimRect = 4,
  151. SpvDimBuffer = 5,
  152. SpvDimSubpassData = 6,
  153. SpvDimMax = 0x7fffffff,
  154. } SpvDim;
  155. typedef enum SpvSamplerAddressingMode_ {
  156. SpvSamplerAddressingModeNone = 0,
  157. SpvSamplerAddressingModeClampToEdge = 1,
  158. SpvSamplerAddressingModeClamp = 2,
  159. SpvSamplerAddressingModeRepeat = 3,
  160. SpvSamplerAddressingModeRepeatMirrored = 4,
  161. SpvSamplerAddressingModeMax = 0x7fffffff,
  162. } SpvSamplerAddressingMode;
  163. typedef enum SpvSamplerFilterMode_ {
  164. SpvSamplerFilterModeNearest = 0,
  165. SpvSamplerFilterModeLinear = 1,
  166. SpvSamplerFilterModeMax = 0x7fffffff,
  167. } SpvSamplerFilterMode;
  168. typedef enum SpvImageFormat_ {
  169. SpvImageFormatUnknown = 0,
  170. SpvImageFormatRgba32f = 1,
  171. SpvImageFormatRgba16f = 2,
  172. SpvImageFormatR32f = 3,
  173. SpvImageFormatRgba8 = 4,
  174. SpvImageFormatRgba8Snorm = 5,
  175. SpvImageFormatRg32f = 6,
  176. SpvImageFormatRg16f = 7,
  177. SpvImageFormatR11fG11fB10f = 8,
  178. SpvImageFormatR16f = 9,
  179. SpvImageFormatRgba16 = 10,
  180. SpvImageFormatRgb10A2 = 11,
  181. SpvImageFormatRg16 = 12,
  182. SpvImageFormatRg8 = 13,
  183. SpvImageFormatR16 = 14,
  184. SpvImageFormatR8 = 15,
  185. SpvImageFormatRgba16Snorm = 16,
  186. SpvImageFormatRg16Snorm = 17,
  187. SpvImageFormatRg8Snorm = 18,
  188. SpvImageFormatR16Snorm = 19,
  189. SpvImageFormatR8Snorm = 20,
  190. SpvImageFormatRgba32i = 21,
  191. SpvImageFormatRgba16i = 22,
  192. SpvImageFormatRgba8i = 23,
  193. SpvImageFormatR32i = 24,
  194. SpvImageFormatRg32i = 25,
  195. SpvImageFormatRg16i = 26,
  196. SpvImageFormatRg8i = 27,
  197. SpvImageFormatR16i = 28,
  198. SpvImageFormatR8i = 29,
  199. SpvImageFormatRgba32ui = 30,
  200. SpvImageFormatRgba16ui = 31,
  201. SpvImageFormatRgba8ui = 32,
  202. SpvImageFormatR32ui = 33,
  203. SpvImageFormatRgb10a2ui = 34,
  204. SpvImageFormatRg32ui = 35,
  205. SpvImageFormatRg16ui = 36,
  206. SpvImageFormatRg8ui = 37,
  207. SpvImageFormatR16ui = 38,
  208. SpvImageFormatR8ui = 39,
  209. SpvImageFormatMax = 0x7fffffff,
  210. } SpvImageFormat;
  211. typedef enum SpvImageChannelOrder_ {
  212. SpvImageChannelOrderR = 0,
  213. SpvImageChannelOrderA = 1,
  214. SpvImageChannelOrderRG = 2,
  215. SpvImageChannelOrderRA = 3,
  216. SpvImageChannelOrderRGB = 4,
  217. SpvImageChannelOrderRGBA = 5,
  218. SpvImageChannelOrderBGRA = 6,
  219. SpvImageChannelOrderARGB = 7,
  220. SpvImageChannelOrderIntensity = 8,
  221. SpvImageChannelOrderLuminance = 9,
  222. SpvImageChannelOrderRx = 10,
  223. SpvImageChannelOrderRGx = 11,
  224. SpvImageChannelOrderRGBx = 12,
  225. SpvImageChannelOrderDepth = 13,
  226. SpvImageChannelOrderDepthStencil = 14,
  227. SpvImageChannelOrdersRGB = 15,
  228. SpvImageChannelOrdersRGBx = 16,
  229. SpvImageChannelOrdersRGBA = 17,
  230. SpvImageChannelOrdersBGRA = 18,
  231. SpvImageChannelOrderABGR = 19,
  232. SpvImageChannelOrderMax = 0x7fffffff,
  233. } SpvImageChannelOrder;
  234. typedef enum SpvImageChannelDataType_ {
  235. SpvImageChannelDataTypeSnormInt8 = 0,
  236. SpvImageChannelDataTypeSnormInt16 = 1,
  237. SpvImageChannelDataTypeUnormInt8 = 2,
  238. SpvImageChannelDataTypeUnormInt16 = 3,
  239. SpvImageChannelDataTypeUnormShort565 = 4,
  240. SpvImageChannelDataTypeUnormShort555 = 5,
  241. SpvImageChannelDataTypeUnormInt101010 = 6,
  242. SpvImageChannelDataTypeSignedInt8 = 7,
  243. SpvImageChannelDataTypeSignedInt16 = 8,
  244. SpvImageChannelDataTypeSignedInt32 = 9,
  245. SpvImageChannelDataTypeUnsignedInt8 = 10,
  246. SpvImageChannelDataTypeUnsignedInt16 = 11,
  247. SpvImageChannelDataTypeUnsignedInt32 = 12,
  248. SpvImageChannelDataTypeHalfFloat = 13,
  249. SpvImageChannelDataTypeFloat = 14,
  250. SpvImageChannelDataTypeUnormInt24 = 15,
  251. SpvImageChannelDataTypeUnormInt101010_2 = 16,
  252. SpvImageChannelDataTypeMax = 0x7fffffff,
  253. } SpvImageChannelDataType;
  254. typedef enum SpvImageOperandsShift_ {
  255. SpvImageOperandsBiasShift = 0,
  256. SpvImageOperandsLodShift = 1,
  257. SpvImageOperandsGradShift = 2,
  258. SpvImageOperandsConstOffsetShift = 3,
  259. SpvImageOperandsOffsetShift = 4,
  260. SpvImageOperandsConstOffsetsShift = 5,
  261. SpvImageOperandsSampleShift = 6,
  262. SpvImageOperandsMinLodShift = 7,
  263. SpvImageOperandsMax = 0x7fffffff,
  264. } SpvImageOperandsShift;
  265. typedef enum SpvImageOperandsMask_ {
  266. SpvImageOperandsMaskNone = 0,
  267. SpvImageOperandsBiasMask = 0x00000001,
  268. SpvImageOperandsLodMask = 0x00000002,
  269. SpvImageOperandsGradMask = 0x00000004,
  270. SpvImageOperandsConstOffsetMask = 0x00000008,
  271. SpvImageOperandsOffsetMask = 0x00000010,
  272. SpvImageOperandsConstOffsetsMask = 0x00000020,
  273. SpvImageOperandsSampleMask = 0x00000040,
  274. SpvImageOperandsMinLodMask = 0x00000080,
  275. } SpvImageOperandsMask;
  276. typedef enum SpvFPFastMathModeShift_ {
  277. SpvFPFastMathModeNotNaNShift = 0,
  278. SpvFPFastMathModeNotInfShift = 1,
  279. SpvFPFastMathModeNSZShift = 2,
  280. SpvFPFastMathModeAllowRecipShift = 3,
  281. SpvFPFastMathModeFastShift = 4,
  282. SpvFPFastMathModeMax = 0x7fffffff,
  283. } SpvFPFastMathModeShift;
  284. typedef enum SpvFPFastMathModeMask_ {
  285. SpvFPFastMathModeMaskNone = 0,
  286. SpvFPFastMathModeNotNaNMask = 0x00000001,
  287. SpvFPFastMathModeNotInfMask = 0x00000002,
  288. SpvFPFastMathModeNSZMask = 0x00000004,
  289. SpvFPFastMathModeAllowRecipMask = 0x00000008,
  290. SpvFPFastMathModeFastMask = 0x00000010,
  291. } SpvFPFastMathModeMask;
  292. typedef enum SpvFPRoundingMode_ {
  293. SpvFPRoundingModeRTE = 0,
  294. SpvFPRoundingModeRTZ = 1,
  295. SpvFPRoundingModeRTP = 2,
  296. SpvFPRoundingModeRTN = 3,
  297. SpvFPRoundingModeMax = 0x7fffffff,
  298. } SpvFPRoundingMode;
  299. typedef enum SpvLinkageType_ {
  300. SpvLinkageTypeExport = 0,
  301. SpvLinkageTypeImport = 1,
  302. SpvLinkageTypeMax = 0x7fffffff,
  303. } SpvLinkageType;
  304. typedef enum SpvAccessQualifier_ {
  305. SpvAccessQualifierReadOnly = 0,
  306. SpvAccessQualifierWriteOnly = 1,
  307. SpvAccessQualifierReadWrite = 2,
  308. SpvAccessQualifierMax = 0x7fffffff,
  309. } SpvAccessQualifier;
  310. typedef enum SpvFunctionParameterAttribute_ {
  311. SpvFunctionParameterAttributeZext = 0,
  312. SpvFunctionParameterAttributeSext = 1,
  313. SpvFunctionParameterAttributeByVal = 2,
  314. SpvFunctionParameterAttributeSret = 3,
  315. SpvFunctionParameterAttributeNoAlias = 4,
  316. SpvFunctionParameterAttributeNoCapture = 5,
  317. SpvFunctionParameterAttributeNoWrite = 6,
  318. SpvFunctionParameterAttributeNoReadWrite = 7,
  319. SpvFunctionParameterAttributeMax = 0x7fffffff,
  320. } SpvFunctionParameterAttribute;
  321. typedef enum SpvDecoration_ {
  322. SpvDecorationRelaxedPrecision = 0,
  323. SpvDecorationSpecId = 1,
  324. SpvDecorationBlock = 2,
  325. SpvDecorationBufferBlock = 3,
  326. SpvDecorationRowMajor = 4,
  327. SpvDecorationColMajor = 5,
  328. SpvDecorationArrayStride = 6,
  329. SpvDecorationMatrixStride = 7,
  330. SpvDecorationGLSLShared = 8,
  331. SpvDecorationGLSLPacked = 9,
  332. SpvDecorationCPacked = 10,
  333. SpvDecorationBuiltIn = 11,
  334. SpvDecorationNoPerspective = 13,
  335. SpvDecorationFlat = 14,
  336. SpvDecorationPatch = 15,
  337. SpvDecorationCentroid = 16,
  338. SpvDecorationSample = 17,
  339. SpvDecorationInvariant = 18,
  340. SpvDecorationRestrict = 19,
  341. SpvDecorationAliased = 20,
  342. SpvDecorationVolatile = 21,
  343. SpvDecorationConstant = 22,
  344. SpvDecorationCoherent = 23,
  345. SpvDecorationNonWritable = 24,
  346. SpvDecorationNonReadable = 25,
  347. SpvDecorationUniform = 26,
  348. SpvDecorationSaturatedConversion = 28,
  349. SpvDecorationStream = 29,
  350. SpvDecorationLocation = 30,
  351. SpvDecorationComponent = 31,
  352. SpvDecorationIndex = 32,
  353. SpvDecorationBinding = 33,
  354. SpvDecorationDescriptorSet = 34,
  355. SpvDecorationOffset = 35,
  356. SpvDecorationXfbBuffer = 36,
  357. SpvDecorationXfbStride = 37,
  358. SpvDecorationFuncParamAttr = 38,
  359. SpvDecorationFPRoundingMode = 39,
  360. SpvDecorationFPFastMathMode = 40,
  361. SpvDecorationLinkageAttributes = 41,
  362. SpvDecorationNoContraction = 42,
  363. SpvDecorationInputAttachmentIndex = 43,
  364. SpvDecorationAlignment = 44,
  365. SpvDecorationMaxByteOffset = 45,
  366. SpvDecorationAlignmentId = 46,
  367. SpvDecorationMaxByteOffsetId = 47,
  368. SpvDecorationExplicitInterpAMD = 4999,
  369. SpvDecorationOverrideCoverageNV = 5248,
  370. SpvDecorationPassthroughNV = 5250,
  371. SpvDecorationViewportRelativeNV = 5252,
  372. SpvDecorationSecondaryViewportRelativeNV = 5256,
  373. SpvDecorationHlslCounterBufferGOOGLE = 5634,
  374. SpvDecorationHlslSemanticGOOGLE = 5635,
  375. SpvDecorationMax = 0x7fffffff,
  376. } SpvDecoration;
  377. typedef enum SpvBuiltIn_ {
  378. SpvBuiltInPosition = 0,
  379. SpvBuiltInPointSize = 1,
  380. SpvBuiltInClipDistance = 3,
  381. SpvBuiltInCullDistance = 4,
  382. SpvBuiltInVertexId = 5,
  383. SpvBuiltInInstanceId = 6,
  384. SpvBuiltInPrimitiveId = 7,
  385. SpvBuiltInInvocationId = 8,
  386. SpvBuiltInLayer = 9,
  387. SpvBuiltInViewportIndex = 10,
  388. SpvBuiltInTessLevelOuter = 11,
  389. SpvBuiltInTessLevelInner = 12,
  390. SpvBuiltInTessCoord = 13,
  391. SpvBuiltInPatchVertices = 14,
  392. SpvBuiltInFragCoord = 15,
  393. SpvBuiltInPointCoord = 16,
  394. SpvBuiltInFrontFacing = 17,
  395. SpvBuiltInSampleId = 18,
  396. SpvBuiltInSamplePosition = 19,
  397. SpvBuiltInSampleMask = 20,
  398. SpvBuiltInFragDepth = 22,
  399. SpvBuiltInHelperInvocation = 23,
  400. SpvBuiltInNumWorkgroups = 24,
  401. SpvBuiltInWorkgroupSize = 25,
  402. SpvBuiltInWorkgroupId = 26,
  403. SpvBuiltInLocalInvocationId = 27,
  404. SpvBuiltInGlobalInvocationId = 28,
  405. SpvBuiltInLocalInvocationIndex = 29,
  406. SpvBuiltInWorkDim = 30,
  407. SpvBuiltInGlobalSize = 31,
  408. SpvBuiltInEnqueuedWorkgroupSize = 32,
  409. SpvBuiltInGlobalOffset = 33,
  410. SpvBuiltInGlobalLinearId = 34,
  411. SpvBuiltInSubgroupSize = 36,
  412. SpvBuiltInSubgroupMaxSize = 37,
  413. SpvBuiltInNumSubgroups = 38,
  414. SpvBuiltInNumEnqueuedSubgroups = 39,
  415. SpvBuiltInSubgroupId = 40,
  416. SpvBuiltInSubgroupLocalInvocationId = 41,
  417. SpvBuiltInVertexIndex = 42,
  418. SpvBuiltInInstanceIndex = 43,
  419. SpvBuiltInSubgroupEqMaskKHR = 4416,
  420. SpvBuiltInSubgroupGeMaskKHR = 4417,
  421. SpvBuiltInSubgroupGtMaskKHR = 4418,
  422. SpvBuiltInSubgroupLeMaskKHR = 4419,
  423. SpvBuiltInSubgroupLtMaskKHR = 4420,
  424. SpvBuiltInBaseVertex = 4424,
  425. SpvBuiltInBaseInstance = 4425,
  426. SpvBuiltInDrawIndex = 4426,
  427. SpvBuiltInDeviceIndex = 4438,
  428. SpvBuiltInViewIndex = 4440,
  429. SpvBuiltInBaryCoordNoPerspAMD = 4992,
  430. SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
  431. SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
  432. SpvBuiltInBaryCoordSmoothAMD = 4995,
  433. SpvBuiltInBaryCoordSmoothCentroidAMD = 4996,
  434. SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
  435. SpvBuiltInBaryCoordPullModelAMD = 4998,
  436. SpvBuiltInFragStencilRefEXT = 5014,
  437. SpvBuiltInViewportMaskNV = 5253,
  438. SpvBuiltInSecondaryPositionNV = 5257,
  439. SpvBuiltInSecondaryViewportMaskNV = 5258,
  440. SpvBuiltInPositionPerViewNV = 5261,
  441. SpvBuiltInViewportMaskPerViewNV = 5262,
  442. SpvBuiltInMax = 0x7fffffff,
  443. } SpvBuiltIn;
  444. typedef enum SpvSelectionControlShift_ {
  445. SpvSelectionControlFlattenShift = 0,
  446. SpvSelectionControlDontFlattenShift = 1,
  447. SpvSelectionControlMax = 0x7fffffff,
  448. } SpvSelectionControlShift;
  449. typedef enum SpvSelectionControlMask_ {
  450. SpvSelectionControlMaskNone = 0,
  451. SpvSelectionControlFlattenMask = 0x00000001,
  452. SpvSelectionControlDontFlattenMask = 0x00000002,
  453. } SpvSelectionControlMask;
  454. typedef enum SpvLoopControlShift_ {
  455. SpvLoopControlUnrollShift = 0,
  456. SpvLoopControlDontUnrollShift = 1,
  457. SpvLoopControlDependencyInfiniteShift = 2,
  458. SpvLoopControlDependencyLengthShift = 3,
  459. SpvLoopControlMax = 0x7fffffff,
  460. } SpvLoopControlShift;
  461. typedef enum SpvLoopControlMask_ {
  462. SpvLoopControlMaskNone = 0,
  463. SpvLoopControlUnrollMask = 0x00000001,
  464. SpvLoopControlDontUnrollMask = 0x00000002,
  465. SpvLoopControlDependencyInfiniteMask = 0x00000004,
  466. SpvLoopControlDependencyLengthMask = 0x00000008,
  467. } SpvLoopControlMask;
  468. typedef enum SpvFunctionControlShift_ {
  469. SpvFunctionControlInlineShift = 0,
  470. SpvFunctionControlDontInlineShift = 1,
  471. SpvFunctionControlPureShift = 2,
  472. SpvFunctionControlConstShift = 3,
  473. SpvFunctionControlMax = 0x7fffffff,
  474. } SpvFunctionControlShift;
  475. typedef enum SpvFunctionControlMask_ {
  476. SpvFunctionControlMaskNone = 0,
  477. SpvFunctionControlInlineMask = 0x00000001,
  478. SpvFunctionControlDontInlineMask = 0x00000002,
  479. SpvFunctionControlPureMask = 0x00000004,
  480. SpvFunctionControlConstMask = 0x00000008,
  481. } SpvFunctionControlMask;
  482. typedef enum SpvMemorySemanticsShift_ {
  483. SpvMemorySemanticsAcquireShift = 1,
  484. SpvMemorySemanticsReleaseShift = 2,
  485. SpvMemorySemanticsAcquireReleaseShift = 3,
  486. SpvMemorySemanticsSequentiallyConsistentShift = 4,
  487. SpvMemorySemanticsUniformMemoryShift = 6,
  488. SpvMemorySemanticsSubgroupMemoryShift = 7,
  489. SpvMemorySemanticsWorkgroupMemoryShift = 8,
  490. SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
  491. SpvMemorySemanticsAtomicCounterMemoryShift = 10,
  492. SpvMemorySemanticsImageMemoryShift = 11,
  493. SpvMemorySemanticsMax = 0x7fffffff,
  494. } SpvMemorySemanticsShift;
  495. typedef enum SpvMemorySemanticsMask_ {
  496. SpvMemorySemanticsMaskNone = 0,
  497. SpvMemorySemanticsAcquireMask = 0x00000002,
  498. SpvMemorySemanticsReleaseMask = 0x00000004,
  499. SpvMemorySemanticsAcquireReleaseMask = 0x00000008,
  500. SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010,
  501. SpvMemorySemanticsUniformMemoryMask = 0x00000040,
  502. SpvMemorySemanticsSubgroupMemoryMask = 0x00000080,
  503. SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100,
  504. SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
  505. SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400,
  506. SpvMemorySemanticsImageMemoryMask = 0x00000800,
  507. } SpvMemorySemanticsMask;
  508. typedef enum SpvMemoryAccessShift_ {
  509. SpvMemoryAccessVolatileShift = 0,
  510. SpvMemoryAccessAlignedShift = 1,
  511. SpvMemoryAccessNontemporalShift = 2,
  512. SpvMemoryAccessMax = 0x7fffffff,
  513. } SpvMemoryAccessShift;
  514. typedef enum SpvMemoryAccessMask_ {
  515. SpvMemoryAccessMaskNone = 0,
  516. SpvMemoryAccessVolatileMask = 0x00000001,
  517. SpvMemoryAccessAlignedMask = 0x00000002,
  518. SpvMemoryAccessNontemporalMask = 0x00000004,
  519. } SpvMemoryAccessMask;
  520. typedef enum SpvScope_ {
  521. SpvScopeCrossDevice = 0,
  522. SpvScopeDevice = 1,
  523. SpvScopeWorkgroup = 2,
  524. SpvScopeSubgroup = 3,
  525. SpvScopeInvocation = 4,
  526. SpvScopeMax = 0x7fffffff,
  527. } SpvScope;
  528. typedef enum SpvGroupOperation_ {
  529. SpvGroupOperationReduce = 0,
  530. SpvGroupOperationInclusiveScan = 1,
  531. SpvGroupOperationExclusiveScan = 2,
  532. SpvGroupOperationMax = 0x7fffffff,
  533. } SpvGroupOperation;
  534. typedef enum SpvKernelEnqueueFlags_ {
  535. SpvKernelEnqueueFlagsNoWait = 0,
  536. SpvKernelEnqueueFlagsWaitKernel = 1,
  537. SpvKernelEnqueueFlagsWaitWorkGroup = 2,
  538. SpvKernelEnqueueFlagsMax = 0x7fffffff,
  539. } SpvKernelEnqueueFlags;
  540. typedef enum SpvKernelProfilingInfoShift_ {
  541. SpvKernelProfilingInfoCmdExecTimeShift = 0,
  542. SpvKernelProfilingInfoMax = 0x7fffffff,
  543. } SpvKernelProfilingInfoShift;
  544. typedef enum SpvKernelProfilingInfoMask_ {
  545. SpvKernelProfilingInfoMaskNone = 0,
  546. SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
  547. } SpvKernelProfilingInfoMask;
  548. typedef enum SpvCapability_ {
  549. SpvCapabilityMatrix = 0,
  550. SpvCapabilityShader = 1,
  551. SpvCapabilityGeometry = 2,
  552. SpvCapabilityTessellation = 3,
  553. SpvCapabilityAddresses = 4,
  554. SpvCapabilityLinkage = 5,
  555. SpvCapabilityKernel = 6,
  556. SpvCapabilityVector16 = 7,
  557. SpvCapabilityFloat16Buffer = 8,
  558. SpvCapabilityFloat16 = 9,
  559. SpvCapabilityFloat64 = 10,
  560. SpvCapabilityInt64 = 11,
  561. SpvCapabilityInt64Atomics = 12,
  562. SpvCapabilityImageBasic = 13,
  563. SpvCapabilityImageReadWrite = 14,
  564. SpvCapabilityImageMipmap = 15,
  565. SpvCapabilityPipes = 17,
  566. SpvCapabilityGroups = 18,
  567. SpvCapabilityDeviceEnqueue = 19,
  568. SpvCapabilityLiteralSampler = 20,
  569. SpvCapabilityAtomicStorage = 21,
  570. SpvCapabilityInt16 = 22,
  571. SpvCapabilityTessellationPointSize = 23,
  572. SpvCapabilityGeometryPointSize = 24,
  573. SpvCapabilityImageGatherExtended = 25,
  574. SpvCapabilityStorageImageMultisample = 27,
  575. SpvCapabilityUniformBufferArrayDynamicIndexing = 28,
  576. SpvCapabilitySampledImageArrayDynamicIndexing = 29,
  577. SpvCapabilityStorageBufferArrayDynamicIndexing = 30,
  578. SpvCapabilityStorageImageArrayDynamicIndexing = 31,
  579. SpvCapabilityClipDistance = 32,
  580. SpvCapabilityCullDistance = 33,
  581. SpvCapabilityImageCubeArray = 34,
  582. SpvCapabilitySampleRateShading = 35,
  583. SpvCapabilityImageRect = 36,
  584. SpvCapabilitySampledRect = 37,
  585. SpvCapabilityGenericPointer = 38,
  586. SpvCapabilityInt8 = 39,
  587. SpvCapabilityInputAttachment = 40,
  588. SpvCapabilitySparseResidency = 41,
  589. SpvCapabilityMinLod = 42,
  590. SpvCapabilitySampled1D = 43,
  591. SpvCapabilityImage1D = 44,
  592. SpvCapabilitySampledCubeArray = 45,
  593. SpvCapabilitySampledBuffer = 46,
  594. SpvCapabilityImageBuffer = 47,
  595. SpvCapabilityImageMSArray = 48,
  596. SpvCapabilityStorageImageExtendedFormats = 49,
  597. SpvCapabilityImageQuery = 50,
  598. SpvCapabilityDerivativeControl = 51,
  599. SpvCapabilityInterpolationFunction = 52,
  600. SpvCapabilityTransformFeedback = 53,
  601. SpvCapabilityGeometryStreams = 54,
  602. SpvCapabilityStorageImageReadWithoutFormat = 55,
  603. SpvCapabilityStorageImageWriteWithoutFormat = 56,
  604. SpvCapabilityMultiViewport = 57,
  605. SpvCapabilitySubgroupDispatch = 58,
  606. SpvCapabilityNamedBarrier = 59,
  607. SpvCapabilityPipeStorage = 60,
  608. SpvCapabilitySubgroupBallotKHR = 4423,
  609. SpvCapabilityDrawParameters = 4427,
  610. SpvCapabilitySubgroupVoteKHR = 4431,
  611. SpvCapabilityStorageBuffer16BitAccess = 4433,
  612. SpvCapabilityStorageUniformBufferBlock16 = 4433,
  613. SpvCapabilityStorageUniform16 = 4434,
  614. SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434,
  615. SpvCapabilityStoragePushConstant16 = 4435,
  616. SpvCapabilityStorageInputOutput16 = 4436,
  617. SpvCapabilityDeviceGroup = 4437,
  618. SpvCapabilityMultiView = 4439,
  619. SpvCapabilityVariablePointersStorageBuffer = 4441,
  620. SpvCapabilityVariablePointers = 4442,
  621. SpvCapabilityAtomicStorageOps = 4445,
  622. SpvCapabilitySampleMaskPostDepthCoverage = 4447,
  623. SpvCapabilityImageGatherBiasLodAMD = 5009,
  624. SpvCapabilityFragmentMaskAMD = 5010,
  625. SpvCapabilityStencilExportEXT = 5013,
  626. SpvCapabilityImageReadWriteLodAMD = 5015,
  627. SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
  628. SpvCapabilityGeometryShaderPassthroughNV = 5251,
  629. SpvCapabilityShaderViewportIndexLayerEXT = 5254,
  630. SpvCapabilityShaderViewportIndexLayerNV = 5254,
  631. SpvCapabilityShaderViewportMaskNV = 5255,
  632. SpvCapabilityShaderStereoViewNV = 5259,
  633. SpvCapabilityPerViewAttributesNV = 5260,
  634. SpvCapabilitySubgroupShuffleINTEL = 5568,
  635. SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
  636. SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
  637. SpvCapabilityMax = 0x7fffffff,
  638. } SpvCapability;
  639. typedef enum SpvOp_ {
  640. SpvOpNop = 0,
  641. SpvOpUndef = 1,
  642. SpvOpSourceContinued = 2,
  643. SpvOpSource = 3,
  644. SpvOpSourceExtension = 4,
  645. SpvOpName = 5,
  646. SpvOpMemberName = 6,
  647. SpvOpString = 7,
  648. SpvOpLine = 8,
  649. SpvOpExtension = 10,
  650. SpvOpExtInstImport = 11,
  651. SpvOpExtInst = 12,
  652. SpvOpMemoryModel = 14,
  653. SpvOpEntryPoint = 15,
  654. SpvOpExecutionMode = 16,
  655. SpvOpCapability = 17,
  656. SpvOpTypeVoid = 19,
  657. SpvOpTypeBool = 20,
  658. SpvOpTypeInt = 21,
  659. SpvOpTypeFloat = 22,
  660. SpvOpTypeVector = 23,
  661. SpvOpTypeMatrix = 24,
  662. SpvOpTypeImage = 25,
  663. SpvOpTypeSampler = 26,
  664. SpvOpTypeSampledImage = 27,
  665. SpvOpTypeArray = 28,
  666. SpvOpTypeRuntimeArray = 29,
  667. SpvOpTypeStruct = 30,
  668. SpvOpTypeOpaque = 31,
  669. SpvOpTypePointer = 32,
  670. SpvOpTypeFunction = 33,
  671. SpvOpTypeEvent = 34,
  672. SpvOpTypeDeviceEvent = 35,
  673. SpvOpTypeReserveId = 36,
  674. SpvOpTypeQueue = 37,
  675. SpvOpTypePipe = 38,
  676. SpvOpTypeForwardPointer = 39,
  677. SpvOpConstantTrue = 41,
  678. SpvOpConstantFalse = 42,
  679. SpvOpConstant = 43,
  680. SpvOpConstantComposite = 44,
  681. SpvOpConstantSampler = 45,
  682. SpvOpConstantNull = 46,
  683. SpvOpSpecConstantTrue = 48,
  684. SpvOpSpecConstantFalse = 49,
  685. SpvOpSpecConstant = 50,
  686. SpvOpSpecConstantComposite = 51,
  687. SpvOpSpecConstantOp = 52,
  688. SpvOpFunction = 54,
  689. SpvOpFunctionParameter = 55,
  690. SpvOpFunctionEnd = 56,
  691. SpvOpFunctionCall = 57,
  692. SpvOpVariable = 59,
  693. SpvOpImageTexelPointer = 60,
  694. SpvOpLoad = 61,
  695. SpvOpStore = 62,
  696. SpvOpCopyMemory = 63,
  697. SpvOpCopyMemorySized = 64,
  698. SpvOpAccessChain = 65,
  699. SpvOpInBoundsAccessChain = 66,
  700. SpvOpPtrAccessChain = 67,
  701. SpvOpArrayLength = 68,
  702. SpvOpGenericPtrMemSemantics = 69,
  703. SpvOpInBoundsPtrAccessChain = 70,
  704. SpvOpDecorate = 71,
  705. SpvOpMemberDecorate = 72,
  706. SpvOpDecorationGroup = 73,
  707. SpvOpGroupDecorate = 74,
  708. SpvOpGroupMemberDecorate = 75,
  709. SpvOpVectorExtractDynamic = 77,
  710. SpvOpVectorInsertDynamic = 78,
  711. SpvOpVectorShuffle = 79,
  712. SpvOpCompositeConstruct = 80,
  713. SpvOpCompositeExtract = 81,
  714. SpvOpCompositeInsert = 82,
  715. SpvOpCopyObject = 83,
  716. SpvOpTranspose = 84,
  717. SpvOpSampledImage = 86,
  718. SpvOpImageSampleImplicitLod = 87,
  719. SpvOpImageSampleExplicitLod = 88,
  720. SpvOpImageSampleDrefImplicitLod = 89,
  721. SpvOpImageSampleDrefExplicitLod = 90,
  722. SpvOpImageSampleProjImplicitLod = 91,
  723. SpvOpImageSampleProjExplicitLod = 92,
  724. SpvOpImageSampleProjDrefImplicitLod = 93,
  725. SpvOpImageSampleProjDrefExplicitLod = 94,
  726. SpvOpImageFetch = 95,
  727. SpvOpImageGather = 96,
  728. SpvOpImageDrefGather = 97,
  729. SpvOpImageRead = 98,
  730. SpvOpImageWrite = 99,
  731. SpvOpImage = 100,
  732. SpvOpImageQueryFormat = 101,
  733. SpvOpImageQueryOrder = 102,
  734. SpvOpImageQuerySizeLod = 103,
  735. SpvOpImageQuerySize = 104,
  736. SpvOpImageQueryLod = 105,
  737. SpvOpImageQueryLevels = 106,
  738. SpvOpImageQuerySamples = 107,
  739. SpvOpConvertFToU = 109,
  740. SpvOpConvertFToS = 110,
  741. SpvOpConvertSToF = 111,
  742. SpvOpConvertUToF = 112,
  743. SpvOpUConvert = 113,
  744. SpvOpSConvert = 114,
  745. SpvOpFConvert = 115,
  746. SpvOpQuantizeToF16 = 116,
  747. SpvOpConvertPtrToU = 117,
  748. SpvOpSatConvertSToU = 118,
  749. SpvOpSatConvertUToS = 119,
  750. SpvOpConvertUToPtr = 120,
  751. SpvOpPtrCastToGeneric = 121,
  752. SpvOpGenericCastToPtr = 122,
  753. SpvOpGenericCastToPtrExplicit = 123,
  754. SpvOpBitcast = 124,
  755. SpvOpSNegate = 126,
  756. SpvOpFNegate = 127,
  757. SpvOpIAdd = 128,
  758. SpvOpFAdd = 129,
  759. SpvOpISub = 130,
  760. SpvOpFSub = 131,
  761. SpvOpIMul = 132,
  762. SpvOpFMul = 133,
  763. SpvOpUDiv = 134,
  764. SpvOpSDiv = 135,
  765. SpvOpFDiv = 136,
  766. SpvOpUMod = 137,
  767. SpvOpSRem = 138,
  768. SpvOpSMod = 139,
  769. SpvOpFRem = 140,
  770. SpvOpFMod = 141,
  771. SpvOpVectorTimesScalar = 142,
  772. SpvOpMatrixTimesScalar = 143,
  773. SpvOpVectorTimesMatrix = 144,
  774. SpvOpMatrixTimesVector = 145,
  775. SpvOpMatrixTimesMatrix = 146,
  776. SpvOpOuterProduct = 147,
  777. SpvOpDot = 148,
  778. SpvOpIAddCarry = 149,
  779. SpvOpISubBorrow = 150,
  780. SpvOpUMulExtended = 151,
  781. SpvOpSMulExtended = 152,
  782. SpvOpAny = 154,
  783. SpvOpAll = 155,
  784. SpvOpIsNan = 156,
  785. SpvOpIsInf = 157,
  786. SpvOpIsFinite = 158,
  787. SpvOpIsNormal = 159,
  788. SpvOpSignBitSet = 160,
  789. SpvOpLessOrGreater = 161,
  790. SpvOpOrdered = 162,
  791. SpvOpUnordered = 163,
  792. SpvOpLogicalEqual = 164,
  793. SpvOpLogicalNotEqual = 165,
  794. SpvOpLogicalOr = 166,
  795. SpvOpLogicalAnd = 167,
  796. SpvOpLogicalNot = 168,
  797. SpvOpSelect = 169,
  798. SpvOpIEqual = 170,
  799. SpvOpINotEqual = 171,
  800. SpvOpUGreaterThan = 172,
  801. SpvOpSGreaterThan = 173,
  802. SpvOpUGreaterThanEqual = 174,
  803. SpvOpSGreaterThanEqual = 175,
  804. SpvOpULessThan = 176,
  805. SpvOpSLessThan = 177,
  806. SpvOpULessThanEqual = 178,
  807. SpvOpSLessThanEqual = 179,
  808. SpvOpFOrdEqual = 180,
  809. SpvOpFUnordEqual = 181,
  810. SpvOpFOrdNotEqual = 182,
  811. SpvOpFUnordNotEqual = 183,
  812. SpvOpFOrdLessThan = 184,
  813. SpvOpFUnordLessThan = 185,
  814. SpvOpFOrdGreaterThan = 186,
  815. SpvOpFUnordGreaterThan = 187,
  816. SpvOpFOrdLessThanEqual = 188,
  817. SpvOpFUnordLessThanEqual = 189,
  818. SpvOpFOrdGreaterThanEqual = 190,
  819. SpvOpFUnordGreaterThanEqual = 191,
  820. SpvOpShiftRightLogical = 194,
  821. SpvOpShiftRightArithmetic = 195,
  822. SpvOpShiftLeftLogical = 196,
  823. SpvOpBitwiseOr = 197,
  824. SpvOpBitwiseXor = 198,
  825. SpvOpBitwiseAnd = 199,
  826. SpvOpNot = 200,
  827. SpvOpBitFieldInsert = 201,
  828. SpvOpBitFieldSExtract = 202,
  829. SpvOpBitFieldUExtract = 203,
  830. SpvOpBitReverse = 204,
  831. SpvOpBitCount = 205,
  832. SpvOpDPdx = 207,
  833. SpvOpDPdy = 208,
  834. SpvOpFwidth = 209,
  835. SpvOpDPdxFine = 210,
  836. SpvOpDPdyFine = 211,
  837. SpvOpFwidthFine = 212,
  838. SpvOpDPdxCoarse = 213,
  839. SpvOpDPdyCoarse = 214,
  840. SpvOpFwidthCoarse = 215,
  841. SpvOpEmitVertex = 218,
  842. SpvOpEndPrimitive = 219,
  843. SpvOpEmitStreamVertex = 220,
  844. SpvOpEndStreamPrimitive = 221,
  845. SpvOpControlBarrier = 224,
  846. SpvOpMemoryBarrier = 225,
  847. SpvOpAtomicLoad = 227,
  848. SpvOpAtomicStore = 228,
  849. SpvOpAtomicExchange = 229,
  850. SpvOpAtomicCompareExchange = 230,
  851. SpvOpAtomicCompareExchangeWeak = 231,
  852. SpvOpAtomicIIncrement = 232,
  853. SpvOpAtomicIDecrement = 233,
  854. SpvOpAtomicIAdd = 234,
  855. SpvOpAtomicISub = 235,
  856. SpvOpAtomicSMin = 236,
  857. SpvOpAtomicUMin = 237,
  858. SpvOpAtomicSMax = 238,
  859. SpvOpAtomicUMax = 239,
  860. SpvOpAtomicAnd = 240,
  861. SpvOpAtomicOr = 241,
  862. SpvOpAtomicXor = 242,
  863. SpvOpPhi = 245,
  864. SpvOpLoopMerge = 246,
  865. SpvOpSelectionMerge = 247,
  866. SpvOpLabel = 248,
  867. SpvOpBranch = 249,
  868. SpvOpBranchConditional = 250,
  869. SpvOpSwitch = 251,
  870. SpvOpKill = 252,
  871. SpvOpReturn = 253,
  872. SpvOpReturnValue = 254,
  873. SpvOpUnreachable = 255,
  874. SpvOpLifetimeStart = 256,
  875. SpvOpLifetimeStop = 257,
  876. SpvOpGroupAsyncCopy = 259,
  877. SpvOpGroupWaitEvents = 260,
  878. SpvOpGroupAll = 261,
  879. SpvOpGroupAny = 262,
  880. SpvOpGroupBroadcast = 263,
  881. SpvOpGroupIAdd = 264,
  882. SpvOpGroupFAdd = 265,
  883. SpvOpGroupFMin = 266,
  884. SpvOpGroupUMin = 267,
  885. SpvOpGroupSMin = 268,
  886. SpvOpGroupFMax = 269,
  887. SpvOpGroupUMax = 270,
  888. SpvOpGroupSMax = 271,
  889. SpvOpReadPipe = 274,
  890. SpvOpWritePipe = 275,
  891. SpvOpReservedReadPipe = 276,
  892. SpvOpReservedWritePipe = 277,
  893. SpvOpReserveReadPipePackets = 278,
  894. SpvOpReserveWritePipePackets = 279,
  895. SpvOpCommitReadPipe = 280,
  896. SpvOpCommitWritePipe = 281,
  897. SpvOpIsValidReserveId = 282,
  898. SpvOpGetNumPipePackets = 283,
  899. SpvOpGetMaxPipePackets = 284,
  900. SpvOpGroupReserveReadPipePackets = 285,
  901. SpvOpGroupReserveWritePipePackets = 286,
  902. SpvOpGroupCommitReadPipe = 287,
  903. SpvOpGroupCommitWritePipe = 288,
  904. SpvOpEnqueueMarker = 291,
  905. SpvOpEnqueueKernel = 292,
  906. SpvOpGetKernelNDrangeSubGroupCount = 293,
  907. SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
  908. SpvOpGetKernelWorkGroupSize = 295,
  909. SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
  910. SpvOpRetainEvent = 297,
  911. SpvOpReleaseEvent = 298,
  912. SpvOpCreateUserEvent = 299,
  913. SpvOpIsValidEvent = 300,
  914. SpvOpSetUserEventStatus = 301,
  915. SpvOpCaptureEventProfilingInfo = 302,
  916. SpvOpGetDefaultQueue = 303,
  917. SpvOpBuildNDRange = 304,
  918. SpvOpImageSparseSampleImplicitLod = 305,
  919. SpvOpImageSparseSampleExplicitLod = 306,
  920. SpvOpImageSparseSampleDrefImplicitLod = 307,
  921. SpvOpImageSparseSampleDrefExplicitLod = 308,
  922. SpvOpImageSparseSampleProjImplicitLod = 309,
  923. SpvOpImageSparseSampleProjExplicitLod = 310,
  924. SpvOpImageSparseSampleProjDrefImplicitLod = 311,
  925. SpvOpImageSparseSampleProjDrefExplicitLod = 312,
  926. SpvOpImageSparseFetch = 313,
  927. SpvOpImageSparseGather = 314,
  928. SpvOpImageSparseDrefGather = 315,
  929. SpvOpImageSparseTexelsResident = 316,
  930. SpvOpNoLine = 317,
  931. SpvOpAtomicFlagTestAndSet = 318,
  932. SpvOpAtomicFlagClear = 319,
  933. SpvOpImageSparseRead = 320,
  934. SpvOpSizeOf = 321,
  935. SpvOpTypePipeStorage = 322,
  936. SpvOpConstantPipeStorage = 323,
  937. SpvOpCreatePipeFromPipeStorage = 324,
  938. SpvOpGetKernelLocalSizeForSubgroupCount = 325,
  939. SpvOpGetKernelMaxNumSubgroups = 326,
  940. SpvOpTypeNamedBarrier = 327,
  941. SpvOpNamedBarrierInitialize = 328,
  942. SpvOpMemoryNamedBarrier = 329,
  943. SpvOpModuleProcessed = 330,
  944. SpvOpExecutionModeId = 331,
  945. SpvOpDecorateId = 332,
  946. SpvOpSubgroupBallotKHR = 4421,
  947. SpvOpSubgroupFirstInvocationKHR = 4422,
  948. SpvOpSubgroupAllKHR = 4428,
  949. SpvOpSubgroupAnyKHR = 4429,
  950. SpvOpSubgroupAllEqualKHR = 4430,
  951. SpvOpSubgroupReadInvocationKHR = 4432,
  952. SpvOpGroupIAddNonUniformAMD = 5000,
  953. SpvOpGroupFAddNonUniformAMD = 5001,
  954. SpvOpGroupFMinNonUniformAMD = 5002,
  955. SpvOpGroupUMinNonUniformAMD = 5003,
  956. SpvOpGroupSMinNonUniformAMD = 5004,
  957. SpvOpGroupFMaxNonUniformAMD = 5005,
  958. SpvOpGroupUMaxNonUniformAMD = 5006,
  959. SpvOpGroupSMaxNonUniformAMD = 5007,
  960. SpvOpFragmentMaskFetchAMD = 5011,
  961. SpvOpFragmentFetchAMD = 5012,
  962. SpvOpSubgroupShuffleINTEL = 5571,
  963. SpvOpSubgroupShuffleDownINTEL = 5572,
  964. SpvOpSubgroupShuffleUpINTEL = 5573,
  965. SpvOpSubgroupShuffleXorINTEL = 5574,
  966. SpvOpSubgroupBlockReadINTEL = 5575,
  967. SpvOpSubgroupBlockWriteINTEL = 5576,
  968. SpvOpSubgroupImageBlockReadINTEL = 5577,
  969. SpvOpSubgroupImageBlockWriteINTEL = 5578,
  970. SpvOpDecorateStringGOOGLE = 5632,
  971. SpvOpMemberDecorateStringGOOGLE = 5633,
  972. SpvOpMax = 0x7fffffff,
  973. } SpvOp;
  974. #endif // #ifndef spirv_H