spirv.hpp 104 KB

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