spirv.cs 30 KB

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