OLD | NEW |
---|---|
(Empty) | |
1 /* | |
2 ** Copyright (c) 2014-2016 The Khronos Group Inc. | |
dogben
2016/06/23 17:43:12
IANAL, but we may need to add a section to LICENSE
| |
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 |