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