1 -- Copyright (c) 2014-2017 The Khronos Group Inc.
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:
10 -- The above copyright notice and this permission notice shall be included in
11 -- all copies or substantial portions of the Materials.
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/
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
25 -- This header is automatically generated by the same tool that creates
26 -- the Binary Section of the SPIR-V specification.
28 -- Enumeration tokens for SPIR-V, in various styles:
29 -- C, C++, C++11, JSON, Lua, Python
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']
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.
43 MagicNumber = 0x07230203,
59 TessellationControl = 1,
60 TessellationEvaluation = 2,
82 SpacingFractionalEven = 2,
83 SpacingFractionalOdd = 3,
86 PixelCenterInteger = 6,
89 EarlyFragmentTests = 9,
100 InputLinesAdjacency = 21,
102 InputTrianglesAdjacency = 23,
107 OutputLineStrip = 28,
108 OutputTriangleStrip = 29,
114 SubgroupsPerWorkgroup = 36,
142 SamplerAddressingMode = {
150 SamplerFilterMode = {
198 ImageChannelOrder = {
221 ImageChannelDataType = {
238 UnormInt101010_2 = 16,
241 ImageOperandsShift = {
252 ImageOperandsMask = {
257 ConstOffset = 0x00000008,
259 ConstOffsets = 0x00000020,
264 FPFastMathModeShift = {
272 FPFastMathModeMask = {
277 AllowRecip = 0x00000008,
299 FunctionParameterAttribute = {
311 RelaxedPrecision = 0,
337 SaturatedConversion = 28,
350 LinkageAttributes = 41,
352 InputAttachmentIndex = 43,
379 HelperInvocation = 23,
383 LocalInvocationId = 27,
384 GlobalInvocationId = 28,
385 LocalInvocationIndex = 29,
388 EnqueuedWorkgroupSize = 32,
392 SubgroupMaxSize = 37,
394 NumEnqueuedSubgroups = 39,
396 SubgroupLocalInvocationId = 41,
399 SubgroupEqMaskKHR = 4416,
400 SubgroupGeMaskKHR = 4417,
401 SubgroupGtMaskKHR = 4418,
402 SubgroupLeMaskKHR = 4419,
403 SubgroupLtMaskKHR = 4420,
409 SelectionControlShift = {
414 SelectionControlMask = {
416 Flatten = 0x00000001,
417 DontFlatten = 0x00000002,
423 DependencyInfinite = 2,
424 DependencyLength = 3,
430 DontUnroll = 0x00000002,
431 DependencyInfinite = 0x00000004,
432 DependencyLength = 0x00000008,
435 FunctionControlShift = {
442 FunctionControlMask = {
445 DontInline = 0x00000002,
450 MemorySemanticsShift = {
454 SequentiallyConsistent = 4,
458 CrossWorkgroupMemory = 9,
459 AtomicCounterMemory = 10,
463 MemorySemanticsMask = {
465 Acquire = 0x00000002,
466 Release = 0x00000004,
467 AcquireRelease = 0x00000008,
468 SequentiallyConsistent = 0x00000010,
469 UniformMemory = 0x00000040,
470 SubgroupMemory = 0x00000080,
471 WorkgroupMemory = 0x00000100,
472 CrossWorkgroupMemory = 0x00000200,
473 AtomicCounterMemory = 0x00000400,
474 ImageMemory = 0x00000800,
477 MemoryAccessShift = {
485 Volatile = 0x00000001,
486 Aligned = 0x00000002,
487 Nontemporal = 0x00000004,
504 KernelEnqueueFlags = {
510 KernelProfilingInfoShift = {
514 KernelProfilingInfoMask = {
516 CmdExecTime = 0x00000001,
542 TessellationPointSize = 23,
543 GeometryPointSize = 24,
544 ImageGatherExtended = 25,
545 StorageImageMultisample = 27,
546 UniformBufferArrayDynamicIndexing = 28,
547 SampledImageArrayDynamicIndexing = 29,
548 StorageBufferArrayDynamicIndexing = 30,
549 StorageImageArrayDynamicIndexing = 31,
553 SampleRateShading = 35,
558 InputAttachment = 40,
559 SparseResidency = 41,
563 SampledCubeArray = 45,
567 StorageImageExtendedFormats = 49,
569 DerivativeControl = 51,
570 InterpolationFunction = 52,
571 TransformFeedback = 53,
572 GeometryStreams = 54,
573 StorageImageReadWithoutFormat = 55,
574 StorageImageWriteWithoutFormat = 56,
576 SubgroupDispatch = 58,
579 SubgroupBallotKHR = 4423,
580 DrawParameters = 4427,
581 SubgroupVoteKHR = 4431,
587 OpSourceContinued = 2,
589 OpSourceExtension = 4,
595 OpExtInstImport = 11,
599 OpExecutionMode = 16,
609 OpTypeSampledImage = 27,
611 OpTypeRuntimeArray = 29,
617 OpTypeDeviceEvent = 35,
618 OpTypeReserveId = 36,
621 OpTypeForwardPointer = 39,
623 OpConstantFalse = 42,
625 OpConstantComposite = 44,
626 OpConstantSampler = 45,
628 OpSpecConstantTrue = 48,
629 OpSpecConstantFalse = 49,
631 OpSpecConstantComposite = 51,
632 OpSpecConstantOp = 52,
634 OpFunctionParameter = 55,
638 OpImageTexelPointer = 60,
642 OpCopyMemorySized = 64,
644 OpInBoundsAccessChain = 66,
645 OpPtrAccessChain = 67,
647 OpGenericPtrMemSemantics = 69,
648 OpInBoundsPtrAccessChain = 70,
650 OpMemberDecorate = 72,
651 OpDecorationGroup = 73,
652 OpGroupDecorate = 74,
653 OpGroupMemberDecorate = 75,
654 OpVectorExtractDynamic = 77,
655 OpVectorInsertDynamic = 78,
656 OpVectorShuffle = 79,
657 OpCompositeConstruct = 80,
658 OpCompositeExtract = 81,
659 OpCompositeInsert = 82,
663 OpImageSampleImplicitLod = 87,
664 OpImageSampleExplicitLod = 88,
665 OpImageSampleDrefImplicitLod = 89,
666 OpImageSampleDrefExplicitLod = 90,
667 OpImageSampleProjImplicitLod = 91,
668 OpImageSampleProjExplicitLod = 92,
669 OpImageSampleProjDrefImplicitLod = 93,
670 OpImageSampleProjDrefExplicitLod = 94,
673 OpImageDrefGather = 97,
677 OpImageQueryFormat = 101,
678 OpImageQueryOrder = 102,
679 OpImageQuerySizeLod = 103,
680 OpImageQuerySize = 104,
681 OpImageQueryLod = 105,
682 OpImageQueryLevels = 106,
683 OpImageQuerySamples = 107,
691 OpQuantizeToF16 = 116,
692 OpConvertPtrToU = 117,
693 OpSatConvertSToU = 118,
694 OpSatConvertUToS = 119,
695 OpConvertUToPtr = 120,
696 OpPtrCastToGeneric = 121,
697 OpGenericCastToPtr = 122,
698 OpGenericCastToPtrExplicit = 123,
716 OpVectorTimesScalar = 142,
717 OpMatrixTimesScalar = 143,
718 OpVectorTimesMatrix = 144,
719 OpMatrixTimesVector = 145,
720 OpMatrixTimesMatrix = 146,
721 OpOuterProduct = 147,
725 OpUMulExtended = 151,
726 OpSMulExtended = 152,
734 OpLessOrGreater = 161,
737 OpLogicalEqual = 164,
738 OpLogicalNotEqual = 165,
745 OpUGreaterThan = 172,
746 OpSGreaterThan = 173,
747 OpUGreaterThanEqual = 174,
748 OpSGreaterThanEqual = 175,
751 OpULessThanEqual = 178,
752 OpSLessThanEqual = 179,
755 OpFOrdNotEqual = 182,
756 OpFUnordNotEqual = 183,
757 OpFOrdLessThan = 184,
758 OpFUnordLessThan = 185,
759 OpFOrdGreaterThan = 186,
760 OpFUnordGreaterThan = 187,
761 OpFOrdLessThanEqual = 188,
762 OpFUnordLessThanEqual = 189,
763 OpFOrdGreaterThanEqual = 190,
764 OpFUnordGreaterThanEqual = 191,
765 OpShiftRightLogical = 194,
766 OpShiftRightArithmetic = 195,
767 OpShiftLeftLogical = 196,
772 OpBitFieldInsert = 201,
773 OpBitFieldSExtract = 202,
774 OpBitFieldUExtract = 203,
785 OpFwidthCoarse = 215,
787 OpEndPrimitive = 219,
788 OpEmitStreamVertex = 220,
789 OpEndStreamPrimitive = 221,
790 OpControlBarrier = 224,
791 OpMemoryBarrier = 225,
794 OpAtomicExchange = 229,
795 OpAtomicCompareExchange = 230,
796 OpAtomicCompareExchangeWeak = 231,
797 OpAtomicIIncrement = 232,
798 OpAtomicIDecrement = 233,
810 OpSelectionMerge = 247,
813 OpBranchConditional = 250,
819 OpLifetimeStart = 256,
820 OpLifetimeStop = 257,
821 OpGroupAsyncCopy = 259,
822 OpGroupWaitEvents = 260,
825 OpGroupBroadcast = 263,
836 OpReservedReadPipe = 276,
837 OpReservedWritePipe = 277,
838 OpReserveReadPipePackets = 278,
839 OpReserveWritePipePackets = 279,
840 OpCommitReadPipe = 280,
841 OpCommitWritePipe = 281,
842 OpIsValidReserveId = 282,
843 OpGetNumPipePackets = 283,
844 OpGetMaxPipePackets = 284,
845 OpGroupReserveReadPipePackets = 285,
846 OpGroupReserveWritePipePackets = 286,
847 OpGroupCommitReadPipe = 287,
848 OpGroupCommitWritePipe = 288,
849 OpEnqueueMarker = 291,
850 OpEnqueueKernel = 292,
851 OpGetKernelNDrangeSubGroupCount = 293,
852 OpGetKernelNDrangeMaxSubGroupSize = 294,
853 OpGetKernelWorkGroupSize = 295,
854 OpGetKernelPreferredWorkGroupSizeMultiple = 296,
856 OpReleaseEvent = 298,
857 OpCreateUserEvent = 299,
858 OpIsValidEvent = 300,
859 OpSetUserEventStatus = 301,
860 OpCaptureEventProfilingInfo = 302,
861 OpGetDefaultQueue = 303,
862 OpBuildNDRange = 304,
863 OpImageSparseSampleImplicitLod = 305,
864 OpImageSparseSampleExplicitLod = 306,
865 OpImageSparseSampleDrefImplicitLod = 307,
866 OpImageSparseSampleDrefExplicitLod = 308,
867 OpImageSparseSampleProjImplicitLod = 309,
868 OpImageSparseSampleProjExplicitLod = 310,
869 OpImageSparseSampleProjDrefImplicitLod = 311,
870 OpImageSparseSampleProjDrefExplicitLod = 312,
871 OpImageSparseFetch = 313,
872 OpImageSparseGather = 314,
873 OpImageSparseDrefGather = 315,
874 OpImageSparseTexelsResident = 316,
876 OpAtomicFlagTestAndSet = 318,
877 OpAtomicFlagClear = 319,
878 OpImageSparseRead = 320,
880 OpTypePipeStorage = 322,
881 OpConstantPipeStorage = 323,
882 OpCreatePipeFromPipeStorage = 324,
883 OpGetKernelLocalSizeForSubgroupCount = 325,
884 OpGetKernelMaxNumSubgroups = 326,
885 OpTypeNamedBarrier = 327,
886 OpNamedBarrierInitialize = 328,
887 OpMemoryNamedBarrier = 329,
888 OpModuleProcessed = 330,
889 OpSubgroupBallotKHR = 4421,
890 OpSubgroupFirstInvocationKHR = 4422,
891 OpSubgroupAllKHR = 4428,
892 OpSubgroupAnyKHR = 4429,
893 OpSubgroupAllEqualKHR = 4430,
894 OpSubgroupReadInvocationKHR = 4432,