spirv.hpp 136 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796
  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, Beef
  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. // - Beef will use enum classes in the Specification class located in the "Spv" namespace,
  38. // e.g.: Spv.Specification.SourceLanguage.GLSL
  39. //
  40. // Some tokens act like mask values, which can be OR'd together,
  41. // while others are mutually exclusive. The mask-like ones have
  42. // "Mask" in their name, and a parallel enum that has the shift
  43. // amount (1 << x) for each corresponding enumerant.
  44. #ifndef spirv_HPP
  45. #define spirv_HPP
  46. namespace spv {
  47. typedef unsigned int Id;
  48. #define SPV_VERSION 0x10600
  49. #define SPV_REVISION 1
  50. static const unsigned int MagicNumber = 0x07230203;
  51. static const unsigned int Version = 0x00010600;
  52. static const unsigned int Revision = 1;
  53. static const unsigned int OpCodeMask = 0xffff;
  54. static const unsigned int WordCountShift = 16;
  55. enum SourceLanguage {
  56. SourceLanguageUnknown = 0,
  57. SourceLanguageESSL = 1,
  58. SourceLanguageGLSL = 2,
  59. SourceLanguageOpenCL_C = 3,
  60. SourceLanguageOpenCL_CPP = 4,
  61. SourceLanguageHLSL = 5,
  62. SourceLanguageCPP_for_OpenCL = 6,
  63. SourceLanguageSYCL = 7,
  64. SourceLanguageMax = 0x7fffffff,
  65. };
  66. enum ExecutionModel {
  67. ExecutionModelVertex = 0,
  68. ExecutionModelTessellationControl = 1,
  69. ExecutionModelTessellationEvaluation = 2,
  70. ExecutionModelGeometry = 3,
  71. ExecutionModelFragment = 4,
  72. ExecutionModelGLCompute = 5,
  73. ExecutionModelKernel = 6,
  74. ExecutionModelTaskNV = 5267,
  75. ExecutionModelMeshNV = 5268,
  76. ExecutionModelRayGenerationKHR = 5313,
  77. ExecutionModelRayGenerationNV = 5313,
  78. ExecutionModelIntersectionKHR = 5314,
  79. ExecutionModelIntersectionNV = 5314,
  80. ExecutionModelAnyHitKHR = 5315,
  81. ExecutionModelAnyHitNV = 5315,
  82. ExecutionModelClosestHitKHR = 5316,
  83. ExecutionModelClosestHitNV = 5316,
  84. ExecutionModelMissKHR = 5317,
  85. ExecutionModelMissNV = 5317,
  86. ExecutionModelCallableKHR = 5318,
  87. ExecutionModelCallableNV = 5318,
  88. ExecutionModelTaskEXT = 5364,
  89. ExecutionModelMeshEXT = 5365,
  90. ExecutionModelMax = 0x7fffffff,
  91. };
  92. enum AddressingModel {
  93. AddressingModelLogical = 0,
  94. AddressingModelPhysical32 = 1,
  95. AddressingModelPhysical64 = 2,
  96. AddressingModelPhysicalStorageBuffer64 = 5348,
  97. AddressingModelPhysicalStorageBuffer64EXT = 5348,
  98. AddressingModelMax = 0x7fffffff,
  99. };
  100. enum MemoryModel {
  101. MemoryModelSimple = 0,
  102. MemoryModelGLSL450 = 1,
  103. MemoryModelOpenCL = 2,
  104. MemoryModelVulkan = 3,
  105. MemoryModelVulkanKHR = 3,
  106. MemoryModelMax = 0x7fffffff,
  107. };
  108. enum ExecutionMode {
  109. ExecutionModeInvocations = 0,
  110. ExecutionModeSpacingEqual = 1,
  111. ExecutionModeSpacingFractionalEven = 2,
  112. ExecutionModeSpacingFractionalOdd = 3,
  113. ExecutionModeVertexOrderCw = 4,
  114. ExecutionModeVertexOrderCcw = 5,
  115. ExecutionModePixelCenterInteger = 6,
  116. ExecutionModeOriginUpperLeft = 7,
  117. ExecutionModeOriginLowerLeft = 8,
  118. ExecutionModeEarlyFragmentTests = 9,
  119. ExecutionModePointMode = 10,
  120. ExecutionModeXfb = 11,
  121. ExecutionModeDepthReplacing = 12,
  122. ExecutionModeDepthGreater = 14,
  123. ExecutionModeDepthLess = 15,
  124. ExecutionModeDepthUnchanged = 16,
  125. ExecutionModeLocalSize = 17,
  126. ExecutionModeLocalSizeHint = 18,
  127. ExecutionModeInputPoints = 19,
  128. ExecutionModeInputLines = 20,
  129. ExecutionModeInputLinesAdjacency = 21,
  130. ExecutionModeTriangles = 22,
  131. ExecutionModeInputTrianglesAdjacency = 23,
  132. ExecutionModeQuads = 24,
  133. ExecutionModeIsolines = 25,
  134. ExecutionModeOutputVertices = 26,
  135. ExecutionModeOutputPoints = 27,
  136. ExecutionModeOutputLineStrip = 28,
  137. ExecutionModeOutputTriangleStrip = 29,
  138. ExecutionModeVecTypeHint = 30,
  139. ExecutionModeContractionOff = 31,
  140. ExecutionModeInitializer = 33,
  141. ExecutionModeFinalizer = 34,
  142. ExecutionModeSubgroupSize = 35,
  143. ExecutionModeSubgroupsPerWorkgroup = 36,
  144. ExecutionModeSubgroupsPerWorkgroupId = 37,
  145. ExecutionModeLocalSizeId = 38,
  146. ExecutionModeLocalSizeHintId = 39,
  147. ExecutionModeNonCoherentColorAttachmentReadEXT = 4169,
  148. ExecutionModeNonCoherentDepthAttachmentReadEXT = 4170,
  149. ExecutionModeNonCoherentStencilAttachmentReadEXT = 4171,
  150. ExecutionModeSubgroupUniformControlFlowKHR = 4421,
  151. ExecutionModePostDepthCoverage = 4446,
  152. ExecutionModeDenormPreserve = 4459,
  153. ExecutionModeDenormFlushToZero = 4460,
  154. ExecutionModeSignedZeroInfNanPreserve = 4461,
  155. ExecutionModeRoundingModeRTE = 4462,
  156. ExecutionModeRoundingModeRTZ = 4463,
  157. ExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
  158. ExecutionModeStencilRefReplacingEXT = 5027,
  159. ExecutionModeStencilRefUnchangedFrontAMD = 5079,
  160. ExecutionModeStencilRefGreaterFrontAMD = 5080,
  161. ExecutionModeStencilRefLessFrontAMD = 5081,
  162. ExecutionModeStencilRefUnchangedBackAMD = 5082,
  163. ExecutionModeStencilRefGreaterBackAMD = 5083,
  164. ExecutionModeStencilRefLessBackAMD = 5084,
  165. ExecutionModeOutputLinesEXT = 5269,
  166. ExecutionModeOutputLinesNV = 5269,
  167. ExecutionModeOutputPrimitivesEXT = 5270,
  168. ExecutionModeOutputPrimitivesNV = 5270,
  169. ExecutionModeDerivativeGroupQuadsNV = 5289,
  170. ExecutionModeDerivativeGroupLinearNV = 5290,
  171. ExecutionModeOutputTrianglesEXT = 5298,
  172. ExecutionModeOutputTrianglesNV = 5298,
  173. ExecutionModePixelInterlockOrderedEXT = 5366,
  174. ExecutionModePixelInterlockUnorderedEXT = 5367,
  175. ExecutionModeSampleInterlockOrderedEXT = 5368,
  176. ExecutionModeSampleInterlockUnorderedEXT = 5369,
  177. ExecutionModeShadingRateInterlockOrderedEXT = 5370,
  178. ExecutionModeShadingRateInterlockUnorderedEXT = 5371,
  179. ExecutionModeSharedLocalMemorySizeINTEL = 5618,
  180. ExecutionModeRoundingModeRTPINTEL = 5620,
  181. ExecutionModeRoundingModeRTNINTEL = 5621,
  182. ExecutionModeFloatingPointModeALTINTEL = 5622,
  183. ExecutionModeFloatingPointModeIEEEINTEL = 5623,
  184. ExecutionModeMaxWorkgroupSizeINTEL = 5893,
  185. ExecutionModeMaxWorkDimINTEL = 5894,
  186. ExecutionModeNoGlobalOffsetINTEL = 5895,
  187. ExecutionModeNumSIMDWorkitemsINTEL = 5896,
  188. ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
  189. ExecutionModeStreamingInterfaceINTEL = 6154,
  190. ExecutionModeNamedBarrierCountINTEL = 6417,
  191. ExecutionModeMax = 0x7fffffff,
  192. };
  193. enum StorageClass {
  194. StorageClassUniformConstant = 0,
  195. StorageClassInput = 1,
  196. StorageClassUniform = 2,
  197. StorageClassOutput = 3,
  198. StorageClassWorkgroup = 4,
  199. StorageClassCrossWorkgroup = 5,
  200. StorageClassPrivate = 6,
  201. StorageClassFunction = 7,
  202. StorageClassGeneric = 8,
  203. StorageClassPushConstant = 9,
  204. StorageClassAtomicCounter = 10,
  205. StorageClassImage = 11,
  206. StorageClassStorageBuffer = 12,
  207. StorageClassTileImageEXT = 4172,
  208. StorageClassCallableDataKHR = 5328,
  209. StorageClassCallableDataNV = 5328,
  210. StorageClassIncomingCallableDataKHR = 5329,
  211. StorageClassIncomingCallableDataNV = 5329,
  212. StorageClassRayPayloadKHR = 5338,
  213. StorageClassRayPayloadNV = 5338,
  214. StorageClassHitAttributeKHR = 5339,
  215. StorageClassHitAttributeNV = 5339,
  216. StorageClassIncomingRayPayloadKHR = 5342,
  217. StorageClassIncomingRayPayloadNV = 5342,
  218. StorageClassShaderRecordBufferKHR = 5343,
  219. StorageClassShaderRecordBufferNV = 5343,
  220. StorageClassPhysicalStorageBuffer = 5349,
  221. StorageClassPhysicalStorageBufferEXT = 5349,
  222. StorageClassHitObjectAttributeNV = 5385,
  223. StorageClassTaskPayloadWorkgroupEXT = 5402,
  224. StorageClassCodeSectionINTEL = 5605,
  225. StorageClassDeviceOnlyINTEL = 5936,
  226. StorageClassHostOnlyINTEL = 5937,
  227. StorageClassMax = 0x7fffffff,
  228. };
  229. enum Dim {
  230. Dim1D = 0,
  231. Dim2D = 1,
  232. Dim3D = 2,
  233. DimCube = 3,
  234. DimRect = 4,
  235. DimBuffer = 5,
  236. DimSubpassData = 6,
  237. DimTileImageDataEXT = 4173,
  238. DimMax = 0x7fffffff,
  239. };
  240. enum SamplerAddressingMode {
  241. SamplerAddressingModeNone = 0,
  242. SamplerAddressingModeClampToEdge = 1,
  243. SamplerAddressingModeClamp = 2,
  244. SamplerAddressingModeRepeat = 3,
  245. SamplerAddressingModeRepeatMirrored = 4,
  246. SamplerAddressingModeMax = 0x7fffffff,
  247. };
  248. enum SamplerFilterMode {
  249. SamplerFilterModeNearest = 0,
  250. SamplerFilterModeLinear = 1,
  251. SamplerFilterModeMax = 0x7fffffff,
  252. };
  253. enum ImageFormat {
  254. ImageFormatUnknown = 0,
  255. ImageFormatRgba32f = 1,
  256. ImageFormatRgba16f = 2,
  257. ImageFormatR32f = 3,
  258. ImageFormatRgba8 = 4,
  259. ImageFormatRgba8Snorm = 5,
  260. ImageFormatRg32f = 6,
  261. ImageFormatRg16f = 7,
  262. ImageFormatR11fG11fB10f = 8,
  263. ImageFormatR16f = 9,
  264. ImageFormatRgba16 = 10,
  265. ImageFormatRgb10A2 = 11,
  266. ImageFormatRg16 = 12,
  267. ImageFormatRg8 = 13,
  268. ImageFormatR16 = 14,
  269. ImageFormatR8 = 15,
  270. ImageFormatRgba16Snorm = 16,
  271. ImageFormatRg16Snorm = 17,
  272. ImageFormatRg8Snorm = 18,
  273. ImageFormatR16Snorm = 19,
  274. ImageFormatR8Snorm = 20,
  275. ImageFormatRgba32i = 21,
  276. ImageFormatRgba16i = 22,
  277. ImageFormatRgba8i = 23,
  278. ImageFormatR32i = 24,
  279. ImageFormatRg32i = 25,
  280. ImageFormatRg16i = 26,
  281. ImageFormatRg8i = 27,
  282. ImageFormatR16i = 28,
  283. ImageFormatR8i = 29,
  284. ImageFormatRgba32ui = 30,
  285. ImageFormatRgba16ui = 31,
  286. ImageFormatRgba8ui = 32,
  287. ImageFormatR32ui = 33,
  288. ImageFormatRgb10a2ui = 34,
  289. ImageFormatRg32ui = 35,
  290. ImageFormatRg16ui = 36,
  291. ImageFormatRg8ui = 37,
  292. ImageFormatR16ui = 38,
  293. ImageFormatR8ui = 39,
  294. ImageFormatR64ui = 40,
  295. ImageFormatR64i = 41,
  296. ImageFormatMax = 0x7fffffff,
  297. };
  298. enum ImageChannelOrder {
  299. ImageChannelOrderR = 0,
  300. ImageChannelOrderA = 1,
  301. ImageChannelOrderRG = 2,
  302. ImageChannelOrderRA = 3,
  303. ImageChannelOrderRGB = 4,
  304. ImageChannelOrderRGBA = 5,
  305. ImageChannelOrderBGRA = 6,
  306. ImageChannelOrderARGB = 7,
  307. ImageChannelOrderIntensity = 8,
  308. ImageChannelOrderLuminance = 9,
  309. ImageChannelOrderRx = 10,
  310. ImageChannelOrderRGx = 11,
  311. ImageChannelOrderRGBx = 12,
  312. ImageChannelOrderDepth = 13,
  313. ImageChannelOrderDepthStencil = 14,
  314. ImageChannelOrdersRGB = 15,
  315. ImageChannelOrdersRGBx = 16,
  316. ImageChannelOrdersRGBA = 17,
  317. ImageChannelOrdersBGRA = 18,
  318. ImageChannelOrderABGR = 19,
  319. ImageChannelOrderMax = 0x7fffffff,
  320. };
  321. enum ImageChannelDataType {
  322. ImageChannelDataTypeSnormInt8 = 0,
  323. ImageChannelDataTypeSnormInt16 = 1,
  324. ImageChannelDataTypeUnormInt8 = 2,
  325. ImageChannelDataTypeUnormInt16 = 3,
  326. ImageChannelDataTypeUnormShort565 = 4,
  327. ImageChannelDataTypeUnormShort555 = 5,
  328. ImageChannelDataTypeUnormInt101010 = 6,
  329. ImageChannelDataTypeSignedInt8 = 7,
  330. ImageChannelDataTypeSignedInt16 = 8,
  331. ImageChannelDataTypeSignedInt32 = 9,
  332. ImageChannelDataTypeUnsignedInt8 = 10,
  333. ImageChannelDataTypeUnsignedInt16 = 11,
  334. ImageChannelDataTypeUnsignedInt32 = 12,
  335. ImageChannelDataTypeHalfFloat = 13,
  336. ImageChannelDataTypeFloat = 14,
  337. ImageChannelDataTypeUnormInt24 = 15,
  338. ImageChannelDataTypeUnormInt101010_2 = 16,
  339. ImageChannelDataTypeMax = 0x7fffffff,
  340. };
  341. enum ImageOperandsShift {
  342. ImageOperandsBiasShift = 0,
  343. ImageOperandsLodShift = 1,
  344. ImageOperandsGradShift = 2,
  345. ImageOperandsConstOffsetShift = 3,
  346. ImageOperandsOffsetShift = 4,
  347. ImageOperandsConstOffsetsShift = 5,
  348. ImageOperandsSampleShift = 6,
  349. ImageOperandsMinLodShift = 7,
  350. ImageOperandsMakeTexelAvailableShift = 8,
  351. ImageOperandsMakeTexelAvailableKHRShift = 8,
  352. ImageOperandsMakeTexelVisibleShift = 9,
  353. ImageOperandsMakeTexelVisibleKHRShift = 9,
  354. ImageOperandsNonPrivateTexelShift = 10,
  355. ImageOperandsNonPrivateTexelKHRShift = 10,
  356. ImageOperandsVolatileTexelShift = 11,
  357. ImageOperandsVolatileTexelKHRShift = 11,
  358. ImageOperandsSignExtendShift = 12,
  359. ImageOperandsZeroExtendShift = 13,
  360. ImageOperandsNontemporalShift = 14,
  361. ImageOperandsOffsetsShift = 16,
  362. ImageOperandsMax = 0x7fffffff,
  363. };
  364. enum ImageOperandsMask {
  365. ImageOperandsMaskNone = 0,
  366. ImageOperandsBiasMask = 0x00000001,
  367. ImageOperandsLodMask = 0x00000002,
  368. ImageOperandsGradMask = 0x00000004,
  369. ImageOperandsConstOffsetMask = 0x00000008,
  370. ImageOperandsOffsetMask = 0x00000010,
  371. ImageOperandsConstOffsetsMask = 0x00000020,
  372. ImageOperandsSampleMask = 0x00000040,
  373. ImageOperandsMinLodMask = 0x00000080,
  374. ImageOperandsMakeTexelAvailableMask = 0x00000100,
  375. ImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
  376. ImageOperandsMakeTexelVisibleMask = 0x00000200,
  377. ImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
  378. ImageOperandsNonPrivateTexelMask = 0x00000400,
  379. ImageOperandsNonPrivateTexelKHRMask = 0x00000400,
  380. ImageOperandsVolatileTexelMask = 0x00000800,
  381. ImageOperandsVolatileTexelKHRMask = 0x00000800,
  382. ImageOperandsSignExtendMask = 0x00001000,
  383. ImageOperandsZeroExtendMask = 0x00002000,
  384. ImageOperandsNontemporalMask = 0x00004000,
  385. ImageOperandsOffsetsMask = 0x00010000,
  386. };
  387. enum FPFastMathModeShift {
  388. FPFastMathModeNotNaNShift = 0,
  389. FPFastMathModeNotInfShift = 1,
  390. FPFastMathModeNSZShift = 2,
  391. FPFastMathModeAllowRecipShift = 3,
  392. FPFastMathModeFastShift = 4,
  393. FPFastMathModeAllowContractFastINTELShift = 16,
  394. FPFastMathModeAllowReassocINTELShift = 17,
  395. FPFastMathModeMax = 0x7fffffff,
  396. };
  397. enum FPFastMathModeMask {
  398. FPFastMathModeMaskNone = 0,
  399. FPFastMathModeNotNaNMask = 0x00000001,
  400. FPFastMathModeNotInfMask = 0x00000002,
  401. FPFastMathModeNSZMask = 0x00000004,
  402. FPFastMathModeAllowRecipMask = 0x00000008,
  403. FPFastMathModeFastMask = 0x00000010,
  404. FPFastMathModeAllowContractFastINTELMask = 0x00010000,
  405. FPFastMathModeAllowReassocINTELMask = 0x00020000,
  406. };
  407. enum FPRoundingMode {
  408. FPRoundingModeRTE = 0,
  409. FPRoundingModeRTZ = 1,
  410. FPRoundingModeRTP = 2,
  411. FPRoundingModeRTN = 3,
  412. FPRoundingModeMax = 0x7fffffff,
  413. };
  414. enum LinkageType {
  415. LinkageTypeExport = 0,
  416. LinkageTypeImport = 1,
  417. LinkageTypeLinkOnceODR = 2,
  418. LinkageTypeMax = 0x7fffffff,
  419. };
  420. enum AccessQualifier {
  421. AccessQualifierReadOnly = 0,
  422. AccessQualifierWriteOnly = 1,
  423. AccessQualifierReadWrite = 2,
  424. AccessQualifierMax = 0x7fffffff,
  425. };
  426. enum FunctionParameterAttribute {
  427. FunctionParameterAttributeZext = 0,
  428. FunctionParameterAttributeSext = 1,
  429. FunctionParameterAttributeByVal = 2,
  430. FunctionParameterAttributeSret = 3,
  431. FunctionParameterAttributeNoAlias = 4,
  432. FunctionParameterAttributeNoCapture = 5,
  433. FunctionParameterAttributeNoWrite = 6,
  434. FunctionParameterAttributeNoReadWrite = 7,
  435. FunctionParameterAttributeRuntimeAlignedINTEL = 5940,
  436. FunctionParameterAttributeMax = 0x7fffffff,
  437. };
  438. enum Decoration {
  439. DecorationRelaxedPrecision = 0,
  440. DecorationSpecId = 1,
  441. DecorationBlock = 2,
  442. DecorationBufferBlock = 3,
  443. DecorationRowMajor = 4,
  444. DecorationColMajor = 5,
  445. DecorationArrayStride = 6,
  446. DecorationMatrixStride = 7,
  447. DecorationGLSLShared = 8,
  448. DecorationGLSLPacked = 9,
  449. DecorationCPacked = 10,
  450. DecorationBuiltIn = 11,
  451. DecorationNoPerspective = 13,
  452. DecorationFlat = 14,
  453. DecorationPatch = 15,
  454. DecorationCentroid = 16,
  455. DecorationSample = 17,
  456. DecorationInvariant = 18,
  457. DecorationRestrict = 19,
  458. DecorationAliased = 20,
  459. DecorationVolatile = 21,
  460. DecorationConstant = 22,
  461. DecorationCoherent = 23,
  462. DecorationNonWritable = 24,
  463. DecorationNonReadable = 25,
  464. DecorationUniform = 26,
  465. DecorationUniformId = 27,
  466. DecorationSaturatedConversion = 28,
  467. DecorationStream = 29,
  468. DecorationLocation = 30,
  469. DecorationComponent = 31,
  470. DecorationIndex = 32,
  471. DecorationBinding = 33,
  472. DecorationDescriptorSet = 34,
  473. DecorationOffset = 35,
  474. DecorationXfbBuffer = 36,
  475. DecorationXfbStride = 37,
  476. DecorationFuncParamAttr = 38,
  477. DecorationFPRoundingMode = 39,
  478. DecorationFPFastMathMode = 40,
  479. DecorationLinkageAttributes = 41,
  480. DecorationNoContraction = 42,
  481. DecorationInputAttachmentIndex = 43,
  482. DecorationAlignment = 44,
  483. DecorationMaxByteOffset = 45,
  484. DecorationAlignmentId = 46,
  485. DecorationMaxByteOffsetId = 47,
  486. DecorationNoSignedWrap = 4469,
  487. DecorationNoUnsignedWrap = 4470,
  488. DecorationWeightTextureQCOM = 4487,
  489. DecorationBlockMatchTextureQCOM = 4488,
  490. DecorationExplicitInterpAMD = 4999,
  491. DecorationOverrideCoverageNV = 5248,
  492. DecorationPassthroughNV = 5250,
  493. DecorationViewportRelativeNV = 5252,
  494. DecorationSecondaryViewportRelativeNV = 5256,
  495. DecorationPerPrimitiveEXT = 5271,
  496. DecorationPerPrimitiveNV = 5271,
  497. DecorationPerViewNV = 5272,
  498. DecorationPerTaskNV = 5273,
  499. DecorationPerVertexKHR = 5285,
  500. DecorationPerVertexNV = 5285,
  501. DecorationNonUniform = 5300,
  502. DecorationNonUniformEXT = 5300,
  503. DecorationRestrictPointer = 5355,
  504. DecorationRestrictPointerEXT = 5355,
  505. DecorationAliasedPointer = 5356,
  506. DecorationAliasedPointerEXT = 5356,
  507. DecorationHitObjectShaderRecordBufferNV = 5386,
  508. DecorationBindlessSamplerNV = 5398,
  509. DecorationBindlessImageNV = 5399,
  510. DecorationBoundSamplerNV = 5400,
  511. DecorationBoundImageNV = 5401,
  512. DecorationSIMTCallINTEL = 5599,
  513. DecorationReferencedIndirectlyINTEL = 5602,
  514. DecorationClobberINTEL = 5607,
  515. DecorationSideEffectsINTEL = 5608,
  516. DecorationVectorComputeVariableINTEL = 5624,
  517. DecorationFuncParamIOKindINTEL = 5625,
  518. DecorationVectorComputeFunctionINTEL = 5626,
  519. DecorationStackCallINTEL = 5627,
  520. DecorationGlobalVariableOffsetINTEL = 5628,
  521. DecorationCounterBuffer = 5634,
  522. DecorationHlslCounterBufferGOOGLE = 5634,
  523. DecorationHlslSemanticGOOGLE = 5635,
  524. DecorationUserSemantic = 5635,
  525. DecorationUserTypeGOOGLE = 5636,
  526. DecorationFunctionRoundingModeINTEL = 5822,
  527. DecorationFunctionDenormModeINTEL = 5823,
  528. DecorationRegisterINTEL = 5825,
  529. DecorationMemoryINTEL = 5826,
  530. DecorationNumbanksINTEL = 5827,
  531. DecorationBankwidthINTEL = 5828,
  532. DecorationMaxPrivateCopiesINTEL = 5829,
  533. DecorationSinglepumpINTEL = 5830,
  534. DecorationDoublepumpINTEL = 5831,
  535. DecorationMaxReplicatesINTEL = 5832,
  536. DecorationSimpleDualPortINTEL = 5833,
  537. DecorationMergeINTEL = 5834,
  538. DecorationBankBitsINTEL = 5835,
  539. DecorationForcePow2DepthINTEL = 5836,
  540. DecorationBurstCoalesceINTEL = 5899,
  541. DecorationCacheSizeINTEL = 5900,
  542. DecorationDontStaticallyCoalesceINTEL = 5901,
  543. DecorationPrefetchINTEL = 5902,
  544. DecorationStallEnableINTEL = 5905,
  545. DecorationFuseLoopsInFunctionINTEL = 5907,
  546. DecorationMathOpDSPModeINTEL = 5909,
  547. DecorationAliasScopeINTEL = 5914,
  548. DecorationNoAliasINTEL = 5915,
  549. DecorationInitiationIntervalINTEL = 5917,
  550. DecorationMaxConcurrencyINTEL = 5918,
  551. DecorationPipelineEnableINTEL = 5919,
  552. DecorationBufferLocationINTEL = 5921,
  553. DecorationIOPipeStorageINTEL = 5944,
  554. DecorationFunctionFloatingPointModeINTEL = 6080,
  555. DecorationSingleElementVectorINTEL = 6085,
  556. DecorationVectorComputeCallableFunctionINTEL = 6087,
  557. DecorationMediaBlockIOINTEL = 6140,
  558. DecorationConduitKernelArgumentINTEL = 6175,
  559. DecorationRegisterMapKernelArgumentINTEL = 6176,
  560. DecorationMMHostInterfaceAddressWidthINTEL = 6177,
  561. DecorationMMHostInterfaceDataWidthINTEL = 6178,
  562. DecorationMMHostInterfaceLatencyINTEL = 6179,
  563. DecorationMMHostInterfaceReadWriteModeINTEL = 6180,
  564. DecorationMMHostInterfaceMaxBurstINTEL = 6181,
  565. DecorationMMHostInterfaceWaitRequestINTEL = 6182,
  566. DecorationStableKernelArgumentINTEL = 6183,
  567. DecorationMax = 0x7fffffff,
  568. };
  569. enum BuiltIn {
  570. BuiltInPosition = 0,
  571. BuiltInPointSize = 1,
  572. BuiltInClipDistance = 3,
  573. BuiltInCullDistance = 4,
  574. BuiltInVertexId = 5,
  575. BuiltInInstanceId = 6,
  576. BuiltInPrimitiveId = 7,
  577. BuiltInInvocationId = 8,
  578. BuiltInLayer = 9,
  579. BuiltInViewportIndex = 10,
  580. BuiltInTessLevelOuter = 11,
  581. BuiltInTessLevelInner = 12,
  582. BuiltInTessCoord = 13,
  583. BuiltInPatchVertices = 14,
  584. BuiltInFragCoord = 15,
  585. BuiltInPointCoord = 16,
  586. BuiltInFrontFacing = 17,
  587. BuiltInSampleId = 18,
  588. BuiltInSamplePosition = 19,
  589. BuiltInSampleMask = 20,
  590. BuiltInFragDepth = 22,
  591. BuiltInHelperInvocation = 23,
  592. BuiltInNumWorkgroups = 24,
  593. BuiltInWorkgroupSize = 25,
  594. BuiltInWorkgroupId = 26,
  595. BuiltInLocalInvocationId = 27,
  596. BuiltInGlobalInvocationId = 28,
  597. BuiltInLocalInvocationIndex = 29,
  598. BuiltInWorkDim = 30,
  599. BuiltInGlobalSize = 31,
  600. BuiltInEnqueuedWorkgroupSize = 32,
  601. BuiltInGlobalOffset = 33,
  602. BuiltInGlobalLinearId = 34,
  603. BuiltInSubgroupSize = 36,
  604. BuiltInSubgroupMaxSize = 37,
  605. BuiltInNumSubgroups = 38,
  606. BuiltInNumEnqueuedSubgroups = 39,
  607. BuiltInSubgroupId = 40,
  608. BuiltInSubgroupLocalInvocationId = 41,
  609. BuiltInVertexIndex = 42,
  610. BuiltInInstanceIndex = 43,
  611. BuiltInCoreIDARM = 4160,
  612. BuiltInCoreCountARM = 4161,
  613. BuiltInCoreMaxIDARM = 4162,
  614. BuiltInWarpIDARM = 4163,
  615. BuiltInWarpMaxIDARM = 4164,
  616. BuiltInSubgroupEqMask = 4416,
  617. BuiltInSubgroupEqMaskKHR = 4416,
  618. BuiltInSubgroupGeMask = 4417,
  619. BuiltInSubgroupGeMaskKHR = 4417,
  620. BuiltInSubgroupGtMask = 4418,
  621. BuiltInSubgroupGtMaskKHR = 4418,
  622. BuiltInSubgroupLeMask = 4419,
  623. BuiltInSubgroupLeMaskKHR = 4419,
  624. BuiltInSubgroupLtMask = 4420,
  625. BuiltInSubgroupLtMaskKHR = 4420,
  626. BuiltInBaseVertex = 4424,
  627. BuiltInBaseInstance = 4425,
  628. BuiltInDrawIndex = 4426,
  629. BuiltInPrimitiveShadingRateKHR = 4432,
  630. BuiltInDeviceIndex = 4438,
  631. BuiltInViewIndex = 4440,
  632. BuiltInShadingRateKHR = 4444,
  633. BuiltInBaryCoordNoPerspAMD = 4992,
  634. BuiltInBaryCoordNoPerspCentroidAMD = 4993,
  635. BuiltInBaryCoordNoPerspSampleAMD = 4994,
  636. BuiltInBaryCoordSmoothAMD = 4995,
  637. BuiltInBaryCoordSmoothCentroidAMD = 4996,
  638. BuiltInBaryCoordSmoothSampleAMD = 4997,
  639. BuiltInBaryCoordPullModelAMD = 4998,
  640. BuiltInFragStencilRefEXT = 5014,
  641. BuiltInViewportMaskNV = 5253,
  642. BuiltInSecondaryPositionNV = 5257,
  643. BuiltInSecondaryViewportMaskNV = 5258,
  644. BuiltInPositionPerViewNV = 5261,
  645. BuiltInViewportMaskPerViewNV = 5262,
  646. BuiltInFullyCoveredEXT = 5264,
  647. BuiltInTaskCountNV = 5274,
  648. BuiltInPrimitiveCountNV = 5275,
  649. BuiltInPrimitiveIndicesNV = 5276,
  650. BuiltInClipDistancePerViewNV = 5277,
  651. BuiltInCullDistancePerViewNV = 5278,
  652. BuiltInLayerPerViewNV = 5279,
  653. BuiltInMeshViewCountNV = 5280,
  654. BuiltInMeshViewIndicesNV = 5281,
  655. BuiltInBaryCoordKHR = 5286,
  656. BuiltInBaryCoordNV = 5286,
  657. BuiltInBaryCoordNoPerspKHR = 5287,
  658. BuiltInBaryCoordNoPerspNV = 5287,
  659. BuiltInFragSizeEXT = 5292,
  660. BuiltInFragmentSizeNV = 5292,
  661. BuiltInFragInvocationCountEXT = 5293,
  662. BuiltInInvocationsPerPixelNV = 5293,
  663. BuiltInPrimitivePointIndicesEXT = 5294,
  664. BuiltInPrimitiveLineIndicesEXT = 5295,
  665. BuiltInPrimitiveTriangleIndicesEXT = 5296,
  666. BuiltInCullPrimitiveEXT = 5299,
  667. BuiltInLaunchIdKHR = 5319,
  668. BuiltInLaunchIdNV = 5319,
  669. BuiltInLaunchSizeKHR = 5320,
  670. BuiltInLaunchSizeNV = 5320,
  671. BuiltInWorldRayOriginKHR = 5321,
  672. BuiltInWorldRayOriginNV = 5321,
  673. BuiltInWorldRayDirectionKHR = 5322,
  674. BuiltInWorldRayDirectionNV = 5322,
  675. BuiltInObjectRayOriginKHR = 5323,
  676. BuiltInObjectRayOriginNV = 5323,
  677. BuiltInObjectRayDirectionKHR = 5324,
  678. BuiltInObjectRayDirectionNV = 5324,
  679. BuiltInRayTminKHR = 5325,
  680. BuiltInRayTminNV = 5325,
  681. BuiltInRayTmaxKHR = 5326,
  682. BuiltInRayTmaxNV = 5326,
  683. BuiltInInstanceCustomIndexKHR = 5327,
  684. BuiltInInstanceCustomIndexNV = 5327,
  685. BuiltInObjectToWorldKHR = 5330,
  686. BuiltInObjectToWorldNV = 5330,
  687. BuiltInWorldToObjectKHR = 5331,
  688. BuiltInWorldToObjectNV = 5331,
  689. BuiltInHitTNV = 5332,
  690. BuiltInHitKindKHR = 5333,
  691. BuiltInHitKindNV = 5333,
  692. BuiltInCurrentRayTimeNV = 5334,
  693. BuiltInHitTriangleVertexPositionsKHR = 5335,
  694. BuiltInHitMicroTriangleVertexPositionsNV = 5337,
  695. BuiltInHitMicroTriangleVertexBarycentricsNV = 5344,
  696. BuiltInHitKindFrontFacingMicroTriangleNV = 5405,
  697. BuiltInHitKindBackFacingMicroTriangleNV = 5406,
  698. BuiltInIncomingRayFlagsKHR = 5351,
  699. BuiltInIncomingRayFlagsNV = 5351,
  700. BuiltInRayGeometryIndexKHR = 5352,
  701. BuiltInWarpsPerSMNV = 5374,
  702. BuiltInSMCountNV = 5375,
  703. BuiltInWarpIDNV = 5376,
  704. BuiltInSMIDNV = 5377,
  705. BuiltInCullMaskKHR = 6021,
  706. BuiltInMax = 0x7fffffff,
  707. };
  708. enum SelectionControlShift {
  709. SelectionControlFlattenShift = 0,
  710. SelectionControlDontFlattenShift = 1,
  711. SelectionControlMax = 0x7fffffff,
  712. };
  713. enum SelectionControlMask {
  714. SelectionControlMaskNone = 0,
  715. SelectionControlFlattenMask = 0x00000001,
  716. SelectionControlDontFlattenMask = 0x00000002,
  717. };
  718. enum LoopControlShift {
  719. LoopControlUnrollShift = 0,
  720. LoopControlDontUnrollShift = 1,
  721. LoopControlDependencyInfiniteShift = 2,
  722. LoopControlDependencyLengthShift = 3,
  723. LoopControlMinIterationsShift = 4,
  724. LoopControlMaxIterationsShift = 5,
  725. LoopControlIterationMultipleShift = 6,
  726. LoopControlPeelCountShift = 7,
  727. LoopControlPartialCountShift = 8,
  728. LoopControlInitiationIntervalINTELShift = 16,
  729. LoopControlMaxConcurrencyINTELShift = 17,
  730. LoopControlDependencyArrayINTELShift = 18,
  731. LoopControlPipelineEnableINTELShift = 19,
  732. LoopControlLoopCoalesceINTELShift = 20,
  733. LoopControlMaxInterleavingINTELShift = 21,
  734. LoopControlSpeculatedIterationsINTELShift = 22,
  735. LoopControlNoFusionINTELShift = 23,
  736. LoopControlLoopCountINTELShift = 24,
  737. LoopControlMaxReinvocationDelayINTELShift = 25,
  738. LoopControlMax = 0x7fffffff,
  739. };
  740. enum LoopControlMask {
  741. LoopControlMaskNone = 0,
  742. LoopControlUnrollMask = 0x00000001,
  743. LoopControlDontUnrollMask = 0x00000002,
  744. LoopControlDependencyInfiniteMask = 0x00000004,
  745. LoopControlDependencyLengthMask = 0x00000008,
  746. LoopControlMinIterationsMask = 0x00000010,
  747. LoopControlMaxIterationsMask = 0x00000020,
  748. LoopControlIterationMultipleMask = 0x00000040,
  749. LoopControlPeelCountMask = 0x00000080,
  750. LoopControlPartialCountMask = 0x00000100,
  751. LoopControlInitiationIntervalINTELMask = 0x00010000,
  752. LoopControlMaxConcurrencyINTELMask = 0x00020000,
  753. LoopControlDependencyArrayINTELMask = 0x00040000,
  754. LoopControlPipelineEnableINTELMask = 0x00080000,
  755. LoopControlLoopCoalesceINTELMask = 0x00100000,
  756. LoopControlMaxInterleavingINTELMask = 0x00200000,
  757. LoopControlSpeculatedIterationsINTELMask = 0x00400000,
  758. LoopControlNoFusionINTELMask = 0x00800000,
  759. LoopControlLoopCountINTELMask = 0x01000000,
  760. LoopControlMaxReinvocationDelayINTELMask = 0x02000000,
  761. };
  762. enum FunctionControlShift {
  763. FunctionControlInlineShift = 0,
  764. FunctionControlDontInlineShift = 1,
  765. FunctionControlPureShift = 2,
  766. FunctionControlConstShift = 3,
  767. FunctionControlOptNoneINTELShift = 16,
  768. FunctionControlMax = 0x7fffffff,
  769. };
  770. enum FunctionControlMask {
  771. FunctionControlMaskNone = 0,
  772. FunctionControlInlineMask = 0x00000001,
  773. FunctionControlDontInlineMask = 0x00000002,
  774. FunctionControlPureMask = 0x00000004,
  775. FunctionControlConstMask = 0x00000008,
  776. FunctionControlOptNoneINTELMask = 0x00010000,
  777. };
  778. enum MemorySemanticsShift {
  779. MemorySemanticsAcquireShift = 1,
  780. MemorySemanticsReleaseShift = 2,
  781. MemorySemanticsAcquireReleaseShift = 3,
  782. MemorySemanticsSequentiallyConsistentShift = 4,
  783. MemorySemanticsUniformMemoryShift = 6,
  784. MemorySemanticsSubgroupMemoryShift = 7,
  785. MemorySemanticsWorkgroupMemoryShift = 8,
  786. MemorySemanticsCrossWorkgroupMemoryShift = 9,
  787. MemorySemanticsAtomicCounterMemoryShift = 10,
  788. MemorySemanticsImageMemoryShift = 11,
  789. MemorySemanticsOutputMemoryShift = 12,
  790. MemorySemanticsOutputMemoryKHRShift = 12,
  791. MemorySemanticsMakeAvailableShift = 13,
  792. MemorySemanticsMakeAvailableKHRShift = 13,
  793. MemorySemanticsMakeVisibleShift = 14,
  794. MemorySemanticsMakeVisibleKHRShift = 14,
  795. MemorySemanticsVolatileShift = 15,
  796. MemorySemanticsMax = 0x7fffffff,
  797. };
  798. enum MemorySemanticsMask {
  799. MemorySemanticsMaskNone = 0,
  800. MemorySemanticsAcquireMask = 0x00000002,
  801. MemorySemanticsReleaseMask = 0x00000004,
  802. MemorySemanticsAcquireReleaseMask = 0x00000008,
  803. MemorySemanticsSequentiallyConsistentMask = 0x00000010,
  804. MemorySemanticsUniformMemoryMask = 0x00000040,
  805. MemorySemanticsSubgroupMemoryMask = 0x00000080,
  806. MemorySemanticsWorkgroupMemoryMask = 0x00000100,
  807. MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
  808. MemorySemanticsAtomicCounterMemoryMask = 0x00000400,
  809. MemorySemanticsImageMemoryMask = 0x00000800,
  810. MemorySemanticsOutputMemoryMask = 0x00001000,
  811. MemorySemanticsOutputMemoryKHRMask = 0x00001000,
  812. MemorySemanticsMakeAvailableMask = 0x00002000,
  813. MemorySemanticsMakeAvailableKHRMask = 0x00002000,
  814. MemorySemanticsMakeVisibleMask = 0x00004000,
  815. MemorySemanticsMakeVisibleKHRMask = 0x00004000,
  816. MemorySemanticsVolatileMask = 0x00008000,
  817. };
  818. enum MemoryAccessShift {
  819. MemoryAccessVolatileShift = 0,
  820. MemoryAccessAlignedShift = 1,
  821. MemoryAccessNontemporalShift = 2,
  822. MemoryAccessMakePointerAvailableShift = 3,
  823. MemoryAccessMakePointerAvailableKHRShift = 3,
  824. MemoryAccessMakePointerVisibleShift = 4,
  825. MemoryAccessMakePointerVisibleKHRShift = 4,
  826. MemoryAccessNonPrivatePointerShift = 5,
  827. MemoryAccessNonPrivatePointerKHRShift = 5,
  828. MemoryAccessAliasScopeINTELMaskShift = 16,
  829. MemoryAccessNoAliasINTELMaskShift = 17,
  830. MemoryAccessMax = 0x7fffffff,
  831. };
  832. enum MemoryAccessMask {
  833. MemoryAccessMaskNone = 0,
  834. MemoryAccessVolatileMask = 0x00000001,
  835. MemoryAccessAlignedMask = 0x00000002,
  836. MemoryAccessNontemporalMask = 0x00000004,
  837. MemoryAccessMakePointerAvailableMask = 0x00000008,
  838. MemoryAccessMakePointerAvailableKHRMask = 0x00000008,
  839. MemoryAccessMakePointerVisibleMask = 0x00000010,
  840. MemoryAccessMakePointerVisibleKHRMask = 0x00000010,
  841. MemoryAccessNonPrivatePointerMask = 0x00000020,
  842. MemoryAccessNonPrivatePointerKHRMask = 0x00000020,
  843. MemoryAccessAliasScopeINTELMaskMask = 0x00010000,
  844. MemoryAccessNoAliasINTELMaskMask = 0x00020000,
  845. };
  846. enum Scope {
  847. ScopeCrossDevice = 0,
  848. ScopeDevice = 1,
  849. ScopeWorkgroup = 2,
  850. ScopeSubgroup = 3,
  851. ScopeInvocation = 4,
  852. ScopeQueueFamily = 5,
  853. ScopeQueueFamilyKHR = 5,
  854. ScopeShaderCallKHR = 6,
  855. ScopeMax = 0x7fffffff,
  856. };
  857. enum GroupOperation {
  858. GroupOperationReduce = 0,
  859. GroupOperationInclusiveScan = 1,
  860. GroupOperationExclusiveScan = 2,
  861. GroupOperationClusteredReduce = 3,
  862. GroupOperationPartitionedReduceNV = 6,
  863. GroupOperationPartitionedInclusiveScanNV = 7,
  864. GroupOperationPartitionedExclusiveScanNV = 8,
  865. GroupOperationMax = 0x7fffffff,
  866. };
  867. enum KernelEnqueueFlags {
  868. KernelEnqueueFlagsNoWait = 0,
  869. KernelEnqueueFlagsWaitKernel = 1,
  870. KernelEnqueueFlagsWaitWorkGroup = 2,
  871. KernelEnqueueFlagsMax = 0x7fffffff,
  872. };
  873. enum KernelProfilingInfoShift {
  874. KernelProfilingInfoCmdExecTimeShift = 0,
  875. KernelProfilingInfoMax = 0x7fffffff,
  876. };
  877. enum KernelProfilingInfoMask {
  878. KernelProfilingInfoMaskNone = 0,
  879. KernelProfilingInfoCmdExecTimeMask = 0x00000001,
  880. };
  881. enum Capability {
  882. CapabilityMatrix = 0,
  883. CapabilityShader = 1,
  884. CapabilityGeometry = 2,
  885. CapabilityTessellation = 3,
  886. CapabilityAddresses = 4,
  887. CapabilityLinkage = 5,
  888. CapabilityKernel = 6,
  889. CapabilityVector16 = 7,
  890. CapabilityFloat16Buffer = 8,
  891. CapabilityFloat16 = 9,
  892. CapabilityFloat64 = 10,
  893. CapabilityInt64 = 11,
  894. CapabilityInt64Atomics = 12,
  895. CapabilityImageBasic = 13,
  896. CapabilityImageReadWrite = 14,
  897. CapabilityImageMipmap = 15,
  898. CapabilityPipes = 17,
  899. CapabilityGroups = 18,
  900. CapabilityDeviceEnqueue = 19,
  901. CapabilityLiteralSampler = 20,
  902. CapabilityAtomicStorage = 21,
  903. CapabilityInt16 = 22,
  904. CapabilityTessellationPointSize = 23,
  905. CapabilityGeometryPointSize = 24,
  906. CapabilityImageGatherExtended = 25,
  907. CapabilityStorageImageMultisample = 27,
  908. CapabilityUniformBufferArrayDynamicIndexing = 28,
  909. CapabilitySampledImageArrayDynamicIndexing = 29,
  910. CapabilityStorageBufferArrayDynamicIndexing = 30,
  911. CapabilityStorageImageArrayDynamicIndexing = 31,
  912. CapabilityClipDistance = 32,
  913. CapabilityCullDistance = 33,
  914. CapabilityImageCubeArray = 34,
  915. CapabilitySampleRateShading = 35,
  916. CapabilityImageRect = 36,
  917. CapabilitySampledRect = 37,
  918. CapabilityGenericPointer = 38,
  919. CapabilityInt8 = 39,
  920. CapabilityInputAttachment = 40,
  921. CapabilitySparseResidency = 41,
  922. CapabilityMinLod = 42,
  923. CapabilitySampled1D = 43,
  924. CapabilityImage1D = 44,
  925. CapabilitySampledCubeArray = 45,
  926. CapabilitySampledBuffer = 46,
  927. CapabilityImageBuffer = 47,
  928. CapabilityImageMSArray = 48,
  929. CapabilityStorageImageExtendedFormats = 49,
  930. CapabilityImageQuery = 50,
  931. CapabilityDerivativeControl = 51,
  932. CapabilityInterpolationFunction = 52,
  933. CapabilityTransformFeedback = 53,
  934. CapabilityGeometryStreams = 54,
  935. CapabilityStorageImageReadWithoutFormat = 55,
  936. CapabilityStorageImageWriteWithoutFormat = 56,
  937. CapabilityMultiViewport = 57,
  938. CapabilitySubgroupDispatch = 58,
  939. CapabilityNamedBarrier = 59,
  940. CapabilityPipeStorage = 60,
  941. CapabilityGroupNonUniform = 61,
  942. CapabilityGroupNonUniformVote = 62,
  943. CapabilityGroupNonUniformArithmetic = 63,
  944. CapabilityGroupNonUniformBallot = 64,
  945. CapabilityGroupNonUniformShuffle = 65,
  946. CapabilityGroupNonUniformShuffleRelative = 66,
  947. CapabilityGroupNonUniformClustered = 67,
  948. CapabilityGroupNonUniformQuad = 68,
  949. CapabilityShaderLayer = 69,
  950. CapabilityShaderViewportIndex = 70,
  951. CapabilityUniformDecoration = 71,
  952. CapabilityCoreBuiltinsARM = 4165,
  953. CapabilityTileImageColorReadAccessEXT = 4166,
  954. CapabilityTileImageDepthReadAccessEXT = 4167,
  955. CapabilityTileImageStencilReadAccessEXT = 4168,
  956. CapabilityFragmentShadingRateKHR = 4422,
  957. CapabilitySubgroupBallotKHR = 4423,
  958. CapabilityDrawParameters = 4427,
  959. CapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
  960. CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
  961. CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
  962. CapabilitySubgroupVoteKHR = 4431,
  963. CapabilityStorageBuffer16BitAccess = 4433,
  964. CapabilityStorageUniformBufferBlock16 = 4433,
  965. CapabilityStorageUniform16 = 4434,
  966. CapabilityUniformAndStorageBuffer16BitAccess = 4434,
  967. CapabilityStoragePushConstant16 = 4435,
  968. CapabilityStorageInputOutput16 = 4436,
  969. CapabilityDeviceGroup = 4437,
  970. CapabilityMultiView = 4439,
  971. CapabilityVariablePointersStorageBuffer = 4441,
  972. CapabilityVariablePointers = 4442,
  973. CapabilityAtomicStorageOps = 4445,
  974. CapabilitySampleMaskPostDepthCoverage = 4447,
  975. CapabilityStorageBuffer8BitAccess = 4448,
  976. CapabilityUniformAndStorageBuffer8BitAccess = 4449,
  977. CapabilityStoragePushConstant8 = 4450,
  978. CapabilityDenormPreserve = 4464,
  979. CapabilityDenormFlushToZero = 4465,
  980. CapabilitySignedZeroInfNanPreserve = 4466,
  981. CapabilityRoundingModeRTE = 4467,
  982. CapabilityRoundingModeRTZ = 4468,
  983. CapabilityRayQueryProvisionalKHR = 4471,
  984. CapabilityRayQueryKHR = 4472,
  985. CapabilityRayTraversalPrimitiveCullingKHR = 4478,
  986. CapabilityRayTracingKHR = 4479,
  987. CapabilityTextureSampleWeightedQCOM = 4484,
  988. CapabilityTextureBoxFilterQCOM = 4485,
  989. CapabilityTextureBlockMatchQCOM = 4486,
  990. CapabilityFloat16ImageAMD = 5008,
  991. CapabilityImageGatherBiasLodAMD = 5009,
  992. CapabilityFragmentMaskAMD = 5010,
  993. CapabilityStencilExportEXT = 5013,
  994. CapabilityImageReadWriteLodAMD = 5015,
  995. CapabilityInt64ImageEXT = 5016,
  996. CapabilityShaderClockKHR = 5055,
  997. CapabilitySampleMaskOverrideCoverageNV = 5249,
  998. CapabilityGeometryShaderPassthroughNV = 5251,
  999. CapabilityShaderViewportIndexLayerEXT = 5254,
  1000. CapabilityShaderViewportIndexLayerNV = 5254,
  1001. CapabilityShaderViewportMaskNV = 5255,
  1002. CapabilityShaderStereoViewNV = 5259,
  1003. CapabilityPerViewAttributesNV = 5260,
  1004. CapabilityFragmentFullyCoveredEXT = 5265,
  1005. CapabilityMeshShadingNV = 5266,
  1006. CapabilityImageFootprintNV = 5282,
  1007. CapabilityMeshShadingEXT = 5283,
  1008. CapabilityFragmentBarycentricKHR = 5284,
  1009. CapabilityFragmentBarycentricNV = 5284,
  1010. CapabilityComputeDerivativeGroupQuadsNV = 5288,
  1011. CapabilityFragmentDensityEXT = 5291,
  1012. CapabilityShadingRateNV = 5291,
  1013. CapabilityGroupNonUniformPartitionedNV = 5297,
  1014. CapabilityShaderNonUniform = 5301,
  1015. CapabilityShaderNonUniformEXT = 5301,
  1016. CapabilityRuntimeDescriptorArray = 5302,
  1017. CapabilityRuntimeDescriptorArrayEXT = 5302,
  1018. CapabilityInputAttachmentArrayDynamicIndexing = 5303,
  1019. CapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
  1020. CapabilityUniformTexelBufferArrayDynamicIndexing = 5304,
  1021. CapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
  1022. CapabilityStorageTexelBufferArrayDynamicIndexing = 5305,
  1023. CapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
  1024. CapabilityUniformBufferArrayNonUniformIndexing = 5306,
  1025. CapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
  1026. CapabilitySampledImageArrayNonUniformIndexing = 5307,
  1027. CapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
  1028. CapabilityStorageBufferArrayNonUniformIndexing = 5308,
  1029. CapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
  1030. CapabilityStorageImageArrayNonUniformIndexing = 5309,
  1031. CapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
  1032. CapabilityInputAttachmentArrayNonUniformIndexing = 5310,
  1033. CapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
  1034. CapabilityUniformTexelBufferArrayNonUniformIndexing = 5311,
  1035. CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
  1036. CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
  1037. CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
  1038. CapabilityRayTracingPositionFetchKHR = 5336,
  1039. CapabilityRayTracingNV = 5340,
  1040. CapabilityRayTracingMotionBlurNV = 5341,
  1041. CapabilityVulkanMemoryModel = 5345,
  1042. CapabilityVulkanMemoryModelKHR = 5345,
  1043. CapabilityVulkanMemoryModelDeviceScope = 5346,
  1044. CapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
  1045. CapabilityPhysicalStorageBufferAddresses = 5347,
  1046. CapabilityPhysicalStorageBufferAddressesEXT = 5347,
  1047. CapabilityComputeDerivativeGroupLinearNV = 5350,
  1048. CapabilityRayTracingProvisionalKHR = 5353,
  1049. CapabilityCooperativeMatrixNV = 5357,
  1050. CapabilityFragmentShaderSampleInterlockEXT = 5363,
  1051. CapabilityFragmentShaderShadingRateInterlockEXT = 5372,
  1052. CapabilityShaderSMBuiltinsNV = 5373,
  1053. CapabilityFragmentShaderPixelInterlockEXT = 5378,
  1054. CapabilityDemoteToHelperInvocation = 5379,
  1055. CapabilityDemoteToHelperInvocationEXT = 5379,
  1056. CapabilityDisplacementMicromapNV = 5380,
  1057. CapabilityRayTracingDisplacementMicromapNV = 5409,
  1058. CapabilityRayTracingOpacityMicromapEXT = 5381,
  1059. CapabilityShaderInvocationReorderNV = 5383,
  1060. CapabilityBindlessTextureNV = 5390,
  1061. CapabilityRayQueryPositionFetchKHR = 5391,
  1062. CapabilitySubgroupShuffleINTEL = 5568,
  1063. CapabilitySubgroupBufferBlockIOINTEL = 5569,
  1064. CapabilitySubgroupImageBlockIOINTEL = 5570,
  1065. CapabilitySubgroupImageMediaBlockIOINTEL = 5579,
  1066. CapabilityRoundToInfinityINTEL = 5582,
  1067. CapabilityFloatingPointModeINTEL = 5583,
  1068. CapabilityIntegerFunctions2INTEL = 5584,
  1069. CapabilityFunctionPointersINTEL = 5603,
  1070. CapabilityIndirectReferencesINTEL = 5604,
  1071. CapabilityAsmINTEL = 5606,
  1072. CapabilityAtomicFloat32MinMaxEXT = 5612,
  1073. CapabilityAtomicFloat64MinMaxEXT = 5613,
  1074. CapabilityAtomicFloat16MinMaxEXT = 5616,
  1075. CapabilityVectorComputeINTEL = 5617,
  1076. CapabilityVectorAnyINTEL = 5619,
  1077. CapabilityExpectAssumeKHR = 5629,
  1078. CapabilitySubgroupAvcMotionEstimationINTEL = 5696,
  1079. CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
  1080. CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
  1081. CapabilityVariableLengthArrayINTEL = 5817,
  1082. CapabilityFunctionFloatControlINTEL = 5821,
  1083. CapabilityFPGAMemoryAttributesINTEL = 5824,
  1084. CapabilityFPFastMathModeINTEL = 5837,
  1085. CapabilityArbitraryPrecisionIntegersINTEL = 5844,
  1086. CapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
  1087. CapabilityUnstructuredLoopControlsINTEL = 5886,
  1088. CapabilityFPGALoopControlsINTEL = 5888,
  1089. CapabilityKernelAttributesINTEL = 5892,
  1090. CapabilityFPGAKernelAttributesINTEL = 5897,
  1091. CapabilityFPGAMemoryAccessesINTEL = 5898,
  1092. CapabilityFPGAClusterAttributesINTEL = 5904,
  1093. CapabilityLoopFuseINTEL = 5906,
  1094. CapabilityFPGADSPControlINTEL = 5908,
  1095. CapabilityMemoryAccessAliasingINTEL = 5910,
  1096. CapabilityFPGAInvocationPipeliningAttributesINTEL = 5916,
  1097. CapabilityFPGABufferLocationINTEL = 5920,
  1098. CapabilityArbitraryPrecisionFixedPointINTEL = 5922,
  1099. CapabilityUSMStorageClassesINTEL = 5935,
  1100. CapabilityRuntimeAlignedAttributeINTEL = 5939,
  1101. CapabilityIOPipesINTEL = 5943,
  1102. CapabilityBlockingPipesINTEL = 5945,
  1103. CapabilityFPGARegINTEL = 5948,
  1104. CapabilityDotProductInputAll = 6016,
  1105. CapabilityDotProductInputAllKHR = 6016,
  1106. CapabilityDotProductInput4x8Bit = 6017,
  1107. CapabilityDotProductInput4x8BitKHR = 6017,
  1108. CapabilityDotProductInput4x8BitPacked = 6018,
  1109. CapabilityDotProductInput4x8BitPackedKHR = 6018,
  1110. CapabilityDotProduct = 6019,
  1111. CapabilityDotProductKHR = 6019,
  1112. CapabilityRayCullMaskKHR = 6020,
  1113. CapabilityCooperativeMatrixKHR = 6022,
  1114. CapabilityBitInstructions = 6025,
  1115. CapabilityGroupNonUniformRotateKHR = 6026,
  1116. CapabilityAtomicFloat32AddEXT = 6033,
  1117. CapabilityAtomicFloat64AddEXT = 6034,
  1118. CapabilityLongConstantCompositeINTEL = 6089,
  1119. CapabilityOptNoneINTEL = 6094,
  1120. CapabilityAtomicFloat16AddEXT = 6095,
  1121. CapabilityDebugInfoModuleINTEL = 6114,
  1122. CapabilitySplitBarrierINTEL = 6141,
  1123. CapabilityFPGAArgumentInterfacesINTEL = 6174,
  1124. CapabilityGroupUniformArithmeticKHR = 6400,
  1125. CapabilityMax = 0x7fffffff,
  1126. };
  1127. enum RayFlagsShift {
  1128. RayFlagsOpaqueKHRShift = 0,
  1129. RayFlagsNoOpaqueKHRShift = 1,
  1130. RayFlagsTerminateOnFirstHitKHRShift = 2,
  1131. RayFlagsSkipClosestHitShaderKHRShift = 3,
  1132. RayFlagsCullBackFacingTrianglesKHRShift = 4,
  1133. RayFlagsCullFrontFacingTrianglesKHRShift = 5,
  1134. RayFlagsCullOpaqueKHRShift = 6,
  1135. RayFlagsCullNoOpaqueKHRShift = 7,
  1136. RayFlagsSkipTrianglesKHRShift = 8,
  1137. RayFlagsSkipAABBsKHRShift = 9,
  1138. RayFlagsForceOpacityMicromap2StateEXTShift = 10,
  1139. RayFlagsMax = 0x7fffffff,
  1140. };
  1141. enum RayFlagsMask {
  1142. RayFlagsMaskNone = 0,
  1143. RayFlagsOpaqueKHRMask = 0x00000001,
  1144. RayFlagsNoOpaqueKHRMask = 0x00000002,
  1145. RayFlagsTerminateOnFirstHitKHRMask = 0x00000004,
  1146. RayFlagsSkipClosestHitShaderKHRMask = 0x00000008,
  1147. RayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,
  1148. RayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,
  1149. RayFlagsCullOpaqueKHRMask = 0x00000040,
  1150. RayFlagsCullNoOpaqueKHRMask = 0x00000080,
  1151. RayFlagsSkipTrianglesKHRMask = 0x00000100,
  1152. RayFlagsSkipAABBsKHRMask = 0x00000200,
  1153. RayFlagsForceOpacityMicromap2StateEXTMask = 0x00000400,
  1154. };
  1155. enum RayQueryIntersection {
  1156. RayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,
  1157. RayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,
  1158. RayQueryIntersectionMax = 0x7fffffff,
  1159. };
  1160. enum RayQueryCommittedIntersectionType {
  1161. RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,
  1162. RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1,
  1163. RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2,
  1164. RayQueryCommittedIntersectionTypeMax = 0x7fffffff,
  1165. };
  1166. enum RayQueryCandidateIntersectionType {
  1167. RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0,
  1168. RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,
  1169. RayQueryCandidateIntersectionTypeMax = 0x7fffffff,
  1170. };
  1171. enum FragmentShadingRateShift {
  1172. FragmentShadingRateVertical2PixelsShift = 0,
  1173. FragmentShadingRateVertical4PixelsShift = 1,
  1174. FragmentShadingRateHorizontal2PixelsShift = 2,
  1175. FragmentShadingRateHorizontal4PixelsShift = 3,
  1176. FragmentShadingRateMax = 0x7fffffff,
  1177. };
  1178. enum FragmentShadingRateMask {
  1179. FragmentShadingRateMaskNone = 0,
  1180. FragmentShadingRateVertical2PixelsMask = 0x00000001,
  1181. FragmentShadingRateVertical4PixelsMask = 0x00000002,
  1182. FragmentShadingRateHorizontal2PixelsMask = 0x00000004,
  1183. FragmentShadingRateHorizontal4PixelsMask = 0x00000008,
  1184. };
  1185. enum FPDenormMode {
  1186. FPDenormModePreserve = 0,
  1187. FPDenormModeFlushToZero = 1,
  1188. FPDenormModeMax = 0x7fffffff,
  1189. };
  1190. enum FPOperationMode {
  1191. FPOperationModeIEEE = 0,
  1192. FPOperationModeALT = 1,
  1193. FPOperationModeMax = 0x7fffffff,
  1194. };
  1195. enum QuantizationModes {
  1196. QuantizationModesTRN = 0,
  1197. QuantizationModesTRN_ZERO = 1,
  1198. QuantizationModesRND = 2,
  1199. QuantizationModesRND_ZERO = 3,
  1200. QuantizationModesRND_INF = 4,
  1201. QuantizationModesRND_MIN_INF = 5,
  1202. QuantizationModesRND_CONV = 6,
  1203. QuantizationModesRND_CONV_ODD = 7,
  1204. QuantizationModesMax = 0x7fffffff,
  1205. };
  1206. enum OverflowModes {
  1207. OverflowModesWRAP = 0,
  1208. OverflowModesSAT = 1,
  1209. OverflowModesSAT_ZERO = 2,
  1210. OverflowModesSAT_SYM = 3,
  1211. OverflowModesMax = 0x7fffffff,
  1212. };
  1213. enum PackedVectorFormat {
  1214. PackedVectorFormatPackedVectorFormat4x8Bit = 0,
  1215. PackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
  1216. PackedVectorFormatMax = 0x7fffffff,
  1217. };
  1218. enum CooperativeMatrixOperandsShift {
  1219. CooperativeMatrixOperandsMatrixASignedComponentsKHRShift = 0,
  1220. CooperativeMatrixOperandsMatrixBSignedComponentsKHRShift = 1,
  1221. CooperativeMatrixOperandsMatrixCSignedComponentsKHRShift = 2,
  1222. CooperativeMatrixOperandsMatrixResultSignedComponentsKHRShift = 3,
  1223. CooperativeMatrixOperandsSaturatingAccumulationKHRShift = 4,
  1224. CooperativeMatrixOperandsMax = 0x7fffffff,
  1225. };
  1226. enum CooperativeMatrixOperandsMask {
  1227. CooperativeMatrixOperandsMaskNone = 0,
  1228. CooperativeMatrixOperandsMatrixASignedComponentsKHRMask = 0x00000001,
  1229. CooperativeMatrixOperandsMatrixBSignedComponentsKHRMask = 0x00000002,
  1230. CooperativeMatrixOperandsMatrixCSignedComponentsKHRMask = 0x00000004,
  1231. CooperativeMatrixOperandsMatrixResultSignedComponentsKHRMask = 0x00000008,
  1232. CooperativeMatrixOperandsSaturatingAccumulationKHRMask = 0x00000010,
  1233. };
  1234. enum CooperativeMatrixLayout {
  1235. CooperativeMatrixLayoutRowMajorKHR = 0,
  1236. CooperativeMatrixLayoutColumnMajorKHR = 1,
  1237. CooperativeMatrixLayoutMax = 0x7fffffff,
  1238. };
  1239. enum CooperativeMatrixUse {
  1240. CooperativeMatrixUseMatrixAKHR = 0,
  1241. CooperativeMatrixUseMatrixBKHR = 1,
  1242. CooperativeMatrixUseMatrixAccumulatorKHR = 2,
  1243. CooperativeMatrixUseMax = 0x7fffffff,
  1244. };
  1245. enum Op {
  1246. OpNop = 0,
  1247. OpUndef = 1,
  1248. OpSourceContinued = 2,
  1249. OpSource = 3,
  1250. OpSourceExtension = 4,
  1251. OpName = 5,
  1252. OpMemberName = 6,
  1253. OpString = 7,
  1254. OpLine = 8,
  1255. OpExtension = 10,
  1256. OpExtInstImport = 11,
  1257. OpExtInst = 12,
  1258. OpMemoryModel = 14,
  1259. OpEntryPoint = 15,
  1260. OpExecutionMode = 16,
  1261. OpCapability = 17,
  1262. OpTypeVoid = 19,
  1263. OpTypeBool = 20,
  1264. OpTypeInt = 21,
  1265. OpTypeFloat = 22,
  1266. OpTypeVector = 23,
  1267. OpTypeMatrix = 24,
  1268. OpTypeImage = 25,
  1269. OpTypeSampler = 26,
  1270. OpTypeSampledImage = 27,
  1271. OpTypeArray = 28,
  1272. OpTypeRuntimeArray = 29,
  1273. OpTypeStruct = 30,
  1274. OpTypeOpaque = 31,
  1275. OpTypePointer = 32,
  1276. OpTypeFunction = 33,
  1277. OpTypeEvent = 34,
  1278. OpTypeDeviceEvent = 35,
  1279. OpTypeReserveId = 36,
  1280. OpTypeQueue = 37,
  1281. OpTypePipe = 38,
  1282. OpTypeForwardPointer = 39,
  1283. OpConstantTrue = 41,
  1284. OpConstantFalse = 42,
  1285. OpConstant = 43,
  1286. OpConstantComposite = 44,
  1287. OpConstantSampler = 45,
  1288. OpConstantNull = 46,
  1289. OpSpecConstantTrue = 48,
  1290. OpSpecConstantFalse = 49,
  1291. OpSpecConstant = 50,
  1292. OpSpecConstantComposite = 51,
  1293. OpSpecConstantOp = 52,
  1294. OpFunction = 54,
  1295. OpFunctionParameter = 55,
  1296. OpFunctionEnd = 56,
  1297. OpFunctionCall = 57,
  1298. OpVariable = 59,
  1299. OpImageTexelPointer = 60,
  1300. OpLoad = 61,
  1301. OpStore = 62,
  1302. OpCopyMemory = 63,
  1303. OpCopyMemorySized = 64,
  1304. OpAccessChain = 65,
  1305. OpInBoundsAccessChain = 66,
  1306. OpPtrAccessChain = 67,
  1307. OpArrayLength = 68,
  1308. OpGenericPtrMemSemantics = 69,
  1309. OpInBoundsPtrAccessChain = 70,
  1310. OpDecorate = 71,
  1311. OpMemberDecorate = 72,
  1312. OpDecorationGroup = 73,
  1313. OpGroupDecorate = 74,
  1314. OpGroupMemberDecorate = 75,
  1315. OpVectorExtractDynamic = 77,
  1316. OpVectorInsertDynamic = 78,
  1317. OpVectorShuffle = 79,
  1318. OpCompositeConstruct = 80,
  1319. OpCompositeExtract = 81,
  1320. OpCompositeInsert = 82,
  1321. OpCopyObject = 83,
  1322. OpTranspose = 84,
  1323. OpSampledImage = 86,
  1324. OpImageSampleImplicitLod = 87,
  1325. OpImageSampleExplicitLod = 88,
  1326. OpImageSampleDrefImplicitLod = 89,
  1327. OpImageSampleDrefExplicitLod = 90,
  1328. OpImageSampleProjImplicitLod = 91,
  1329. OpImageSampleProjExplicitLod = 92,
  1330. OpImageSampleProjDrefImplicitLod = 93,
  1331. OpImageSampleProjDrefExplicitLod = 94,
  1332. OpImageFetch = 95,
  1333. OpImageGather = 96,
  1334. OpImageDrefGather = 97,
  1335. OpImageRead = 98,
  1336. OpImageWrite = 99,
  1337. OpImage = 100,
  1338. OpImageQueryFormat = 101,
  1339. OpImageQueryOrder = 102,
  1340. OpImageQuerySizeLod = 103,
  1341. OpImageQuerySize = 104,
  1342. OpImageQueryLod = 105,
  1343. OpImageQueryLevels = 106,
  1344. OpImageQuerySamples = 107,
  1345. OpConvertFToU = 109,
  1346. OpConvertFToS = 110,
  1347. OpConvertSToF = 111,
  1348. OpConvertUToF = 112,
  1349. OpUConvert = 113,
  1350. OpSConvert = 114,
  1351. OpFConvert = 115,
  1352. OpQuantizeToF16 = 116,
  1353. OpConvertPtrToU = 117,
  1354. OpSatConvertSToU = 118,
  1355. OpSatConvertUToS = 119,
  1356. OpConvertUToPtr = 120,
  1357. OpPtrCastToGeneric = 121,
  1358. OpGenericCastToPtr = 122,
  1359. OpGenericCastToPtrExplicit = 123,
  1360. OpBitcast = 124,
  1361. OpSNegate = 126,
  1362. OpFNegate = 127,
  1363. OpIAdd = 128,
  1364. OpFAdd = 129,
  1365. OpISub = 130,
  1366. OpFSub = 131,
  1367. OpIMul = 132,
  1368. OpFMul = 133,
  1369. OpUDiv = 134,
  1370. OpSDiv = 135,
  1371. OpFDiv = 136,
  1372. OpUMod = 137,
  1373. OpSRem = 138,
  1374. OpSMod = 139,
  1375. OpFRem = 140,
  1376. OpFMod = 141,
  1377. OpVectorTimesScalar = 142,
  1378. OpMatrixTimesScalar = 143,
  1379. OpVectorTimesMatrix = 144,
  1380. OpMatrixTimesVector = 145,
  1381. OpMatrixTimesMatrix = 146,
  1382. OpOuterProduct = 147,
  1383. OpDot = 148,
  1384. OpIAddCarry = 149,
  1385. OpISubBorrow = 150,
  1386. OpUMulExtended = 151,
  1387. OpSMulExtended = 152,
  1388. OpAny = 154,
  1389. OpAll = 155,
  1390. OpIsNan = 156,
  1391. OpIsInf = 157,
  1392. OpIsFinite = 158,
  1393. OpIsNormal = 159,
  1394. OpSignBitSet = 160,
  1395. OpLessOrGreater = 161,
  1396. OpOrdered = 162,
  1397. OpUnordered = 163,
  1398. OpLogicalEqual = 164,
  1399. OpLogicalNotEqual = 165,
  1400. OpLogicalOr = 166,
  1401. OpLogicalAnd = 167,
  1402. OpLogicalNot = 168,
  1403. OpSelect = 169,
  1404. OpIEqual = 170,
  1405. OpINotEqual = 171,
  1406. OpUGreaterThan = 172,
  1407. OpSGreaterThan = 173,
  1408. OpUGreaterThanEqual = 174,
  1409. OpSGreaterThanEqual = 175,
  1410. OpULessThan = 176,
  1411. OpSLessThan = 177,
  1412. OpULessThanEqual = 178,
  1413. OpSLessThanEqual = 179,
  1414. OpFOrdEqual = 180,
  1415. OpFUnordEqual = 181,
  1416. OpFOrdNotEqual = 182,
  1417. OpFUnordNotEqual = 183,
  1418. OpFOrdLessThan = 184,
  1419. OpFUnordLessThan = 185,
  1420. OpFOrdGreaterThan = 186,
  1421. OpFUnordGreaterThan = 187,
  1422. OpFOrdLessThanEqual = 188,
  1423. OpFUnordLessThanEqual = 189,
  1424. OpFOrdGreaterThanEqual = 190,
  1425. OpFUnordGreaterThanEqual = 191,
  1426. OpShiftRightLogical = 194,
  1427. OpShiftRightArithmetic = 195,
  1428. OpShiftLeftLogical = 196,
  1429. OpBitwiseOr = 197,
  1430. OpBitwiseXor = 198,
  1431. OpBitwiseAnd = 199,
  1432. OpNot = 200,
  1433. OpBitFieldInsert = 201,
  1434. OpBitFieldSExtract = 202,
  1435. OpBitFieldUExtract = 203,
  1436. OpBitReverse = 204,
  1437. OpBitCount = 205,
  1438. OpDPdx = 207,
  1439. OpDPdy = 208,
  1440. OpFwidth = 209,
  1441. OpDPdxFine = 210,
  1442. OpDPdyFine = 211,
  1443. OpFwidthFine = 212,
  1444. OpDPdxCoarse = 213,
  1445. OpDPdyCoarse = 214,
  1446. OpFwidthCoarse = 215,
  1447. OpEmitVertex = 218,
  1448. OpEndPrimitive = 219,
  1449. OpEmitStreamVertex = 220,
  1450. OpEndStreamPrimitive = 221,
  1451. OpControlBarrier = 224,
  1452. OpMemoryBarrier = 225,
  1453. OpAtomicLoad = 227,
  1454. OpAtomicStore = 228,
  1455. OpAtomicExchange = 229,
  1456. OpAtomicCompareExchange = 230,
  1457. OpAtomicCompareExchangeWeak = 231,
  1458. OpAtomicIIncrement = 232,
  1459. OpAtomicIDecrement = 233,
  1460. OpAtomicIAdd = 234,
  1461. OpAtomicISub = 235,
  1462. OpAtomicSMin = 236,
  1463. OpAtomicUMin = 237,
  1464. OpAtomicSMax = 238,
  1465. OpAtomicUMax = 239,
  1466. OpAtomicAnd = 240,
  1467. OpAtomicOr = 241,
  1468. OpAtomicXor = 242,
  1469. OpPhi = 245,
  1470. OpLoopMerge = 246,
  1471. OpSelectionMerge = 247,
  1472. OpLabel = 248,
  1473. OpBranch = 249,
  1474. OpBranchConditional = 250,
  1475. OpSwitch = 251,
  1476. OpKill = 252,
  1477. OpReturn = 253,
  1478. OpReturnValue = 254,
  1479. OpUnreachable = 255,
  1480. OpLifetimeStart = 256,
  1481. OpLifetimeStop = 257,
  1482. OpGroupAsyncCopy = 259,
  1483. OpGroupWaitEvents = 260,
  1484. OpGroupAll = 261,
  1485. OpGroupAny = 262,
  1486. OpGroupBroadcast = 263,
  1487. OpGroupIAdd = 264,
  1488. OpGroupFAdd = 265,
  1489. OpGroupFMin = 266,
  1490. OpGroupUMin = 267,
  1491. OpGroupSMin = 268,
  1492. OpGroupFMax = 269,
  1493. OpGroupUMax = 270,
  1494. OpGroupSMax = 271,
  1495. OpReadPipe = 274,
  1496. OpWritePipe = 275,
  1497. OpReservedReadPipe = 276,
  1498. OpReservedWritePipe = 277,
  1499. OpReserveReadPipePackets = 278,
  1500. OpReserveWritePipePackets = 279,
  1501. OpCommitReadPipe = 280,
  1502. OpCommitWritePipe = 281,
  1503. OpIsValidReserveId = 282,
  1504. OpGetNumPipePackets = 283,
  1505. OpGetMaxPipePackets = 284,
  1506. OpGroupReserveReadPipePackets = 285,
  1507. OpGroupReserveWritePipePackets = 286,
  1508. OpGroupCommitReadPipe = 287,
  1509. OpGroupCommitWritePipe = 288,
  1510. OpEnqueueMarker = 291,
  1511. OpEnqueueKernel = 292,
  1512. OpGetKernelNDrangeSubGroupCount = 293,
  1513. OpGetKernelNDrangeMaxSubGroupSize = 294,
  1514. OpGetKernelWorkGroupSize = 295,
  1515. OpGetKernelPreferredWorkGroupSizeMultiple = 296,
  1516. OpRetainEvent = 297,
  1517. OpReleaseEvent = 298,
  1518. OpCreateUserEvent = 299,
  1519. OpIsValidEvent = 300,
  1520. OpSetUserEventStatus = 301,
  1521. OpCaptureEventProfilingInfo = 302,
  1522. OpGetDefaultQueue = 303,
  1523. OpBuildNDRange = 304,
  1524. OpImageSparseSampleImplicitLod = 305,
  1525. OpImageSparseSampleExplicitLod = 306,
  1526. OpImageSparseSampleDrefImplicitLod = 307,
  1527. OpImageSparseSampleDrefExplicitLod = 308,
  1528. OpImageSparseSampleProjImplicitLod = 309,
  1529. OpImageSparseSampleProjExplicitLod = 310,
  1530. OpImageSparseSampleProjDrefImplicitLod = 311,
  1531. OpImageSparseSampleProjDrefExplicitLod = 312,
  1532. OpImageSparseFetch = 313,
  1533. OpImageSparseGather = 314,
  1534. OpImageSparseDrefGather = 315,
  1535. OpImageSparseTexelsResident = 316,
  1536. OpNoLine = 317,
  1537. OpAtomicFlagTestAndSet = 318,
  1538. OpAtomicFlagClear = 319,
  1539. OpImageSparseRead = 320,
  1540. OpSizeOf = 321,
  1541. OpTypePipeStorage = 322,
  1542. OpConstantPipeStorage = 323,
  1543. OpCreatePipeFromPipeStorage = 324,
  1544. OpGetKernelLocalSizeForSubgroupCount = 325,
  1545. OpGetKernelMaxNumSubgroups = 326,
  1546. OpTypeNamedBarrier = 327,
  1547. OpNamedBarrierInitialize = 328,
  1548. OpMemoryNamedBarrier = 329,
  1549. OpModuleProcessed = 330,
  1550. OpExecutionModeId = 331,
  1551. OpDecorateId = 332,
  1552. OpGroupNonUniformElect = 333,
  1553. OpGroupNonUniformAll = 334,
  1554. OpGroupNonUniformAny = 335,
  1555. OpGroupNonUniformAllEqual = 336,
  1556. OpGroupNonUniformBroadcast = 337,
  1557. OpGroupNonUniformBroadcastFirst = 338,
  1558. OpGroupNonUniformBallot = 339,
  1559. OpGroupNonUniformInverseBallot = 340,
  1560. OpGroupNonUniformBallotBitExtract = 341,
  1561. OpGroupNonUniformBallotBitCount = 342,
  1562. OpGroupNonUniformBallotFindLSB = 343,
  1563. OpGroupNonUniformBallotFindMSB = 344,
  1564. OpGroupNonUniformShuffle = 345,
  1565. OpGroupNonUniformShuffleXor = 346,
  1566. OpGroupNonUniformShuffleUp = 347,
  1567. OpGroupNonUniformShuffleDown = 348,
  1568. OpGroupNonUniformIAdd = 349,
  1569. OpGroupNonUniformFAdd = 350,
  1570. OpGroupNonUniformIMul = 351,
  1571. OpGroupNonUniformFMul = 352,
  1572. OpGroupNonUniformSMin = 353,
  1573. OpGroupNonUniformUMin = 354,
  1574. OpGroupNonUniformFMin = 355,
  1575. OpGroupNonUniformSMax = 356,
  1576. OpGroupNonUniformUMax = 357,
  1577. OpGroupNonUniformFMax = 358,
  1578. OpGroupNonUniformBitwiseAnd = 359,
  1579. OpGroupNonUniformBitwiseOr = 360,
  1580. OpGroupNonUniformBitwiseXor = 361,
  1581. OpGroupNonUniformLogicalAnd = 362,
  1582. OpGroupNonUniformLogicalOr = 363,
  1583. OpGroupNonUniformLogicalXor = 364,
  1584. OpGroupNonUniformQuadBroadcast = 365,
  1585. OpGroupNonUniformQuadSwap = 366,
  1586. OpCopyLogical = 400,
  1587. OpPtrEqual = 401,
  1588. OpPtrNotEqual = 402,
  1589. OpPtrDiff = 403,
  1590. OpColorAttachmentReadEXT = 4160,
  1591. OpDepthAttachmentReadEXT = 4161,
  1592. OpStencilAttachmentReadEXT = 4162,
  1593. OpTerminateInvocation = 4416,
  1594. OpSubgroupBallotKHR = 4421,
  1595. OpSubgroupFirstInvocationKHR = 4422,
  1596. OpSubgroupAllKHR = 4428,
  1597. OpSubgroupAnyKHR = 4429,
  1598. OpSubgroupAllEqualKHR = 4430,
  1599. OpGroupNonUniformRotateKHR = 4431,
  1600. OpSubgroupReadInvocationKHR = 4432,
  1601. OpTraceRayKHR = 4445,
  1602. OpExecuteCallableKHR = 4446,
  1603. OpConvertUToAccelerationStructureKHR = 4447,
  1604. OpIgnoreIntersectionKHR = 4448,
  1605. OpTerminateRayKHR = 4449,
  1606. OpSDot = 4450,
  1607. OpSDotKHR = 4450,
  1608. OpUDot = 4451,
  1609. OpUDotKHR = 4451,
  1610. OpSUDot = 4452,
  1611. OpSUDotKHR = 4452,
  1612. OpSDotAccSat = 4453,
  1613. OpSDotAccSatKHR = 4453,
  1614. OpUDotAccSat = 4454,
  1615. OpUDotAccSatKHR = 4454,
  1616. OpSUDotAccSat = 4455,
  1617. OpSUDotAccSatKHR = 4455,
  1618. OpTypeCooperativeMatrixKHR = 4456,
  1619. OpCooperativeMatrixLoadKHR = 4457,
  1620. OpCooperativeMatrixStoreKHR = 4458,
  1621. OpCooperativeMatrixMulAddKHR = 4459,
  1622. OpCooperativeMatrixLengthKHR = 4460,
  1623. OpTypeRayQueryKHR = 4472,
  1624. OpRayQueryInitializeKHR = 4473,
  1625. OpRayQueryTerminateKHR = 4474,
  1626. OpRayQueryGenerateIntersectionKHR = 4475,
  1627. OpRayQueryConfirmIntersectionKHR = 4476,
  1628. OpRayQueryProceedKHR = 4477,
  1629. OpRayQueryGetIntersectionTypeKHR = 4479,
  1630. OpImageSampleWeightedQCOM = 4480,
  1631. OpImageBoxFilterQCOM = 4481,
  1632. OpImageBlockMatchSSDQCOM = 4482,
  1633. OpImageBlockMatchSADQCOM = 4483,
  1634. OpGroupIAddNonUniformAMD = 5000,
  1635. OpGroupFAddNonUniformAMD = 5001,
  1636. OpGroupFMinNonUniformAMD = 5002,
  1637. OpGroupUMinNonUniformAMD = 5003,
  1638. OpGroupSMinNonUniformAMD = 5004,
  1639. OpGroupFMaxNonUniformAMD = 5005,
  1640. OpGroupUMaxNonUniformAMD = 5006,
  1641. OpGroupSMaxNonUniformAMD = 5007,
  1642. OpFragmentMaskFetchAMD = 5011,
  1643. OpFragmentFetchAMD = 5012,
  1644. OpReadClockKHR = 5056,
  1645. OpHitObjectRecordHitMotionNV = 5249,
  1646. OpHitObjectRecordHitWithIndexMotionNV = 5250,
  1647. OpHitObjectRecordMissMotionNV = 5251,
  1648. OpHitObjectGetWorldToObjectNV = 5252,
  1649. OpHitObjectGetObjectToWorldNV = 5253,
  1650. OpHitObjectGetObjectRayDirectionNV = 5254,
  1651. OpHitObjectGetObjectRayOriginNV = 5255,
  1652. OpHitObjectTraceRayMotionNV = 5256,
  1653. OpHitObjectGetShaderRecordBufferHandleNV = 5257,
  1654. OpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
  1655. OpHitObjectRecordEmptyNV = 5259,
  1656. OpHitObjectTraceRayNV = 5260,
  1657. OpHitObjectRecordHitNV = 5261,
  1658. OpHitObjectRecordHitWithIndexNV = 5262,
  1659. OpHitObjectRecordMissNV = 5263,
  1660. OpHitObjectExecuteShaderNV = 5264,
  1661. OpHitObjectGetCurrentTimeNV = 5265,
  1662. OpHitObjectGetAttributesNV = 5266,
  1663. OpHitObjectGetHitKindNV = 5267,
  1664. OpHitObjectGetPrimitiveIndexNV = 5268,
  1665. OpHitObjectGetGeometryIndexNV = 5269,
  1666. OpHitObjectGetInstanceIdNV = 5270,
  1667. OpHitObjectGetInstanceCustomIndexNV = 5271,
  1668. OpHitObjectGetWorldRayDirectionNV = 5272,
  1669. OpHitObjectGetWorldRayOriginNV = 5273,
  1670. OpHitObjectGetRayTMaxNV = 5274,
  1671. OpHitObjectGetRayTMinNV = 5275,
  1672. OpHitObjectIsEmptyNV = 5276,
  1673. OpHitObjectIsHitNV = 5277,
  1674. OpHitObjectIsMissNV = 5278,
  1675. OpReorderThreadWithHitObjectNV = 5279,
  1676. OpReorderThreadWithHintNV = 5280,
  1677. OpTypeHitObjectNV = 5281,
  1678. OpImageSampleFootprintNV = 5283,
  1679. OpEmitMeshTasksEXT = 5294,
  1680. OpSetMeshOutputsEXT = 5295,
  1681. OpGroupNonUniformPartitionNV = 5296,
  1682. OpWritePackedPrimitiveIndices4x8NV = 5299,
  1683. OpFetchMicroTriangleVertexPositionNV = 5300,
  1684. OpFetchMicroTriangleVertexBarycentricNV = 5301,
  1685. OpReportIntersectionKHR = 5334,
  1686. OpReportIntersectionNV = 5334,
  1687. OpIgnoreIntersectionNV = 5335,
  1688. OpTerminateRayNV = 5336,
  1689. OpTraceNV = 5337,
  1690. OpTraceMotionNV = 5338,
  1691. OpTraceRayMotionNV = 5339,
  1692. OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
  1693. OpTypeAccelerationStructureKHR = 5341,
  1694. OpTypeAccelerationStructureNV = 5341,
  1695. OpExecuteCallableNV = 5344,
  1696. OpTypeCooperativeMatrixNV = 5358,
  1697. OpCooperativeMatrixLoadNV = 5359,
  1698. OpCooperativeMatrixStoreNV = 5360,
  1699. OpCooperativeMatrixMulAddNV = 5361,
  1700. OpCooperativeMatrixLengthNV = 5362,
  1701. OpBeginInvocationInterlockEXT = 5364,
  1702. OpEndInvocationInterlockEXT = 5365,
  1703. OpDemoteToHelperInvocation = 5380,
  1704. OpDemoteToHelperInvocationEXT = 5380,
  1705. OpIsHelperInvocationEXT = 5381,
  1706. OpConvertUToImageNV = 5391,
  1707. OpConvertUToSamplerNV = 5392,
  1708. OpConvertImageToUNV = 5393,
  1709. OpConvertSamplerToUNV = 5394,
  1710. OpConvertUToSampledImageNV = 5395,
  1711. OpConvertSampledImageToUNV = 5396,
  1712. OpSamplerImageAddressingModeNV = 5397,
  1713. OpSubgroupShuffleINTEL = 5571,
  1714. OpSubgroupShuffleDownINTEL = 5572,
  1715. OpSubgroupShuffleUpINTEL = 5573,
  1716. OpSubgroupShuffleXorINTEL = 5574,
  1717. OpSubgroupBlockReadINTEL = 5575,
  1718. OpSubgroupBlockWriteINTEL = 5576,
  1719. OpSubgroupImageBlockReadINTEL = 5577,
  1720. OpSubgroupImageBlockWriteINTEL = 5578,
  1721. OpSubgroupImageMediaBlockReadINTEL = 5580,
  1722. OpSubgroupImageMediaBlockWriteINTEL = 5581,
  1723. OpUCountLeadingZerosINTEL = 5585,
  1724. OpUCountTrailingZerosINTEL = 5586,
  1725. OpAbsISubINTEL = 5587,
  1726. OpAbsUSubINTEL = 5588,
  1727. OpIAddSatINTEL = 5589,
  1728. OpUAddSatINTEL = 5590,
  1729. OpIAverageINTEL = 5591,
  1730. OpUAverageINTEL = 5592,
  1731. OpIAverageRoundedINTEL = 5593,
  1732. OpUAverageRoundedINTEL = 5594,
  1733. OpISubSatINTEL = 5595,
  1734. OpUSubSatINTEL = 5596,
  1735. OpIMul32x16INTEL = 5597,
  1736. OpUMul32x16INTEL = 5598,
  1737. OpConstantFunctionPointerINTEL = 5600,
  1738. OpFunctionPointerCallINTEL = 5601,
  1739. OpAsmTargetINTEL = 5609,
  1740. OpAsmINTEL = 5610,
  1741. OpAsmCallINTEL = 5611,
  1742. OpAtomicFMinEXT = 5614,
  1743. OpAtomicFMaxEXT = 5615,
  1744. OpAssumeTrueKHR = 5630,
  1745. OpExpectKHR = 5631,
  1746. OpDecorateString = 5632,
  1747. OpDecorateStringGOOGLE = 5632,
  1748. OpMemberDecorateString = 5633,
  1749. OpMemberDecorateStringGOOGLE = 5633,
  1750. OpVmeImageINTEL = 5699,
  1751. OpTypeVmeImageINTEL = 5700,
  1752. OpTypeAvcImePayloadINTEL = 5701,
  1753. OpTypeAvcRefPayloadINTEL = 5702,
  1754. OpTypeAvcSicPayloadINTEL = 5703,
  1755. OpTypeAvcMcePayloadINTEL = 5704,
  1756. OpTypeAvcMceResultINTEL = 5705,
  1757. OpTypeAvcImeResultINTEL = 5706,
  1758. OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
  1759. OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
  1760. OpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
  1761. OpTypeAvcImeDualReferenceStreaminINTEL = 5710,
  1762. OpTypeAvcRefResultINTEL = 5711,
  1763. OpTypeAvcSicResultINTEL = 5712,
  1764. OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
  1765. OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
  1766. OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
  1767. OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
  1768. OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
  1769. OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
  1770. OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
  1771. OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
  1772. OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
  1773. OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
  1774. OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
  1775. OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
  1776. OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
  1777. OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
  1778. OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
  1779. OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
  1780. OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
  1781. OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
  1782. OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
  1783. OpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
  1784. OpSubgroupAvcMceConvertToImeResultINTEL = 5733,
  1785. OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
  1786. OpSubgroupAvcMceConvertToRefResultINTEL = 5735,
  1787. OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
  1788. OpSubgroupAvcMceConvertToSicResultINTEL = 5737,
  1789. OpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
  1790. OpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
  1791. OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
  1792. OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
  1793. OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
  1794. OpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
  1795. OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
  1796. OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
  1797. OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
  1798. OpSubgroupAvcImeInitializeINTEL = 5747,
  1799. OpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
  1800. OpSubgroupAvcImeSetDualReferenceINTEL = 5749,
  1801. OpSubgroupAvcImeRefWindowSizeINTEL = 5750,
  1802. OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
  1803. OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
  1804. OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
  1805. OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
  1806. OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
  1807. OpSubgroupAvcImeSetWeightedSadINTEL = 5756,
  1808. OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
  1809. OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
  1810. OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
  1811. OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
  1812. OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
  1813. OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
  1814. OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
  1815. OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
  1816. OpSubgroupAvcImeConvertToMceResultINTEL = 5765,
  1817. OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
  1818. OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
  1819. OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
  1820. OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
  1821. OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
  1822. OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
  1823. OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
  1824. OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
  1825. OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
  1826. OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
  1827. OpSubgroupAvcImeGetBorderReachedINTEL = 5776,
  1828. OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
  1829. OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
  1830. OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
  1831. OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
  1832. OpSubgroupAvcFmeInitializeINTEL = 5781,
  1833. OpSubgroupAvcBmeInitializeINTEL = 5782,
  1834. OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
  1835. OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
  1836. OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
  1837. OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
  1838. OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
  1839. OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
  1840. OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
  1841. OpSubgroupAvcRefConvertToMceResultINTEL = 5790,
  1842. OpSubgroupAvcSicInitializeINTEL = 5791,
  1843. OpSubgroupAvcSicConfigureSkcINTEL = 5792,
  1844. OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
  1845. OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
  1846. OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
  1847. OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
  1848. OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
  1849. OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
  1850. OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
  1851. OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
  1852. OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
  1853. OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
  1854. OpSubgroupAvcSicEvaluateIpeINTEL = 5803,
  1855. OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
  1856. OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
  1857. OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
  1858. OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
  1859. OpSubgroupAvcSicConvertToMceResultINTEL = 5808,
  1860. OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
  1861. OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
  1862. OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
  1863. OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
  1864. OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
  1865. OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
  1866. OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
  1867. OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
  1868. OpVariableLengthArrayINTEL = 5818,
  1869. OpSaveMemoryINTEL = 5819,
  1870. OpRestoreMemoryINTEL = 5820,
  1871. OpArbitraryFloatSinCosPiINTEL = 5840,
  1872. OpArbitraryFloatCastINTEL = 5841,
  1873. OpArbitraryFloatCastFromIntINTEL = 5842,
  1874. OpArbitraryFloatCastToIntINTEL = 5843,
  1875. OpArbitraryFloatAddINTEL = 5846,
  1876. OpArbitraryFloatSubINTEL = 5847,
  1877. OpArbitraryFloatMulINTEL = 5848,
  1878. OpArbitraryFloatDivINTEL = 5849,
  1879. OpArbitraryFloatGTINTEL = 5850,
  1880. OpArbitraryFloatGEINTEL = 5851,
  1881. OpArbitraryFloatLTINTEL = 5852,
  1882. OpArbitraryFloatLEINTEL = 5853,
  1883. OpArbitraryFloatEQINTEL = 5854,
  1884. OpArbitraryFloatRecipINTEL = 5855,
  1885. OpArbitraryFloatRSqrtINTEL = 5856,
  1886. OpArbitraryFloatCbrtINTEL = 5857,
  1887. OpArbitraryFloatHypotINTEL = 5858,
  1888. OpArbitraryFloatSqrtINTEL = 5859,
  1889. OpArbitraryFloatLogINTEL = 5860,
  1890. OpArbitraryFloatLog2INTEL = 5861,
  1891. OpArbitraryFloatLog10INTEL = 5862,
  1892. OpArbitraryFloatLog1pINTEL = 5863,
  1893. OpArbitraryFloatExpINTEL = 5864,
  1894. OpArbitraryFloatExp2INTEL = 5865,
  1895. OpArbitraryFloatExp10INTEL = 5866,
  1896. OpArbitraryFloatExpm1INTEL = 5867,
  1897. OpArbitraryFloatSinINTEL = 5868,
  1898. OpArbitraryFloatCosINTEL = 5869,
  1899. OpArbitraryFloatSinCosINTEL = 5870,
  1900. OpArbitraryFloatSinPiINTEL = 5871,
  1901. OpArbitraryFloatCosPiINTEL = 5872,
  1902. OpArbitraryFloatASinINTEL = 5873,
  1903. OpArbitraryFloatASinPiINTEL = 5874,
  1904. OpArbitraryFloatACosINTEL = 5875,
  1905. OpArbitraryFloatACosPiINTEL = 5876,
  1906. OpArbitraryFloatATanINTEL = 5877,
  1907. OpArbitraryFloatATanPiINTEL = 5878,
  1908. OpArbitraryFloatATan2INTEL = 5879,
  1909. OpArbitraryFloatPowINTEL = 5880,
  1910. OpArbitraryFloatPowRINTEL = 5881,
  1911. OpArbitraryFloatPowNINTEL = 5882,
  1912. OpLoopControlINTEL = 5887,
  1913. OpAliasDomainDeclINTEL = 5911,
  1914. OpAliasScopeDeclINTEL = 5912,
  1915. OpAliasScopeListDeclINTEL = 5913,
  1916. OpFixedSqrtINTEL = 5923,
  1917. OpFixedRecipINTEL = 5924,
  1918. OpFixedRsqrtINTEL = 5925,
  1919. OpFixedSinINTEL = 5926,
  1920. OpFixedCosINTEL = 5927,
  1921. OpFixedSinCosINTEL = 5928,
  1922. OpFixedSinPiINTEL = 5929,
  1923. OpFixedCosPiINTEL = 5930,
  1924. OpFixedSinCosPiINTEL = 5931,
  1925. OpFixedLogINTEL = 5932,
  1926. OpFixedExpINTEL = 5933,
  1927. OpPtrCastToCrossWorkgroupINTEL = 5934,
  1928. OpCrossWorkgroupCastToPtrINTEL = 5938,
  1929. OpReadPipeBlockingINTEL = 5946,
  1930. OpWritePipeBlockingINTEL = 5947,
  1931. OpFPGARegINTEL = 5949,
  1932. OpRayQueryGetRayTMinKHR = 6016,
  1933. OpRayQueryGetRayFlagsKHR = 6017,
  1934. OpRayQueryGetIntersectionTKHR = 6018,
  1935. OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
  1936. OpRayQueryGetIntersectionInstanceIdKHR = 6020,
  1937. OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
  1938. OpRayQueryGetIntersectionGeometryIndexKHR = 6022,
  1939. OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
  1940. OpRayQueryGetIntersectionBarycentricsKHR = 6024,
  1941. OpRayQueryGetIntersectionFrontFaceKHR = 6025,
  1942. OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
  1943. OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
  1944. OpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
  1945. OpRayQueryGetWorldRayDirectionKHR = 6029,
  1946. OpRayQueryGetWorldRayOriginKHR = 6030,
  1947. OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
  1948. OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
  1949. OpAtomicFAddEXT = 6035,
  1950. OpTypeBufferSurfaceINTEL = 6086,
  1951. OpTypeStructContinuedINTEL = 6090,
  1952. OpConstantCompositeContinuedINTEL = 6091,
  1953. OpSpecConstantCompositeContinuedINTEL = 6092,
  1954. OpControlBarrierArriveINTEL = 6142,
  1955. OpControlBarrierWaitINTEL = 6143,
  1956. OpGroupIMulKHR = 6401,
  1957. OpGroupFMulKHR = 6402,
  1958. OpGroupBitwiseAndKHR = 6403,
  1959. OpGroupBitwiseOrKHR = 6404,
  1960. OpGroupBitwiseXorKHR = 6405,
  1961. OpGroupLogicalAndKHR = 6406,
  1962. OpGroupLogicalOrKHR = 6407,
  1963. OpGroupLogicalXorKHR = 6408,
  1964. OpMax = 0x7fffffff,
  1965. };
  1966. #ifdef SPV_ENABLE_UTILITY_CODE
  1967. #ifndef __cplusplus
  1968. #include <stdbool.h>
  1969. #endif
  1970. inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
  1971. *hasResult = *hasResultType = false;
  1972. switch (opcode) {
  1973. default: /* unknown opcode */ break;
  1974. case OpNop: *hasResult = false; *hasResultType = false; break;
  1975. case OpUndef: *hasResult = true; *hasResultType = true; break;
  1976. case OpSourceContinued: *hasResult = false; *hasResultType = false; break;
  1977. case OpSource: *hasResult = false; *hasResultType = false; break;
  1978. case OpSourceExtension: *hasResult = false; *hasResultType = false; break;
  1979. case OpName: *hasResult = false; *hasResultType = false; break;
  1980. case OpMemberName: *hasResult = false; *hasResultType = false; break;
  1981. case OpString: *hasResult = true; *hasResultType = false; break;
  1982. case OpLine: *hasResult = false; *hasResultType = false; break;
  1983. case OpExtension: *hasResult = false; *hasResultType = false; break;
  1984. case OpExtInstImport: *hasResult = true; *hasResultType = false; break;
  1985. case OpExtInst: *hasResult = true; *hasResultType = true; break;
  1986. case OpMemoryModel: *hasResult = false; *hasResultType = false; break;
  1987. case OpEntryPoint: *hasResult = false; *hasResultType = false; break;
  1988. case OpExecutionMode: *hasResult = false; *hasResultType = false; break;
  1989. case OpCapability: *hasResult = false; *hasResultType = false; break;
  1990. case OpTypeVoid: *hasResult = true; *hasResultType = false; break;
  1991. case OpTypeBool: *hasResult = true; *hasResultType = false; break;
  1992. case OpTypeInt: *hasResult = true; *hasResultType = false; break;
  1993. case OpTypeFloat: *hasResult = true; *hasResultType = false; break;
  1994. case OpTypeVector: *hasResult = true; *hasResultType = false; break;
  1995. case OpTypeMatrix: *hasResult = true; *hasResultType = false; break;
  1996. case OpTypeImage: *hasResult = true; *hasResultType = false; break;
  1997. case OpTypeSampler: *hasResult = true; *hasResultType = false; break;
  1998. case OpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
  1999. case OpTypeArray: *hasResult = true; *hasResultType = false; break;
  2000. case OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
  2001. case OpTypeStruct: *hasResult = true; *hasResultType = false; break;
  2002. case OpTypeOpaque: *hasResult = true; *hasResultType = false; break;
  2003. case OpTypePointer: *hasResult = true; *hasResultType = false; break;
  2004. case OpTypeFunction: *hasResult = true; *hasResultType = false; break;
  2005. case OpTypeEvent: *hasResult = true; *hasResultType = false; break;
  2006. case OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
  2007. case OpTypeReserveId: *hasResult = true; *hasResultType = false; break;
  2008. case OpTypeQueue: *hasResult = true; *hasResultType = false; break;
  2009. case OpTypePipe: *hasResult = true; *hasResultType = false; break;
  2010. case OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
  2011. case OpConstantTrue: *hasResult = true; *hasResultType = true; break;
  2012. case OpConstantFalse: *hasResult = true; *hasResultType = true; break;
  2013. case OpConstant: *hasResult = true; *hasResultType = true; break;
  2014. case OpConstantComposite: *hasResult = true; *hasResultType = true; break;
  2015. case OpConstantSampler: *hasResult = true; *hasResultType = true; break;
  2016. case OpConstantNull: *hasResult = true; *hasResultType = true; break;
  2017. case OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
  2018. case OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
  2019. case OpSpecConstant: *hasResult = true; *hasResultType = true; break;
  2020. case OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
  2021. case OpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
  2022. case OpFunction: *hasResult = true; *hasResultType = true; break;
  2023. case OpFunctionParameter: *hasResult = true; *hasResultType = true; break;
  2024. case OpFunctionEnd: *hasResult = false; *hasResultType = false; break;
  2025. case OpFunctionCall: *hasResult = true; *hasResultType = true; break;
  2026. case OpVariable: *hasResult = true; *hasResultType = true; break;
  2027. case OpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
  2028. case OpLoad: *hasResult = true; *hasResultType = true; break;
  2029. case OpStore: *hasResult = false; *hasResultType = false; break;
  2030. case OpCopyMemory: *hasResult = false; *hasResultType = false; break;
  2031. case OpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
  2032. case OpAccessChain: *hasResult = true; *hasResultType = true; break;
  2033. case OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
  2034. case OpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
  2035. case OpArrayLength: *hasResult = true; *hasResultType = true; break;
  2036. case OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
  2037. case OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
  2038. case OpDecorate: *hasResult = false; *hasResultType = false; break;
  2039. case OpMemberDecorate: *hasResult = false; *hasResultType = false; break;
  2040. case OpDecorationGroup: *hasResult = true; *hasResultType = false; break;
  2041. case OpGroupDecorate: *hasResult = false; *hasResultType = false; break;
  2042. case OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
  2043. case OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
  2044. case OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
  2045. case OpVectorShuffle: *hasResult = true; *hasResultType = true; break;
  2046. case OpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
  2047. case OpCompositeExtract: *hasResult = true; *hasResultType = true; break;
  2048. case OpCompositeInsert: *hasResult = true; *hasResultType = true; break;
  2049. case OpCopyObject: *hasResult = true; *hasResultType = true; break;
  2050. case OpTranspose: *hasResult = true; *hasResultType = true; break;
  2051. case OpSampledImage: *hasResult = true; *hasResultType = true; break;
  2052. case OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
  2053. case OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
  2054. case OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
  2055. case OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
  2056. case OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
  2057. case OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
  2058. case OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
  2059. case OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
  2060. case OpImageFetch: *hasResult = true; *hasResultType = true; break;
  2061. case OpImageGather: *hasResult = true; *hasResultType = true; break;
  2062. case OpImageDrefGather: *hasResult = true; *hasResultType = true; break;
  2063. case OpImageRead: *hasResult = true; *hasResultType = true; break;
  2064. case OpImageWrite: *hasResult = false; *hasResultType = false; break;
  2065. case OpImage: *hasResult = true; *hasResultType = true; break;
  2066. case OpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
  2067. case OpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
  2068. case OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
  2069. case OpImageQuerySize: *hasResult = true; *hasResultType = true; break;
  2070. case OpImageQueryLod: *hasResult = true; *hasResultType = true; break;
  2071. case OpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
  2072. case OpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
  2073. case OpConvertFToU: *hasResult = true; *hasResultType = true; break;
  2074. case OpConvertFToS: *hasResult = true; *hasResultType = true; break;
  2075. case OpConvertSToF: *hasResult = true; *hasResultType = true; break;
  2076. case OpConvertUToF: *hasResult = true; *hasResultType = true; break;
  2077. case OpUConvert: *hasResult = true; *hasResultType = true; break;
  2078. case OpSConvert: *hasResult = true; *hasResultType = true; break;
  2079. case OpFConvert: *hasResult = true; *hasResultType = true; break;
  2080. case OpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
  2081. case OpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
  2082. case OpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
  2083. case OpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
  2084. case OpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
  2085. case OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
  2086. case OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
  2087. case OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
  2088. case OpBitcast: *hasResult = true; *hasResultType = true; break;
  2089. case OpSNegate: *hasResult = true; *hasResultType = true; break;
  2090. case OpFNegate: *hasResult = true; *hasResultType = true; break;
  2091. case OpIAdd: *hasResult = true; *hasResultType = true; break;
  2092. case OpFAdd: *hasResult = true; *hasResultType = true; break;
  2093. case OpISub: *hasResult = true; *hasResultType = true; break;
  2094. case OpFSub: *hasResult = true; *hasResultType = true; break;
  2095. case OpIMul: *hasResult = true; *hasResultType = true; break;
  2096. case OpFMul: *hasResult = true; *hasResultType = true; break;
  2097. case OpUDiv: *hasResult = true; *hasResultType = true; break;
  2098. case OpSDiv: *hasResult = true; *hasResultType = true; break;
  2099. case OpFDiv: *hasResult = true; *hasResultType = true; break;
  2100. case OpUMod: *hasResult = true; *hasResultType = true; break;
  2101. case OpSRem: *hasResult = true; *hasResultType = true; break;
  2102. case OpSMod: *hasResult = true; *hasResultType = true; break;
  2103. case OpFRem: *hasResult = true; *hasResultType = true; break;
  2104. case OpFMod: *hasResult = true; *hasResultType = true; break;
  2105. case OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
  2106. case OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
  2107. case OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
  2108. case OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
  2109. case OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
  2110. case OpOuterProduct: *hasResult = true; *hasResultType = true; break;
  2111. case OpDot: *hasResult = true; *hasResultType = true; break;
  2112. case OpIAddCarry: *hasResult = true; *hasResultType = true; break;
  2113. case OpISubBorrow: *hasResult = true; *hasResultType = true; break;
  2114. case OpUMulExtended: *hasResult = true; *hasResultType = true; break;
  2115. case OpSMulExtended: *hasResult = true; *hasResultType = true; break;
  2116. case OpAny: *hasResult = true; *hasResultType = true; break;
  2117. case OpAll: *hasResult = true; *hasResultType = true; break;
  2118. case OpIsNan: *hasResult = true; *hasResultType = true; break;
  2119. case OpIsInf: *hasResult = true; *hasResultType = true; break;
  2120. case OpIsFinite: *hasResult = true; *hasResultType = true; break;
  2121. case OpIsNormal: *hasResult = true; *hasResultType = true; break;
  2122. case OpSignBitSet: *hasResult = true; *hasResultType = true; break;
  2123. case OpLessOrGreater: *hasResult = true; *hasResultType = true; break;
  2124. case OpOrdered: *hasResult = true; *hasResultType = true; break;
  2125. case OpUnordered: *hasResult = true; *hasResultType = true; break;
  2126. case OpLogicalEqual: *hasResult = true; *hasResultType = true; break;
  2127. case OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
  2128. case OpLogicalOr: *hasResult = true; *hasResultType = true; break;
  2129. case OpLogicalAnd: *hasResult = true; *hasResultType = true; break;
  2130. case OpLogicalNot: *hasResult = true; *hasResultType = true; break;
  2131. case OpSelect: *hasResult = true; *hasResultType = true; break;
  2132. case OpIEqual: *hasResult = true; *hasResultType = true; break;
  2133. case OpINotEqual: *hasResult = true; *hasResultType = true; break;
  2134. case OpUGreaterThan: *hasResult = true; *hasResultType = true; break;
  2135. case OpSGreaterThan: *hasResult = true; *hasResultType = true; break;
  2136. case OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
  2137. case OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
  2138. case OpULessThan: *hasResult = true; *hasResultType = true; break;
  2139. case OpSLessThan: *hasResult = true; *hasResultType = true; break;
  2140. case OpULessThanEqual: *hasResult = true; *hasResultType = true; break;
  2141. case OpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
  2142. case OpFOrdEqual: *hasResult = true; *hasResultType = true; break;
  2143. case OpFUnordEqual: *hasResult = true; *hasResultType = true; break;
  2144. case OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
  2145. case OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
  2146. case OpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
  2147. case OpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
  2148. case OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
  2149. case OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
  2150. case OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
  2151. case OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
  2152. case OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
  2153. case OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
  2154. case OpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
  2155. case OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
  2156. case OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
  2157. case OpBitwiseOr: *hasResult = true; *hasResultType = true; break;
  2158. case OpBitwiseXor: *hasResult = true; *hasResultType = true; break;
  2159. case OpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
  2160. case OpNot: *hasResult = true; *hasResultType = true; break;
  2161. case OpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
  2162. case OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
  2163. case OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
  2164. case OpBitReverse: *hasResult = true; *hasResultType = true; break;
  2165. case OpBitCount: *hasResult = true; *hasResultType = true; break;
  2166. case OpDPdx: *hasResult = true; *hasResultType = true; break;
  2167. case OpDPdy: *hasResult = true; *hasResultType = true; break;
  2168. case OpFwidth: *hasResult = true; *hasResultType = true; break;
  2169. case OpDPdxFine: *hasResult = true; *hasResultType = true; break;
  2170. case OpDPdyFine: *hasResult = true; *hasResultType = true; break;
  2171. case OpFwidthFine: *hasResult = true; *hasResultType = true; break;
  2172. case OpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
  2173. case OpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
  2174. case OpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
  2175. case OpEmitVertex: *hasResult = false; *hasResultType = false; break;
  2176. case OpEndPrimitive: *hasResult = false; *hasResultType = false; break;
  2177. case OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
  2178. case OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
  2179. case OpControlBarrier: *hasResult = false; *hasResultType = false; break;
  2180. case OpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
  2181. case OpAtomicLoad: *hasResult = true; *hasResultType = true; break;
  2182. case OpAtomicStore: *hasResult = false; *hasResultType = false; break;
  2183. case OpAtomicExchange: *hasResult = true; *hasResultType = true; break;
  2184. case OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
  2185. case OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
  2186. case OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
  2187. case OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
  2188. case OpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
  2189. case OpAtomicISub: *hasResult = true; *hasResultType = true; break;
  2190. case OpAtomicSMin: *hasResult = true; *hasResultType = true; break;
  2191. case OpAtomicUMin: *hasResult = true; *hasResultType = true; break;
  2192. case OpAtomicSMax: *hasResult = true; *hasResultType = true; break;
  2193. case OpAtomicUMax: *hasResult = true; *hasResultType = true; break;
  2194. case OpAtomicAnd: *hasResult = true; *hasResultType = true; break;
  2195. case OpAtomicOr: *hasResult = true; *hasResultType = true; break;
  2196. case OpAtomicXor: *hasResult = true; *hasResultType = true; break;
  2197. case OpPhi: *hasResult = true; *hasResultType = true; break;
  2198. case OpLoopMerge: *hasResult = false; *hasResultType = false; break;
  2199. case OpSelectionMerge: *hasResult = false; *hasResultType = false; break;
  2200. case OpLabel: *hasResult = true; *hasResultType = false; break;
  2201. case OpBranch: *hasResult = false; *hasResultType = false; break;
  2202. case OpBranchConditional: *hasResult = false; *hasResultType = false; break;
  2203. case OpSwitch: *hasResult = false; *hasResultType = false; break;
  2204. case OpKill: *hasResult = false; *hasResultType = false; break;
  2205. case OpReturn: *hasResult = false; *hasResultType = false; break;
  2206. case OpReturnValue: *hasResult = false; *hasResultType = false; break;
  2207. case OpUnreachable: *hasResult = false; *hasResultType = false; break;
  2208. case OpLifetimeStart: *hasResult = false; *hasResultType = false; break;
  2209. case OpLifetimeStop: *hasResult = false; *hasResultType = false; break;
  2210. case OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
  2211. case OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
  2212. case OpGroupAll: *hasResult = true; *hasResultType = true; break;
  2213. case OpGroupAny: *hasResult = true; *hasResultType = true; break;
  2214. case OpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
  2215. case OpGroupIAdd: *hasResult = true; *hasResultType = true; break;
  2216. case OpGroupFAdd: *hasResult = true; *hasResultType = true; break;
  2217. case OpGroupFMin: *hasResult = true; *hasResultType = true; break;
  2218. case OpGroupUMin: *hasResult = true; *hasResultType = true; break;
  2219. case OpGroupSMin: *hasResult = true; *hasResultType = true; break;
  2220. case OpGroupFMax: *hasResult = true; *hasResultType = true; break;
  2221. case OpGroupUMax: *hasResult = true; *hasResultType = true; break;
  2222. case OpGroupSMax: *hasResult = true; *hasResultType = true; break;
  2223. case OpReadPipe: *hasResult = true; *hasResultType = true; break;
  2224. case OpWritePipe: *hasResult = true; *hasResultType = true; break;
  2225. case OpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
  2226. case OpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
  2227. case OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
  2228. case OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
  2229. case OpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
  2230. case OpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
  2231. case OpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
  2232. case OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
  2233. case OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
  2234. case OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
  2235. case OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
  2236. case OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
  2237. case OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
  2238. case OpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
  2239. case OpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
  2240. case OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
  2241. case OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
  2242. case OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
  2243. case OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
  2244. case OpRetainEvent: *hasResult = false; *hasResultType = false; break;
  2245. case OpReleaseEvent: *hasResult = false; *hasResultType = false; break;
  2246. case OpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
  2247. case OpIsValidEvent: *hasResult = true; *hasResultType = true; break;
  2248. case OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
  2249. case OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
  2250. case OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
  2251. case OpBuildNDRange: *hasResult = true; *hasResultType = true; break;
  2252. case OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
  2253. case OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
  2254. case OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
  2255. case OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
  2256. case OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
  2257. case OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
  2258. case OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
  2259. case OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
  2260. case OpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
  2261. case OpImageSparseGather: *hasResult = true; *hasResultType = true; break;
  2262. case OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
  2263. case OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
  2264. case OpNoLine: *hasResult = false; *hasResultType = false; break;
  2265. case OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
  2266. case OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
  2267. case OpImageSparseRead: *hasResult = true; *hasResultType = true; break;
  2268. case OpSizeOf: *hasResult = true; *hasResultType = true; break;
  2269. case OpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
  2270. case OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
  2271. case OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
  2272. case OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
  2273. case OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
  2274. case OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
  2275. case OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
  2276. case OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
  2277. case OpModuleProcessed: *hasResult = false; *hasResultType = false; break;
  2278. case OpExecutionModeId: *hasResult = false; *hasResultType = false; break;
  2279. case OpDecorateId: *hasResult = false; *hasResultType = false; break;
  2280. case OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
  2281. case OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
  2282. case OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
  2283. case OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
  2284. case OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
  2285. case OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
  2286. case OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
  2287. case OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
  2288. case OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
  2289. case OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
  2290. case OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
  2291. case OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
  2292. case OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
  2293. case OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
  2294. case OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
  2295. case OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
  2296. case OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
  2297. case OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
  2298. case OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
  2299. case OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
  2300. case OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
  2301. case OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
  2302. case OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
  2303. case OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
  2304. case OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
  2305. case OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
  2306. case OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
  2307. case OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
  2308. case OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
  2309. case OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
  2310. case OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
  2311. case OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
  2312. case OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
  2313. case OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
  2314. case OpCopyLogical: *hasResult = true; *hasResultType = true; break;
  2315. case OpPtrEqual: *hasResult = true; *hasResultType = true; break;
  2316. case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
  2317. case OpPtrDiff: *hasResult = true; *hasResultType = true; break;
  2318. case OpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
  2319. case OpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
  2320. case OpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
  2321. case OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
  2322. case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
  2323. case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
  2324. case OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
  2325. case OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
  2326. case OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
  2327. case OpGroupNonUniformRotateKHR: *hasResult = true; *hasResultType = true; break;
  2328. case OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
  2329. case OpTraceRayKHR: *hasResult = false; *hasResultType = false; break;
  2330. case OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;
  2331. case OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
  2332. case OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
  2333. case OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
  2334. case OpSDot: *hasResult = true; *hasResultType = true; break;
  2335. case OpUDot: *hasResult = true; *hasResultType = true; break;
  2336. case OpSUDot: *hasResult = true; *hasResultType = true; break;
  2337. case OpSDotAccSat: *hasResult = true; *hasResultType = true; break;
  2338. case OpUDotAccSat: *hasResult = true; *hasResultType = true; break;
  2339. case OpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
  2340. case OpTypeCooperativeMatrixKHR: *hasResult = true; *hasResultType = false; break;
  2341. case OpCooperativeMatrixLoadKHR: *hasResult = true; *hasResultType = true; break;
  2342. case OpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break;
  2343. case OpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break;
  2344. case OpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break;
  2345. case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
  2346. case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
  2347. case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
  2348. case OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
  2349. case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
  2350. case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
  2351. case OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
  2352. case OpImageSampleWeightedQCOM: *hasResult = true; *hasResultType = true; break;
  2353. case OpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break;
  2354. case OpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; break;
  2355. case OpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; break;
  2356. case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2357. case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2358. case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2359. case OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2360. case OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2361. case OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2362. case OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2363. case OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
  2364. case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
  2365. case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
  2366. case OpReadClockKHR: *hasResult = true; *hasResultType = true; break;
  2367. case OpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
  2368. case OpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
  2369. case OpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;
  2370. case OpHitObjectGetWorldToObjectNV: *hasResult = true; *hasResultType = true; break;
  2371. case OpHitObjectGetObjectToWorldNV: *hasResult = true; *hasResultType = true; break;
  2372. case OpHitObjectGetObjectRayDirectionNV: *hasResult = true; *hasResultType = true; break;
  2373. case OpHitObjectGetObjectRayOriginNV: *hasResult = true; *hasResultType = true; break;
  2374. case OpHitObjectTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
  2375. case OpHitObjectGetShaderRecordBufferHandleNV: *hasResult = true; *hasResultType = true; break;
  2376. case OpHitObjectGetShaderBindingTableRecordIndexNV: *hasResult = true; *hasResultType = true; break;
  2377. case OpHitObjectRecordEmptyNV: *hasResult = false; *hasResultType = false; break;
  2378. case OpHitObjectTraceRayNV: *hasResult = false; *hasResultType = false; break;
  2379. case OpHitObjectRecordHitNV: *hasResult = false; *hasResultType = false; break;
  2380. case OpHitObjectRecordHitWithIndexNV: *hasResult = false; *hasResultType = false; break;
  2381. case OpHitObjectRecordMissNV: *hasResult = false; *hasResultType = false; break;
  2382. case OpHitObjectExecuteShaderNV: *hasResult = false; *hasResultType = false; break;
  2383. case OpHitObjectGetCurrentTimeNV: *hasResult = true; *hasResultType = true; break;
  2384. case OpHitObjectGetAttributesNV: *hasResult = false; *hasResultType = false; break;
  2385. case OpHitObjectGetHitKindNV: *hasResult = true; *hasResultType = true; break;
  2386. case OpHitObjectGetPrimitiveIndexNV: *hasResult = true; *hasResultType = true; break;
  2387. case OpHitObjectGetGeometryIndexNV: *hasResult = true; *hasResultType = true; break;
  2388. case OpHitObjectGetInstanceIdNV: *hasResult = true; *hasResultType = true; break;
  2389. case OpHitObjectGetInstanceCustomIndexNV: *hasResult = true; *hasResultType = true; break;
  2390. case OpHitObjectGetWorldRayDirectionNV: *hasResult = true; *hasResultType = true; break;
  2391. case OpHitObjectGetWorldRayOriginNV: *hasResult = true; *hasResultType = true; break;
  2392. case OpHitObjectGetRayTMaxNV: *hasResult = true; *hasResultType = true; break;
  2393. case OpHitObjectGetRayTMinNV: *hasResult = true; *hasResultType = true; break;
  2394. case OpHitObjectIsEmptyNV: *hasResult = true; *hasResultType = true; break;
  2395. case OpHitObjectIsHitNV: *hasResult = true; *hasResultType = true; break;
  2396. case OpHitObjectIsMissNV: *hasResult = true; *hasResultType = true; break;
  2397. case OpReorderThreadWithHitObjectNV: *hasResult = false; *hasResultType = false; break;
  2398. case OpReorderThreadWithHintNV: *hasResult = false; *hasResultType = false; break;
  2399. case OpTypeHitObjectNV: *hasResult = true; *hasResultType = false; break;
  2400. case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
  2401. case OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break;
  2402. case OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
  2403. case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
  2404. case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
  2405. case OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
  2406. case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
  2407. case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
  2408. case OpTraceNV: *hasResult = false; *hasResultType = false; break;
  2409. case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
  2410. case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
  2411. case OpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break;
  2412. case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
  2413. case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
  2414. case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
  2415. case OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
  2416. case OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
  2417. case OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
  2418. case OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
  2419. case OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
  2420. case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
  2421. case OpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;
  2422. case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
  2423. case OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
  2424. case OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
  2425. case OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
  2426. case OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
  2427. case OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
  2428. case OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
  2429. case OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
  2430. case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
  2431. case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
  2432. case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
  2433. case OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
  2434. case OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
  2435. case OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
  2436. case OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
  2437. case OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
  2438. case OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
  2439. case OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
  2440. case OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
  2441. case OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
  2442. case OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
  2443. case OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
  2444. case OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
  2445. case OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
  2446. case OpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
  2447. case OpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
  2448. case OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
  2449. case OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
  2450. case OpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
  2451. case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
  2452. case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
  2453. case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
  2454. case OpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
  2455. case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
  2456. case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
  2457. case OpAsmINTEL: *hasResult = true; *hasResultType = true; break;
  2458. case OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
  2459. case OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
  2460. case OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
  2461. case OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
  2462. case OpExpectKHR: *hasResult = true; *hasResultType = true; break;
  2463. case OpDecorateString: *hasResult = false; *hasResultType = false; break;
  2464. case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
  2465. case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
  2466. case OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
  2467. case OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
  2468. case OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
  2469. case OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
  2470. case OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
  2471. case OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
  2472. case OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
  2473. case OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
  2474. case OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
  2475. case OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
  2476. case OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
  2477. case OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
  2478. case OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
  2479. case OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2480. case OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2481. case OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2482. case OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2483. case OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2484. case OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2485. case OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2486. case OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
  2487. case OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
  2488. case OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
  2489. case OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
  2490. case OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
  2491. case OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2492. case OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2493. case OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2494. case OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
  2495. case OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
  2496. case OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
  2497. case OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
  2498. case OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
  2499. case OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
  2500. case OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
  2501. case OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
  2502. case OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
  2503. case OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
  2504. case OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
  2505. case OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
  2506. case OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
  2507. case OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
  2508. case OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
  2509. case OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
  2510. case OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
  2511. case OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
  2512. case OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
  2513. case OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
  2514. case OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2515. case OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2516. case OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
  2517. case OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
  2518. case OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
  2519. case OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
  2520. case OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
  2521. case OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
  2522. case OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
  2523. case OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2524. case OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2525. case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
  2526. case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
  2527. case OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
  2528. case OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
  2529. case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
  2530. case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
  2531. case OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
  2532. case OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
  2533. case OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
  2534. case OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
  2535. case OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
  2536. case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
  2537. case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
  2538. case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
  2539. case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
  2540. case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
  2541. case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
  2542. case OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
  2543. case OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
  2544. case OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
  2545. case OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
  2546. case OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
  2547. case OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
  2548. case OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
  2549. case OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
  2550. case OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
  2551. case OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
  2552. case OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2553. case OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2554. case OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2555. case OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
  2556. case OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
  2557. case OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
  2558. case OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
  2559. case OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
  2560. case OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
  2561. case OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
  2562. case OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
  2563. case OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
  2564. case OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
  2565. case OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
  2566. case OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
  2567. case OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
  2568. case OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
  2569. case OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
  2570. case OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2571. case OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2572. case OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
  2573. case OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
  2574. case OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
  2575. case OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
  2576. case OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
  2577. case OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
  2578. case OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
  2579. case OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
  2580. case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
  2581. case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
  2582. case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
  2583. case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
  2584. case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
  2585. case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
  2586. case OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
  2587. case OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
  2588. case OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
  2589. case OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
  2590. case OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
  2591. case OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
  2592. case OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
  2593. case OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
  2594. case OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
  2595. case OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
  2596. case OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
  2597. case OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
  2598. case OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
  2599. case OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
  2600. case OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
  2601. case OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
  2602. case OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
  2603. case OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
  2604. case OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
  2605. case OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
  2606. case OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
  2607. case OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
  2608. case OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
  2609. case OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
  2610. case OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
  2611. case OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
  2612. case OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
  2613. case OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
  2614. case OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
  2615. case OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
  2616. case OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
  2617. case OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
  2618. case OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
  2619. case OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
  2620. case OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
  2621. case OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
  2622. case OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
  2623. case OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
  2624. case OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
  2625. case OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
  2626. case OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
  2627. case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
  2628. case OpAliasDomainDeclINTEL: *hasResult = true; *hasResultType = false; break;
  2629. case OpAliasScopeDeclINTEL: *hasResult = true; *hasResultType = false; break;
  2630. case OpAliasScopeListDeclINTEL: *hasResult = true; *hasResultType = false; break;
  2631. case OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
  2632. case OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
  2633. case OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
  2634. case OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
  2635. case OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
  2636. case OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
  2637. case OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
  2638. case OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
  2639. case OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
  2640. case OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
  2641. case OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
  2642. case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
  2643. case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
  2644. case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
  2645. case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
  2646. case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
  2647. case OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
  2648. case OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
  2649. case OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
  2650. case OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
  2651. case OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
  2652. case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
  2653. case OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
  2654. case OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
  2655. case OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
  2656. case OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
  2657. case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
  2658. case OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
  2659. case OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
  2660. case OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
  2661. case OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
  2662. case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
  2663. case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
  2664. case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
  2665. case OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
  2666. case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
  2667. case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
  2668. case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
  2669. case OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
  2670. case OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
  2671. case OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
  2672. case OpGroupFMulKHR: *hasResult = true; *hasResultType = true; break;
  2673. case OpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break;
  2674. case OpGroupBitwiseOrKHR: *hasResult = true; *hasResultType = true; break;
  2675. case OpGroupBitwiseXorKHR: *hasResult = true; *hasResultType = true; break;
  2676. case OpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
  2677. case OpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
  2678. case OpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
  2679. }
  2680. }
  2681. #endif /* SPV_ENABLE_UTILITY_CODE */
  2682. // Overload bitwise operators for mask bit combining
  2683. inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
  2684. inline ImageOperandsMask operator&(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) & unsigned(b)); }
  2685. inline ImageOperandsMask operator^(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) ^ unsigned(b)); }
  2686. inline ImageOperandsMask operator~(ImageOperandsMask a) { return ImageOperandsMask(~unsigned(a)); }
  2687. inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
  2688. inline FPFastMathModeMask operator&(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) & unsigned(b)); }
  2689. inline FPFastMathModeMask operator^(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) ^ unsigned(b)); }
  2690. inline FPFastMathModeMask operator~(FPFastMathModeMask a) { return FPFastMathModeMask(~unsigned(a)); }
  2691. inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
  2692. inline SelectionControlMask operator&(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) & unsigned(b)); }
  2693. inline SelectionControlMask operator^(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) ^ unsigned(b)); }
  2694. inline SelectionControlMask operator~(SelectionControlMask a) { return SelectionControlMask(~unsigned(a)); }
  2695. inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
  2696. inline LoopControlMask operator&(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) & unsigned(b)); }
  2697. inline LoopControlMask operator^(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) ^ unsigned(b)); }
  2698. inline LoopControlMask operator~(LoopControlMask a) { return LoopControlMask(~unsigned(a)); }
  2699. inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
  2700. inline FunctionControlMask operator&(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) & unsigned(b)); }
  2701. inline FunctionControlMask operator^(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) ^ unsigned(b)); }
  2702. inline FunctionControlMask operator~(FunctionControlMask a) { return FunctionControlMask(~unsigned(a)); }
  2703. inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
  2704. inline MemorySemanticsMask operator&(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) & unsigned(b)); }
  2705. inline MemorySemanticsMask operator^(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) ^ unsigned(b)); }
  2706. inline MemorySemanticsMask operator~(MemorySemanticsMask a) { return MemorySemanticsMask(~unsigned(a)); }
  2707. inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
  2708. inline MemoryAccessMask operator&(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) & unsigned(b)); }
  2709. inline MemoryAccessMask operator^(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) ^ unsigned(b)); }
  2710. inline MemoryAccessMask operator~(MemoryAccessMask a) { return MemoryAccessMask(~unsigned(a)); }
  2711. inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
  2712. inline KernelProfilingInfoMask operator&(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) & unsigned(b)); }
  2713. inline KernelProfilingInfoMask operator^(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) ^ unsigned(b)); }
  2714. inline KernelProfilingInfoMask operator~(KernelProfilingInfoMask a) { return KernelProfilingInfoMask(~unsigned(a)); }
  2715. inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }
  2716. inline RayFlagsMask operator&(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) & unsigned(b)); }
  2717. inline RayFlagsMask operator^(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) ^ unsigned(b)); }
  2718. inline RayFlagsMask operator~(RayFlagsMask a) { return RayFlagsMask(~unsigned(a)); }
  2719. inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); }
  2720. inline FragmentShadingRateMask operator&(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) & unsigned(b)); }
  2721. inline FragmentShadingRateMask operator^(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) ^ unsigned(b)); }
  2722. inline FragmentShadingRateMask operator~(FragmentShadingRateMask a) { return FragmentShadingRateMask(~unsigned(a)); }
  2723. inline CooperativeMatrixOperandsMask operator|(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) | unsigned(b)); }
  2724. inline CooperativeMatrixOperandsMask operator&(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) & unsigned(b)); }
  2725. inline CooperativeMatrixOperandsMask operator^(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) ^ unsigned(b)); }
  2726. inline CooperativeMatrixOperandsMask operator~(CooperativeMatrixOperandsMask a) { return CooperativeMatrixOperandsMask(~unsigned(a)); }
  2727. } // end namespace spv
  2728. #endif // #ifndef spirv_HPP