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 | = 77, |
644 | SpvOpVectorInsertDynamic = 78, |
645 | SpvOpVectorShuffle = 79, |
646 | SpvOpCompositeConstruct = 80, |
647 | = 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 | = 202, |
763 | = 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 |
871 | |