spirv.hpp 104 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204
  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. BuiltInHitTKHR = 5332,
  589. BuiltInHitTNV = 5332,
  590. BuiltInHitKindKHR = 5333,
  591. BuiltInHitKindNV = 5333,
  592. BuiltInIncomingRayFlagsKHR = 5351,
  593. BuiltInIncomingRayFlagsNV = 5351,
  594. BuiltInRayGeometryIndexKHR = 5352,
  595. BuiltInWarpsPerSMNV = 5374,
  596. BuiltInSMCountNV = 5375,
  597. BuiltInWarpIDNV = 5376,
  598. BuiltInSMIDNV = 5377,
  599. BuiltInMax = 0x7fffffff,
  600. };
  601. enum SelectionControlShift {
  602. SelectionControlFlattenShift = 0,
  603. SelectionControlDontFlattenShift = 1,
  604. SelectionControlMax = 0x7fffffff,
  605. };
  606. enum SelectionControlMask {
  607. SelectionControlMaskNone = 0,
  608. SelectionControlFlattenMask = 0x00000001,
  609. SelectionControlDontFlattenMask = 0x00000002,
  610. };
  611. enum LoopControlShift {
  612. LoopControlUnrollShift = 0,
  613. LoopControlDontUnrollShift = 1,
  614. LoopControlDependencyInfiniteShift = 2,
  615. LoopControlDependencyLengthShift = 3,
  616. LoopControlMinIterationsShift = 4,
  617. LoopControlMaxIterationsShift = 5,
  618. LoopControlIterationMultipleShift = 6,
  619. LoopControlPeelCountShift = 7,
  620. LoopControlPartialCountShift = 8,
  621. LoopControlInitiationIntervalINTELShift = 16,
  622. LoopControlMaxConcurrencyINTELShift = 17,
  623. LoopControlDependencyArrayINTELShift = 18,
  624. LoopControlPipelineEnableINTELShift = 19,
  625. LoopControlLoopCoalesceINTELShift = 20,
  626. LoopControlMaxInterleavingINTELShift = 21,
  627. LoopControlSpeculatedIterationsINTELShift = 22,
  628. LoopControlMax = 0x7fffffff,
  629. };
  630. enum LoopControlMask {
  631. LoopControlMaskNone = 0,
  632. LoopControlUnrollMask = 0x00000001,
  633. LoopControlDontUnrollMask = 0x00000002,
  634. LoopControlDependencyInfiniteMask = 0x00000004,
  635. LoopControlDependencyLengthMask = 0x00000008,
  636. LoopControlMinIterationsMask = 0x00000010,
  637. LoopControlMaxIterationsMask = 0x00000020,
  638. LoopControlIterationMultipleMask = 0x00000040,
  639. LoopControlPeelCountMask = 0x00000080,
  640. LoopControlPartialCountMask = 0x00000100,
  641. LoopControlInitiationIntervalINTELMask = 0x00010000,
  642. LoopControlMaxConcurrencyINTELMask = 0x00020000,
  643. LoopControlDependencyArrayINTELMask = 0x00040000,
  644. LoopControlPipelineEnableINTELMask = 0x00080000,
  645. LoopControlLoopCoalesceINTELMask = 0x00100000,
  646. LoopControlMaxInterleavingINTELMask = 0x00200000,
  647. LoopControlSpeculatedIterationsINTELMask = 0x00400000,
  648. };
  649. enum FunctionControlShift {
  650. FunctionControlInlineShift = 0,
  651. FunctionControlDontInlineShift = 1,
  652. FunctionControlPureShift = 2,
  653. FunctionControlConstShift = 3,
  654. FunctionControlMax = 0x7fffffff,
  655. };
  656. enum FunctionControlMask {
  657. FunctionControlMaskNone = 0,
  658. FunctionControlInlineMask = 0x00000001,
  659. FunctionControlDontInlineMask = 0x00000002,
  660. FunctionControlPureMask = 0x00000004,
  661. FunctionControlConstMask = 0x00000008,
  662. };
  663. enum MemorySemanticsShift {
  664. MemorySemanticsAcquireShift = 1,
  665. MemorySemanticsReleaseShift = 2,
  666. MemorySemanticsAcquireReleaseShift = 3,
  667. MemorySemanticsSequentiallyConsistentShift = 4,
  668. MemorySemanticsUniformMemoryShift = 6,
  669. MemorySemanticsSubgroupMemoryShift = 7,
  670. MemorySemanticsWorkgroupMemoryShift = 8,
  671. MemorySemanticsCrossWorkgroupMemoryShift = 9,
  672. MemorySemanticsAtomicCounterMemoryShift = 10,
  673. MemorySemanticsImageMemoryShift = 11,
  674. MemorySemanticsOutputMemoryShift = 12,
  675. MemorySemanticsOutputMemoryKHRShift = 12,
  676. MemorySemanticsMakeAvailableShift = 13,
  677. MemorySemanticsMakeAvailableKHRShift = 13,
  678. MemorySemanticsMakeVisibleShift = 14,
  679. MemorySemanticsMakeVisibleKHRShift = 14,
  680. MemorySemanticsVolatileShift = 15,
  681. MemorySemanticsMax = 0x7fffffff,
  682. };
  683. enum MemorySemanticsMask {
  684. MemorySemanticsMaskNone = 0,
  685. MemorySemanticsAcquireMask = 0x00000002,
  686. MemorySemanticsReleaseMask = 0x00000004,
  687. MemorySemanticsAcquireReleaseMask = 0x00000008,
  688. MemorySemanticsSequentiallyConsistentMask = 0x00000010,
  689. MemorySemanticsUniformMemoryMask = 0x00000040,
  690. MemorySemanticsSubgroupMemoryMask = 0x00000080,
  691. MemorySemanticsWorkgroupMemoryMask = 0x00000100,
  692. MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
  693. MemorySemanticsAtomicCounterMemoryMask = 0x00000400,
  694. MemorySemanticsImageMemoryMask = 0x00000800,
  695. MemorySemanticsOutputMemoryMask = 0x00001000,
  696. MemorySemanticsOutputMemoryKHRMask = 0x00001000,
  697. MemorySemanticsMakeAvailableMask = 0x00002000,
  698. MemorySemanticsMakeAvailableKHRMask = 0x00002000,
  699. MemorySemanticsMakeVisibleMask = 0x00004000,
  700. MemorySemanticsMakeVisibleKHRMask = 0x00004000,
  701. MemorySemanticsVolatileMask = 0x00008000,
  702. };
  703. enum MemoryAccessShift {
  704. MemoryAccessVolatileShift = 0,
  705. MemoryAccessAlignedShift = 1,
  706. MemoryAccessNontemporalShift = 2,
  707. MemoryAccessMakePointerAvailableShift = 3,
  708. MemoryAccessMakePointerAvailableKHRShift = 3,
  709. MemoryAccessMakePointerVisibleShift = 4,
  710. MemoryAccessMakePointerVisibleKHRShift = 4,
  711. MemoryAccessNonPrivatePointerShift = 5,
  712. MemoryAccessNonPrivatePointerKHRShift = 5,
  713. MemoryAccessMax = 0x7fffffff,
  714. };
  715. enum MemoryAccessMask {
  716. MemoryAccessMaskNone = 0,
  717. MemoryAccessVolatileMask = 0x00000001,
  718. MemoryAccessAlignedMask = 0x00000002,
  719. MemoryAccessNontemporalMask = 0x00000004,
  720. MemoryAccessMakePointerAvailableMask = 0x00000008,
  721. MemoryAccessMakePointerAvailableKHRMask = 0x00000008,
  722. MemoryAccessMakePointerVisibleMask = 0x00000010,
  723. MemoryAccessMakePointerVisibleKHRMask = 0x00000010,
  724. MemoryAccessNonPrivatePointerMask = 0x00000020,
  725. MemoryAccessNonPrivatePointerKHRMask = 0x00000020,
  726. };
  727. enum Scope {
  728. ScopeCrossDevice = 0,
  729. ScopeDevice = 1,
  730. ScopeWorkgroup = 2,
  731. ScopeSubgroup = 3,
  732. ScopeInvocation = 4,
  733. ScopeQueueFamily = 5,
  734. ScopeQueueFamilyKHR = 5,
  735. ScopeShaderCallKHR = 6,
  736. ScopeMax = 0x7fffffff,
  737. };
  738. enum GroupOperation {
  739. GroupOperationReduce = 0,
  740. GroupOperationInclusiveScan = 1,
  741. GroupOperationExclusiveScan = 2,
  742. GroupOperationClusteredReduce = 3,
  743. GroupOperationPartitionedReduceNV = 6,
  744. GroupOperationPartitionedInclusiveScanNV = 7,
  745. GroupOperationPartitionedExclusiveScanNV = 8,
  746. GroupOperationMax = 0x7fffffff,
  747. };
  748. enum KernelEnqueueFlags {
  749. KernelEnqueueFlagsNoWait = 0,
  750. KernelEnqueueFlagsWaitKernel = 1,
  751. KernelEnqueueFlagsWaitWorkGroup = 2,
  752. KernelEnqueueFlagsMax = 0x7fffffff,
  753. };
  754. enum KernelProfilingInfoShift {
  755. KernelProfilingInfoCmdExecTimeShift = 0,
  756. KernelProfilingInfoMax = 0x7fffffff,
  757. };
  758. enum KernelProfilingInfoMask {
  759. KernelProfilingInfoMaskNone = 0,
  760. KernelProfilingInfoCmdExecTimeMask = 0x00000001,
  761. };
  762. enum Capability {
  763. CapabilityMatrix = 0,
  764. CapabilityShader = 1,
  765. CapabilityGeometry = 2,
  766. CapabilityTessellation = 3,
  767. CapabilityAddresses = 4,
  768. CapabilityLinkage = 5,
  769. CapabilityKernel = 6,
  770. CapabilityVector16 = 7,
  771. CapabilityFloat16Buffer = 8,
  772. CapabilityFloat16 = 9,
  773. CapabilityFloat64 = 10,
  774. CapabilityInt64 = 11,
  775. CapabilityInt64Atomics = 12,
  776. CapabilityImageBasic = 13,
  777. CapabilityImageReadWrite = 14,
  778. CapabilityImageMipmap = 15,
  779. CapabilityPipes = 17,
  780. CapabilityGroups = 18,
  781. CapabilityDeviceEnqueue = 19,
  782. CapabilityLiteralSampler = 20,
  783. CapabilityAtomicStorage = 21,
  784. CapabilityInt16 = 22,
  785. CapabilityTessellationPointSize = 23,
  786. CapabilityGeometryPointSize = 24,
  787. CapabilityImageGatherExtended = 25,
  788. CapabilityStorageImageMultisample = 27,
  789. CapabilityUniformBufferArrayDynamicIndexing = 28,
  790. CapabilitySampledImageArrayDynamicIndexing = 29,
  791. CapabilityStorageBufferArrayDynamicIndexing = 30,
  792. CapabilityStorageImageArrayDynamicIndexing = 31,
  793. CapabilityClipDistance = 32,
  794. CapabilityCullDistance = 33,
  795. CapabilityImageCubeArray = 34,
  796. CapabilitySampleRateShading = 35,
  797. CapabilityImageRect = 36,
  798. CapabilitySampledRect = 37,
  799. CapabilityGenericPointer = 38,
  800. CapabilityInt8 = 39,
  801. CapabilityInputAttachment = 40,
  802. CapabilitySparseResidency = 41,
  803. CapabilityMinLod = 42,
  804. CapabilitySampled1D = 43,
  805. CapabilityImage1D = 44,
  806. CapabilitySampledCubeArray = 45,
  807. CapabilitySampledBuffer = 46,
  808. CapabilityImageBuffer = 47,
  809. CapabilityImageMSArray = 48,
  810. CapabilityStorageImageExtendedFormats = 49,
  811. CapabilityImageQuery = 50,
  812. CapabilityDerivativeControl = 51,
  813. CapabilityInterpolationFunction = 52,
  814. CapabilityTransformFeedback = 53,
  815. CapabilityGeometryStreams = 54,
  816. CapabilityStorageImageReadWithoutFormat = 55,
  817. CapabilityStorageImageWriteWithoutFormat = 56,
  818. CapabilityMultiViewport = 57,
  819. CapabilitySubgroupDispatch = 58,
  820. CapabilityNamedBarrier = 59,
  821. CapabilityPipeStorage = 60,
  822. CapabilityGroupNonUniform = 61,
  823. CapabilityGroupNonUniformVote = 62,
  824. CapabilityGroupNonUniformArithmetic = 63,
  825. CapabilityGroupNonUniformBallot = 64,
  826. CapabilityGroupNonUniformShuffle = 65,
  827. CapabilityGroupNonUniformShuffleRelative = 66,
  828. CapabilityGroupNonUniformClustered = 67,
  829. CapabilityGroupNonUniformQuad = 68,
  830. CapabilityShaderLayer = 69,
  831. CapabilityShaderViewportIndex = 70,
  832. CapabilityFragmentShadingRateKHR = 4422,
  833. CapabilitySubgroupBallotKHR = 4423,
  834. CapabilityDrawParameters = 4427,
  835. CapabilitySubgroupVoteKHR = 4431,
  836. CapabilityStorageBuffer16BitAccess = 4433,
  837. CapabilityStorageUniformBufferBlock16 = 4433,
  838. CapabilityStorageUniform16 = 4434,
  839. CapabilityUniformAndStorageBuffer16BitAccess = 4434,
  840. CapabilityStoragePushConstant16 = 4435,
  841. CapabilityStorageInputOutput16 = 4436,
  842. CapabilityDeviceGroup = 4437,
  843. CapabilityMultiView = 4439,
  844. CapabilityVariablePointersStorageBuffer = 4441,
  845. CapabilityVariablePointers = 4442,
  846. CapabilityAtomicStorageOps = 4445,
  847. CapabilitySampleMaskPostDepthCoverage = 4447,
  848. CapabilityStorageBuffer8BitAccess = 4448,
  849. CapabilityUniformAndStorageBuffer8BitAccess = 4449,
  850. CapabilityStoragePushConstant8 = 4450,
  851. CapabilityDenormPreserve = 4464,
  852. CapabilityDenormFlushToZero = 4465,
  853. CapabilitySignedZeroInfNanPreserve = 4466,
  854. CapabilityRoundingModeRTE = 4467,
  855. CapabilityRoundingModeRTZ = 4468,
  856. CapabilityRayQueryProvisionalKHR = 4471,
  857. CapabilityRayQueryKHR = 4472,
  858. CapabilityRayTraversalPrimitiveCullingKHR = 4478,
  859. CapabilityRayTracingKHR = 4479,
  860. CapabilityFloat16ImageAMD = 5008,
  861. CapabilityImageGatherBiasLodAMD = 5009,
  862. CapabilityFragmentMaskAMD = 5010,
  863. CapabilityStencilExportEXT = 5013,
  864. CapabilityImageReadWriteLodAMD = 5015,
  865. CapabilityInt64ImageEXT = 5016,
  866. CapabilityShaderClockKHR = 5055,
  867. CapabilitySampleMaskOverrideCoverageNV = 5249,
  868. CapabilityGeometryShaderPassthroughNV = 5251,
  869. CapabilityShaderViewportIndexLayerEXT = 5254,
  870. CapabilityShaderViewportIndexLayerNV = 5254,
  871. CapabilityShaderViewportMaskNV = 5255,
  872. CapabilityShaderStereoViewNV = 5259,
  873. CapabilityPerViewAttributesNV = 5260,
  874. CapabilityFragmentFullyCoveredEXT = 5265,
  875. CapabilityMeshShadingNV = 5266,
  876. CapabilityImageFootprintNV = 5282,
  877. CapabilityFragmentBarycentricNV = 5284,
  878. CapabilityComputeDerivativeGroupQuadsNV = 5288,
  879. CapabilityFragmentDensityEXT = 5291,
  880. CapabilityShadingRateNV = 5291,
  881. CapabilityGroupNonUniformPartitionedNV = 5297,
  882. CapabilityShaderNonUniform = 5301,
  883. CapabilityShaderNonUniformEXT = 5301,
  884. CapabilityRuntimeDescriptorArray = 5302,
  885. CapabilityRuntimeDescriptorArrayEXT = 5302,
  886. CapabilityInputAttachmentArrayDynamicIndexing = 5303,
  887. CapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
  888. CapabilityUniformTexelBufferArrayDynamicIndexing = 5304,
  889. CapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
  890. CapabilityStorageTexelBufferArrayDynamicIndexing = 5305,
  891. CapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
  892. CapabilityUniformBufferArrayNonUniformIndexing = 5306,
  893. CapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
  894. CapabilitySampledImageArrayNonUniformIndexing = 5307,
  895. CapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
  896. CapabilityStorageBufferArrayNonUniformIndexing = 5308,
  897. CapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
  898. CapabilityStorageImageArrayNonUniformIndexing = 5309,
  899. CapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
  900. CapabilityInputAttachmentArrayNonUniformIndexing = 5310,
  901. CapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
  902. CapabilityUniformTexelBufferArrayNonUniformIndexing = 5311,
  903. CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
  904. CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
  905. CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
  906. CapabilityRayTracingNV = 5340,
  907. CapabilityVulkanMemoryModel = 5345,
  908. CapabilityVulkanMemoryModelKHR = 5345,
  909. CapabilityVulkanMemoryModelDeviceScope = 5346,
  910. CapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
  911. CapabilityPhysicalStorageBufferAddresses = 5347,
  912. CapabilityPhysicalStorageBufferAddressesEXT = 5347,
  913. CapabilityComputeDerivativeGroupLinearNV = 5350,
  914. CapabilityRayTracingProvisionalKHR = 5353,
  915. CapabilityCooperativeMatrixNV = 5357,
  916. CapabilityFragmentShaderSampleInterlockEXT = 5363,
  917. CapabilityFragmentShaderShadingRateInterlockEXT = 5372,
  918. CapabilityShaderSMBuiltinsNV = 5373,
  919. CapabilityFragmentShaderPixelInterlockEXT = 5378,
  920. CapabilityDemoteToHelperInvocationEXT = 5379,
  921. CapabilitySubgroupShuffleINTEL = 5568,
  922. CapabilitySubgroupBufferBlockIOINTEL = 5569,
  923. CapabilitySubgroupImageBlockIOINTEL = 5570,
  924. CapabilitySubgroupImageMediaBlockIOINTEL = 5579,
  925. CapabilityIntegerFunctions2INTEL = 5584,
  926. CapabilityFunctionPointersINTEL = 5603,
  927. CapabilityIndirectReferencesINTEL = 5604,
  928. CapabilitySubgroupAvcMotionEstimationINTEL = 5696,
  929. CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
  930. CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
  931. CapabilityFPGAMemoryAttributesINTEL = 5824,
  932. CapabilityUnstructuredLoopControlsINTEL = 5886,
  933. CapabilityFPGALoopControlsINTEL = 5888,
  934. CapabilityKernelAttributesINTEL = 5892,
  935. CapabilityFPGAKernelAttributesINTEL = 5897,
  936. CapabilityBlockingPipesINTEL = 5945,
  937. CapabilityFPGARegINTEL = 5948,
  938. CapabilityAtomicFloat32AddEXT = 6033,
  939. CapabilityAtomicFloat64AddEXT = 6034,
  940. CapabilityMax = 0x7fffffff,
  941. };
  942. enum RayFlagsShift {
  943. RayFlagsOpaqueKHRShift = 0,
  944. RayFlagsNoOpaqueKHRShift = 1,
  945. RayFlagsTerminateOnFirstHitKHRShift = 2,
  946. RayFlagsSkipClosestHitShaderKHRShift = 3,
  947. RayFlagsCullBackFacingTrianglesKHRShift = 4,
  948. RayFlagsCullFrontFacingTrianglesKHRShift = 5,
  949. RayFlagsCullOpaqueKHRShift = 6,
  950. RayFlagsCullNoOpaqueKHRShift = 7,
  951. RayFlagsSkipTrianglesKHRShift = 8,
  952. RayFlagsSkipAABBsKHRShift = 9,
  953. RayFlagsMax = 0x7fffffff,
  954. };
  955. enum RayFlagsMask {
  956. RayFlagsMaskNone = 0,
  957. RayFlagsOpaqueKHRMask = 0x00000001,
  958. RayFlagsNoOpaqueKHRMask = 0x00000002,
  959. RayFlagsTerminateOnFirstHitKHRMask = 0x00000004,
  960. RayFlagsSkipClosestHitShaderKHRMask = 0x00000008,
  961. RayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,
  962. RayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,
  963. RayFlagsCullOpaqueKHRMask = 0x00000040,
  964. RayFlagsCullNoOpaqueKHRMask = 0x00000080,
  965. RayFlagsSkipTrianglesKHRMask = 0x00000100,
  966. RayFlagsSkipAABBsKHRMask = 0x00000200,
  967. };
  968. enum RayQueryIntersection {
  969. RayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,
  970. RayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,
  971. RayQueryIntersectionMax = 0x7fffffff,
  972. };
  973. enum RayQueryCommittedIntersectionType {
  974. RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,
  975. RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1,
  976. RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2,
  977. RayQueryCommittedIntersectionTypeMax = 0x7fffffff,
  978. };
  979. enum RayQueryCandidateIntersectionType {
  980. RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0,
  981. RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,
  982. RayQueryCandidateIntersectionTypeMax = 0x7fffffff,
  983. };
  984. enum FragmentShadingRateShift {
  985. FragmentShadingRateVertical2PixelsShift = 0,
  986. FragmentShadingRateVertical4PixelsShift = 1,
  987. FragmentShadingRateHorizontal2PixelsShift = 2,
  988. FragmentShadingRateHorizontal4PixelsShift = 3,
  989. FragmentShadingRateMax = 0x7fffffff,
  990. };
  991. enum FragmentShadingRateMask {
  992. FragmentShadingRateMaskNone = 0,
  993. FragmentShadingRateVertical2PixelsMask = 0x00000001,
  994. FragmentShadingRateVertical4PixelsMask = 0x00000002,
  995. FragmentShadingRateHorizontal2PixelsMask = 0x00000004,
  996. FragmentShadingRateHorizontal4PixelsMask = 0x00000008,
  997. };
  998. enum Op {
  999. OpNop = 0,
  1000. OpUndef = 1,
  1001. OpSourceContinued = 2,
  1002. OpSource = 3,
  1003. OpSourceExtension = 4,
  1004. OpName = 5,
  1005. OpMemberName = 6,
  1006. OpString = 7,
  1007. OpLine = 8,
  1008. OpExtension = 10,
  1009. OpExtInstImport = 11,
  1010. OpExtInst = 12,
  1011. OpMemoryModel = 14,
  1012. OpEntryPoint = 15,
  1013. OpExecutionMode = 16,
  1014. OpCapability = 17,
  1015. OpTypeVoid = 19,
  1016. OpTypeBool = 20,
  1017. OpTypeInt = 21,
  1018. OpTypeFloat = 22,
  1019. OpTypeVector = 23,
  1020. OpTypeMatrix = 24,
  1021. OpTypeImage = 25,
  1022. OpTypeSampler = 26,
  1023. OpTypeSampledImage = 27,
  1024. OpTypeArray = 28,
  1025. OpTypeRuntimeArray = 29,
  1026. OpTypeStruct = 30,
  1027. OpTypeOpaque = 31,
  1028. OpTypePointer = 32,
  1029. OpTypeFunction = 33,
  1030. OpTypeEvent = 34,
  1031. OpTypeDeviceEvent = 35,
  1032. OpTypeReserveId = 36,
  1033. OpTypeQueue = 37,
  1034. OpTypePipe = 38,
  1035. OpTypeForwardPointer = 39,
  1036. OpConstantTrue = 41,
  1037. OpConstantFalse = 42,
  1038. OpConstant = 43,
  1039. OpConstantComposite = 44,
  1040. OpConstantSampler = 45,
  1041. OpConstantNull = 46,
  1042. OpSpecConstantTrue = 48,
  1043. OpSpecConstantFalse = 49,
  1044. OpSpecConstant = 50,
  1045. OpSpecConstantComposite = 51,
  1046. OpSpecConstantOp = 52,
  1047. OpFunction = 54,
  1048. OpFunctionParameter = 55,
  1049. OpFunctionEnd = 56,
  1050. OpFunctionCall = 57,
  1051. OpVariable = 59,
  1052. OpImageTexelPointer = 60,
  1053. OpLoad = 61,
  1054. OpStore = 62,
  1055. OpCopyMemory = 63,
  1056. OpCopyMemorySized = 64,
  1057. OpAccessChain = 65,
  1058. OpInBoundsAccessChain = 66,
  1059. OpPtrAccessChain = 67,
  1060. OpArrayLength = 68,
  1061. OpGenericPtrMemSemantics = 69,
  1062. OpInBoundsPtrAccessChain = 70,
  1063. OpDecorate = 71,
  1064. OpMemberDecorate = 72,
  1065. OpDecorationGroup = 73,
  1066. OpGroupDecorate = 74,
  1067. OpGroupMemberDecorate = 75,
  1068. OpVectorExtractDynamic = 77,
  1069. OpVectorInsertDynamic = 78,
  1070. OpVectorShuffle = 79,
  1071. OpCompositeConstruct = 80,
  1072. OpCompositeExtract = 81,
  1073. OpCompositeInsert = 82,
  1074. OpCopyObject = 83,
  1075. OpTranspose = 84,
  1076. OpSampledImage = 86,
  1077. OpImageSampleImplicitLod = 87,
  1078. OpImageSampleExplicitLod = 88,
  1079. OpImageSampleDrefImplicitLod = 89,
  1080. OpImageSampleDrefExplicitLod = 90,
  1081. OpImageSampleProjImplicitLod = 91,
  1082. OpImageSampleProjExplicitLod = 92,
  1083. OpImageSampleProjDrefImplicitLod = 93,
  1084. OpImageSampleProjDrefExplicitLod = 94,
  1085. OpImageFetch = 95,
  1086. OpImageGather = 96,
  1087. OpImageDrefGather = 97,
  1088. OpImageRead = 98,
  1089. OpImageWrite = 99,
  1090. OpImage = 100,
  1091. OpImageQueryFormat = 101,
  1092. OpImageQueryOrder = 102,
  1093. OpImageQuerySizeLod = 103,
  1094. OpImageQuerySize = 104,
  1095. OpImageQueryLod = 105,
  1096. OpImageQueryLevels = 106,
  1097. OpImageQuerySamples = 107,
  1098. OpConvertFToU = 109,
  1099. OpConvertFToS = 110,
  1100. OpConvertSToF = 111,
  1101. OpConvertUToF = 112,
  1102. OpUConvert = 113,
  1103. OpSConvert = 114,
  1104. OpFConvert = 115,
  1105. OpQuantizeToF16 = 116,
  1106. OpConvertPtrToU = 117,
  1107. OpSatConvertSToU = 118,
  1108. OpSatConvertUToS = 119,
  1109. OpConvertUToPtr = 120,
  1110. OpPtrCastToGeneric = 121,
  1111. OpGenericCastToPtr = 122,
  1112. OpGenericCastToPtrExplicit = 123,
  1113. OpBitcast = 124,
  1114. OpSNegate = 126,
  1115. OpFNegate = 127,
  1116. OpIAdd = 128,
  1117. OpFAdd = 129,
  1118. OpISub = 130,
  1119. OpFSub = 131,
  1120. OpIMul = 132,
  1121. OpFMul = 133,
  1122. OpUDiv = 134,
  1123. OpSDiv = 135,
  1124. OpFDiv = 136,
  1125. OpUMod = 137,
  1126. OpSRem = 138,
  1127. OpSMod = 139,
  1128. OpFRem = 140,
  1129. OpFMod = 141,
  1130. OpVectorTimesScalar = 142,
  1131. OpMatrixTimesScalar = 143,
  1132. OpVectorTimesMatrix = 144,
  1133. OpMatrixTimesVector = 145,
  1134. OpMatrixTimesMatrix = 146,
  1135. OpOuterProduct = 147,
  1136. OpDot = 148,
  1137. OpIAddCarry = 149,
  1138. OpISubBorrow = 150,
  1139. OpUMulExtended = 151,
  1140. OpSMulExtended = 152,
  1141. OpAny = 154,
  1142. OpAll = 155,
  1143. OpIsNan = 156,
  1144. OpIsInf = 157,
  1145. OpIsFinite = 158,
  1146. OpIsNormal = 159,
  1147. OpSignBitSet = 160,
  1148. OpLessOrGreater = 161,
  1149. OpOrdered = 162,
  1150. OpUnordered = 163,
  1151. OpLogicalEqual = 164,
  1152. OpLogicalNotEqual = 165,
  1153. OpLogicalOr = 166,
  1154. OpLogicalAnd = 167,
  1155. OpLogicalNot = 168,
  1156. OpSelect = 169,
  1157. OpIEqual = 170,
  1158. OpINotEqual = 171,
  1159. OpUGreaterThan = 172,
  1160. OpSGreaterThan = 173,
  1161. OpUGreaterThanEqual = 174,
  1162. OpSGreaterThanEqual = 175,
  1163. OpULessThan = 176,
  1164. OpSLessThan = 177,
  1165. OpULessThanEqual = 178,
  1166. OpSLessThanEqual = 179,
  1167. OpFOrdEqual = 180,
  1168. OpFUnordEqual = 181,
  1169. OpFOrdNotEqual = 182,
  1170. OpFUnordNotEqual = 183,
  1171. OpFOrdLessThan = 184,
  1172. OpFUnordLessThan = 185,
  1173. OpFOrdGreaterThan = 186,
  1174. OpFUnordGreaterThan = 187,
  1175. OpFOrdLessThanEqual = 188,
  1176. OpFUnordLessThanEqual = 189,
  1177. OpFOrdGreaterThanEqual = 190,
  1178. OpFUnordGreaterThanEqual = 191,
  1179. OpShiftRightLogical = 194,
  1180. OpShiftRightArithmetic = 195,
  1181. OpShiftLeftLogical = 196,
  1182. OpBitwiseOr = 197,
  1183. OpBitwiseXor = 198,
  1184. OpBitwiseAnd = 199,
  1185. OpNot = 200,
  1186. OpBitFieldInsert = 201,
  1187. OpBitFieldSExtract = 202,
  1188. OpBitFieldUExtract = 203,
  1189. OpBitReverse = 204,
  1190. OpBitCount = 205,
  1191. OpDPdx = 207,
  1192. OpDPdy = 208,
  1193. OpFwidth = 209,
  1194. OpDPdxFine = 210,
  1195. OpDPdyFine = 211,
  1196. OpFwidthFine = 212,
  1197. OpDPdxCoarse = 213,
  1198. OpDPdyCoarse = 214,
  1199. OpFwidthCoarse = 215,
  1200. OpEmitVertex = 218,
  1201. OpEndPrimitive = 219,
  1202. OpEmitStreamVertex = 220,
  1203. OpEndStreamPrimitive = 221,
  1204. OpControlBarrier = 224,
  1205. OpMemoryBarrier = 225,
  1206. OpAtomicLoad = 227,
  1207. OpAtomicStore = 228,
  1208. OpAtomicExchange = 229,
  1209. OpAtomicCompareExchange = 230,
  1210. OpAtomicCompareExchangeWeak = 231,
  1211. OpAtomicIIncrement = 232,
  1212. OpAtomicIDecrement = 233,
  1213. OpAtomicIAdd = 234,
  1214. OpAtomicISub = 235,
  1215. OpAtomicSMin = 236,
  1216. OpAtomicUMin = 237,
  1217. OpAtomicSMax = 238,
  1218. OpAtomicUMax = 239,
  1219. OpAtomicAnd = 240,
  1220. OpAtomicOr = 241,
  1221. OpAtomicXor = 242,
  1222. OpPhi = 245,
  1223. OpLoopMerge = 246,
  1224. OpSelectionMerge = 247,
  1225. OpLabel = 248,
  1226. OpBranch = 249,
  1227. OpBranchConditional = 250,
  1228. OpSwitch = 251,
  1229. OpKill = 252,
  1230. OpReturn = 253,
  1231. OpReturnValue = 254,
  1232. OpUnreachable = 255,
  1233. OpLifetimeStart = 256,
  1234. OpLifetimeStop = 257,
  1235. OpGroupAsyncCopy = 259,
  1236. OpGroupWaitEvents = 260,
  1237. OpGroupAll = 261,
  1238. OpGroupAny = 262,
  1239. OpGroupBroadcast = 263,
  1240. OpGroupIAdd = 264,
  1241. OpGroupFAdd = 265,
  1242. OpGroupFMin = 266,
  1243. OpGroupUMin = 267,
  1244. OpGroupSMin = 268,
  1245. OpGroupFMax = 269,
  1246. OpGroupUMax = 270,
  1247. OpGroupSMax = 271,
  1248. OpReadPipe = 274,
  1249. OpWritePipe = 275,
  1250. OpReservedReadPipe = 276,
  1251. OpReservedWritePipe = 277,
  1252. OpReserveReadPipePackets = 278,
  1253. OpReserveWritePipePackets = 279,
  1254. OpCommitReadPipe = 280,
  1255. OpCommitWritePipe = 281,
  1256. OpIsValidReserveId = 282,
  1257. OpGetNumPipePackets = 283,
  1258. OpGetMaxPipePackets = 284,
  1259. OpGroupReserveReadPipePackets = 285,
  1260. OpGroupReserveWritePipePackets = 286,
  1261. OpGroupCommitReadPipe = 287,
  1262. OpGroupCommitWritePipe = 288,
  1263. OpEnqueueMarker = 291,
  1264. OpEnqueueKernel = 292,
  1265. OpGetKernelNDrangeSubGroupCount = 293,
  1266. OpGetKernelNDrangeMaxSubGroupSize = 294,
  1267. OpGetKernelWorkGroupSize = 295,
  1268. OpGetKernelPreferredWorkGroupSizeMultiple = 296,
  1269. OpRetainEvent = 297,
  1270. OpReleaseEvent = 298,
  1271. OpCreateUserEvent = 299,
  1272. OpIsValidEvent = 300,
  1273. OpSetUserEventStatus = 301,
  1274. OpCaptureEventProfilingInfo = 302,
  1275. OpGetDefaultQueue = 303,
  1276. OpBuildNDRange = 304,
  1277. OpImageSparseSampleImplicitLod = 305,
  1278. OpImageSparseSampleExplicitLod = 306,
  1279. OpImageSparseSampleDrefImplicitLod = 307,
  1280. OpImageSparseSampleDrefExplicitLod = 308,
  1281. OpImageSparseSampleProjImplicitLod = 309,
  1282. OpImageSparseSampleProjExplicitLod = 310,
  1283. OpImageSparseSampleProjDrefImplicitLod = 311,
  1284. OpImageSparseSampleProjDrefExplicitLod = 312,
  1285. OpImageSparseFetch = 313,
  1286. OpImageSparseGather = 314,
  1287. OpImageSparseDrefGather = 315,
  1288. OpImageSparseTexelsResident = 316,
  1289. OpNoLine = 317,
  1290. OpAtomicFlagTestAndSet = 318,
  1291. OpAtomicFlagClear = 319,
  1292. OpImageSparseRead = 320,
  1293. OpSizeOf = 321,
  1294. OpTypePipeStorage = 322,
  1295. OpConstantPipeStorage = 323,
  1296. OpCreatePipeFromPipeStorage = 324,
  1297. OpGetKernelLocalSizeForSubgroupCount = 325,
  1298. OpGetKernelMaxNumSubgroups = 326,
  1299. OpTypeNamedBarrier = 327,
  1300. OpNamedBarrierInitialize = 328,
  1301. OpMemoryNamedBarrier = 329,
  1302. OpModuleProcessed = 330,
  1303. OpExecutionModeId = 331,
  1304. OpDecorateId = 332,
  1305. OpGroupNonUniformElect = 333,
  1306. OpGroupNonUniformAll = 334,
  1307. OpGroupNonUniformAny = 335,
  1308. OpGroupNonUniformAllEqual = 336,
  1309. OpGroupNonUniformBroadcast = 337,
  1310. OpGroupNonUniformBroadcastFirst = 338,
  1311. OpGroupNonUniformBallot = 339,
  1312. OpGroupNonUniformInverseBallot = 340,
  1313. OpGroupNonUniformBallotBitExtract = 341,
  1314. OpGroupNonUniformBallotBitCount = 342,
  1315. OpGroupNonUniformBallotFindLSB = 343,
  1316. OpGroupNonUniformBallotFindMSB = 344,
  1317. OpGroupNonUniformShuffle = 345,
  1318. OpGroupNonUniformShuffleXor = 346,
  1319. OpGroupNonUniformShuffleUp = 347,
  1320. OpGroupNonUniformShuffleDown = 348,
  1321. OpGroupNonUniformIAdd = 349,
  1322. OpGroupNonUniformFAdd = 350,
  1323. OpGroupNonUniformIMul = 351,
  1324. OpGroupNonUniformFMul = 352,
  1325. OpGroupNonUniformSMin = 353,
  1326. OpGroupNonUniformUMin = 354,
  1327. OpGroupNonUniformFMin = 355,
  1328. OpGroupNonUniformSMax = 356,
  1329. OpGroupNonUniformUMax = 357,
  1330. OpGroupNonUniformFMax = 358,
  1331. OpGroupNonUniformBitwiseAnd = 359,
  1332. OpGroupNonUniformBitwiseOr = 360,
  1333. OpGroupNonUniformBitwiseXor = 361,
  1334. OpGroupNonUniformLogicalAnd = 362,
  1335. OpGroupNonUniformLogicalOr = 363,
  1336. OpGroupNonUniformLogicalXor = 364,
  1337. OpGroupNonUniformQuadBroadcast = 365,
  1338. OpGroupNonUniformQuadSwap = 366,
  1339. OpCopyLogical = 400,
  1340. OpPtrEqual = 401,
  1341. OpPtrNotEqual = 402,
  1342. OpPtrDiff = 403,
  1343. OpTerminateInvocation = 4416,
  1344. OpSubgroupBallotKHR = 4421,
  1345. OpSubgroupFirstInvocationKHR = 4422,
  1346. OpSubgroupAllKHR = 4428,
  1347. OpSubgroupAnyKHR = 4429,
  1348. OpSubgroupAllEqualKHR = 4430,
  1349. OpSubgroupReadInvocationKHR = 4432,
  1350. OpTraceRayKHR = 4445,
  1351. OpExecuteCallableKHR = 4446,
  1352. OpConvertUToAccelerationStructureKHR = 4447,
  1353. OpIgnoreIntersectionKHR = 4448,
  1354. OpTerminateRayKHR = 4449,
  1355. OpTypeRayQueryKHR = 4472,
  1356. OpRayQueryInitializeKHR = 4473,
  1357. OpRayQueryTerminateKHR = 4474,
  1358. OpRayQueryGenerateIntersectionKHR = 4475,
  1359. OpRayQueryConfirmIntersectionKHR = 4476,
  1360. OpRayQueryProceedKHR = 4477,
  1361. OpRayQueryGetIntersectionTypeKHR = 4479,
  1362. OpGroupIAddNonUniformAMD = 5000,
  1363. OpGroupFAddNonUniformAMD = 5001,
  1364. OpGroupFMinNonUniformAMD = 5002,
  1365. OpGroupUMinNonUniformAMD = 5003,
  1366. OpGroupSMinNonUniformAMD = 5004,
  1367. OpGroupFMaxNonUniformAMD = 5005,
  1368. OpGroupUMaxNonUniformAMD = 5006,
  1369. OpGroupSMaxNonUniformAMD = 5007,
  1370. OpFragmentMaskFetchAMD = 5011,
  1371. OpFragmentFetchAMD = 5012,
  1372. OpReadClockKHR = 5056,
  1373. OpImageSampleFootprintNV = 5283,
  1374. OpGroupNonUniformPartitionNV = 5296,
  1375. OpWritePackedPrimitiveIndices4x8NV = 5299,
  1376. OpReportIntersectionKHR = 5334,
  1377. OpReportIntersectionNV = 5334,
  1378. OpIgnoreIntersectionNV = 5335,
  1379. OpTerminateRayNV = 5336,
  1380. OpTraceNV = 5337,
  1381. OpTypeAccelerationStructureKHR = 5341,
  1382. OpTypeAccelerationStructureNV = 5341,
  1383. OpExecuteCallableNV = 5344,
  1384. OpTypeCooperativeMatrixNV = 5358,
  1385. OpCooperativeMatrixLoadNV = 5359,
  1386. OpCooperativeMatrixStoreNV = 5360,
  1387. OpCooperativeMatrixMulAddNV = 5361,
  1388. OpCooperativeMatrixLengthNV = 5362,
  1389. OpBeginInvocationInterlockEXT = 5364,
  1390. OpEndInvocationInterlockEXT = 5365,
  1391. OpDemoteToHelperInvocationEXT = 5380,
  1392. OpIsHelperInvocationEXT = 5381,
  1393. OpSubgroupShuffleINTEL = 5571,
  1394. OpSubgroupShuffleDownINTEL = 5572,
  1395. OpSubgroupShuffleUpINTEL = 5573,
  1396. OpSubgroupShuffleXorINTEL = 5574,
  1397. OpSubgroupBlockReadINTEL = 5575,
  1398. OpSubgroupBlockWriteINTEL = 5576,
  1399. OpSubgroupImageBlockReadINTEL = 5577,
  1400. OpSubgroupImageBlockWriteINTEL = 5578,
  1401. OpSubgroupImageMediaBlockReadINTEL = 5580,
  1402. OpSubgroupImageMediaBlockWriteINTEL = 5581,
  1403. OpUCountLeadingZerosINTEL = 5585,
  1404. OpUCountTrailingZerosINTEL = 5586,
  1405. OpAbsISubINTEL = 5587,
  1406. OpAbsUSubINTEL = 5588,
  1407. OpIAddSatINTEL = 5589,
  1408. OpUAddSatINTEL = 5590,
  1409. OpIAverageINTEL = 5591,
  1410. OpUAverageINTEL = 5592,
  1411. OpIAverageRoundedINTEL = 5593,
  1412. OpUAverageRoundedINTEL = 5594,
  1413. OpISubSatINTEL = 5595,
  1414. OpUSubSatINTEL = 5596,
  1415. OpIMul32x16INTEL = 5597,
  1416. OpUMul32x16INTEL = 5598,
  1417. OpFunctionPointerINTEL = 5600,
  1418. OpFunctionPointerCallINTEL = 5601,
  1419. OpDecorateString = 5632,
  1420. OpDecorateStringGOOGLE = 5632,
  1421. OpMemberDecorateString = 5633,
  1422. OpMemberDecorateStringGOOGLE = 5633,
  1423. OpVmeImageINTEL = 5699,
  1424. OpTypeVmeImageINTEL = 5700,
  1425. OpTypeAvcImePayloadINTEL = 5701,
  1426. OpTypeAvcRefPayloadINTEL = 5702,
  1427. OpTypeAvcSicPayloadINTEL = 5703,
  1428. OpTypeAvcMcePayloadINTEL = 5704,
  1429. OpTypeAvcMceResultINTEL = 5705,
  1430. OpTypeAvcImeResultINTEL = 5706,
  1431. OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
  1432. OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
  1433. OpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
  1434. OpTypeAvcImeDualReferenceStreaminINTEL = 5710,
  1435. OpTypeAvcRefResultINTEL = 5711,
  1436. OpTypeAvcSicResultINTEL = 5712,
  1437. OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
  1438. OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
  1439. OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
  1440. OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
  1441. OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
  1442. OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
  1443. OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
  1444. OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
  1445. OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
  1446. OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
  1447. OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
  1448. OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
  1449. OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
  1450. OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
  1451. OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
  1452. OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
  1453. OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
  1454. OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
  1455. OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
  1456. OpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
  1457. OpSubgroupAvcMceConvertToImeResultINTEL = 5733,
  1458. OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
  1459. OpSubgroupAvcMceConvertToRefResultINTEL = 5735,
  1460. OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
  1461. OpSubgroupAvcMceConvertToSicResultINTEL = 5737,
  1462. OpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
  1463. OpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
  1464. OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
  1465. OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
  1466. OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
  1467. OpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
  1468. OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
  1469. OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
  1470. OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
  1471. OpSubgroupAvcImeInitializeINTEL = 5747,
  1472. OpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
  1473. OpSubgroupAvcImeSetDualReferenceINTEL = 5749,
  1474. OpSubgroupAvcImeRefWindowSizeINTEL = 5750,
  1475. OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
  1476. OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
  1477. OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
  1478. OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
  1479. OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
  1480. OpSubgroupAvcImeSetWeightedSadINTEL = 5756,
  1481. OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
  1482. OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
  1483. OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
  1484. OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
  1485. OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
  1486. OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
  1487. OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
  1488. OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
  1489. OpSubgroupAvcImeConvertToMceResultINTEL = 5765,
  1490. OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
  1491. OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
  1492. OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
  1493. OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
  1494. OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
  1495. OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
  1496. OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
  1497. OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
  1498. OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
  1499. OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
  1500. OpSubgroupAvcImeGetBorderReachedINTEL = 5776,
  1501. OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
  1502. OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
  1503. OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
  1504. OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
  1505. OpSubgroupAvcFmeInitializeINTEL = 5781,
  1506. OpSubgroupAvcBmeInitializeINTEL = 5782,
  1507. OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
  1508. OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
  1509. OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
  1510. OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
  1511. OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
  1512. OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
  1513. OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
  1514. OpSubgroupAvcRefConvertToMceResultINTEL = 5790,
  1515. OpSubgroupAvcSicInitializeINTEL = 5791,
  1516. OpSubgroupAvcSicConfigureSkcINTEL = 5792,
  1517. OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
  1518. OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
  1519. OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
  1520. OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
  1521. OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
  1522. OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
  1523. OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
  1524. OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
  1525. OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
  1526. OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
  1527. OpSubgroupAvcSicEvaluateIpeINTEL = 5803,
  1528. OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
  1529. OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
  1530. OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
  1531. OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
  1532. OpSubgroupAvcSicConvertToMceResultINTEL = 5808,
  1533. OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
  1534. OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
  1535. OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
  1536. OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
  1537. OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
  1538. OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
  1539. OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
  1540. OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
  1541. OpLoopControlINTEL = 5887,
  1542. OpReadPipeBlockingINTEL = 5946,
  1543. OpWritePipeBlockingINTEL = 5947,
  1544. OpFPGARegINTEL = 5949,
  1545. OpRayQueryGetRayTMinKHR = 6016,
  1546. OpRayQueryGetRayFlagsKHR = 6017,
  1547. OpRayQueryGetIntersectionTKHR = 6018,
  1548. OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
  1549. OpRayQueryGetIntersectionInstanceIdKHR = 6020,
  1550. OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
  1551. OpRayQueryGetIntersectionGeometryIndexKHR = 6022,
  1552. OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
  1553. OpRayQueryGetIntersectionBarycentricsKHR = 6024,
  1554. OpRayQueryGetIntersectionFrontFaceKHR = 6025,
  1555. OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
  1556. OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
  1557. OpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
  1558. OpRayQueryGetWorldRayDirectionKHR = 6029,
  1559. OpRayQueryGetWorldRayOriginKHR = 6030,
  1560. OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
  1561. OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
  1562. OpAtomicFAddEXT = 6035,
  1563. OpMax = 0x7fffffff,
  1564. };
  1565. #ifdef SPV_ENABLE_UTILITY_CODE
  1566. inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
  1567. *hasResult = *hasResultType = false;
  1568. switch (opcode) {
  1569. default: /* unknown opcode */ break;
  1570. case OpNop: *hasResult = false; *hasResultType = false; break;
  1571. case OpUndef: *hasResult = true; *hasResultType = true; break;
  1572. case OpSourceContinued: *hasResult = false; *hasResultType = false; break;
  1573. case OpSource: *hasResult = false; *hasResultType = false; break;
  1574. case OpSourceExtension: *hasResult = false; *hasResultType = false; break;
  1575. case OpName: *hasResult = false; *hasResultType = false; break;
  1576. case OpMemberName: *hasResult = false; *hasResultType = false; break;
  1577. case OpString: *hasResult = true; *hasResultType = false; break;
  1578. case OpLine: *hasResult = false; *hasResultType = false; break;
  1579. case OpExtension: *hasResult = false; *hasResultType = false; break;
  1580. case OpExtInstImport: *hasResult = true; *hasResultType = false; break;
  1581. case OpExtInst: *hasResult = true; *hasResultType = true; break;
  1582. case OpMemoryModel: *hasResult = false; *hasResultType = false; break;
  1583. case OpEntryPoint: *hasResult = false; *hasResultType = false; break;
  1584. case OpExecutionMode: *hasResult = false; *hasResultType = false; break;
  1585. case OpCapability: *hasResult = false; *hasResultType = false; break;
  1586. case OpTypeVoid: *hasResult = true; *hasResultType = false; break;
  1587. case OpTypeBool: *hasResult = true; *hasResultType = false; break;
  1588. case OpTypeInt: *hasResult = true; *hasResultType = false; break;
  1589. case OpTypeFloat: *hasResult = true; *hasResultType = false; break;
  1590. case OpTypeVector: *hasResult = true; *hasResultType = false; break;
  1591. case OpTypeMatrix: *hasResult = true; *hasResultType = false; break;
  1592. case OpTypeImage: *hasResult = true; *hasResultType = false; break;
  1593. case OpTypeSampler: *hasResult = true; *hasResultType = false; break;
  1594. case OpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
  1595. case OpTypeArray: *hasResult = true; *hasResultType = false; break;
  1596. case OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
  1597. case OpTypeStruct: *hasResult = true; *hasResultType = false; break;
  1598. case OpTypeOpaque: *hasResult = true; *hasResultType = false; break;
  1599. case OpTypePointer: *hasResult = true; *hasResultType = false; break;
  1600. case OpTypeFunction: *hasResult = true; *hasResultType = false; break;
  1601. case OpTypeEvent: *hasResult = true; *hasResultType = false; break;
  1602. case OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
  1603. case OpTypeReserveId: *hasResult = true; *hasResultType = false; break;
  1604. case OpTypeQueue: *hasResult = true; *hasResultType = false; break;
  1605. case OpTypePipe: *hasResult = true; *hasResultType = false; break;
  1606. case OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
  1607. case OpConstantTrue: *hasResult = true; *hasResultType = true; break;
  1608. case OpConstantFalse: *hasResult = true; *hasResultType = true; break;
  1609. case OpConstant: *hasResult = true; *hasResultType = true; break;
  1610. case OpConstantComposite: *hasResult = true; *hasResultType = true; break;
  1611. case OpConstantSampler: *hasResult = true; *hasResultType = true; break;
  1612. case OpConstantNull: *hasResult = true; *hasResultType = true; break;
  1613. case OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
  1614. case OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
  1615. case OpSpecConstant: *hasResult = true; *hasResultType = true; break;
  1616. case OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
  1617. case OpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
  1618. case OpFunction: *hasResult = true; *hasResultType = true; break;
  1619. case OpFunctionParameter: *hasResult = true; *hasResultType = true; break;
  1620. case OpFunctionEnd: *hasResult = false; *hasResultType = false; break;
  1621. case OpFunctionCall: *hasResult = true; *hasResultType = true; break;
  1622. case OpVariable: *hasResult = true; *hasResultType = true; break;
  1623. case OpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
  1624. case OpLoad: *hasResult = true; *hasResultType = true; break;
  1625. case OpStore: *hasResult = false; *hasResultType = false; break;
  1626. case OpCopyMemory: *hasResult = false; *hasResultType = false; break;
  1627. case OpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
  1628. case OpAccessChain: *hasResult = true; *hasResultType = true; break;
  1629. case OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
  1630. case OpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
  1631. case OpArrayLength: *hasResult = true; *hasResultType = true; break;
  1632. case OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
  1633. case OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
  1634. case OpDecorate: *hasResult = false; *hasResultType = false; break;
  1635. case OpMemberDecorate: *hasResult = false; *hasResultType = false; break;
  1636. case OpDecorationGroup: *hasResult = true; *hasResultType = false; break;
  1637. case OpGroupDecorate: *hasResult = false; *hasResultType = false; break;
  1638. case OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
  1639. case OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
  1640. case OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
  1641. case OpVectorShuffle: *hasResult = true; *hasResultType = true; break;
  1642. case OpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
  1643. case OpCompositeExtract: *hasResult = true; *hasResultType = true; break;
  1644. case OpCompositeInsert: *hasResult = true; *hasResultType = true; break;
  1645. case OpCopyObject: *hasResult = true; *hasResultType = true; break;
  1646. case OpTranspose: *hasResult = true; *hasResultType = true; break;
  1647. case OpSampledImage: *hasResult = true; *hasResultType = true; break;
  1648. case OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
  1649. case OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
  1650. case OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
  1651. case OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
  1652. case OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
  1653. case OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
  1654. case OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
  1655. case OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
  1656. case OpImageFetch: *hasResult = true; *hasResultType = true; break;
  1657. case OpImageGather: *hasResult = true; *hasResultType = true; break;
  1658. case OpImageDrefGather: *hasResult = true; *hasResultType = true; break;
  1659. case OpImageRead: *hasResult = true; *hasResultType = true; break;
  1660. case OpImageWrite: *hasResult = false; *hasResultType = false; break;
  1661. case OpImage: *hasResult = true; *hasResultType = true; break;
  1662. case OpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
  1663. case OpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
  1664. case OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
  1665. case OpImageQuerySize: *hasResult = true; *hasResultType = true; break;
  1666. case OpImageQueryLod: *hasResult = true; *hasResultType = true; break;
  1667. case OpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
  1668. case OpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
  1669. case OpConvertFToU: *hasResult = true; *hasResultType = true; break;
  1670. case OpConvertFToS: *hasResult = true; *hasResultType = true; break;
  1671. case OpConvertSToF: *hasResult = true; *hasResultType = true; break;
  1672. case OpConvertUToF: *hasResult = true; *hasResultType = true; break;
  1673. case OpUConvert: *hasResult = true; *hasResultType = true; break;
  1674. case OpSConvert: *hasResult = true; *hasResultType = true; break;
  1675. case OpFConvert: *hasResult = true; *hasResultType = true; break;
  1676. case OpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
  1677. case OpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
  1678. case OpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
  1679. case OpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
  1680. case OpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
  1681. case OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
  1682. case OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
  1683. case OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
  1684. case OpBitcast: *hasResult = true; *hasResultType = true; break;
  1685. case OpSNegate: *hasResult = true; *hasResultType = true; break;
  1686. case OpFNegate: *hasResult = true; *hasResultType = true; break;
  1687. case OpIAdd: *hasResult = true; *hasResultType = true; break;
  1688. case OpFAdd: *hasResult = true; *hasResultType = true; break;
  1689. case OpISub: *hasResult = true; *hasResultType = true; break;
  1690. case OpFSub: *hasResult = true; *hasResultType = true; break;
  1691. case OpIMul: *hasResult = true; *hasResultType = true; break;
  1692. case OpFMul: *hasResult = true; *hasResultType = true; break;
  1693. case OpUDiv: *hasResult = true; *hasResultType = true; break;
  1694. case OpSDiv: *hasResult = true; *hasResultType = true; break;
  1695. case OpFDiv: *hasResult = true; *hasResultType = true; break;
  1696. case OpUMod: *hasResult = true; *hasResultType = true; break;
  1697. case OpSRem: *hasResult = true; *hasResultType = true; break;
  1698. case OpSMod: *hasResult = true; *hasResultType = true; break;
  1699. case OpFRem: *hasResult = true; *hasResultType = true; break;
  1700. case OpFMod: *hasResult = true; *hasResultType = true; break;
  1701. case OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
  1702. case OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
  1703. case OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
  1704. case OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
  1705. case OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
  1706. case OpOuterProduct: *hasResult = true; *hasResultType = true; break;
  1707. case OpDot: *hasResult = true; *hasResultType = true; break;
  1708. case OpIAddCarry: *hasResult = true; *hasResultType = true; break;
  1709. case OpISubBorrow: *hasResult = true; *hasResultType = true; break;
  1710. case OpUMulExtended: *hasResult = true; *hasResultType = true; break;
  1711. case OpSMulExtended: *hasResult = true; *hasResultType = true; break;
  1712. case OpAny: *hasResult = true; *hasResultType = true; break;
  1713. case OpAll: *hasResult = true; *hasResultType = true; break;
  1714. case OpIsNan: *hasResult = true; *hasResultType = true; break;
  1715. case OpIsInf: *hasResult = true; *hasResultType = true; break;
  1716. case OpIsFinite: *hasResult = true; *hasResultType = true; break;
  1717. case OpIsNormal: *hasResult = true; *hasResultType = true; break;
  1718. case OpSignBitSet: *hasResult = true; *hasResultType = true; break;
  1719. case OpLessOrGreater: *hasResult = true; *hasResultType = true; break;
  1720. case OpOrdered: *hasResult = true; *hasResultType = true; break;
  1721. case OpUnordered: *hasResult = true; *hasResultType = true; break;
  1722. case OpLogicalEqual: *hasResult = true; *hasResultType = true; break;
  1723. case OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
  1724. case OpLogicalOr: *hasResult = true; *hasResultType = true; break;
  1725. case OpLogicalAnd: *hasResult = true; *hasResultType = true; break;
  1726. case OpLogicalNot: *hasResult = true; *hasResultType = true; break;
  1727. case OpSelect: *hasResult = true; *hasResultType = true; break;
  1728. case OpIEqual: *hasResult = true; *hasResultType = true; break;
  1729. case OpINotEqual: *hasResult = true; *hasResultType = true; break;
  1730. case OpUGreaterThan: *hasResult = true; *hasResultType = true; break;
  1731. case OpSGreaterThan: *hasResult = true; *hasResultType = true; break;
  1732. case OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
  1733. case OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
  1734. case OpULessThan: *hasResult = true; *hasResultType = true; break;
  1735. case OpSLessThan: *hasResult = true; *hasResultType = true; break;
  1736. case OpULessThanEqual: *hasResult = true; *hasResultType = true; break;
  1737. case OpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
  1738. case OpFOrdEqual: *hasResult = true; *hasResultType = true; break;
  1739. case OpFUnordEqual: *hasResult = true; *hasResultType = true; break;
  1740. case OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
  1741. case OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
  1742. case OpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
  1743. case OpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
  1744. case OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
  1745. case OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
  1746. case OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
  1747. case OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
  1748. case OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
  1749. case OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
  1750. case OpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
  1751. case OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
  1752. case OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
  1753. case OpBitwiseOr: *hasResult = true; *hasResultType = true; break;
  1754. case OpBitwiseXor: *hasResult = true; *hasResultType = true; break;
  1755. case OpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
  1756. case OpNot: *hasResult = true; *hasResultType = true; break;
  1757. case OpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
  1758. case OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
  1759. case OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
  1760. case OpBitReverse: *hasResult = true; *hasResultType = true; break;
  1761. case OpBitCount: *hasResult = true; *hasResultType = true; break;
  1762. case OpDPdx: *hasResult = true; *hasResultType = true; break;
  1763. case OpDPdy: *hasResult = true; *hasResultType = true; break;
  1764. case OpFwidth: *hasResult = true; *hasResultType = true; break;
  1765. case OpDPdxFine: *hasResult = true; *hasResultType = true; break;
  1766. case OpDPdyFine: *hasResult = true; *hasResultType = true; break;
  1767. case OpFwidthFine: *hasResult = true; *hasResultType = true; break;
  1768. case OpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
  1769. case OpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
  1770. case OpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
  1771. case OpEmitVertex: *hasResult = false; *hasResultType = false; break;
  1772. case OpEndPrimitive: *hasResult = false; *hasResultType = false; break;
  1773. case OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
  1774. case OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
  1775. case OpControlBarrier: *hasResult = false; *hasResultType = false; break;
  1776. case OpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
  1777. case OpAtomicLoad: *hasResult = true; *hasResultType = true; break;
  1778. case OpAtomicStore: *hasResult = false; *hasResultType = false; break;
  1779. case OpAtomicExchange: *hasResult = true; *hasResultType = true; break;
  1780. case OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
  1781. case OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
  1782. case OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
  1783. case OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
  1784. case OpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
  1785. case OpAtomicISub: *hasResult = true; *hasResultType = true; break;
  1786. case OpAtomicSMin: *hasResult = true; *hasResultType = true; break;
  1787. case OpAtomicUMin: *hasResult = true; *hasResultType = true; break;
  1788. case OpAtomicSMax: *hasResult = true; *hasResultType = true; break;
  1789. case OpAtomicUMax: *hasResult = true; *hasResultType = true; break;
  1790. case OpAtomicAnd: *hasResult = true; *hasResultType = true; break;
  1791. case OpAtomicOr: *hasResult = true; *hasResultType = true; break;
  1792. case OpAtomicXor: *hasResult = true; *hasResultType = true; break;
  1793. case OpPhi: *hasResult = true; *hasResultType = true; break;
  1794. case OpLoopMerge: *hasResult = false; *hasResultType = false; break;
  1795. case OpSelectionMerge: *hasResult = false; *hasResultType = false; break;
  1796. case OpLabel: *hasResult = true; *hasResultType = false; break;
  1797. case OpBranch: *hasResult = false; *hasResultType = false; break;
  1798. case OpBranchConditional: *hasResult = false; *hasResultType = false; break;
  1799. case OpSwitch: *hasResult = false; *hasResultType = false; break;
  1800. case OpKill: *hasResult = false; *hasResultType = false; break;
  1801. case OpReturn: *hasResult = false; *hasResultType = false; break;
  1802. case OpReturnValue: *hasResult = false; *hasResultType = false; break;
  1803. case OpUnreachable: *hasResult = false; *hasResultType = false; break;
  1804. case OpLifetimeStart: *hasResult = false; *hasResultType = false; break;
  1805. case OpLifetimeStop: *hasResult = false; *hasResultType = false; break;
  1806. case OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
  1807. case OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
  1808. case OpGroupAll: *hasResult = true; *hasResultType = true; break;
  1809. case OpGroupAny: *hasResult = true; *hasResultType = true; break;
  1810. case OpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
  1811. case OpGroupIAdd: *hasResult = true; *hasResultType = true; break;
  1812. case OpGroupFAdd: *hasResult = true; *hasResultType = true; break;
  1813. case OpGroupFMin: *hasResult = true; *hasResultType = true; break;
  1814. case OpGroupUMin: *hasResult = true; *hasResultType = true; break;
  1815. case OpGroupSMin: *hasResult = true; *hasResultType = true; break;
  1816. case OpGroupFMax: *hasResult = true; *hasResultType = true; break;
  1817. case OpGroupUMax: *hasResult = true; *hasResultType = true; break;
  1818. case OpGroupSMax: *hasResult = true; *hasResultType = true; break;
  1819. case OpReadPipe: *hasResult = true; *hasResultType = true; break;
  1820. case OpWritePipe: *hasResult = true; *hasResultType = true; break;
  1821. case OpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
  1822. case OpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
  1823. case OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
  1824. case OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
  1825. case OpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
  1826. case OpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
  1827. case OpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
  1828. case OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
  1829. case OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
  1830. case OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
  1831. case OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
  1832. case OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
  1833. case OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
  1834. case OpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
  1835. case OpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
  1836. case OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
  1837. case OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
  1838. case OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
  1839. case OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
  1840. case OpRetainEvent: *hasResult = false; *hasResultType = false; break;
  1841. case OpReleaseEvent: *hasResult = false; *hasResultType = false; break;
  1842. case OpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
  1843. case OpIsValidEvent: *hasResult = true; *hasResultType = true; break;
  1844. case OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
  1845. case OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
  1846. case OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
  1847. case OpBuildNDRange: *hasResult = true; *hasResultType = true; break;
  1848. case OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
  1849. case OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
  1850. case OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
  1851. case OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
  1852. case OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
  1853. case OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
  1854. case OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
  1855. case OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
  1856. case OpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
  1857. case OpImageSparseGather: *hasResult = true; *hasResultType = true; break;
  1858. case OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
  1859. case OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
  1860. case OpNoLine: *hasResult = false; *hasResultType = false; break;
  1861. case OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
  1862. case OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
  1863. case OpImageSparseRead: *hasResult = true; *hasResultType = true; break;
  1864. case OpSizeOf: *hasResult = true; *hasResultType = true; break;
  1865. case OpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
  1866. case OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
  1867. case OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
  1868. case OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
  1869. case OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
  1870. case OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
  1871. case OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
  1872. case OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
  1873. case OpModuleProcessed: *hasResult = false; *hasResultType = false; break;
  1874. case OpExecutionModeId: *hasResult = false; *hasResultType = false; break;
  1875. case OpDecorateId: *hasResult = false; *hasResultType = false; break;
  1876. case OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
  1877. case OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
  1878. case OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
  1879. case OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
  1880. case OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
  1881. case OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
  1882. case OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
  1883. case OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
  1884. case OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
  1885. case OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
  1886. case OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
  1887. case OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
  1888. case OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
  1889. case OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
  1890. case OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
  1891. case OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
  1892. case OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
  1893. case OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
  1894. case OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
  1895. case OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
  1896. case OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
  1897. case OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
  1898. case OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
  1899. case OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
  1900. case OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
  1901. case OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
  1902. case OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
  1903. case OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
  1904. case OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
  1905. case OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
  1906. case OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
  1907. case OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
  1908. case OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
  1909. case OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
  1910. case OpCopyLogical: *hasResult = true; *hasResultType = true; break;
  1911. case OpPtrEqual: *hasResult = true; *hasResultType = true; break;
  1912. case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
  1913. case OpPtrDiff: *hasResult = true; *hasResultType = true; break;
  1914. case OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
  1915. case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
  1916. case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
  1917. case OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
  1918. case OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
  1919. case OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
  1920. case OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
  1921. case OpTraceRayKHR: *hasResult = false; *hasResultType = false; break;
  1922. case OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;
  1923. case OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
  1924. case OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
  1925. case OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
  1926. case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
  1927. case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
  1928. case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
  1929. case OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
  1930. case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
  1931. case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
  1932. case OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
  1933. case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  1934. case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  1935. case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  1936. case OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  1937. case OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  1938. case OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  1939. case OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  1940. case OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  1941. case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
  1942. case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
  1943. case OpReadClockKHR: *hasResult = true; *hasResultType = true; break;
  1944. case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
  1945. case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
  1946. case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
  1947. case OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
  1948. case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
  1949. case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
  1950. case OpTraceNV: *hasResult = false; *hasResultType = false; break;
  1951. case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
  1952. case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
  1953. case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
  1954. case OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
  1955. case OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
  1956. case OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
  1957. case OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
  1958. case OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
  1959. case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
  1960. case OpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
  1961. case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
  1962. case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
  1963. case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
  1964. case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
  1965. case OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
  1966. case OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
  1967. case OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
  1968. case OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
  1969. case OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
  1970. case OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
  1971. case OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
  1972. case OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
  1973. case OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
  1974. case OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
  1975. case OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
  1976. case OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
  1977. case OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
  1978. case OpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
  1979. case OpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
  1980. case OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
  1981. case OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
  1982. case OpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
  1983. case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
  1984. case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
  1985. case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
  1986. case OpFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
  1987. case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
  1988. case OpDecorateString: *hasResult = false; *hasResultType = false; break;
  1989. case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
  1990. case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
  1991. case OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
  1992. case OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
  1993. case OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
  1994. case OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
  1995. case OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
  1996. case OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
  1997. case OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
  1998. case OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
  1999. case OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
  2000. case OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
  2001. case OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
  2002. case OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
  2003. case OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
  2004. case OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2005. case OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2006. case OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2007. case OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2008. case OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2009. case OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2010. case OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2011. case OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
  2012. case OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
  2013. case OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
  2014. case OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
  2015. case OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
  2016. case OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2017. case OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2018. case OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2019. case OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
  2020. case OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
  2021. case OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
  2022. case OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
  2023. case OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
  2024. case OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
  2025. case OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
  2026. case OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
  2027. case OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
  2028. case OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
  2029. case OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
  2030. case OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
  2031. case OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
  2032. case OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
  2033. case OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
  2034. case OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
  2035. case OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
  2036. case OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
  2037. case OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
  2038. case OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
  2039. case OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2040. case OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2041. case OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
  2042. case OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
  2043. case OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
  2044. case OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
  2045. case OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
  2046. case OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
  2047. case OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
  2048. case OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2049. case OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2050. case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
  2051. case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
  2052. case OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
  2053. case OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
  2054. case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
  2055. case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
  2056. case OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
  2057. case OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
  2058. case OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
  2059. case OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
  2060. case OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
  2061. case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
  2062. case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
  2063. case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
  2064. case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
  2065. case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
  2066. case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
  2067. case OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
  2068. case OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
  2069. case OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
  2070. case OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
  2071. case OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
  2072. case OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
  2073. case OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
  2074. case OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
  2075. case OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
  2076. case OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
  2077. case OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2078. case OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2079. case OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2080. case OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
  2081. case OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
  2082. case OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
  2083. case OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
  2084. case OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
  2085. case OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
  2086. case OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
  2087. case OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
  2088. case OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2089. case OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
  2090. case OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
  2091. case OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
  2092. case OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
  2093. case OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
  2094. case OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
  2095. case OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2096. case OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2097. case OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2098. case OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
  2099. case OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
  2100. case OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
  2101. case OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
  2102. case OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
  2103. case OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
  2104. case OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
  2105. case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
  2106. case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
  2107. case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
  2108. case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
  2109. case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
  2110. case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
  2111. case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
  2112. case OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
  2113. case OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
  2114. case OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
  2115. case OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
  2116. case OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
  2117. case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
  2118. case OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
  2119. case OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
  2120. case OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
  2121. case OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
  2122. case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
  2123. case OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
  2124. case OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
  2125. case OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
  2126. case OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
  2127. case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
  2128. case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
  2129. case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
  2130. }
  2131. }
  2132. #endif /* SPV_ENABLE_UTILITY_CODE */
  2133. // Overload operator| for mask bit combining
  2134. inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
  2135. inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
  2136. inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
  2137. inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
  2138. inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
  2139. inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
  2140. inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
  2141. inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
  2142. inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }
  2143. inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); }
  2144. } // end namespace spv
  2145. #endif // #ifndef spirv_HPP