spirv.cs 31 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021
  1. // Copyright (c) 2014-2018 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#
  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, e.g.: Spv.Specification.SourceLanguage.GLSL
  35. //
  36. // Some tokens act like mask values, which can be OR'd together,
  37. // while others are mutually exclusive. The mask-like ones have
  38. // "Mask" in their name, and a parallel enum that has the shift
  39. // amount (1 << x) for each corresponding enumerant.
  40. namespace Spv
  41. {
  42. public static class Specification
  43. {
  44. public const uint MagicNumber = 0x07230203;
  45. public const uint Version = 0x00010200;
  46. public const uint Revision = 2;
  47. public const uint OpCodeMask = 0xffff;
  48. public const uint WordCountShift = 16;
  49. public enum SourceLanguage
  50. {
  51. Unknown = 0,
  52. ESSL = 1,
  53. GLSL = 2,
  54. OpenCL_C = 3,
  55. OpenCL_CPP = 4,
  56. HLSL = 5,
  57. }
  58. public enum ExecutionModel
  59. {
  60. Vertex = 0,
  61. TessellationControl = 1,
  62. TessellationEvaluation = 2,
  63. Geometry = 3,
  64. Fragment = 4,
  65. GLCompute = 5,
  66. Kernel = 6,
  67. }
  68. public enum AddressingModel
  69. {
  70. Logical = 0,
  71. Physical32 = 1,
  72. Physical64 = 2,
  73. }
  74. public enum MemoryModel
  75. {
  76. Simple = 0,
  77. GLSL450 = 1,
  78. OpenCL = 2,
  79. }
  80. public enum ExecutionMode
  81. {
  82. Invocations = 0,
  83. SpacingEqual = 1,
  84. SpacingFractionalEven = 2,
  85. SpacingFractionalOdd = 3,
  86. VertexOrderCw = 4,
  87. VertexOrderCcw = 5,
  88. PixelCenterInteger = 6,
  89. OriginUpperLeft = 7,
  90. OriginLowerLeft = 8,
  91. EarlyFragmentTests = 9,
  92. PointMode = 10,
  93. Xfb = 11,
  94. DepthReplacing = 12,
  95. DepthGreater = 14,
  96. DepthLess = 15,
  97. DepthUnchanged = 16,
  98. LocalSize = 17,
  99. LocalSizeHint = 18,
  100. InputPoints = 19,
  101. InputLines = 20,
  102. InputLinesAdjacency = 21,
  103. Triangles = 22,
  104. InputTrianglesAdjacency = 23,
  105. Quads = 24,
  106. Isolines = 25,
  107. OutputVertices = 26,
  108. OutputPoints = 27,
  109. OutputLineStrip = 28,
  110. OutputTriangleStrip = 29,
  111. VecTypeHint = 30,
  112. ContractionOff = 31,
  113. Initializer = 33,
  114. Finalizer = 34,
  115. SubgroupSize = 35,
  116. SubgroupsPerWorkgroup = 36,
  117. SubgroupsPerWorkgroupId = 37,
  118. LocalSizeId = 38,
  119. LocalSizeHintId = 39,
  120. PostDepthCoverage = 4446,
  121. StencilRefReplacingEXT = 5027,
  122. }
  123. public enum StorageClass
  124. {
  125. UniformConstant = 0,
  126. Input = 1,
  127. Uniform = 2,
  128. Output = 3,
  129. Workgroup = 4,
  130. CrossWorkgroup = 5,
  131. Private = 6,
  132. Function = 7,
  133. Generic = 8,
  134. PushConstant = 9,
  135. AtomicCounter = 10,
  136. Image = 11,
  137. StorageBuffer = 12,
  138. }
  139. public enum Dim
  140. {
  141. Dim1D = 0,
  142. Dim2D = 1,
  143. Dim3D = 2,
  144. Cube = 3,
  145. Rect = 4,
  146. Buffer = 5,
  147. SubpassData = 6,
  148. }
  149. public enum SamplerAddressingMode
  150. {
  151. None = 0,
  152. ClampToEdge = 1,
  153. Clamp = 2,
  154. Repeat = 3,
  155. RepeatMirrored = 4,
  156. }
  157. public enum SamplerFilterMode
  158. {
  159. Nearest = 0,
  160. Linear = 1,
  161. }
  162. public enum ImageFormat
  163. {
  164. Unknown = 0,
  165. Rgba32f = 1,
  166. Rgba16f = 2,
  167. R32f = 3,
  168. Rgba8 = 4,
  169. Rgba8Snorm = 5,
  170. Rg32f = 6,
  171. Rg16f = 7,
  172. R11fG11fB10f = 8,
  173. R16f = 9,
  174. Rgba16 = 10,
  175. Rgb10A2 = 11,
  176. Rg16 = 12,
  177. Rg8 = 13,
  178. R16 = 14,
  179. R8 = 15,
  180. Rgba16Snorm = 16,
  181. Rg16Snorm = 17,
  182. Rg8Snorm = 18,
  183. R16Snorm = 19,
  184. R8Snorm = 20,
  185. Rgba32i = 21,
  186. Rgba16i = 22,
  187. Rgba8i = 23,
  188. R32i = 24,
  189. Rg32i = 25,
  190. Rg16i = 26,
  191. Rg8i = 27,
  192. R16i = 28,
  193. R8i = 29,
  194. Rgba32ui = 30,
  195. Rgba16ui = 31,
  196. Rgba8ui = 32,
  197. R32ui = 33,
  198. Rgb10a2ui = 34,
  199. Rg32ui = 35,
  200. Rg16ui = 36,
  201. Rg8ui = 37,
  202. R16ui = 38,
  203. R8ui = 39,
  204. }
  205. public enum ImageChannelOrder
  206. {
  207. R = 0,
  208. A = 1,
  209. RG = 2,
  210. RA = 3,
  211. RGB = 4,
  212. RGBA = 5,
  213. BGRA = 6,
  214. ARGB = 7,
  215. Intensity = 8,
  216. Luminance = 9,
  217. Rx = 10,
  218. RGx = 11,
  219. RGBx = 12,
  220. Depth = 13,
  221. DepthStencil = 14,
  222. sRGB = 15,
  223. sRGBx = 16,
  224. sRGBA = 17,
  225. sBGRA = 18,
  226. ABGR = 19,
  227. }
  228. public enum ImageChannelDataType
  229. {
  230. SnormInt8 = 0,
  231. SnormInt16 = 1,
  232. UnormInt8 = 2,
  233. UnormInt16 = 3,
  234. UnormShort565 = 4,
  235. UnormShort555 = 5,
  236. UnormInt101010 = 6,
  237. SignedInt8 = 7,
  238. SignedInt16 = 8,
  239. SignedInt32 = 9,
  240. UnsignedInt8 = 10,
  241. UnsignedInt16 = 11,
  242. UnsignedInt32 = 12,
  243. HalfFloat = 13,
  244. Float = 14,
  245. UnormInt24 = 15,
  246. UnormInt101010_2 = 16,
  247. }
  248. public enum ImageOperandsShift
  249. {
  250. Bias = 0,
  251. Lod = 1,
  252. Grad = 2,
  253. ConstOffset = 3,
  254. Offset = 4,
  255. ConstOffsets = 5,
  256. Sample = 6,
  257. MinLod = 7,
  258. }
  259. public enum ImageOperandsMask
  260. {
  261. MaskNone = 0,
  262. Bias = 0x00000001,
  263. Lod = 0x00000002,
  264. Grad = 0x00000004,
  265. ConstOffset = 0x00000008,
  266. Offset = 0x00000010,
  267. ConstOffsets = 0x00000020,
  268. Sample = 0x00000040,
  269. MinLod = 0x00000080,
  270. }
  271. public enum FPFastMathModeShift
  272. {
  273. NotNaN = 0,
  274. NotInf = 1,
  275. NSZ = 2,
  276. AllowRecip = 3,
  277. Fast = 4,
  278. }
  279. public enum FPFastMathModeMask
  280. {
  281. MaskNone = 0,
  282. NotNaN = 0x00000001,
  283. NotInf = 0x00000002,
  284. NSZ = 0x00000004,
  285. AllowRecip = 0x00000008,
  286. Fast = 0x00000010,
  287. }
  288. public enum FPRoundingMode
  289. {
  290. RTE = 0,
  291. RTZ = 1,
  292. RTP = 2,
  293. RTN = 3,
  294. }
  295. public enum LinkageType
  296. {
  297. Export = 0,
  298. Import = 1,
  299. }
  300. public enum AccessQualifier
  301. {
  302. ReadOnly = 0,
  303. WriteOnly = 1,
  304. ReadWrite = 2,
  305. }
  306. public enum FunctionParameterAttribute
  307. {
  308. Zext = 0,
  309. Sext = 1,
  310. ByVal = 2,
  311. Sret = 3,
  312. NoAlias = 4,
  313. NoCapture = 5,
  314. NoWrite = 6,
  315. NoReadWrite = 7,
  316. }
  317. public enum Decoration
  318. {
  319. RelaxedPrecision = 0,
  320. SpecId = 1,
  321. Block = 2,
  322. BufferBlock = 3,
  323. RowMajor = 4,
  324. ColMajor = 5,
  325. ArrayStride = 6,
  326. MatrixStride = 7,
  327. GLSLShared = 8,
  328. GLSLPacked = 9,
  329. CPacked = 10,
  330. BuiltIn = 11,
  331. NoPerspective = 13,
  332. Flat = 14,
  333. Patch = 15,
  334. Centroid = 16,
  335. Sample = 17,
  336. Invariant = 18,
  337. Restrict = 19,
  338. Aliased = 20,
  339. Volatile = 21,
  340. Constant = 22,
  341. Coherent = 23,
  342. NonWritable = 24,
  343. NonReadable = 25,
  344. Uniform = 26,
  345. SaturatedConversion = 28,
  346. Stream = 29,
  347. Location = 30,
  348. Component = 31,
  349. Index = 32,
  350. Binding = 33,
  351. DescriptorSet = 34,
  352. Offset = 35,
  353. XfbBuffer = 36,
  354. XfbStride = 37,
  355. FuncParamAttr = 38,
  356. FPRoundingMode = 39,
  357. FPFastMathMode = 40,
  358. LinkageAttributes = 41,
  359. NoContraction = 42,
  360. InputAttachmentIndex = 43,
  361. Alignment = 44,
  362. MaxByteOffset = 45,
  363. AlignmentId = 46,
  364. MaxByteOffsetId = 47,
  365. ExplicitInterpAMD = 4999,
  366. OverrideCoverageNV = 5248,
  367. PassthroughNV = 5250,
  368. ViewportRelativeNV = 5252,
  369. SecondaryViewportRelativeNV = 5256,
  370. HlslCounterBufferGOOGLE = 5634,
  371. HlslSemanticGOOGLE = 5635,
  372. }
  373. public enum BuiltIn
  374. {
  375. Position = 0,
  376. PointSize = 1,
  377. ClipDistance = 3,
  378. CullDistance = 4,
  379. VertexId = 5,
  380. InstanceId = 6,
  381. PrimitiveId = 7,
  382. InvocationId = 8,
  383. Layer = 9,
  384. ViewportIndex = 10,
  385. TessLevelOuter = 11,
  386. TessLevelInner = 12,
  387. TessCoord = 13,
  388. PatchVertices = 14,
  389. FragCoord = 15,
  390. PointCoord = 16,
  391. FrontFacing = 17,
  392. SampleId = 18,
  393. SamplePosition = 19,
  394. SampleMask = 20,
  395. FragDepth = 22,
  396. HelperInvocation = 23,
  397. NumWorkgroups = 24,
  398. WorkgroupSize = 25,
  399. WorkgroupId = 26,
  400. LocalInvocationId = 27,
  401. GlobalInvocationId = 28,
  402. LocalInvocationIndex = 29,
  403. WorkDim = 30,
  404. GlobalSize = 31,
  405. EnqueuedWorkgroupSize = 32,
  406. GlobalOffset = 33,
  407. GlobalLinearId = 34,
  408. SubgroupSize = 36,
  409. SubgroupMaxSize = 37,
  410. NumSubgroups = 38,
  411. NumEnqueuedSubgroups = 39,
  412. SubgroupId = 40,
  413. SubgroupLocalInvocationId = 41,
  414. VertexIndex = 42,
  415. InstanceIndex = 43,
  416. SubgroupEqMaskKHR = 4416,
  417. SubgroupGeMaskKHR = 4417,
  418. SubgroupGtMaskKHR = 4418,
  419. SubgroupLeMaskKHR = 4419,
  420. SubgroupLtMaskKHR = 4420,
  421. BaseVertex = 4424,
  422. BaseInstance = 4425,
  423. DrawIndex = 4426,
  424. DeviceIndex = 4438,
  425. ViewIndex = 4440,
  426. BaryCoordNoPerspAMD = 4992,
  427. BaryCoordNoPerspCentroidAMD = 4993,
  428. BaryCoordNoPerspSampleAMD = 4994,
  429. BaryCoordSmoothAMD = 4995,
  430. BaryCoordSmoothCentroidAMD = 4996,
  431. BaryCoordSmoothSampleAMD = 4997,
  432. BaryCoordPullModelAMD = 4998,
  433. FragStencilRefEXT = 5014,
  434. ViewportMaskNV = 5253,
  435. SecondaryPositionNV = 5257,
  436. SecondaryViewportMaskNV = 5258,
  437. PositionPerViewNV = 5261,
  438. ViewportMaskPerViewNV = 5262,
  439. }
  440. public enum SelectionControlShift
  441. {
  442. Flatten = 0,
  443. DontFlatten = 1,
  444. }
  445. public enum SelectionControlMask
  446. {
  447. MaskNone = 0,
  448. Flatten = 0x00000001,
  449. DontFlatten = 0x00000002,
  450. }
  451. public enum LoopControlShift
  452. {
  453. Unroll = 0,
  454. DontUnroll = 1,
  455. DependencyInfinite = 2,
  456. DependencyLength = 3,
  457. }
  458. public enum LoopControlMask
  459. {
  460. MaskNone = 0,
  461. Unroll = 0x00000001,
  462. DontUnroll = 0x00000002,
  463. DependencyInfinite = 0x00000004,
  464. DependencyLength = 0x00000008,
  465. }
  466. public enum FunctionControlShift
  467. {
  468. Inline = 0,
  469. DontInline = 1,
  470. Pure = 2,
  471. Const = 3,
  472. }
  473. public enum FunctionControlMask
  474. {
  475. MaskNone = 0,
  476. Inline = 0x00000001,
  477. DontInline = 0x00000002,
  478. Pure = 0x00000004,
  479. Const = 0x00000008,
  480. }
  481. public enum MemorySemanticsShift
  482. {
  483. Acquire = 1,
  484. Release = 2,
  485. AcquireRelease = 3,
  486. SequentiallyConsistent = 4,
  487. UniformMemory = 6,
  488. SubgroupMemory = 7,
  489. WorkgroupMemory = 8,
  490. CrossWorkgroupMemory = 9,
  491. AtomicCounterMemory = 10,
  492. ImageMemory = 11,
  493. }
  494. public enum MemorySemanticsMask
  495. {
  496. MaskNone = 0,
  497. Acquire = 0x00000002,
  498. Release = 0x00000004,
  499. AcquireRelease = 0x00000008,
  500. SequentiallyConsistent = 0x00000010,
  501. UniformMemory = 0x00000040,
  502. SubgroupMemory = 0x00000080,
  503. WorkgroupMemory = 0x00000100,
  504. CrossWorkgroupMemory = 0x00000200,
  505. AtomicCounterMemory = 0x00000400,
  506. ImageMemory = 0x00000800,
  507. }
  508. public enum MemoryAccessShift
  509. {
  510. Volatile = 0,
  511. Aligned = 1,
  512. Nontemporal = 2,
  513. }
  514. public enum MemoryAccessMask
  515. {
  516. MaskNone = 0,
  517. Volatile = 0x00000001,
  518. Aligned = 0x00000002,
  519. Nontemporal = 0x00000004,
  520. }
  521. public enum Scope
  522. {
  523. CrossDevice = 0,
  524. Device = 1,
  525. Workgroup = 2,
  526. Subgroup = 3,
  527. Invocation = 4,
  528. }
  529. public enum GroupOperation
  530. {
  531. Reduce = 0,
  532. InclusiveScan = 1,
  533. ExclusiveScan = 2,
  534. }
  535. public enum KernelEnqueueFlags
  536. {
  537. NoWait = 0,
  538. WaitKernel = 1,
  539. WaitWorkGroup = 2,
  540. }
  541. public enum KernelProfilingInfoShift
  542. {
  543. CmdExecTime = 0,
  544. }
  545. public enum KernelProfilingInfoMask
  546. {
  547. MaskNone = 0,
  548. CmdExecTime = 0x00000001,
  549. }
  550. public enum Capability
  551. {
  552. Matrix = 0,
  553. Shader = 1,
  554. Geometry = 2,
  555. Tessellation = 3,
  556. Addresses = 4,
  557. Linkage = 5,
  558. Kernel = 6,
  559. Vector16 = 7,
  560. Float16Buffer = 8,
  561. Float16 = 9,
  562. Float64 = 10,
  563. Int64 = 11,
  564. Int64Atomics = 12,
  565. ImageBasic = 13,
  566. ImageReadWrite = 14,
  567. ImageMipmap = 15,
  568. Pipes = 17,
  569. Groups = 18,
  570. DeviceEnqueue = 19,
  571. LiteralSampler = 20,
  572. AtomicStorage = 21,
  573. Int16 = 22,
  574. TessellationPointSize = 23,
  575. GeometryPointSize = 24,
  576. ImageGatherExtended = 25,
  577. StorageImageMultisample = 27,
  578. UniformBufferArrayDynamicIndexing = 28,
  579. SampledImageArrayDynamicIndexing = 29,
  580. StorageBufferArrayDynamicIndexing = 30,
  581. StorageImageArrayDynamicIndexing = 31,
  582. ClipDistance = 32,
  583. CullDistance = 33,
  584. ImageCubeArray = 34,
  585. SampleRateShading = 35,
  586. ImageRect = 36,
  587. SampledRect = 37,
  588. GenericPointer = 38,
  589. Int8 = 39,
  590. InputAttachment = 40,
  591. SparseResidency = 41,
  592. MinLod = 42,
  593. Sampled1D = 43,
  594. Image1D = 44,
  595. SampledCubeArray = 45,
  596. SampledBuffer = 46,
  597. ImageBuffer = 47,
  598. ImageMSArray = 48,
  599. StorageImageExtendedFormats = 49,
  600. ImageQuery = 50,
  601. DerivativeControl = 51,
  602. InterpolationFunction = 52,
  603. TransformFeedback = 53,
  604. GeometryStreams = 54,
  605. StorageImageReadWithoutFormat = 55,
  606. StorageImageWriteWithoutFormat = 56,
  607. MultiViewport = 57,
  608. SubgroupDispatch = 58,
  609. NamedBarrier = 59,
  610. PipeStorage = 60,
  611. SubgroupBallotKHR = 4423,
  612. DrawParameters = 4427,
  613. SubgroupVoteKHR = 4431,
  614. StorageBuffer16BitAccess = 4433,
  615. StorageUniformBufferBlock16 = 4433,
  616. StorageUniform16 = 4434,
  617. UniformAndStorageBuffer16BitAccess = 4434,
  618. StoragePushConstant16 = 4435,
  619. StorageInputOutput16 = 4436,
  620. DeviceGroup = 4437,
  621. MultiView = 4439,
  622. VariablePointersStorageBuffer = 4441,
  623. VariablePointers = 4442,
  624. AtomicStorageOps = 4445,
  625. SampleMaskPostDepthCoverage = 4447,
  626. ImageGatherBiasLodAMD = 5009,
  627. FragmentMaskAMD = 5010,
  628. StencilExportEXT = 5013,
  629. ImageReadWriteLodAMD = 5015,
  630. SampleMaskOverrideCoverageNV = 5249,
  631. GeometryShaderPassthroughNV = 5251,
  632. ShaderViewportIndexLayerEXT = 5254,
  633. ShaderViewportIndexLayerNV = 5254,
  634. ShaderViewportMaskNV = 5255,
  635. ShaderStereoViewNV = 5259,
  636. PerViewAttributesNV = 5260,
  637. SubgroupShuffleINTEL = 5568,
  638. SubgroupBufferBlockIOINTEL = 5569,
  639. SubgroupImageBlockIOINTEL = 5570,
  640. }
  641. public enum Op
  642. {
  643. OpNop = 0,
  644. OpUndef = 1,
  645. OpSourceContinued = 2,
  646. OpSource = 3,
  647. OpSourceExtension = 4,
  648. OpName = 5,
  649. OpMemberName = 6,
  650. OpString = 7,
  651. OpLine = 8,
  652. OpExtension = 10,
  653. OpExtInstImport = 11,
  654. OpExtInst = 12,
  655. OpMemoryModel = 14,
  656. OpEntryPoint = 15,
  657. OpExecutionMode = 16,
  658. OpCapability = 17,
  659. OpTypeVoid = 19,
  660. OpTypeBool = 20,
  661. OpTypeInt = 21,
  662. OpTypeFloat = 22,
  663. OpTypeVector = 23,
  664. OpTypeMatrix = 24,
  665. OpTypeImage = 25,
  666. OpTypeSampler = 26,
  667. OpTypeSampledImage = 27,
  668. OpTypeArray = 28,
  669. OpTypeRuntimeArray = 29,
  670. OpTypeStruct = 30,
  671. OpTypeOpaque = 31,
  672. OpTypePointer = 32,
  673. OpTypeFunction = 33,
  674. OpTypeEvent = 34,
  675. OpTypeDeviceEvent = 35,
  676. OpTypeReserveId = 36,
  677. OpTypeQueue = 37,
  678. OpTypePipe = 38,
  679. OpTypeForwardPointer = 39,
  680. OpConstantTrue = 41,
  681. OpConstantFalse = 42,
  682. OpConstant = 43,
  683. OpConstantComposite = 44,
  684. OpConstantSampler = 45,
  685. OpConstantNull = 46,
  686. OpSpecConstantTrue = 48,
  687. OpSpecConstantFalse = 49,
  688. OpSpecConstant = 50,
  689. OpSpecConstantComposite = 51,
  690. OpSpecConstantOp = 52,
  691. OpFunction = 54,
  692. OpFunctionParameter = 55,
  693. OpFunctionEnd = 56,
  694. OpFunctionCall = 57,
  695. OpVariable = 59,
  696. OpImageTexelPointer = 60,
  697. OpLoad = 61,
  698. OpStore = 62,
  699. OpCopyMemory = 63,
  700. OpCopyMemorySized = 64,
  701. OpAccessChain = 65,
  702. OpInBoundsAccessChain = 66,
  703. OpPtrAccessChain = 67,
  704. OpArrayLength = 68,
  705. OpGenericPtrMemSemantics = 69,
  706. OpInBoundsPtrAccessChain = 70,
  707. OpDecorate = 71,
  708. OpMemberDecorate = 72,
  709. OpDecorationGroup = 73,
  710. OpGroupDecorate = 74,
  711. OpGroupMemberDecorate = 75,
  712. OpVectorExtractDynamic = 77,
  713. OpVectorInsertDynamic = 78,
  714. OpVectorShuffle = 79,
  715. OpCompositeConstruct = 80,
  716. OpCompositeExtract = 81,
  717. OpCompositeInsert = 82,
  718. OpCopyObject = 83,
  719. OpTranspose = 84,
  720. OpSampledImage = 86,
  721. OpImageSampleImplicitLod = 87,
  722. OpImageSampleExplicitLod = 88,
  723. OpImageSampleDrefImplicitLod = 89,
  724. OpImageSampleDrefExplicitLod = 90,
  725. OpImageSampleProjImplicitLod = 91,
  726. OpImageSampleProjExplicitLod = 92,
  727. OpImageSampleProjDrefImplicitLod = 93,
  728. OpImageSampleProjDrefExplicitLod = 94,
  729. OpImageFetch = 95,
  730. OpImageGather = 96,
  731. OpImageDrefGather = 97,
  732. OpImageRead = 98,
  733. OpImageWrite = 99,
  734. OpImage = 100,
  735. OpImageQueryFormat = 101,
  736. OpImageQueryOrder = 102,
  737. OpImageQuerySizeLod = 103,
  738. OpImageQuerySize = 104,
  739. OpImageQueryLod = 105,
  740. OpImageQueryLevels = 106,
  741. OpImageQuerySamples = 107,
  742. OpConvertFToU = 109,
  743. OpConvertFToS = 110,
  744. OpConvertSToF = 111,
  745. OpConvertUToF = 112,
  746. OpUConvert = 113,
  747. OpSConvert = 114,
  748. OpFConvert = 115,
  749. OpQuantizeToF16 = 116,
  750. OpConvertPtrToU = 117,
  751. OpSatConvertSToU = 118,
  752. OpSatConvertUToS = 119,
  753. OpConvertUToPtr = 120,
  754. OpPtrCastToGeneric = 121,
  755. OpGenericCastToPtr = 122,
  756. OpGenericCastToPtrExplicit = 123,
  757. OpBitcast = 124,
  758. OpSNegate = 126,
  759. OpFNegate = 127,
  760. OpIAdd = 128,
  761. OpFAdd = 129,
  762. OpISub = 130,
  763. OpFSub = 131,
  764. OpIMul = 132,
  765. OpFMul = 133,
  766. OpUDiv = 134,
  767. OpSDiv = 135,
  768. OpFDiv = 136,
  769. OpUMod = 137,
  770. OpSRem = 138,
  771. OpSMod = 139,
  772. OpFRem = 140,
  773. OpFMod = 141,
  774. OpVectorTimesScalar = 142,
  775. OpMatrixTimesScalar = 143,
  776. OpVectorTimesMatrix = 144,
  777. OpMatrixTimesVector = 145,
  778. OpMatrixTimesMatrix = 146,
  779. OpOuterProduct = 147,
  780. OpDot = 148,
  781. OpIAddCarry = 149,
  782. OpISubBorrow = 150,
  783. OpUMulExtended = 151,
  784. OpSMulExtended = 152,
  785. OpAny = 154,
  786. OpAll = 155,
  787. OpIsNan = 156,
  788. OpIsInf = 157,
  789. OpIsFinite = 158,
  790. OpIsNormal = 159,
  791. OpSignBitSet = 160,
  792. OpLessOrGreater = 161,
  793. OpOrdered = 162,
  794. OpUnordered = 163,
  795. OpLogicalEqual = 164,
  796. OpLogicalNotEqual = 165,
  797. OpLogicalOr = 166,
  798. OpLogicalAnd = 167,
  799. OpLogicalNot = 168,
  800. OpSelect = 169,
  801. OpIEqual = 170,
  802. OpINotEqual = 171,
  803. OpUGreaterThan = 172,
  804. OpSGreaterThan = 173,
  805. OpUGreaterThanEqual = 174,
  806. OpSGreaterThanEqual = 175,
  807. OpULessThan = 176,
  808. OpSLessThan = 177,
  809. OpULessThanEqual = 178,
  810. OpSLessThanEqual = 179,
  811. OpFOrdEqual = 180,
  812. OpFUnordEqual = 181,
  813. OpFOrdNotEqual = 182,
  814. OpFUnordNotEqual = 183,
  815. OpFOrdLessThan = 184,
  816. OpFUnordLessThan = 185,
  817. OpFOrdGreaterThan = 186,
  818. OpFUnordGreaterThan = 187,
  819. OpFOrdLessThanEqual = 188,
  820. OpFUnordLessThanEqual = 189,
  821. OpFOrdGreaterThanEqual = 190,
  822. OpFUnordGreaterThanEqual = 191,
  823. OpShiftRightLogical = 194,
  824. OpShiftRightArithmetic = 195,
  825. OpShiftLeftLogical = 196,
  826. OpBitwiseOr = 197,
  827. OpBitwiseXor = 198,
  828. OpBitwiseAnd = 199,
  829. OpNot = 200,
  830. OpBitFieldInsert = 201,
  831. OpBitFieldSExtract = 202,
  832. OpBitFieldUExtract = 203,
  833. OpBitReverse = 204,
  834. OpBitCount = 205,
  835. OpDPdx = 207,
  836. OpDPdy = 208,
  837. OpFwidth = 209,
  838. OpDPdxFine = 210,
  839. OpDPdyFine = 211,
  840. OpFwidthFine = 212,
  841. OpDPdxCoarse = 213,
  842. OpDPdyCoarse = 214,
  843. OpFwidthCoarse = 215,
  844. OpEmitVertex = 218,
  845. OpEndPrimitive = 219,
  846. OpEmitStreamVertex = 220,
  847. OpEndStreamPrimitive = 221,
  848. OpControlBarrier = 224,
  849. OpMemoryBarrier = 225,
  850. OpAtomicLoad = 227,
  851. OpAtomicStore = 228,
  852. OpAtomicExchange = 229,
  853. OpAtomicCompareExchange = 230,
  854. OpAtomicCompareExchangeWeak = 231,
  855. OpAtomicIIncrement = 232,
  856. OpAtomicIDecrement = 233,
  857. OpAtomicIAdd = 234,
  858. OpAtomicISub = 235,
  859. OpAtomicSMin = 236,
  860. OpAtomicUMin = 237,
  861. OpAtomicSMax = 238,
  862. OpAtomicUMax = 239,
  863. OpAtomicAnd = 240,
  864. OpAtomicOr = 241,
  865. OpAtomicXor = 242,
  866. OpPhi = 245,
  867. OpLoopMerge = 246,
  868. OpSelectionMerge = 247,
  869. OpLabel = 248,
  870. OpBranch = 249,
  871. OpBranchConditional = 250,
  872. OpSwitch = 251,
  873. OpKill = 252,
  874. OpReturn = 253,
  875. OpReturnValue = 254,
  876. OpUnreachable = 255,
  877. OpLifetimeStart = 256,
  878. OpLifetimeStop = 257,
  879. OpGroupAsyncCopy = 259,
  880. OpGroupWaitEvents = 260,
  881. OpGroupAll = 261,
  882. OpGroupAny = 262,
  883. OpGroupBroadcast = 263,
  884. OpGroupIAdd = 264,
  885. OpGroupFAdd = 265,
  886. OpGroupFMin = 266,
  887. OpGroupUMin = 267,
  888. OpGroupSMin = 268,
  889. OpGroupFMax = 269,
  890. OpGroupUMax = 270,
  891. OpGroupSMax = 271,
  892. OpReadPipe = 274,
  893. OpWritePipe = 275,
  894. OpReservedReadPipe = 276,
  895. OpReservedWritePipe = 277,
  896. OpReserveReadPipePackets = 278,
  897. OpReserveWritePipePackets = 279,
  898. OpCommitReadPipe = 280,
  899. OpCommitWritePipe = 281,
  900. OpIsValidReserveId = 282,
  901. OpGetNumPipePackets = 283,
  902. OpGetMaxPipePackets = 284,
  903. OpGroupReserveReadPipePackets = 285,
  904. OpGroupReserveWritePipePackets = 286,
  905. OpGroupCommitReadPipe = 287,
  906. OpGroupCommitWritePipe = 288,
  907. OpEnqueueMarker = 291,
  908. OpEnqueueKernel = 292,
  909. OpGetKernelNDrangeSubGroupCount = 293,
  910. OpGetKernelNDrangeMaxSubGroupSize = 294,
  911. OpGetKernelWorkGroupSize = 295,
  912. OpGetKernelPreferredWorkGroupSizeMultiple = 296,
  913. OpRetainEvent = 297,
  914. OpReleaseEvent = 298,
  915. OpCreateUserEvent = 299,
  916. OpIsValidEvent = 300,
  917. OpSetUserEventStatus = 301,
  918. OpCaptureEventProfilingInfo = 302,
  919. OpGetDefaultQueue = 303,
  920. OpBuildNDRange = 304,
  921. OpImageSparseSampleImplicitLod = 305,
  922. OpImageSparseSampleExplicitLod = 306,
  923. OpImageSparseSampleDrefImplicitLod = 307,
  924. OpImageSparseSampleDrefExplicitLod = 308,
  925. OpImageSparseSampleProjImplicitLod = 309,
  926. OpImageSparseSampleProjExplicitLod = 310,
  927. OpImageSparseSampleProjDrefImplicitLod = 311,
  928. OpImageSparseSampleProjDrefExplicitLod = 312,
  929. OpImageSparseFetch = 313,
  930. OpImageSparseGather = 314,
  931. OpImageSparseDrefGather = 315,
  932. OpImageSparseTexelsResident = 316,
  933. OpNoLine = 317,
  934. OpAtomicFlagTestAndSet = 318,
  935. OpAtomicFlagClear = 319,
  936. OpImageSparseRead = 320,
  937. OpSizeOf = 321,
  938. OpTypePipeStorage = 322,
  939. OpConstantPipeStorage = 323,
  940. OpCreatePipeFromPipeStorage = 324,
  941. OpGetKernelLocalSizeForSubgroupCount = 325,
  942. OpGetKernelMaxNumSubgroups = 326,
  943. OpTypeNamedBarrier = 327,
  944. OpNamedBarrierInitialize = 328,
  945. OpMemoryNamedBarrier = 329,
  946. OpModuleProcessed = 330,
  947. OpExecutionModeId = 331,
  948. OpDecorateId = 332,
  949. OpSubgroupBallotKHR = 4421,
  950. OpSubgroupFirstInvocationKHR = 4422,
  951. OpSubgroupAllKHR = 4428,
  952. OpSubgroupAnyKHR = 4429,
  953. OpSubgroupAllEqualKHR = 4430,
  954. OpSubgroupReadInvocationKHR = 4432,
  955. OpGroupIAddNonUniformAMD = 5000,
  956. OpGroupFAddNonUniformAMD = 5001,
  957. OpGroupFMinNonUniformAMD = 5002,
  958. OpGroupUMinNonUniformAMD = 5003,
  959. OpGroupSMinNonUniformAMD = 5004,
  960. OpGroupFMaxNonUniformAMD = 5005,
  961. OpGroupUMaxNonUniformAMD = 5006,
  962. OpGroupSMaxNonUniformAMD = 5007,
  963. OpFragmentMaskFetchAMD = 5011,
  964. OpFragmentFetchAMD = 5012,
  965. OpSubgroupShuffleINTEL = 5571,
  966. OpSubgroupShuffleDownINTEL = 5572,
  967. OpSubgroupShuffleUpINTEL = 5573,
  968. OpSubgroupShuffleXorINTEL = 5574,
  969. OpSubgroupBlockReadINTEL = 5575,
  970. OpSubgroupBlockWriteINTEL = 5576,
  971. OpSubgroupImageBlockReadINTEL = 5577,
  972. OpSubgroupImageBlockWriteINTEL = 5578,
  973. OpDecorateStringGOOGLE = 5632,
  974. OpMemberDecorateStringGOOGLE = 5633,
  975. }
  976. }
  977. }