OLD | NEW |
(Empty) | |
| 1 /* |
| 2 ** Copyright (c) 2014-2016 The Khronos Group Inc. |
| 3 ** |
| 4 ** Permission is hereby granted, free of charge, to any person obtaining a copy |
| 5 ** of this software and/or associated documentation files (the "Materials"), |
| 6 ** to deal in the Materials without restriction, including without limitation |
| 7 ** the rights to use, copy, modify, merge, publish, distribute, sublicense, |
| 8 ** and/or sell copies of the Materials, and to permit persons to whom the |
| 9 ** Materials are furnished to do so, subject to the following conditions: |
| 10 ** |
| 11 ** The above copyright notice and this permission notice shall be included in |
| 12 ** all copies or substantial portions of the Materials. |
| 13 ** |
| 14 ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS |
| 15 ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND |
| 16 ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ |
| 17 ** |
| 18 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
| 19 ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| 20 ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
| 21 ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
| 22 ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
| 23 ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS |
| 24 ** IN THE MATERIALS. |
| 25 */ |
| 26 |
| 27 /* |
| 28 ** This header is automatically generated by the same tool that creates |
| 29 ** the Binary Section of the SPIR-V specification. |
| 30 */ |
| 31 |
| 32 /* |
| 33 ** Enumeration tokens for SPIR-V, in various styles: |
| 34 ** C, C++, C++11, JSON, Lua, Python |
| 35 ** |
| 36 ** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL |
| 37 ** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL |
| 38 ** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage
::GLSL |
| 39 ** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL |
| 40 ** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] |
| 41 ** |
| 42 ** Some tokens act like mask values, which can be OR'd together, |
| 43 ** while others are mutually exclusive. The mask-like ones have |
| 44 ** "Mask" in their name, and a parallel enum that has the shift |
| 45 ** amount (1 << x) for each corresponding enumerant. |
| 46 */ |
| 47 |
| 48 #ifndef spirv_H |
| 49 #define spirv_H |
| 50 |
| 51 typedef unsigned int SpvId; |
| 52 |
| 53 #define SPV_VERSION 0x10000 |
| 54 #define SPV_REVISION 4 |
| 55 |
| 56 static const unsigned int SpvMagicNumber = 0x07230203; |
| 57 static const unsigned int SpvVersion = 0x00010000; |
| 58 static const unsigned int SpvRevision = 4; |
| 59 static const unsigned int SpvOpCodeMask = 0xffff; |
| 60 static const unsigned int SpvWordCountShift = 16; |
| 61 |
| 62 typedef enum SpvSourceLanguage_ { |
| 63 SpvSourceLanguageUnknown = 0, |
| 64 SpvSourceLanguageESSL = 1, |
| 65 SpvSourceLanguageGLSL = 2, |
| 66 SpvSourceLanguageOpenCL_C = 3, |
| 67 SpvSourceLanguageOpenCL_CPP = 4, |
| 68 } SpvSourceLanguage; |
| 69 |
| 70 typedef enum SpvExecutionModel_ { |
| 71 SpvExecutionModelVertex = 0, |
| 72 SpvExecutionModelTessellationControl = 1, |
| 73 SpvExecutionModelTessellationEvaluation = 2, |
| 74 SpvExecutionModelGeometry = 3, |
| 75 SpvExecutionModelFragment = 4, |
| 76 SpvExecutionModelGLCompute = 5, |
| 77 SpvExecutionModelKernel = 6, |
| 78 } SpvExecutionModel; |
| 79 |
| 80 typedef enum SpvAddressingModel_ { |
| 81 SpvAddressingModelLogical = 0, |
| 82 SpvAddressingModelPhysical32 = 1, |
| 83 SpvAddressingModelPhysical64 = 2, |
| 84 } SpvAddressingModel; |
| 85 |
| 86 typedef enum SpvMemoryModel_ { |
| 87 SpvMemoryModelSimple = 0, |
| 88 SpvMemoryModelGLSL450 = 1, |
| 89 SpvMemoryModelOpenCL = 2, |
| 90 } SpvMemoryModel; |
| 91 |
| 92 typedef enum SpvExecutionMode_ { |
| 93 SpvExecutionModeInvocations = 0, |
| 94 SpvExecutionModeSpacingEqual = 1, |
| 95 SpvExecutionModeSpacingFractionalEven = 2, |
| 96 SpvExecutionModeSpacingFractionalOdd = 3, |
| 97 SpvExecutionModeVertexOrderCw = 4, |
| 98 SpvExecutionModeVertexOrderCcw = 5, |
| 99 SpvExecutionModePixelCenterInteger = 6, |
| 100 SpvExecutionModeOriginUpperLeft = 7, |
| 101 SpvExecutionModeOriginLowerLeft = 8, |
| 102 SpvExecutionModeEarlyFragmentTests = 9, |
| 103 SpvExecutionModePointMode = 10, |
| 104 SpvExecutionModeXfb = 11, |
| 105 SpvExecutionModeDepthReplacing = 12, |
| 106 SpvExecutionModeDepthGreater = 14, |
| 107 SpvExecutionModeDepthLess = 15, |
| 108 SpvExecutionModeDepthUnchanged = 16, |
| 109 SpvExecutionModeLocalSize = 17, |
| 110 SpvExecutionModeLocalSizeHint = 18, |
| 111 SpvExecutionModeInputPoints = 19, |
| 112 SpvExecutionModeInputLines = 20, |
| 113 SpvExecutionModeInputLinesAdjacency = 21, |
| 114 SpvExecutionModeTriangles = 22, |
| 115 SpvExecutionModeInputTrianglesAdjacency = 23, |
| 116 SpvExecutionModeQuads = 24, |
| 117 SpvExecutionModeIsolines = 25, |
| 118 SpvExecutionModeOutputVertices = 26, |
| 119 SpvExecutionModeOutputPoints = 27, |
| 120 SpvExecutionModeOutputLineStrip = 28, |
| 121 SpvExecutionModeOutputTriangleStrip = 29, |
| 122 SpvExecutionModeVecTypeHint = 30, |
| 123 SpvExecutionModeContractionOff = 31, |
| 124 } SpvExecutionMode; |
| 125 |
| 126 typedef enum SpvStorageClass_ { |
| 127 SpvStorageClassUniformConstant = 0, |
| 128 SpvStorageClassInput = 1, |
| 129 SpvStorageClassUniform = 2, |
| 130 SpvStorageClassOutput = 3, |
| 131 SpvStorageClassWorkgroup = 4, |
| 132 SpvStorageClassCrossWorkgroup = 5, |
| 133 SpvStorageClassPrivate = 6, |
| 134 SpvStorageClassFunction = 7, |
| 135 SpvStorageClassGeneric = 8, |
| 136 SpvStorageClassPushConstant = 9, |
| 137 SpvStorageClassAtomicCounter = 10, |
| 138 SpvStorageClassImage = 11, |
| 139 } SpvStorageClass; |
| 140 |
| 141 typedef enum SpvDim_ { |
| 142 SpvDim1D = 0, |
| 143 SpvDim2D = 1, |
| 144 SpvDim3D = 2, |
| 145 SpvDimCube = 3, |
| 146 SpvDimRect = 4, |
| 147 SpvDimBuffer = 5, |
| 148 SpvDimSubpassData = 6, |
| 149 } SpvDim; |
| 150 |
| 151 typedef enum SpvSamplerAddressingMode_ { |
| 152 SpvSamplerAddressingModeNone = 0, |
| 153 SpvSamplerAddressingModeClampToEdge = 1, |
| 154 SpvSamplerAddressingModeClamp = 2, |
| 155 SpvSamplerAddressingModeRepeat = 3, |
| 156 SpvSamplerAddressingModeRepeatMirrored = 4, |
| 157 } SpvSamplerAddressingMode; |
| 158 |
| 159 typedef enum SpvSamplerFilterMode_ { |
| 160 SpvSamplerFilterModeNearest = 0, |
| 161 SpvSamplerFilterModeLinear = 1, |
| 162 } SpvSamplerFilterMode; |
| 163 |
| 164 typedef enum SpvImageFormat_ { |
| 165 SpvImageFormatUnknown = 0, |
| 166 SpvImageFormatRgba32f = 1, |
| 167 SpvImageFormatRgba16f = 2, |
| 168 SpvImageFormatR32f = 3, |
| 169 SpvImageFormatRgba8 = 4, |
| 170 SpvImageFormatRgba8Snorm = 5, |
| 171 SpvImageFormatRg32f = 6, |
| 172 SpvImageFormatRg16f = 7, |
| 173 SpvImageFormatR11fG11fB10f = 8, |
| 174 SpvImageFormatR16f = 9, |
| 175 SpvImageFormatRgba16 = 10, |
| 176 SpvImageFormatRgb10A2 = 11, |
| 177 SpvImageFormatRg16 = 12, |
| 178 SpvImageFormatRg8 = 13, |
| 179 SpvImageFormatR16 = 14, |
| 180 SpvImageFormatR8 = 15, |
| 181 SpvImageFormatRgba16Snorm = 16, |
| 182 SpvImageFormatRg16Snorm = 17, |
| 183 SpvImageFormatRg8Snorm = 18, |
| 184 SpvImageFormatR16Snorm = 19, |
| 185 SpvImageFormatR8Snorm = 20, |
| 186 SpvImageFormatRgba32i = 21, |
| 187 SpvImageFormatRgba16i = 22, |
| 188 SpvImageFormatRgba8i = 23, |
| 189 SpvImageFormatR32i = 24, |
| 190 SpvImageFormatRg32i = 25, |
| 191 SpvImageFormatRg16i = 26, |
| 192 SpvImageFormatRg8i = 27, |
| 193 SpvImageFormatR16i = 28, |
| 194 SpvImageFormatR8i = 29, |
| 195 SpvImageFormatRgba32ui = 30, |
| 196 SpvImageFormatRgba16ui = 31, |
| 197 SpvImageFormatRgba8ui = 32, |
| 198 SpvImageFormatR32ui = 33, |
| 199 SpvImageFormatRgb10a2ui = 34, |
| 200 SpvImageFormatRg32ui = 35, |
| 201 SpvImageFormatRg16ui = 36, |
| 202 SpvImageFormatRg8ui = 37, |
| 203 SpvImageFormatR16ui = 38, |
| 204 SpvImageFormatR8ui = 39, |
| 205 } SpvImageFormat; |
| 206 |
| 207 typedef enum SpvImageChannelOrder_ { |
| 208 SpvImageChannelOrderR = 0, |
| 209 SpvImageChannelOrderA = 1, |
| 210 SpvImageChannelOrderRG = 2, |
| 211 SpvImageChannelOrderRA = 3, |
| 212 SpvImageChannelOrderRGB = 4, |
| 213 SpvImageChannelOrderRGBA = 5, |
| 214 SpvImageChannelOrderBGRA = 6, |
| 215 SpvImageChannelOrderARGB = 7, |
| 216 SpvImageChannelOrderIntensity = 8, |
| 217 SpvImageChannelOrderLuminance = 9, |
| 218 SpvImageChannelOrderRx = 10, |
| 219 SpvImageChannelOrderRGx = 11, |
| 220 SpvImageChannelOrderRGBx = 12, |
| 221 SpvImageChannelOrderDepth = 13, |
| 222 SpvImageChannelOrderDepthStencil = 14, |
| 223 SpvImageChannelOrdersRGB = 15, |
| 224 SpvImageChannelOrdersRGBx = 16, |
| 225 SpvImageChannelOrdersRGBA = 17, |
| 226 SpvImageChannelOrdersBGRA = 18, |
| 227 } SpvImageChannelOrder; |
| 228 |
| 229 typedef enum SpvImageChannelDataType_ { |
| 230 SpvImageChannelDataTypeSnormInt8 = 0, |
| 231 SpvImageChannelDataTypeSnormInt16 = 1, |
| 232 SpvImageChannelDataTypeUnormInt8 = 2, |
| 233 SpvImageChannelDataTypeUnormInt16 = 3, |
| 234 SpvImageChannelDataTypeUnormShort565 = 4, |
| 235 SpvImageChannelDataTypeUnormShort555 = 5, |
| 236 SpvImageChannelDataTypeUnormInt101010 = 6, |
| 237 SpvImageChannelDataTypeSignedInt8 = 7, |
| 238 SpvImageChannelDataTypeSignedInt16 = 8, |
| 239 SpvImageChannelDataTypeSignedInt32 = 9, |
| 240 SpvImageChannelDataTypeUnsignedInt8 = 10, |
| 241 SpvImageChannelDataTypeUnsignedInt16 = 11, |
| 242 SpvImageChannelDataTypeUnsignedInt32 = 12, |
| 243 SpvImageChannelDataTypeHalfFloat = 13, |
| 244 SpvImageChannelDataTypeFloat = 14, |
| 245 SpvImageChannelDataTypeUnormInt24 = 15, |
| 246 SpvImageChannelDataTypeUnormInt101010_2 = 16, |
| 247 } SpvImageChannelDataType; |
| 248 |
| 249 typedef enum SpvImageOperandsShift_ { |
| 250 SpvImageOperandsBiasShift = 0, |
| 251 SpvImageOperandsLodShift = 1, |
| 252 SpvImageOperandsGradShift = 2, |
| 253 SpvImageOperandsConstOffsetShift = 3, |
| 254 SpvImageOperandsOffsetShift = 4, |
| 255 SpvImageOperandsConstOffsetsShift = 5, |
| 256 SpvImageOperandsSampleShift = 6, |
| 257 SpvImageOperandsMinLodShift = 7, |
| 258 } SpvImageOperandsShift; |
| 259 |
| 260 typedef enum SpvImageOperandsMask_ { |
| 261 SpvImageOperandsMaskNone = 0, |
| 262 SpvImageOperandsBiasMask = 0x00000001, |
| 263 SpvImageOperandsLodMask = 0x00000002, |
| 264 SpvImageOperandsGradMask = 0x00000004, |
| 265 SpvImageOperandsConstOffsetMask = 0x00000008, |
| 266 SpvImageOperandsOffsetMask = 0x00000010, |
| 267 SpvImageOperandsConstOffsetsMask = 0x00000020, |
| 268 SpvImageOperandsSampleMask = 0x00000040, |
| 269 SpvImageOperandsMinLodMask = 0x00000080, |
| 270 } SpvImageOperandsMask; |
| 271 |
| 272 typedef enum SpvFPFastMathModeShift_ { |
| 273 SpvFPFastMathModeNotNaNShift = 0, |
| 274 SpvFPFastMathModeNotInfShift = 1, |
| 275 SpvFPFastMathModeNSZShift = 2, |
| 276 SpvFPFastMathModeAllowRecipShift = 3, |
| 277 SpvFPFastMathModeFastShift = 4, |
| 278 } SpvFPFastMathModeShift; |
| 279 |
| 280 typedef enum SpvFPFastMathModeMask_ { |
| 281 SpvFPFastMathModeMaskNone = 0, |
| 282 SpvFPFastMathModeNotNaNMask = 0x00000001, |
| 283 SpvFPFastMathModeNotInfMask = 0x00000002, |
| 284 SpvFPFastMathModeNSZMask = 0x00000004, |
| 285 SpvFPFastMathModeAllowRecipMask = 0x00000008, |
| 286 SpvFPFastMathModeFastMask = 0x00000010, |
| 287 } SpvFPFastMathModeMask; |
| 288 |
| 289 typedef enum SpvFPRoundingMode_ { |
| 290 SpvFPRoundingModeRTE = 0, |
| 291 SpvFPRoundingModeRTZ = 1, |
| 292 SpvFPRoundingModeRTP = 2, |
| 293 SpvFPRoundingModeRTN = 3, |
| 294 } SpvFPRoundingMode; |
| 295 |
| 296 typedef enum SpvLinkageType_ { |
| 297 SpvLinkageTypeExport = 0, |
| 298 SpvLinkageTypeImport = 1, |
| 299 } SpvLinkageType; |
| 300 |
| 301 typedef enum SpvAccessQualifier_ { |
| 302 SpvAccessQualifierReadOnly = 0, |
| 303 SpvAccessQualifierWriteOnly = 1, |
| 304 SpvAccessQualifierReadWrite = 2, |
| 305 } SpvAccessQualifier; |
| 306 |
| 307 typedef enum SpvFunctionParameterAttribute_ { |
| 308 SpvFunctionParameterAttributeZext = 0, |
| 309 SpvFunctionParameterAttributeSext = 1, |
| 310 SpvFunctionParameterAttributeByVal = 2, |
| 311 SpvFunctionParameterAttributeSret = 3, |
| 312 SpvFunctionParameterAttributeNoAlias = 4, |
| 313 SpvFunctionParameterAttributeNoCapture = 5, |
| 314 SpvFunctionParameterAttributeNoWrite = 6, |
| 315 SpvFunctionParameterAttributeNoReadWrite = 7, |
| 316 } SpvFunctionParameterAttribute; |
| 317 |
| 318 typedef enum SpvDecoration_ { |
| 319 SpvDecorationRelaxedPrecision = 0, |
| 320 SpvDecorationSpecId = 1, |
| 321 SpvDecorationBlock = 2, |
| 322 SpvDecorationBufferBlock = 3, |
| 323 SpvDecorationRowMajor = 4, |
| 324 SpvDecorationColMajor = 5, |
| 325 SpvDecorationArrayStride = 6, |
| 326 SpvDecorationMatrixStride = 7, |
| 327 SpvDecorationGLSLShared = 8, |
| 328 SpvDecorationGLSLPacked = 9, |
| 329 SpvDecorationCPacked = 10, |
| 330 SpvDecorationBuiltIn = 11, |
| 331 SpvDecorationNoPerspective = 13, |
| 332 SpvDecorationFlat = 14, |
| 333 SpvDecorationPatch = 15, |
| 334 SpvDecorationCentroid = 16, |
| 335 SpvDecorationSample = 17, |
| 336 SpvDecorationInvariant = 18, |
| 337 SpvDecorationRestrict = 19, |
| 338 SpvDecorationAliased = 20, |
| 339 SpvDecorationVolatile = 21, |
| 340 SpvDecorationConstant = 22, |
| 341 SpvDecorationCoherent = 23, |
| 342 SpvDecorationNonWritable = 24, |
| 343 SpvDecorationNonReadable = 25, |
| 344 SpvDecorationUniform = 26, |
| 345 SpvDecorationSaturatedConversion = 28, |
| 346 SpvDecorationStream = 29, |
| 347 SpvDecorationLocation = 30, |
| 348 SpvDecorationComponent = 31, |
| 349 SpvDecorationIndex = 32, |
| 350 SpvDecorationBinding = 33, |
| 351 SpvDecorationDescriptorSet = 34, |
| 352 SpvDecorationOffset = 35, |
| 353 SpvDecorationXfbBuffer = 36, |
| 354 SpvDecorationXfbStride = 37, |
| 355 SpvDecorationFuncParamAttr = 38, |
| 356 SpvDecorationFPRoundingMode = 39, |
| 357 SpvDecorationFPFastMathMode = 40, |
| 358 SpvDecorationLinkageAttributes = 41, |
| 359 SpvDecorationNoContraction = 42, |
| 360 SpvDecorationInputAttachmentIndex = 43, |
| 361 SpvDecorationAlignment = 44, |
| 362 } SpvDecoration; |
| 363 |
| 364 typedef enum SpvBuiltIn_ { |
| 365 SpvBuiltInPosition = 0, |
| 366 SpvBuiltInPointSize = 1, |
| 367 SpvBuiltInClipDistance = 3, |
| 368 SpvBuiltInCullDistance = 4, |
| 369 SpvBuiltInVertexId = 5, |
| 370 SpvBuiltInInstanceId = 6, |
| 371 SpvBuiltInPrimitiveId = 7, |
| 372 SpvBuiltInInvocationId = 8, |
| 373 SpvBuiltInLayer = 9, |
| 374 SpvBuiltInViewportIndex = 10, |
| 375 SpvBuiltInTessLevelOuter = 11, |
| 376 SpvBuiltInTessLevelInner = 12, |
| 377 SpvBuiltInTessCoord = 13, |
| 378 SpvBuiltInPatchVertices = 14, |
| 379 SpvBuiltInFragCoord = 15, |
| 380 SpvBuiltInPointCoord = 16, |
| 381 SpvBuiltInFrontFacing = 17, |
| 382 SpvBuiltInSampleId = 18, |
| 383 SpvBuiltInSamplePosition = 19, |
| 384 SpvBuiltInSampleMask = 20, |
| 385 SpvBuiltInFragDepth = 22, |
| 386 SpvBuiltInHelperInvocation = 23, |
| 387 SpvBuiltInNumWorkgroups = 24, |
| 388 SpvBuiltInWorkgroupSize = 25, |
| 389 SpvBuiltInWorkgroupId = 26, |
| 390 SpvBuiltInLocalInvocationId = 27, |
| 391 SpvBuiltInGlobalInvocationId = 28, |
| 392 SpvBuiltInLocalInvocationIndex = 29, |
| 393 SpvBuiltInWorkDim = 30, |
| 394 SpvBuiltInGlobalSize = 31, |
| 395 SpvBuiltInEnqueuedWorkgroupSize = 32, |
| 396 SpvBuiltInGlobalOffset = 33, |
| 397 SpvBuiltInGlobalLinearId = 34, |
| 398 SpvBuiltInSubgroupSize = 36, |
| 399 SpvBuiltInSubgroupMaxSize = 37, |
| 400 SpvBuiltInNumSubgroups = 38, |
| 401 SpvBuiltInNumEnqueuedSubgroups = 39, |
| 402 SpvBuiltInSubgroupId = 40, |
| 403 SpvBuiltInSubgroupLocalInvocationId = 41, |
| 404 SpvBuiltInVertexIndex = 42, |
| 405 SpvBuiltInInstanceIndex = 43, |
| 406 } SpvBuiltIn; |
| 407 |
| 408 typedef enum SpvSelectionControlShift_ { |
| 409 SpvSelectionControlFlattenShift = 0, |
| 410 SpvSelectionControlDontFlattenShift = 1, |
| 411 } SpvSelectionControlShift; |
| 412 |
| 413 typedef enum SpvSelectionControlMask_ { |
| 414 SpvSelectionControlMaskNone = 0, |
| 415 SpvSelectionControlFlattenMask = 0x00000001, |
| 416 SpvSelectionControlDontFlattenMask = 0x00000002, |
| 417 } SpvSelectionControlMask; |
| 418 |
| 419 typedef enum SpvLoopControlShift_ { |
| 420 SpvLoopControlUnrollShift = 0, |
| 421 SpvLoopControlDontUnrollShift = 1, |
| 422 } SpvLoopControlShift; |
| 423 |
| 424 typedef enum SpvLoopControlMask_ { |
| 425 SpvLoopControlMaskNone = 0, |
| 426 SpvLoopControlUnrollMask = 0x00000001, |
| 427 SpvLoopControlDontUnrollMask = 0x00000002, |
| 428 } SpvLoopControlMask; |
| 429 |
| 430 typedef enum SpvFunctionControlShift_ { |
| 431 SpvFunctionControlInlineShift = 0, |
| 432 SpvFunctionControlDontInlineShift = 1, |
| 433 SpvFunctionControlPureShift = 2, |
| 434 SpvFunctionControlConstShift = 3, |
| 435 } SpvFunctionControlShift; |
| 436 |
| 437 typedef enum SpvFunctionControlMask_ { |
| 438 SpvFunctionControlMaskNone = 0, |
| 439 SpvFunctionControlInlineMask = 0x00000001, |
| 440 SpvFunctionControlDontInlineMask = 0x00000002, |
| 441 SpvFunctionControlPureMask = 0x00000004, |
| 442 SpvFunctionControlConstMask = 0x00000008, |
| 443 } SpvFunctionControlMask; |
| 444 |
| 445 typedef enum SpvMemorySemanticsShift_ { |
| 446 SpvMemorySemanticsAcquireShift = 1, |
| 447 SpvMemorySemanticsReleaseShift = 2, |
| 448 SpvMemorySemanticsAcquireReleaseShift = 3, |
| 449 SpvMemorySemanticsSequentiallyConsistentShift = 4, |
| 450 SpvMemorySemanticsUniformMemoryShift = 6, |
| 451 SpvMemorySemanticsSubgroupMemoryShift = 7, |
| 452 SpvMemorySemanticsWorkgroupMemoryShift = 8, |
| 453 SpvMemorySemanticsCrossWorkgroupMemoryShift = 9, |
| 454 SpvMemorySemanticsAtomicCounterMemoryShift = 10, |
| 455 SpvMemorySemanticsImageMemoryShift = 11, |
| 456 } SpvMemorySemanticsShift; |
| 457 |
| 458 typedef enum SpvMemorySemanticsMask_ { |
| 459 SpvMemorySemanticsMaskNone = 0, |
| 460 SpvMemorySemanticsAcquireMask = 0x00000002, |
| 461 SpvMemorySemanticsReleaseMask = 0x00000004, |
| 462 SpvMemorySemanticsAcquireReleaseMask = 0x00000008, |
| 463 SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010, |
| 464 SpvMemorySemanticsUniformMemoryMask = 0x00000040, |
| 465 SpvMemorySemanticsSubgroupMemoryMask = 0x00000080, |
| 466 SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100, |
| 467 SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200, |
| 468 SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400, |
| 469 SpvMemorySemanticsImageMemoryMask = 0x00000800, |
| 470 } SpvMemorySemanticsMask; |
| 471 |
| 472 typedef enum SpvMemoryAccessShift_ { |
| 473 SpvMemoryAccessVolatileShift = 0, |
| 474 SpvMemoryAccessAlignedShift = 1, |
| 475 SpvMemoryAccessNontemporalShift = 2, |
| 476 } SpvMemoryAccessShift; |
| 477 |
| 478 typedef enum SpvMemoryAccessMask_ { |
| 479 SpvMemoryAccessMaskNone = 0, |
| 480 SpvMemoryAccessVolatileMask = 0x00000001, |
| 481 SpvMemoryAccessAlignedMask = 0x00000002, |
| 482 SpvMemoryAccessNontemporalMask = 0x00000004, |
| 483 } SpvMemoryAccessMask; |
| 484 |
| 485 typedef enum SpvScope_ { |
| 486 SpvScopeCrossDevice = 0, |
| 487 SpvScopeDevice = 1, |
| 488 SpvScopeWorkgroup = 2, |
| 489 SpvScopeSubgroup = 3, |
| 490 SpvScopeInvocation = 4, |
| 491 } SpvScope; |
| 492 |
| 493 typedef enum SpvGroupOperation_ { |
| 494 SpvGroupOperationReduce = 0, |
| 495 SpvGroupOperationInclusiveScan = 1, |
| 496 SpvGroupOperationExclusiveScan = 2, |
| 497 } SpvGroupOperation; |
| 498 |
| 499 typedef enum SpvKernelEnqueueFlags_ { |
| 500 SpvKernelEnqueueFlagsNoWait = 0, |
| 501 SpvKernelEnqueueFlagsWaitKernel = 1, |
| 502 SpvKernelEnqueueFlagsWaitWorkGroup = 2, |
| 503 } SpvKernelEnqueueFlags; |
| 504 |
| 505 typedef enum SpvKernelProfilingInfoShift_ { |
| 506 SpvKernelProfilingInfoCmdExecTimeShift = 0, |
| 507 } SpvKernelProfilingInfoShift; |
| 508 |
| 509 typedef enum SpvKernelProfilingInfoMask_ { |
| 510 SpvKernelProfilingInfoMaskNone = 0, |
| 511 SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001, |
| 512 } SpvKernelProfilingInfoMask; |
| 513 |
| 514 typedef enum SpvCapability_ { |
| 515 SpvCapabilityMatrix = 0, |
| 516 SpvCapabilityShader = 1, |
| 517 SpvCapabilityGeometry = 2, |
| 518 SpvCapabilityTessellation = 3, |
| 519 SpvCapabilityAddresses = 4, |
| 520 SpvCapabilityLinkage = 5, |
| 521 SpvCapabilityKernel = 6, |
| 522 SpvCapabilityVector16 = 7, |
| 523 SpvCapabilityFloat16Buffer = 8, |
| 524 SpvCapabilityFloat16 = 9, |
| 525 SpvCapabilityFloat64 = 10, |
| 526 SpvCapabilityInt64 = 11, |
| 527 SpvCapabilityInt64Atomics = 12, |
| 528 SpvCapabilityImageBasic = 13, |
| 529 SpvCapabilityImageReadWrite = 14, |
| 530 SpvCapabilityImageMipmap = 15, |
| 531 SpvCapabilityPipes = 17, |
| 532 SpvCapabilityGroups = 18, |
| 533 SpvCapabilityDeviceEnqueue = 19, |
| 534 SpvCapabilityLiteralSampler = 20, |
| 535 SpvCapabilityAtomicStorage = 21, |
| 536 SpvCapabilityInt16 = 22, |
| 537 SpvCapabilityTessellationPointSize = 23, |
| 538 SpvCapabilityGeometryPointSize = 24, |
| 539 SpvCapabilityImageGatherExtended = 25, |
| 540 SpvCapabilityStorageImageMultisample = 27, |
| 541 SpvCapabilityUniformBufferArrayDynamicIndexing = 28, |
| 542 SpvCapabilitySampledImageArrayDynamicIndexing = 29, |
| 543 SpvCapabilityStorageBufferArrayDynamicIndexing = 30, |
| 544 SpvCapabilityStorageImageArrayDynamicIndexing = 31, |
| 545 SpvCapabilityClipDistance = 32, |
| 546 SpvCapabilityCullDistance = 33, |
| 547 SpvCapabilityImageCubeArray = 34, |
| 548 SpvCapabilitySampleRateShading = 35, |
| 549 SpvCapabilityImageRect = 36, |
| 550 SpvCapabilitySampledRect = 37, |
| 551 SpvCapabilityGenericPointer = 38, |
| 552 SpvCapabilityInt8 = 39, |
| 553 SpvCapabilityInputAttachment = 40, |
| 554 SpvCapabilitySparseResidency = 41, |
| 555 SpvCapabilityMinLod = 42, |
| 556 SpvCapabilitySampled1D = 43, |
| 557 SpvCapabilityImage1D = 44, |
| 558 SpvCapabilitySampledCubeArray = 45, |
| 559 SpvCapabilitySampledBuffer = 46, |
| 560 SpvCapabilityImageBuffer = 47, |
| 561 SpvCapabilityImageMSArray = 48, |
| 562 SpvCapabilityStorageImageExtendedFormats = 49, |
| 563 SpvCapabilityImageQuery = 50, |
| 564 SpvCapabilityDerivativeControl = 51, |
| 565 SpvCapabilityInterpolationFunction = 52, |
| 566 SpvCapabilityTransformFeedback = 53, |
| 567 SpvCapabilityGeometryStreams = 54, |
| 568 SpvCapabilityStorageImageReadWithoutFormat = 55, |
| 569 SpvCapabilityStorageImageWriteWithoutFormat = 56, |
| 570 SpvCapabilityMultiViewport = 57, |
| 571 } SpvCapability; |
| 572 |
| 573 typedef enum SpvOp_ { |
| 574 SpvOpNop = 0, |
| 575 SpvOpUndef = 1, |
| 576 SpvOpSourceContinued = 2, |
| 577 SpvOpSource = 3, |
| 578 SpvOpSourceExtension = 4, |
| 579 SpvOpName = 5, |
| 580 SpvOpMemberName = 6, |
| 581 SpvOpString = 7, |
| 582 SpvOpLine = 8, |
| 583 SpvOpExtension = 10, |
| 584 SpvOpExtInstImport = 11, |
| 585 SpvOpExtInst = 12, |
| 586 SpvOpMemoryModel = 14, |
| 587 SpvOpEntryPoint = 15, |
| 588 SpvOpExecutionMode = 16, |
| 589 SpvOpCapability = 17, |
| 590 SpvOpTypeVoid = 19, |
| 591 SpvOpTypeBool = 20, |
| 592 SpvOpTypeInt = 21, |
| 593 SpvOpTypeFloat = 22, |
| 594 SpvOpTypeVector = 23, |
| 595 SpvOpTypeMatrix = 24, |
| 596 SpvOpTypeImage = 25, |
| 597 SpvOpTypeSampler = 26, |
| 598 SpvOpTypeSampledImage = 27, |
| 599 SpvOpTypeArray = 28, |
| 600 SpvOpTypeRuntimeArray = 29, |
| 601 SpvOpTypeStruct = 30, |
| 602 SpvOpTypeOpaque = 31, |
| 603 SpvOpTypePointer = 32, |
| 604 SpvOpTypeFunction = 33, |
| 605 SpvOpTypeEvent = 34, |
| 606 SpvOpTypeDeviceEvent = 35, |
| 607 SpvOpTypeReserveId = 36, |
| 608 SpvOpTypeQueue = 37, |
| 609 SpvOpTypePipe = 38, |
| 610 SpvOpTypeForwardPointer = 39, |
| 611 SpvOpConstantTrue = 41, |
| 612 SpvOpConstantFalse = 42, |
| 613 SpvOpConstant = 43, |
| 614 SpvOpConstantComposite = 44, |
| 615 SpvOpConstantSampler = 45, |
| 616 SpvOpConstantNull = 46, |
| 617 SpvOpSpecConstantTrue = 48, |
| 618 SpvOpSpecConstantFalse = 49, |
| 619 SpvOpSpecConstant = 50, |
| 620 SpvOpSpecConstantComposite = 51, |
| 621 SpvOpSpecConstantOp = 52, |
| 622 SpvOpFunction = 54, |
| 623 SpvOpFunctionParameter = 55, |
| 624 SpvOpFunctionEnd = 56, |
| 625 SpvOpFunctionCall = 57, |
| 626 SpvOpVariable = 59, |
| 627 SpvOpImageTexelPointer = 60, |
| 628 SpvOpLoad = 61, |
| 629 SpvOpStore = 62, |
| 630 SpvOpCopyMemory = 63, |
| 631 SpvOpCopyMemorySized = 64, |
| 632 SpvOpAccessChain = 65, |
| 633 SpvOpInBoundsAccessChain = 66, |
| 634 SpvOpPtrAccessChain = 67, |
| 635 SpvOpArrayLength = 68, |
| 636 SpvOpGenericPtrMemSemantics = 69, |
| 637 SpvOpInBoundsPtrAccessChain = 70, |
| 638 SpvOpDecorate = 71, |
| 639 SpvOpMemberDecorate = 72, |
| 640 SpvOpDecorationGroup = 73, |
| 641 SpvOpGroupDecorate = 74, |
| 642 SpvOpGroupMemberDecorate = 75, |
| 643 SpvOpVectorExtractDynamic = 77, |
| 644 SpvOpVectorInsertDynamic = 78, |
| 645 SpvOpVectorShuffle = 79, |
| 646 SpvOpCompositeConstruct = 80, |
| 647 SpvOpCompositeExtract = 81, |
| 648 SpvOpCompositeInsert = 82, |
| 649 SpvOpCopyObject = 83, |
| 650 SpvOpTranspose = 84, |
| 651 SpvOpSampledImage = 86, |
| 652 SpvOpImageSampleImplicitLod = 87, |
| 653 SpvOpImageSampleExplicitLod = 88, |
| 654 SpvOpImageSampleDrefImplicitLod = 89, |
| 655 SpvOpImageSampleDrefExplicitLod = 90, |
| 656 SpvOpImageSampleProjImplicitLod = 91, |
| 657 SpvOpImageSampleProjExplicitLod = 92, |
| 658 SpvOpImageSampleProjDrefImplicitLod = 93, |
| 659 SpvOpImageSampleProjDrefExplicitLod = 94, |
| 660 SpvOpImageFetch = 95, |
| 661 SpvOpImageGather = 96, |
| 662 SpvOpImageDrefGather = 97, |
| 663 SpvOpImageRead = 98, |
| 664 SpvOpImageWrite = 99, |
| 665 SpvOpImage = 100, |
| 666 SpvOpImageQueryFormat = 101, |
| 667 SpvOpImageQueryOrder = 102, |
| 668 SpvOpImageQuerySizeLod = 103, |
| 669 SpvOpImageQuerySize = 104, |
| 670 SpvOpImageQueryLod = 105, |
| 671 SpvOpImageQueryLevels = 106, |
| 672 SpvOpImageQuerySamples = 107, |
| 673 SpvOpConvertFToU = 109, |
| 674 SpvOpConvertFToS = 110, |
| 675 SpvOpConvertSToF = 111, |
| 676 SpvOpConvertUToF = 112, |
| 677 SpvOpUConvert = 113, |
| 678 SpvOpSConvert = 114, |
| 679 SpvOpFConvert = 115, |
| 680 SpvOpQuantizeToF16 = 116, |
| 681 SpvOpConvertPtrToU = 117, |
| 682 SpvOpSatConvertSToU = 118, |
| 683 SpvOpSatConvertUToS = 119, |
| 684 SpvOpConvertUToPtr = 120, |
| 685 SpvOpPtrCastToGeneric = 121, |
| 686 SpvOpGenericCastToPtr = 122, |
| 687 SpvOpGenericCastToPtrExplicit = 123, |
| 688 SpvOpBitcast = 124, |
| 689 SpvOpSNegate = 126, |
| 690 SpvOpFNegate = 127, |
| 691 SpvOpIAdd = 128, |
| 692 SpvOpFAdd = 129, |
| 693 SpvOpISub = 130, |
| 694 SpvOpFSub = 131, |
| 695 SpvOpIMul = 132, |
| 696 SpvOpFMul = 133, |
| 697 SpvOpUDiv = 134, |
| 698 SpvOpSDiv = 135, |
| 699 SpvOpFDiv = 136, |
| 700 SpvOpUMod = 137, |
| 701 SpvOpSRem = 138, |
| 702 SpvOpSMod = 139, |
| 703 SpvOpFRem = 140, |
| 704 SpvOpFMod = 141, |
| 705 SpvOpVectorTimesScalar = 142, |
| 706 SpvOpMatrixTimesScalar = 143, |
| 707 SpvOpVectorTimesMatrix = 144, |
| 708 SpvOpMatrixTimesVector = 145, |
| 709 SpvOpMatrixTimesMatrix = 146, |
| 710 SpvOpOuterProduct = 147, |
| 711 SpvOpDot = 148, |
| 712 SpvOpIAddCarry = 149, |
| 713 SpvOpISubBorrow = 150, |
| 714 SpvOpUMulExtended = 151, |
| 715 SpvOpSMulExtended = 152, |
| 716 SpvOpAny = 154, |
| 717 SpvOpAll = 155, |
| 718 SpvOpIsNan = 156, |
| 719 SpvOpIsInf = 157, |
| 720 SpvOpIsFinite = 158, |
| 721 SpvOpIsNormal = 159, |
| 722 SpvOpSignBitSet = 160, |
| 723 SpvOpLessOrGreater = 161, |
| 724 SpvOpOrdered = 162, |
| 725 SpvOpUnordered = 163, |
| 726 SpvOpLogicalEqual = 164, |
| 727 SpvOpLogicalNotEqual = 165, |
| 728 SpvOpLogicalOr = 166, |
| 729 SpvOpLogicalAnd = 167, |
| 730 SpvOpLogicalNot = 168, |
| 731 SpvOpSelect = 169, |
| 732 SpvOpIEqual = 170, |
| 733 SpvOpINotEqual = 171, |
| 734 SpvOpUGreaterThan = 172, |
| 735 SpvOpSGreaterThan = 173, |
| 736 SpvOpUGreaterThanEqual = 174, |
| 737 SpvOpSGreaterThanEqual = 175, |
| 738 SpvOpULessThan = 176, |
| 739 SpvOpSLessThan = 177, |
| 740 SpvOpULessThanEqual = 178, |
| 741 SpvOpSLessThanEqual = 179, |
| 742 SpvOpFOrdEqual = 180, |
| 743 SpvOpFUnordEqual = 181, |
| 744 SpvOpFOrdNotEqual = 182, |
| 745 SpvOpFUnordNotEqual = 183, |
| 746 SpvOpFOrdLessThan = 184, |
| 747 SpvOpFUnordLessThan = 185, |
| 748 SpvOpFOrdGreaterThan = 186, |
| 749 SpvOpFUnordGreaterThan = 187, |
| 750 SpvOpFOrdLessThanEqual = 188, |
| 751 SpvOpFUnordLessThanEqual = 189, |
| 752 SpvOpFOrdGreaterThanEqual = 190, |
| 753 SpvOpFUnordGreaterThanEqual = 191, |
| 754 SpvOpShiftRightLogical = 194, |
| 755 SpvOpShiftRightArithmetic = 195, |
| 756 SpvOpShiftLeftLogical = 196, |
| 757 SpvOpBitwiseOr = 197, |
| 758 SpvOpBitwiseXor = 198, |
| 759 SpvOpBitwiseAnd = 199, |
| 760 SpvOpNot = 200, |
| 761 SpvOpBitFieldInsert = 201, |
| 762 SpvOpBitFieldSExtract = 202, |
| 763 SpvOpBitFieldUExtract = 203, |
| 764 SpvOpBitReverse = 204, |
| 765 SpvOpBitCount = 205, |
| 766 SpvOpDPdx = 207, |
| 767 SpvOpDPdy = 208, |
| 768 SpvOpFwidth = 209, |
| 769 SpvOpDPdxFine = 210, |
| 770 SpvOpDPdyFine = 211, |
| 771 SpvOpFwidthFine = 212, |
| 772 SpvOpDPdxCoarse = 213, |
| 773 SpvOpDPdyCoarse = 214, |
| 774 SpvOpFwidthCoarse = 215, |
| 775 SpvOpEmitVertex = 218, |
| 776 SpvOpEndPrimitive = 219, |
| 777 SpvOpEmitStreamVertex = 220, |
| 778 SpvOpEndStreamPrimitive = 221, |
| 779 SpvOpControlBarrier = 224, |
| 780 SpvOpMemoryBarrier = 225, |
| 781 SpvOpAtomicLoad = 227, |
| 782 SpvOpAtomicStore = 228, |
| 783 SpvOpAtomicExchange = 229, |
| 784 SpvOpAtomicCompareExchange = 230, |
| 785 SpvOpAtomicCompareExchangeWeak = 231, |
| 786 SpvOpAtomicIIncrement = 232, |
| 787 SpvOpAtomicIDecrement = 233, |
| 788 SpvOpAtomicIAdd = 234, |
| 789 SpvOpAtomicISub = 235, |
| 790 SpvOpAtomicSMin = 236, |
| 791 SpvOpAtomicUMin = 237, |
| 792 SpvOpAtomicSMax = 238, |
| 793 SpvOpAtomicUMax = 239, |
| 794 SpvOpAtomicAnd = 240, |
| 795 SpvOpAtomicOr = 241, |
| 796 SpvOpAtomicXor = 242, |
| 797 SpvOpPhi = 245, |
| 798 SpvOpLoopMerge = 246, |
| 799 SpvOpSelectionMerge = 247, |
| 800 SpvOpLabel = 248, |
| 801 SpvOpBranch = 249, |
| 802 SpvOpBranchConditional = 250, |
| 803 SpvOpSwitch = 251, |
| 804 SpvOpKill = 252, |
| 805 SpvOpReturn = 253, |
| 806 SpvOpReturnValue = 254, |
| 807 SpvOpUnreachable = 255, |
| 808 SpvOpLifetimeStart = 256, |
| 809 SpvOpLifetimeStop = 257, |
| 810 SpvOpGroupAsyncCopy = 259, |
| 811 SpvOpGroupWaitEvents = 260, |
| 812 SpvOpGroupAll = 261, |
| 813 SpvOpGroupAny = 262, |
| 814 SpvOpGroupBroadcast = 263, |
| 815 SpvOpGroupIAdd = 264, |
| 816 SpvOpGroupFAdd = 265, |
| 817 SpvOpGroupFMin = 266, |
| 818 SpvOpGroupUMin = 267, |
| 819 SpvOpGroupSMin = 268, |
| 820 SpvOpGroupFMax = 269, |
| 821 SpvOpGroupUMax = 270, |
| 822 SpvOpGroupSMax = 271, |
| 823 SpvOpReadPipe = 274, |
| 824 SpvOpWritePipe = 275, |
| 825 SpvOpReservedReadPipe = 276, |
| 826 SpvOpReservedWritePipe = 277, |
| 827 SpvOpReserveReadPipePackets = 278, |
| 828 SpvOpReserveWritePipePackets = 279, |
| 829 SpvOpCommitReadPipe = 280, |
| 830 SpvOpCommitWritePipe = 281, |
| 831 SpvOpIsValidReserveId = 282, |
| 832 SpvOpGetNumPipePackets = 283, |
| 833 SpvOpGetMaxPipePackets = 284, |
| 834 SpvOpGroupReserveReadPipePackets = 285, |
| 835 SpvOpGroupReserveWritePipePackets = 286, |
| 836 SpvOpGroupCommitReadPipe = 287, |
| 837 SpvOpGroupCommitWritePipe = 288, |
| 838 SpvOpEnqueueMarker = 291, |
| 839 SpvOpEnqueueKernel = 292, |
| 840 SpvOpGetKernelNDrangeSubGroupCount = 293, |
| 841 SpvOpGetKernelNDrangeMaxSubGroupSize = 294, |
| 842 SpvOpGetKernelWorkGroupSize = 295, |
| 843 SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296, |
| 844 SpvOpRetainEvent = 297, |
| 845 SpvOpReleaseEvent = 298, |
| 846 SpvOpCreateUserEvent = 299, |
| 847 SpvOpIsValidEvent = 300, |
| 848 SpvOpSetUserEventStatus = 301, |
| 849 SpvOpCaptureEventProfilingInfo = 302, |
| 850 SpvOpGetDefaultQueue = 303, |
| 851 SpvOpBuildNDRange = 304, |
| 852 SpvOpImageSparseSampleImplicitLod = 305, |
| 853 SpvOpImageSparseSampleExplicitLod = 306, |
| 854 SpvOpImageSparseSampleDrefImplicitLod = 307, |
| 855 SpvOpImageSparseSampleDrefExplicitLod = 308, |
| 856 SpvOpImageSparseSampleProjImplicitLod = 309, |
| 857 SpvOpImageSparseSampleProjExplicitLod = 310, |
| 858 SpvOpImageSparseSampleProjDrefImplicitLod = 311, |
| 859 SpvOpImageSparseSampleProjDrefExplicitLod = 312, |
| 860 SpvOpImageSparseFetch = 313, |
| 861 SpvOpImageSparseGather = 314, |
| 862 SpvOpImageSparseDrefGather = 315, |
| 863 SpvOpImageSparseTexelsResident = 316, |
| 864 SpvOpNoLine = 317, |
| 865 SpvOpAtomicFlagTestAndSet = 318, |
| 866 SpvOpAtomicFlagClear = 319, |
| 867 SpvOpImageSparseRead = 320, |
| 868 } SpvOp; |
| 869 |
| 870 #endif // #ifndef spirv_H |
OLD | NEW |