1 /* automatically generated by rust-bindgen */
2 
3 #[allow(non_snake_case, non_camel_case_types, non_upper_case_globals)]
4 pub mod root {
5     #[allow(unused_imports)]
6     use self::super::root;
7     pub mod spv {
8         #[allow(unused_imports)]
9         use self::super::super::root;
10         pub type Id = ::std::os::raw::c_uint;
11         pub const SourceLanguage_SourceLanguageUnknown: root::spv::SourceLanguage = 0;
12         pub const SourceLanguage_SourceLanguageESSL: root::spv::SourceLanguage = 1;
13         pub const SourceLanguage_SourceLanguageGLSL: root::spv::SourceLanguage = 2;
14         pub const SourceLanguage_SourceLanguageOpenCL_C: root::spv::SourceLanguage = 3;
15         pub const SourceLanguage_SourceLanguageOpenCL_CPP: root::spv::SourceLanguage = 4;
16         pub const SourceLanguage_SourceLanguageHLSL: root::spv::SourceLanguage = 5;
17         pub const SourceLanguage_SourceLanguageMax: root::spv::SourceLanguage = 2147483647;
18         pub type SourceLanguage = u32;
19         impl root::spv::ExecutionModel {
20             pub const ExecutionModelRayGenerationNV: root::spv::ExecutionModel =
21                 ExecutionModel::ExecutionModelRayGenerationKHR;
22         }
23         impl root::spv::ExecutionModel {
24             pub const ExecutionModelIntersectionNV: root::spv::ExecutionModel =
25                 ExecutionModel::ExecutionModelIntersectionKHR;
26         }
27         impl root::spv::ExecutionModel {
28             pub const ExecutionModelAnyHitNV: root::spv::ExecutionModel =
29                 ExecutionModel::ExecutionModelAnyHitKHR;
30         }
31         impl root::spv::ExecutionModel {
32             pub const ExecutionModelClosestHitNV: root::spv::ExecutionModel =
33                 ExecutionModel::ExecutionModelClosestHitKHR;
34         }
35         impl root::spv::ExecutionModel {
36             pub const ExecutionModelMissNV: root::spv::ExecutionModel =
37                 ExecutionModel::ExecutionModelMissKHR;
38         }
39         impl root::spv::ExecutionModel {
40             pub const ExecutionModelCallableNV: root::spv::ExecutionModel =
41                 ExecutionModel::ExecutionModelCallableKHR;
42         }
43         #[repr(u32)]
44         #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
45         pub enum ExecutionModel {
46             ExecutionModelVertex = 0,
47             ExecutionModelTessellationControl = 1,
48             ExecutionModelTessellationEvaluation = 2,
49             ExecutionModelGeometry = 3,
50             ExecutionModelFragment = 4,
51             ExecutionModelGLCompute = 5,
52             ExecutionModelKernel = 6,
53             ExecutionModelTaskNV = 5267,
54             ExecutionModelMeshNV = 5268,
55             ExecutionModelRayGenerationKHR = 5313,
56             ExecutionModelIntersectionKHR = 5314,
57             ExecutionModelAnyHitKHR = 5315,
58             ExecutionModelClosestHitKHR = 5316,
59             ExecutionModelMissKHR = 5317,
60             ExecutionModelCallableKHR = 5318,
61             ExecutionModelMax = 2147483647,
62         }
63         pub const AddressingModel_AddressingModelLogical: root::spv::AddressingModel = 0;
64         pub const AddressingModel_AddressingModelPhysical32: root::spv::AddressingModel = 1;
65         pub const AddressingModel_AddressingModelPhysical64: root::spv::AddressingModel = 2;
66         pub const AddressingModel_AddressingModelPhysicalStorageBuffer64:
67             root::spv::AddressingModel = 5348;
68         pub const AddressingModel_AddressingModelPhysicalStorageBuffer64EXT:
69             root::spv::AddressingModel = 5348;
70         pub const AddressingModel_AddressingModelMax: root::spv::AddressingModel = 2147483647;
71         pub type AddressingModel = u32;
72         pub const MemoryModel_MemoryModelSimple: root::spv::MemoryModel = 0;
73         pub const MemoryModel_MemoryModelGLSL450: root::spv::MemoryModel = 1;
74         pub const MemoryModel_MemoryModelOpenCL: root::spv::MemoryModel = 2;
75         pub const MemoryModel_MemoryModelVulkan: root::spv::MemoryModel = 3;
76         pub const MemoryModel_MemoryModelVulkanKHR: root::spv::MemoryModel = 3;
77         pub const MemoryModel_MemoryModelMax: root::spv::MemoryModel = 2147483647;
78         pub type MemoryModel = u32;
79         pub const ExecutionMode_ExecutionModeInvocations: root::spv::ExecutionMode = 0;
80         pub const ExecutionMode_ExecutionModeSpacingEqual: root::spv::ExecutionMode = 1;
81         pub const ExecutionMode_ExecutionModeSpacingFractionalEven: root::spv::ExecutionMode = 2;
82         pub const ExecutionMode_ExecutionModeSpacingFractionalOdd: root::spv::ExecutionMode = 3;
83         pub const ExecutionMode_ExecutionModeVertexOrderCw: root::spv::ExecutionMode = 4;
84         pub const ExecutionMode_ExecutionModeVertexOrderCcw: root::spv::ExecutionMode = 5;
85         pub const ExecutionMode_ExecutionModePixelCenterInteger: root::spv::ExecutionMode = 6;
86         pub const ExecutionMode_ExecutionModeOriginUpperLeft: root::spv::ExecutionMode = 7;
87         pub const ExecutionMode_ExecutionModeOriginLowerLeft: root::spv::ExecutionMode = 8;
88         pub const ExecutionMode_ExecutionModeEarlyFragmentTests: root::spv::ExecutionMode = 9;
89         pub const ExecutionMode_ExecutionModePointMode: root::spv::ExecutionMode = 10;
90         pub const ExecutionMode_ExecutionModeXfb: root::spv::ExecutionMode = 11;
91         pub const ExecutionMode_ExecutionModeDepthReplacing: root::spv::ExecutionMode = 12;
92         pub const ExecutionMode_ExecutionModeDepthGreater: root::spv::ExecutionMode = 14;
93         pub const ExecutionMode_ExecutionModeDepthLess: root::spv::ExecutionMode = 15;
94         pub const ExecutionMode_ExecutionModeDepthUnchanged: root::spv::ExecutionMode = 16;
95         pub const ExecutionMode_ExecutionModeLocalSize: root::spv::ExecutionMode = 17;
96         pub const ExecutionMode_ExecutionModeLocalSizeHint: root::spv::ExecutionMode = 18;
97         pub const ExecutionMode_ExecutionModeInputPoints: root::spv::ExecutionMode = 19;
98         pub const ExecutionMode_ExecutionModeInputLines: root::spv::ExecutionMode = 20;
99         pub const ExecutionMode_ExecutionModeInputLinesAdjacency: root::spv::ExecutionMode = 21;
100         pub const ExecutionMode_ExecutionModeTriangles: root::spv::ExecutionMode = 22;
101         pub const ExecutionMode_ExecutionModeInputTrianglesAdjacency: root::spv::ExecutionMode = 23;
102         pub const ExecutionMode_ExecutionModeQuads: root::spv::ExecutionMode = 24;
103         pub const ExecutionMode_ExecutionModeIsolines: root::spv::ExecutionMode = 25;
104         pub const ExecutionMode_ExecutionModeOutputVertices: root::spv::ExecutionMode = 26;
105         pub const ExecutionMode_ExecutionModeOutputPoints: root::spv::ExecutionMode = 27;
106         pub const ExecutionMode_ExecutionModeOutputLineStrip: root::spv::ExecutionMode = 28;
107         pub const ExecutionMode_ExecutionModeOutputTriangleStrip: root::spv::ExecutionMode = 29;
108         pub const ExecutionMode_ExecutionModeVecTypeHint: root::spv::ExecutionMode = 30;
109         pub const ExecutionMode_ExecutionModeContractionOff: root::spv::ExecutionMode = 31;
110         pub const ExecutionMode_ExecutionModeInitializer: root::spv::ExecutionMode = 33;
111         pub const ExecutionMode_ExecutionModeFinalizer: root::spv::ExecutionMode = 34;
112         pub const ExecutionMode_ExecutionModeSubgroupSize: root::spv::ExecutionMode = 35;
113         pub const ExecutionMode_ExecutionModeSubgroupsPerWorkgroup: root::spv::ExecutionMode = 36;
114         pub const ExecutionMode_ExecutionModeSubgroupsPerWorkgroupId: root::spv::ExecutionMode = 37;
115         pub const ExecutionMode_ExecutionModeLocalSizeId: root::spv::ExecutionMode = 38;
116         pub const ExecutionMode_ExecutionModeLocalSizeHintId: root::spv::ExecutionMode = 39;
117         pub const ExecutionMode_ExecutionModePostDepthCoverage: root::spv::ExecutionMode = 4446;
118         pub const ExecutionMode_ExecutionModeDenormPreserve: root::spv::ExecutionMode = 4459;
119         pub const ExecutionMode_ExecutionModeDenormFlushToZero: root::spv::ExecutionMode = 4460;
120         pub const ExecutionMode_ExecutionModeSignedZeroInfNanPreserve: root::spv::ExecutionMode =
121             4461;
122         pub const ExecutionMode_ExecutionModeRoundingModeRTE: root::spv::ExecutionMode = 4462;
123         pub const ExecutionMode_ExecutionModeRoundingModeRTZ: root::spv::ExecutionMode = 4463;
124         pub const ExecutionMode_ExecutionModeStencilRefReplacingEXT: root::spv::ExecutionMode =
125             5027;
126         pub const ExecutionMode_ExecutionModeOutputLinesNV: root::spv::ExecutionMode = 5269;
127         pub const ExecutionMode_ExecutionModeOutputPrimitivesNV: root::spv::ExecutionMode = 5270;
128         pub const ExecutionMode_ExecutionModeDerivativeGroupQuadsNV: root::spv::ExecutionMode =
129             5289;
130         pub const ExecutionMode_ExecutionModeDerivativeGroupLinearNV: root::spv::ExecutionMode =
131             5290;
132         pub const ExecutionMode_ExecutionModeOutputTrianglesNV: root::spv::ExecutionMode = 5298;
133         pub const ExecutionMode_ExecutionModePixelInterlockOrderedEXT: root::spv::ExecutionMode =
134             5366;
135         pub const ExecutionMode_ExecutionModePixelInterlockUnorderedEXT: root::spv::ExecutionMode =
136             5367;
137         pub const ExecutionMode_ExecutionModeSampleInterlockOrderedEXT: root::spv::ExecutionMode =
138             5368;
139         pub const ExecutionMode_ExecutionModeSampleInterlockUnorderedEXT: root::spv::ExecutionMode =
140             5369;
141         pub const ExecutionMode_ExecutionModeShadingRateInterlockOrderedEXT:
142             root::spv::ExecutionMode = 5370;
143         pub const ExecutionMode_ExecutionModeShadingRateInterlockUnorderedEXT:
144             root::spv::ExecutionMode = 5371;
145         pub const ExecutionMode_ExecutionModeMax: root::spv::ExecutionMode = 2147483647;
146         pub type ExecutionMode = u32;
147         pub const StorageClass_StorageClassUniformConstant: root::spv::StorageClass = 0;
148         pub const StorageClass_StorageClassInput: root::spv::StorageClass = 1;
149         pub const StorageClass_StorageClassUniform: root::spv::StorageClass = 2;
150         pub const StorageClass_StorageClassOutput: root::spv::StorageClass = 3;
151         pub const StorageClass_StorageClassWorkgroup: root::spv::StorageClass = 4;
152         pub const StorageClass_StorageClassCrossWorkgroup: root::spv::StorageClass = 5;
153         pub const StorageClass_StorageClassPrivate: root::spv::StorageClass = 6;
154         pub const StorageClass_StorageClassFunction: root::spv::StorageClass = 7;
155         pub const StorageClass_StorageClassGeneric: root::spv::StorageClass = 8;
156         pub const StorageClass_StorageClassPushConstant: root::spv::StorageClass = 9;
157         pub const StorageClass_StorageClassAtomicCounter: root::spv::StorageClass = 10;
158         pub const StorageClass_StorageClassImage: root::spv::StorageClass = 11;
159         pub const StorageClass_StorageClassStorageBuffer: root::spv::StorageClass = 12;
160         pub const StorageClass_StorageClassCallableDataKHR: root::spv::StorageClass = 5328;
161         pub const StorageClass_StorageClassCallableDataNV: root::spv::StorageClass = 5328;
162         pub const StorageClass_StorageClassIncomingCallableDataKHR: root::spv::StorageClass = 5329;
163         pub const StorageClass_StorageClassIncomingCallableDataNV: root::spv::StorageClass = 5329;
164         pub const StorageClass_StorageClassRayPayloadKHR: root::spv::StorageClass = 5338;
165         pub const StorageClass_StorageClassRayPayloadNV: root::spv::StorageClass = 5338;
166         pub const StorageClass_StorageClassHitAttributeKHR: root::spv::StorageClass = 5339;
167         pub const StorageClass_StorageClassHitAttributeNV: root::spv::StorageClass = 5339;
168         pub const StorageClass_StorageClassIncomingRayPayloadKHR: root::spv::StorageClass = 5342;
169         pub const StorageClass_StorageClassIncomingRayPayloadNV: root::spv::StorageClass = 5342;
170         pub const StorageClass_StorageClassShaderRecordBufferKHR: root::spv::StorageClass = 5343;
171         pub const StorageClass_StorageClassShaderRecordBufferNV: root::spv::StorageClass = 5343;
172         pub const StorageClass_StorageClassPhysicalStorageBuffer: root::spv::StorageClass = 5349;
173         pub const StorageClass_StorageClassPhysicalStorageBufferEXT: root::spv::StorageClass = 5349;
174         pub const StorageClass_StorageClassMax: root::spv::StorageClass = 2147483647;
175         pub type StorageClass = u32;
176         pub const Dim_Dim1D: root::spv::Dim = 0;
177         pub const Dim_Dim2D: root::spv::Dim = 1;
178         pub const Dim_Dim3D: root::spv::Dim = 2;
179         pub const Dim_DimCube: root::spv::Dim = 3;
180         pub const Dim_DimRect: root::spv::Dim = 4;
181         pub const Dim_DimBuffer: root::spv::Dim = 5;
182         pub const Dim_DimSubpassData: root::spv::Dim = 6;
183         pub const Dim_DimMax: root::spv::Dim = 2147483647;
184         pub type Dim = u32;
185         pub const SamplerAddressingMode_SamplerAddressingModeNone:
186             root::spv::SamplerAddressingMode = 0;
187         pub const SamplerAddressingMode_SamplerAddressingModeClampToEdge:
188             root::spv::SamplerAddressingMode = 1;
189         pub const SamplerAddressingMode_SamplerAddressingModeClamp:
190             root::spv::SamplerAddressingMode = 2;
191         pub const SamplerAddressingMode_SamplerAddressingModeRepeat:
192             root::spv::SamplerAddressingMode = 3;
193         pub const SamplerAddressingMode_SamplerAddressingModeRepeatMirrored:
194             root::spv::SamplerAddressingMode = 4;
195         pub const SamplerAddressingMode_SamplerAddressingModeMax: root::spv::SamplerAddressingMode =
196             2147483647;
197         pub type SamplerAddressingMode = u32;
198         pub const SamplerFilterMode_SamplerFilterModeNearest: root::spv::SamplerFilterMode = 0;
199         pub const SamplerFilterMode_SamplerFilterModeLinear: root::spv::SamplerFilterMode = 1;
200         pub const SamplerFilterMode_SamplerFilterModeMax: root::spv::SamplerFilterMode = 2147483647;
201         pub type SamplerFilterMode = u32;
202         pub const ImageFormat_ImageFormatUnknown: root::spv::ImageFormat = 0;
203         pub const ImageFormat_ImageFormatRgba32f: root::spv::ImageFormat = 1;
204         pub const ImageFormat_ImageFormatRgba16f: root::spv::ImageFormat = 2;
205         pub const ImageFormat_ImageFormatR32f: root::spv::ImageFormat = 3;
206         pub const ImageFormat_ImageFormatRgba8: root::spv::ImageFormat = 4;
207         pub const ImageFormat_ImageFormatRgba8Snorm: root::spv::ImageFormat = 5;
208         pub const ImageFormat_ImageFormatRg32f: root::spv::ImageFormat = 6;
209         pub const ImageFormat_ImageFormatRg16f: root::spv::ImageFormat = 7;
210         pub const ImageFormat_ImageFormatR11fG11fB10f: root::spv::ImageFormat = 8;
211         pub const ImageFormat_ImageFormatR16f: root::spv::ImageFormat = 9;
212         pub const ImageFormat_ImageFormatRgba16: root::spv::ImageFormat = 10;
213         pub const ImageFormat_ImageFormatRgb10A2: root::spv::ImageFormat = 11;
214         pub const ImageFormat_ImageFormatRg16: root::spv::ImageFormat = 12;
215         pub const ImageFormat_ImageFormatRg8: root::spv::ImageFormat = 13;
216         pub const ImageFormat_ImageFormatR16: root::spv::ImageFormat = 14;
217         pub const ImageFormat_ImageFormatR8: root::spv::ImageFormat = 15;
218         pub const ImageFormat_ImageFormatRgba16Snorm: root::spv::ImageFormat = 16;
219         pub const ImageFormat_ImageFormatRg16Snorm: root::spv::ImageFormat = 17;
220         pub const ImageFormat_ImageFormatRg8Snorm: root::spv::ImageFormat = 18;
221         pub const ImageFormat_ImageFormatR16Snorm: root::spv::ImageFormat = 19;
222         pub const ImageFormat_ImageFormatR8Snorm: root::spv::ImageFormat = 20;
223         pub const ImageFormat_ImageFormatRgba32i: root::spv::ImageFormat = 21;
224         pub const ImageFormat_ImageFormatRgba16i: root::spv::ImageFormat = 22;
225         pub const ImageFormat_ImageFormatRgba8i: root::spv::ImageFormat = 23;
226         pub const ImageFormat_ImageFormatR32i: root::spv::ImageFormat = 24;
227         pub const ImageFormat_ImageFormatRg32i: root::spv::ImageFormat = 25;
228         pub const ImageFormat_ImageFormatRg16i: root::spv::ImageFormat = 26;
229         pub const ImageFormat_ImageFormatRg8i: root::spv::ImageFormat = 27;
230         pub const ImageFormat_ImageFormatR16i: root::spv::ImageFormat = 28;
231         pub const ImageFormat_ImageFormatR8i: root::spv::ImageFormat = 29;
232         pub const ImageFormat_ImageFormatRgba32ui: root::spv::ImageFormat = 30;
233         pub const ImageFormat_ImageFormatRgba16ui: root::spv::ImageFormat = 31;
234         pub const ImageFormat_ImageFormatRgba8ui: root::spv::ImageFormat = 32;
235         pub const ImageFormat_ImageFormatR32ui: root::spv::ImageFormat = 33;
236         pub const ImageFormat_ImageFormatRgb10a2ui: root::spv::ImageFormat = 34;
237         pub const ImageFormat_ImageFormatRg32ui: root::spv::ImageFormat = 35;
238         pub const ImageFormat_ImageFormatRg16ui: root::spv::ImageFormat = 36;
239         pub const ImageFormat_ImageFormatRg8ui: root::spv::ImageFormat = 37;
240         pub const ImageFormat_ImageFormatR16ui: root::spv::ImageFormat = 38;
241         pub const ImageFormat_ImageFormatR8ui: root::spv::ImageFormat = 39;
242         pub const ImageFormat_ImageFormatMax: root::spv::ImageFormat = 2147483647;
243         pub type ImageFormat = u32;
244         pub const ImageChannelOrder_ImageChannelOrderR: root::spv::ImageChannelOrder = 0;
245         pub const ImageChannelOrder_ImageChannelOrderA: root::spv::ImageChannelOrder = 1;
246         pub const ImageChannelOrder_ImageChannelOrderRG: root::spv::ImageChannelOrder = 2;
247         pub const ImageChannelOrder_ImageChannelOrderRA: root::spv::ImageChannelOrder = 3;
248         pub const ImageChannelOrder_ImageChannelOrderRGB: root::spv::ImageChannelOrder = 4;
249         pub const ImageChannelOrder_ImageChannelOrderRGBA: root::spv::ImageChannelOrder = 5;
250         pub const ImageChannelOrder_ImageChannelOrderBGRA: root::spv::ImageChannelOrder = 6;
251         pub const ImageChannelOrder_ImageChannelOrderARGB: root::spv::ImageChannelOrder = 7;
252         pub const ImageChannelOrder_ImageChannelOrderIntensity: root::spv::ImageChannelOrder = 8;
253         pub const ImageChannelOrder_ImageChannelOrderLuminance: root::spv::ImageChannelOrder = 9;
254         pub const ImageChannelOrder_ImageChannelOrderRx: root::spv::ImageChannelOrder = 10;
255         pub const ImageChannelOrder_ImageChannelOrderRGx: root::spv::ImageChannelOrder = 11;
256         pub const ImageChannelOrder_ImageChannelOrderRGBx: root::spv::ImageChannelOrder = 12;
257         pub const ImageChannelOrder_ImageChannelOrderDepth: root::spv::ImageChannelOrder = 13;
258         pub const ImageChannelOrder_ImageChannelOrderDepthStencil: root::spv::ImageChannelOrder =
259             14;
260         pub const ImageChannelOrder_ImageChannelOrdersRGB: root::spv::ImageChannelOrder = 15;
261         pub const ImageChannelOrder_ImageChannelOrdersRGBx: root::spv::ImageChannelOrder = 16;
262         pub const ImageChannelOrder_ImageChannelOrdersRGBA: root::spv::ImageChannelOrder = 17;
263         pub const ImageChannelOrder_ImageChannelOrdersBGRA: root::spv::ImageChannelOrder = 18;
264         pub const ImageChannelOrder_ImageChannelOrderABGR: root::spv::ImageChannelOrder = 19;
265         pub const ImageChannelOrder_ImageChannelOrderMax: root::spv::ImageChannelOrder = 2147483647;
266         pub type ImageChannelOrder = u32;
267         pub const ImageChannelDataType_ImageChannelDataTypeSnormInt8:
268             root::spv::ImageChannelDataType = 0;
269         pub const ImageChannelDataType_ImageChannelDataTypeSnormInt16:
270             root::spv::ImageChannelDataType = 1;
271         pub const ImageChannelDataType_ImageChannelDataTypeUnormInt8:
272             root::spv::ImageChannelDataType = 2;
273         pub const ImageChannelDataType_ImageChannelDataTypeUnormInt16:
274             root::spv::ImageChannelDataType = 3;
275         pub const ImageChannelDataType_ImageChannelDataTypeUnormShort565:
276             root::spv::ImageChannelDataType = 4;
277         pub const ImageChannelDataType_ImageChannelDataTypeUnormShort555:
278             root::spv::ImageChannelDataType = 5;
279         pub const ImageChannelDataType_ImageChannelDataTypeUnormInt101010:
280             root::spv::ImageChannelDataType = 6;
281         pub const ImageChannelDataType_ImageChannelDataTypeSignedInt8:
282             root::spv::ImageChannelDataType = 7;
283         pub const ImageChannelDataType_ImageChannelDataTypeSignedInt16:
284             root::spv::ImageChannelDataType = 8;
285         pub const ImageChannelDataType_ImageChannelDataTypeSignedInt32:
286             root::spv::ImageChannelDataType = 9;
287         pub const ImageChannelDataType_ImageChannelDataTypeUnsignedInt8:
288             root::spv::ImageChannelDataType = 10;
289         pub const ImageChannelDataType_ImageChannelDataTypeUnsignedInt16:
290             root::spv::ImageChannelDataType = 11;
291         pub const ImageChannelDataType_ImageChannelDataTypeUnsignedInt32:
292             root::spv::ImageChannelDataType = 12;
293         pub const ImageChannelDataType_ImageChannelDataTypeHalfFloat:
294             root::spv::ImageChannelDataType = 13;
295         pub const ImageChannelDataType_ImageChannelDataTypeFloat: root::spv::ImageChannelDataType =
296             14;
297         pub const ImageChannelDataType_ImageChannelDataTypeUnormInt24:
298             root::spv::ImageChannelDataType = 15;
299         pub const ImageChannelDataType_ImageChannelDataTypeUnormInt101010_2:
300             root::spv::ImageChannelDataType = 16;
301         pub const ImageChannelDataType_ImageChannelDataTypeMax: root::spv::ImageChannelDataType =
302             2147483647;
303         pub type ImageChannelDataType = u32;
304         pub const ImageOperandsShift_ImageOperandsBiasShift: root::spv::ImageOperandsShift = 0;
305         pub const ImageOperandsShift_ImageOperandsLodShift: root::spv::ImageOperandsShift = 1;
306         pub const ImageOperandsShift_ImageOperandsGradShift: root::spv::ImageOperandsShift = 2;
307         pub const ImageOperandsShift_ImageOperandsConstOffsetShift: root::spv::ImageOperandsShift =
308             3;
309         pub const ImageOperandsShift_ImageOperandsOffsetShift: root::spv::ImageOperandsShift = 4;
310         pub const ImageOperandsShift_ImageOperandsConstOffsetsShift: root::spv::ImageOperandsShift =
311             5;
312         pub const ImageOperandsShift_ImageOperandsSampleShift: root::spv::ImageOperandsShift = 6;
313         pub const ImageOperandsShift_ImageOperandsMinLodShift: root::spv::ImageOperandsShift = 7;
314         pub const ImageOperandsShift_ImageOperandsMakeTexelAvailableShift:
315             root::spv::ImageOperandsShift = 8;
316         pub const ImageOperandsShift_ImageOperandsMakeTexelAvailableKHRShift:
317             root::spv::ImageOperandsShift = 8;
318         pub const ImageOperandsShift_ImageOperandsMakeTexelVisibleShift:
319             root::spv::ImageOperandsShift = 9;
320         pub const ImageOperandsShift_ImageOperandsMakeTexelVisibleKHRShift:
321             root::spv::ImageOperandsShift = 9;
322         pub const ImageOperandsShift_ImageOperandsNonPrivateTexelShift:
323             root::spv::ImageOperandsShift = 10;
324         pub const ImageOperandsShift_ImageOperandsNonPrivateTexelKHRShift:
325             root::spv::ImageOperandsShift = 10;
326         pub const ImageOperandsShift_ImageOperandsVolatileTexelShift:
327             root::spv::ImageOperandsShift = 11;
328         pub const ImageOperandsShift_ImageOperandsVolatileTexelKHRShift:
329             root::spv::ImageOperandsShift = 11;
330         pub const ImageOperandsShift_ImageOperandsSignExtendShift: root::spv::ImageOperandsShift =
331             12;
332         pub const ImageOperandsShift_ImageOperandsZeroExtendShift: root::spv::ImageOperandsShift =
333             13;
334         pub const ImageOperandsShift_ImageOperandsMax: root::spv::ImageOperandsShift = 2147483647;
335         pub type ImageOperandsShift = u32;
336         impl ImageOperandsMask {
337             pub const ImageOperandsMaskNone: root::spv::ImageOperandsMask =
338                 root::spv::ImageOperandsMask(0);
339         }
340         impl ImageOperandsMask {
341             pub const ImageOperandsBiasMask: root::spv::ImageOperandsMask =
342                 root::spv::ImageOperandsMask(1);
343         }
344         impl ImageOperandsMask {
345             pub const ImageOperandsLodMask: root::spv::ImageOperandsMask =
346                 root::spv::ImageOperandsMask(2);
347         }
348         impl ImageOperandsMask {
349             pub const ImageOperandsGradMask: root::spv::ImageOperandsMask =
350                 root::spv::ImageOperandsMask(4);
351         }
352         impl ImageOperandsMask {
353             pub const ImageOperandsConstOffsetMask: root::spv::ImageOperandsMask =
354                 root::spv::ImageOperandsMask(8);
355         }
356         impl ImageOperandsMask {
357             pub const ImageOperandsOffsetMask: root::spv::ImageOperandsMask =
358                 root::spv::ImageOperandsMask(16);
359         }
360         impl ImageOperandsMask {
361             pub const ImageOperandsConstOffsetsMask: root::spv::ImageOperandsMask =
362                 root::spv::ImageOperandsMask(32);
363         }
364         impl ImageOperandsMask {
365             pub const ImageOperandsSampleMask: root::spv::ImageOperandsMask =
366                 root::spv::ImageOperandsMask(64);
367         }
368         impl ImageOperandsMask {
369             pub const ImageOperandsMinLodMask: root::spv::ImageOperandsMask =
370                 root::spv::ImageOperandsMask(128);
371         }
372         impl ImageOperandsMask {
373             pub const ImageOperandsMakeTexelAvailableMask: root::spv::ImageOperandsMask =
374                 root::spv::ImageOperandsMask(256);
375         }
376         impl ImageOperandsMask {
377             pub const ImageOperandsMakeTexelAvailableKHRMask: root::spv::ImageOperandsMask =
378                 root::spv::ImageOperandsMask(256);
379         }
380         impl ImageOperandsMask {
381             pub const ImageOperandsMakeTexelVisibleMask: root::spv::ImageOperandsMask =
382                 root::spv::ImageOperandsMask(512);
383         }
384         impl ImageOperandsMask {
385             pub const ImageOperandsMakeTexelVisibleKHRMask: root::spv::ImageOperandsMask =
386                 root::spv::ImageOperandsMask(512);
387         }
388         impl ImageOperandsMask {
389             pub const ImageOperandsNonPrivateTexelMask: root::spv::ImageOperandsMask =
390                 root::spv::ImageOperandsMask(1024);
391         }
392         impl ImageOperandsMask {
393             pub const ImageOperandsNonPrivateTexelKHRMask: root::spv::ImageOperandsMask =
394                 root::spv::ImageOperandsMask(1024);
395         }
396         impl ImageOperandsMask {
397             pub const ImageOperandsVolatileTexelMask: root::spv::ImageOperandsMask =
398                 root::spv::ImageOperandsMask(2048);
399         }
400         impl ImageOperandsMask {
401             pub const ImageOperandsVolatileTexelKHRMask: root::spv::ImageOperandsMask =
402                 root::spv::ImageOperandsMask(2048);
403         }
404         impl ImageOperandsMask {
405             pub const ImageOperandsSignExtendMask: root::spv::ImageOperandsMask =
406                 root::spv::ImageOperandsMask(4096);
407         }
408         impl ImageOperandsMask {
409             pub const ImageOperandsZeroExtendMask: root::spv::ImageOperandsMask =
410                 root::spv::ImageOperandsMask(8192);
411         }
412         impl ::std::ops::BitOr<root::spv::ImageOperandsMask> for root::spv::ImageOperandsMask {
413             type Output = Self;
414             #[inline]
bitor(self, other: Self) -> Self415             fn bitor(self, other: Self) -> Self {
416                 ImageOperandsMask(self.0 | other.0)
417             }
418         }
419         impl ::std::ops::BitOrAssign for root::spv::ImageOperandsMask {
420             #[inline]
bitor_assign(&mut self, rhs: root::spv::ImageOperandsMask)421             fn bitor_assign(&mut self, rhs: root::spv::ImageOperandsMask) {
422                 self.0 |= rhs.0;
423             }
424         }
425         impl ::std::ops::BitAnd<root::spv::ImageOperandsMask> for root::spv::ImageOperandsMask {
426             type Output = Self;
427             #[inline]
bitand(self, other: Self) -> Self428             fn bitand(self, other: Self) -> Self {
429                 ImageOperandsMask(self.0 & other.0)
430             }
431         }
432         impl ::std::ops::BitAndAssign for root::spv::ImageOperandsMask {
433             #[inline]
bitand_assign(&mut self, rhs: root::spv::ImageOperandsMask)434             fn bitand_assign(&mut self, rhs: root::spv::ImageOperandsMask) {
435                 self.0 &= rhs.0;
436             }
437         }
438         #[repr(transparent)]
439         #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
440         pub struct ImageOperandsMask(pub u32);
441         pub const FPFastMathModeShift_FPFastMathModeNotNaNShift: root::spv::FPFastMathModeShift = 0;
442         pub const FPFastMathModeShift_FPFastMathModeNotInfShift: root::spv::FPFastMathModeShift = 1;
443         pub const FPFastMathModeShift_FPFastMathModeNSZShift: root::spv::FPFastMathModeShift = 2;
444         pub const FPFastMathModeShift_FPFastMathModeAllowRecipShift:
445             root::spv::FPFastMathModeShift = 3;
446         pub const FPFastMathModeShift_FPFastMathModeFastShift: root::spv::FPFastMathModeShift = 4;
447         pub const FPFastMathModeShift_FPFastMathModeMax: root::spv::FPFastMathModeShift =
448             2147483647;
449         pub type FPFastMathModeShift = u32;
450         impl FPFastMathModeMask {
451             pub const FPFastMathModeMaskNone: root::spv::FPFastMathModeMask =
452                 root::spv::FPFastMathModeMask(0);
453         }
454         impl FPFastMathModeMask {
455             pub const FPFastMathModeNotNaNMask: root::spv::FPFastMathModeMask =
456                 root::spv::FPFastMathModeMask(1);
457         }
458         impl FPFastMathModeMask {
459             pub const FPFastMathModeNotInfMask: root::spv::FPFastMathModeMask =
460                 root::spv::FPFastMathModeMask(2);
461         }
462         impl FPFastMathModeMask {
463             pub const FPFastMathModeNSZMask: root::spv::FPFastMathModeMask =
464                 root::spv::FPFastMathModeMask(4);
465         }
466         impl FPFastMathModeMask {
467             pub const FPFastMathModeAllowRecipMask: root::spv::FPFastMathModeMask =
468                 root::spv::FPFastMathModeMask(8);
469         }
470         impl FPFastMathModeMask {
471             pub const FPFastMathModeFastMask: root::spv::FPFastMathModeMask =
472                 root::spv::FPFastMathModeMask(16);
473         }
474         impl ::std::ops::BitOr<root::spv::FPFastMathModeMask> for root::spv::FPFastMathModeMask {
475             type Output = Self;
476             #[inline]
bitor(self, other: Self) -> Self477             fn bitor(self, other: Self) -> Self {
478                 FPFastMathModeMask(self.0 | other.0)
479             }
480         }
481         impl ::std::ops::BitOrAssign for root::spv::FPFastMathModeMask {
482             #[inline]
bitor_assign(&mut self, rhs: root::spv::FPFastMathModeMask)483             fn bitor_assign(&mut self, rhs: root::spv::FPFastMathModeMask) {
484                 self.0 |= rhs.0;
485             }
486         }
487         impl ::std::ops::BitAnd<root::spv::FPFastMathModeMask> for root::spv::FPFastMathModeMask {
488             type Output = Self;
489             #[inline]
bitand(self, other: Self) -> Self490             fn bitand(self, other: Self) -> Self {
491                 FPFastMathModeMask(self.0 & other.0)
492             }
493         }
494         impl ::std::ops::BitAndAssign for root::spv::FPFastMathModeMask {
495             #[inline]
bitand_assign(&mut self, rhs: root::spv::FPFastMathModeMask)496             fn bitand_assign(&mut self, rhs: root::spv::FPFastMathModeMask) {
497                 self.0 &= rhs.0;
498             }
499         }
500         #[repr(transparent)]
501         #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
502         pub struct FPFastMathModeMask(pub u32);
503         pub const FPRoundingMode_FPRoundingModeRTE: root::spv::FPRoundingMode = 0;
504         pub const FPRoundingMode_FPRoundingModeRTZ: root::spv::FPRoundingMode = 1;
505         pub const FPRoundingMode_FPRoundingModeRTP: root::spv::FPRoundingMode = 2;
506         pub const FPRoundingMode_FPRoundingModeRTN: root::spv::FPRoundingMode = 3;
507         pub const FPRoundingMode_FPRoundingModeMax: root::spv::FPRoundingMode = 2147483647;
508         pub type FPRoundingMode = u32;
509         pub const LinkageType_LinkageTypeExport: root::spv::LinkageType = 0;
510         pub const LinkageType_LinkageTypeImport: root::spv::LinkageType = 1;
511         pub const LinkageType_LinkageTypeMax: root::spv::LinkageType = 2147483647;
512         pub type LinkageType = u32;
513         pub const AccessQualifier_AccessQualifierReadOnly: root::spv::AccessQualifier = 0;
514         pub const AccessQualifier_AccessQualifierWriteOnly: root::spv::AccessQualifier = 1;
515         pub const AccessQualifier_AccessQualifierReadWrite: root::spv::AccessQualifier = 2;
516         pub const AccessQualifier_AccessQualifierMax: root::spv::AccessQualifier = 2147483647;
517         pub type AccessQualifier = u32;
518         pub const FunctionParameterAttribute_FunctionParameterAttributeZext:
519             root::spv::FunctionParameterAttribute = 0;
520         pub const FunctionParameterAttribute_FunctionParameterAttributeSext:
521             root::spv::FunctionParameterAttribute = 1;
522         pub const FunctionParameterAttribute_FunctionParameterAttributeByVal:
523             root::spv::FunctionParameterAttribute = 2;
524         pub const FunctionParameterAttribute_FunctionParameterAttributeSret:
525             root::spv::FunctionParameterAttribute = 3;
526         pub const FunctionParameterAttribute_FunctionParameterAttributeNoAlias:
527             root::spv::FunctionParameterAttribute = 4;
528         pub const FunctionParameterAttribute_FunctionParameterAttributeNoCapture:
529             root::spv::FunctionParameterAttribute = 5;
530         pub const FunctionParameterAttribute_FunctionParameterAttributeNoWrite:
531             root::spv::FunctionParameterAttribute = 6;
532         pub const FunctionParameterAttribute_FunctionParameterAttributeNoReadWrite:
533             root::spv::FunctionParameterAttribute = 7;
534         pub const FunctionParameterAttribute_FunctionParameterAttributeMax:
535             root::spv::FunctionParameterAttribute = 2147483647;
536         pub type FunctionParameterAttribute = u32;
537         impl root::spv::Decoration {
538             pub const DecorationNonUniformEXT: root::spv::Decoration =
539                 Decoration::DecorationNonUniform;
540         }
541         impl root::spv::Decoration {
542             pub const DecorationRestrictPointerEXT: root::spv::Decoration =
543                 Decoration::DecorationRestrictPointer;
544         }
545         impl root::spv::Decoration {
546             pub const DecorationAliasedPointerEXT: root::spv::Decoration =
547                 Decoration::DecorationAliasedPointer;
548         }
549         impl root::spv::Decoration {
550             pub const DecorationHlslCounterBufferGOOGLE: root::spv::Decoration =
551                 Decoration::DecorationCounterBuffer;
552         }
553         impl root::spv::Decoration {
554             pub const DecorationUserSemantic: root::spv::Decoration =
555                 Decoration::DecorationHlslSemanticGOOGLE;
556         }
557         #[repr(u32)]
558         #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
559         pub enum Decoration {
560             DecorationRelaxedPrecision = 0,
561             DecorationSpecId = 1,
562             DecorationBlock = 2,
563             DecorationBufferBlock = 3,
564             DecorationRowMajor = 4,
565             DecorationColMajor = 5,
566             DecorationArrayStride = 6,
567             DecorationMatrixStride = 7,
568             DecorationGLSLShared = 8,
569             DecorationGLSLPacked = 9,
570             DecorationCPacked = 10,
571             DecorationBuiltIn = 11,
572             DecorationNoPerspective = 13,
573             DecorationFlat = 14,
574             DecorationPatch = 15,
575             DecorationCentroid = 16,
576             DecorationSample = 17,
577             DecorationInvariant = 18,
578             DecorationRestrict = 19,
579             DecorationAliased = 20,
580             DecorationVolatile = 21,
581             DecorationConstant = 22,
582             DecorationCoherent = 23,
583             DecorationNonWritable = 24,
584             DecorationNonReadable = 25,
585             DecorationUniform = 26,
586             DecorationUniformId = 27,
587             DecorationSaturatedConversion = 28,
588             DecorationStream = 29,
589             DecorationLocation = 30,
590             DecorationComponent = 31,
591             DecorationIndex = 32,
592             DecorationBinding = 33,
593             DecorationDescriptorSet = 34,
594             DecorationOffset = 35,
595             DecorationXfbBuffer = 36,
596             DecorationXfbStride = 37,
597             DecorationFuncParamAttr = 38,
598             DecorationFPRoundingMode = 39,
599             DecorationFPFastMathMode = 40,
600             DecorationLinkageAttributes = 41,
601             DecorationNoContraction = 42,
602             DecorationInputAttachmentIndex = 43,
603             DecorationAlignment = 44,
604             DecorationMaxByteOffset = 45,
605             DecorationAlignmentId = 46,
606             DecorationMaxByteOffsetId = 47,
607             DecorationNoSignedWrap = 4469,
608             DecorationNoUnsignedWrap = 4470,
609             DecorationExplicitInterpAMD = 4999,
610             DecorationOverrideCoverageNV = 5248,
611             DecorationPassthroughNV = 5250,
612             DecorationViewportRelativeNV = 5252,
613             DecorationSecondaryViewportRelativeNV = 5256,
614             DecorationPerPrimitiveNV = 5271,
615             DecorationPerViewNV = 5272,
616             DecorationPerTaskNV = 5273,
617             DecorationPerVertexNV = 5285,
618             DecorationNonUniform = 5300,
619             DecorationRestrictPointer = 5355,
620             DecorationAliasedPointer = 5356,
621             DecorationCounterBuffer = 5634,
622             DecorationHlslSemanticGOOGLE = 5635,
623             DecorationUserTypeGOOGLE = 5636,
624             DecorationMax = 2147483647,
625         }
626         impl root::spv::BuiltIn {
627             pub const BuiltInSubgroupEqMaskKHR: root::spv::BuiltIn = BuiltIn::BuiltInSubgroupEqMask;
628         }
629         impl root::spv::BuiltIn {
630             pub const BuiltInSubgroupGeMaskKHR: root::spv::BuiltIn = BuiltIn::BuiltInSubgroupGeMask;
631         }
632         impl root::spv::BuiltIn {
633             pub const BuiltInSubgroupGtMaskKHR: root::spv::BuiltIn = BuiltIn::BuiltInSubgroupGtMask;
634         }
635         impl root::spv::BuiltIn {
636             pub const BuiltInSubgroupLeMaskKHR: root::spv::BuiltIn = BuiltIn::BuiltInSubgroupLeMask;
637         }
638         impl root::spv::BuiltIn {
639             pub const BuiltInSubgroupLtMaskKHR: root::spv::BuiltIn = BuiltIn::BuiltInSubgroupLtMask;
640         }
641         impl root::spv::BuiltIn {
642             pub const BuiltInFragmentSizeNV: root::spv::BuiltIn = BuiltIn::BuiltInFragSizeEXT;
643         }
644         impl root::spv::BuiltIn {
645             pub const BuiltInInvocationsPerPixelNV: root::spv::BuiltIn =
646                 BuiltIn::BuiltInFragInvocationCountEXT;
647         }
648         impl root::spv::BuiltIn {
649             pub const BuiltInLaunchIdNV: root::spv::BuiltIn = BuiltIn::BuiltInLaunchIdKHR;
650         }
651         impl root::spv::BuiltIn {
652             pub const BuiltInLaunchSizeNV: root::spv::BuiltIn = BuiltIn::BuiltInLaunchSizeKHR;
653         }
654         impl root::spv::BuiltIn {
655             pub const BuiltInWorldRayOriginNV: root::spv::BuiltIn =
656                 BuiltIn::BuiltInWorldRayOriginKHR;
657         }
658         impl root::spv::BuiltIn {
659             pub const BuiltInWorldRayDirectionNV: root::spv::BuiltIn =
660                 BuiltIn::BuiltInWorldRayDirectionKHR;
661         }
662         impl root::spv::BuiltIn {
663             pub const BuiltInObjectRayOriginNV: root::spv::BuiltIn =
664                 BuiltIn::BuiltInObjectRayOriginKHR;
665         }
666         impl root::spv::BuiltIn {
667             pub const BuiltInObjectRayDirectionNV: root::spv::BuiltIn =
668                 BuiltIn::BuiltInObjectRayDirectionKHR;
669         }
670         impl root::spv::BuiltIn {
671             pub const BuiltInRayTminNV: root::spv::BuiltIn = BuiltIn::BuiltInRayTminKHR;
672         }
673         impl root::spv::BuiltIn {
674             pub const BuiltInRayTmaxNV: root::spv::BuiltIn = BuiltIn::BuiltInRayTmaxKHR;
675         }
676         impl root::spv::BuiltIn {
677             pub const BuiltInInstanceCustomIndexNV: root::spv::BuiltIn =
678                 BuiltIn::BuiltInInstanceCustomIndexKHR;
679         }
680         impl root::spv::BuiltIn {
681             pub const BuiltInObjectToWorldNV: root::spv::BuiltIn = BuiltIn::BuiltInObjectToWorldKHR;
682         }
683         impl root::spv::BuiltIn {
684             pub const BuiltInWorldToObjectNV: root::spv::BuiltIn = BuiltIn::BuiltInWorldToObjectKHR;
685         }
686         impl root::spv::BuiltIn {
687             pub const BuiltInHitTNV: root::spv::BuiltIn = BuiltIn::BuiltInHitTKHR;
688         }
689         impl root::spv::BuiltIn {
690             pub const BuiltInHitKindNV: root::spv::BuiltIn = BuiltIn::BuiltInHitKindKHR;
691         }
692         impl root::spv::BuiltIn {
693             pub const BuiltInIncomingRayFlagsNV: root::spv::BuiltIn =
694                 BuiltIn::BuiltInIncomingRayFlagsKHR;
695         }
696         #[repr(u32)]
697         #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
698         pub enum BuiltIn {
699             BuiltInPosition = 0,
700             BuiltInPointSize = 1,
701             BuiltInClipDistance = 3,
702             BuiltInCullDistance = 4,
703             BuiltInVertexId = 5,
704             BuiltInInstanceId = 6,
705             BuiltInPrimitiveId = 7,
706             BuiltInInvocationId = 8,
707             BuiltInLayer = 9,
708             BuiltInViewportIndex = 10,
709             BuiltInTessLevelOuter = 11,
710             BuiltInTessLevelInner = 12,
711             BuiltInTessCoord = 13,
712             BuiltInPatchVertices = 14,
713             BuiltInFragCoord = 15,
714             BuiltInPointCoord = 16,
715             BuiltInFrontFacing = 17,
716             BuiltInSampleId = 18,
717             BuiltInSamplePosition = 19,
718             BuiltInSampleMask = 20,
719             BuiltInFragDepth = 22,
720             BuiltInHelperInvocation = 23,
721             BuiltInNumWorkgroups = 24,
722             BuiltInWorkgroupSize = 25,
723             BuiltInWorkgroupId = 26,
724             BuiltInLocalInvocationId = 27,
725             BuiltInGlobalInvocationId = 28,
726             BuiltInLocalInvocationIndex = 29,
727             BuiltInWorkDim = 30,
728             BuiltInGlobalSize = 31,
729             BuiltInEnqueuedWorkgroupSize = 32,
730             BuiltInGlobalOffset = 33,
731             BuiltInGlobalLinearId = 34,
732             BuiltInSubgroupSize = 36,
733             BuiltInSubgroupMaxSize = 37,
734             BuiltInNumSubgroups = 38,
735             BuiltInNumEnqueuedSubgroups = 39,
736             BuiltInSubgroupId = 40,
737             BuiltInSubgroupLocalInvocationId = 41,
738             BuiltInVertexIndex = 42,
739             BuiltInInstanceIndex = 43,
740             BuiltInSubgroupEqMask = 4416,
741             BuiltInSubgroupGeMask = 4417,
742             BuiltInSubgroupGtMask = 4418,
743             BuiltInSubgroupLeMask = 4419,
744             BuiltInSubgroupLtMask = 4420,
745             BuiltInBaseVertex = 4424,
746             BuiltInBaseInstance = 4425,
747             BuiltInDrawIndex = 4426,
748             BuiltInDeviceIndex = 4438,
749             BuiltInViewIndex = 4440,
750             BuiltInBaryCoordNoPerspAMD = 4992,
751             BuiltInBaryCoordNoPerspCentroidAMD = 4993,
752             BuiltInBaryCoordNoPerspSampleAMD = 4994,
753             BuiltInBaryCoordSmoothAMD = 4995,
754             BuiltInBaryCoordSmoothCentroidAMD = 4996,
755             BuiltInBaryCoordSmoothSampleAMD = 4997,
756             BuiltInBaryCoordPullModelAMD = 4998,
757             BuiltInFragStencilRefEXT = 5014,
758             BuiltInViewportMaskNV = 5253,
759             BuiltInSecondaryPositionNV = 5257,
760             BuiltInSecondaryViewportMaskNV = 5258,
761             BuiltInPositionPerViewNV = 5261,
762             BuiltInViewportMaskPerViewNV = 5262,
763             BuiltInFullyCoveredEXT = 5264,
764             BuiltInTaskCountNV = 5274,
765             BuiltInPrimitiveCountNV = 5275,
766             BuiltInPrimitiveIndicesNV = 5276,
767             BuiltInClipDistancePerViewNV = 5277,
768             BuiltInCullDistancePerViewNV = 5278,
769             BuiltInLayerPerViewNV = 5279,
770             BuiltInMeshViewCountNV = 5280,
771             BuiltInMeshViewIndicesNV = 5281,
772             BuiltInBaryCoordNV = 5286,
773             BuiltInBaryCoordNoPerspNV = 5287,
774             BuiltInFragSizeEXT = 5292,
775             BuiltInFragInvocationCountEXT = 5293,
776             BuiltInLaunchIdKHR = 5319,
777             BuiltInLaunchSizeKHR = 5320,
778             BuiltInWorldRayOriginKHR = 5321,
779             BuiltInWorldRayDirectionKHR = 5322,
780             BuiltInObjectRayOriginKHR = 5323,
781             BuiltInObjectRayDirectionKHR = 5324,
782             BuiltInRayTminKHR = 5325,
783             BuiltInRayTmaxKHR = 5326,
784             BuiltInInstanceCustomIndexKHR = 5327,
785             BuiltInObjectToWorldKHR = 5330,
786             BuiltInWorldToObjectKHR = 5331,
787             BuiltInHitTKHR = 5332,
788             BuiltInHitKindKHR = 5333,
789             BuiltInIncomingRayFlagsKHR = 5351,
790             BuiltInRayGeometryIndexKHR = 5352,
791             BuiltInWarpsPerSMNV = 5374,
792             BuiltInSMCountNV = 5375,
793             BuiltInWarpIDNV = 5376,
794             BuiltInSMIDNV = 5377,
795             BuiltInMax = 2147483647,
796         }
797         pub const SelectionControlShift_SelectionControlFlattenShift:
798             root::spv::SelectionControlShift = 0;
799         pub const SelectionControlShift_SelectionControlDontFlattenShift:
800             root::spv::SelectionControlShift = 1;
801         pub const SelectionControlShift_SelectionControlMax: root::spv::SelectionControlShift =
802             2147483647;
803         pub type SelectionControlShift = u32;
804         impl SelectionControlMask {
805             pub const SelectionControlMaskNone: root::spv::SelectionControlMask =
806                 root::spv::SelectionControlMask(0);
807         }
808         impl SelectionControlMask {
809             pub const SelectionControlFlattenMask: root::spv::SelectionControlMask =
810                 root::spv::SelectionControlMask(1);
811         }
812         impl SelectionControlMask {
813             pub const SelectionControlDontFlattenMask: root::spv::SelectionControlMask =
814                 root::spv::SelectionControlMask(2);
815         }
816         impl ::std::ops::BitOr<root::spv::SelectionControlMask> for root::spv::SelectionControlMask {
817             type Output = Self;
818             #[inline]
bitor(self, other: Self) -> Self819             fn bitor(self, other: Self) -> Self {
820                 SelectionControlMask(self.0 | other.0)
821             }
822         }
823         impl ::std::ops::BitOrAssign for root::spv::SelectionControlMask {
824             #[inline]
bitor_assign(&mut self, rhs: root::spv::SelectionControlMask)825             fn bitor_assign(&mut self, rhs: root::spv::SelectionControlMask) {
826                 self.0 |= rhs.0;
827             }
828         }
829         impl ::std::ops::BitAnd<root::spv::SelectionControlMask> for root::spv::SelectionControlMask {
830             type Output = Self;
831             #[inline]
bitand(self, other: Self) -> Self832             fn bitand(self, other: Self) -> Self {
833                 SelectionControlMask(self.0 & other.0)
834             }
835         }
836         impl ::std::ops::BitAndAssign for root::spv::SelectionControlMask {
837             #[inline]
bitand_assign(&mut self, rhs: root::spv::SelectionControlMask)838             fn bitand_assign(&mut self, rhs: root::spv::SelectionControlMask) {
839                 self.0 &= rhs.0;
840             }
841         }
842         #[repr(transparent)]
843         #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
844         pub struct SelectionControlMask(pub u32);
845         pub const LoopControlShift_LoopControlUnrollShift: root::spv::LoopControlShift = 0;
846         pub const LoopControlShift_LoopControlDontUnrollShift: root::spv::LoopControlShift = 1;
847         pub const LoopControlShift_LoopControlDependencyInfiniteShift: root::spv::LoopControlShift =
848             2;
849         pub const LoopControlShift_LoopControlDependencyLengthShift: root::spv::LoopControlShift =
850             3;
851         pub const LoopControlShift_LoopControlMinIterationsShift: root::spv::LoopControlShift = 4;
852         pub const LoopControlShift_LoopControlMaxIterationsShift: root::spv::LoopControlShift = 5;
853         pub const LoopControlShift_LoopControlIterationMultipleShift: root::spv::LoopControlShift =
854             6;
855         pub const LoopControlShift_LoopControlPeelCountShift: root::spv::LoopControlShift = 7;
856         pub const LoopControlShift_LoopControlPartialCountShift: root::spv::LoopControlShift = 8;
857         pub const LoopControlShift_LoopControlMax: root::spv::LoopControlShift = 2147483647;
858         pub type LoopControlShift = u32;
859         impl LoopControlMask {
860             pub const LoopControlMaskNone: root::spv::LoopControlMask =
861                 root::spv::LoopControlMask(0);
862         }
863         impl LoopControlMask {
864             pub const LoopControlUnrollMask: root::spv::LoopControlMask =
865                 root::spv::LoopControlMask(1);
866         }
867         impl LoopControlMask {
868             pub const LoopControlDontUnrollMask: root::spv::LoopControlMask =
869                 root::spv::LoopControlMask(2);
870         }
871         impl LoopControlMask {
872             pub const LoopControlDependencyInfiniteMask: root::spv::LoopControlMask =
873                 root::spv::LoopControlMask(4);
874         }
875         impl LoopControlMask {
876             pub const LoopControlDependencyLengthMask: root::spv::LoopControlMask =
877                 root::spv::LoopControlMask(8);
878         }
879         impl LoopControlMask {
880             pub const LoopControlMinIterationsMask: root::spv::LoopControlMask =
881                 root::spv::LoopControlMask(16);
882         }
883         impl LoopControlMask {
884             pub const LoopControlMaxIterationsMask: root::spv::LoopControlMask =
885                 root::spv::LoopControlMask(32);
886         }
887         impl LoopControlMask {
888             pub const LoopControlIterationMultipleMask: root::spv::LoopControlMask =
889                 root::spv::LoopControlMask(64);
890         }
891         impl LoopControlMask {
892             pub const LoopControlPeelCountMask: root::spv::LoopControlMask =
893                 root::spv::LoopControlMask(128);
894         }
895         impl LoopControlMask {
896             pub const LoopControlPartialCountMask: root::spv::LoopControlMask =
897                 root::spv::LoopControlMask(256);
898         }
899         impl ::std::ops::BitOr<root::spv::LoopControlMask> for root::spv::LoopControlMask {
900             type Output = Self;
901             #[inline]
bitor(self, other: Self) -> Self902             fn bitor(self, other: Self) -> Self {
903                 LoopControlMask(self.0 | other.0)
904             }
905         }
906         impl ::std::ops::BitOrAssign for root::spv::LoopControlMask {
907             #[inline]
bitor_assign(&mut self, rhs: root::spv::LoopControlMask)908             fn bitor_assign(&mut self, rhs: root::spv::LoopControlMask) {
909                 self.0 |= rhs.0;
910             }
911         }
912         impl ::std::ops::BitAnd<root::spv::LoopControlMask> for root::spv::LoopControlMask {
913             type Output = Self;
914             #[inline]
bitand(self, other: Self) -> Self915             fn bitand(self, other: Self) -> Self {
916                 LoopControlMask(self.0 & other.0)
917             }
918         }
919         impl ::std::ops::BitAndAssign for root::spv::LoopControlMask {
920             #[inline]
bitand_assign(&mut self, rhs: root::spv::LoopControlMask)921             fn bitand_assign(&mut self, rhs: root::spv::LoopControlMask) {
922                 self.0 &= rhs.0;
923             }
924         }
925         #[repr(transparent)]
926         #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
927         pub struct LoopControlMask(pub u32);
928         pub const FunctionControlShift_FunctionControlInlineShift: root::spv::FunctionControlShift =
929             0;
930         pub const FunctionControlShift_FunctionControlDontInlineShift:
931             root::spv::FunctionControlShift = 1;
932         pub const FunctionControlShift_FunctionControlPureShift: root::spv::FunctionControlShift =
933             2;
934         pub const FunctionControlShift_FunctionControlConstShift: root::spv::FunctionControlShift =
935             3;
936         pub const FunctionControlShift_FunctionControlMax: root::spv::FunctionControlShift =
937             2147483647;
938         pub type FunctionControlShift = u32;
939         impl FunctionControlMask {
940             pub const FunctionControlMaskNone: root::spv::FunctionControlMask =
941                 root::spv::FunctionControlMask(0);
942         }
943         impl FunctionControlMask {
944             pub const FunctionControlInlineMask: root::spv::FunctionControlMask =
945                 root::spv::FunctionControlMask(1);
946         }
947         impl FunctionControlMask {
948             pub const FunctionControlDontInlineMask: root::spv::FunctionControlMask =
949                 root::spv::FunctionControlMask(2);
950         }
951         impl FunctionControlMask {
952             pub const FunctionControlPureMask: root::spv::FunctionControlMask =
953                 root::spv::FunctionControlMask(4);
954         }
955         impl FunctionControlMask {
956             pub const FunctionControlConstMask: root::spv::FunctionControlMask =
957                 root::spv::FunctionControlMask(8);
958         }
959         impl ::std::ops::BitOr<root::spv::FunctionControlMask> for root::spv::FunctionControlMask {
960             type Output = Self;
961             #[inline]
bitor(self, other: Self) -> Self962             fn bitor(self, other: Self) -> Self {
963                 FunctionControlMask(self.0 | other.0)
964             }
965         }
966         impl ::std::ops::BitOrAssign for root::spv::FunctionControlMask {
967             #[inline]
bitor_assign(&mut self, rhs: root::spv::FunctionControlMask)968             fn bitor_assign(&mut self, rhs: root::spv::FunctionControlMask) {
969                 self.0 |= rhs.0;
970             }
971         }
972         impl ::std::ops::BitAnd<root::spv::FunctionControlMask> for root::spv::FunctionControlMask {
973             type Output = Self;
974             #[inline]
bitand(self, other: Self) -> Self975             fn bitand(self, other: Self) -> Self {
976                 FunctionControlMask(self.0 & other.0)
977             }
978         }
979         impl ::std::ops::BitAndAssign for root::spv::FunctionControlMask {
980             #[inline]
bitand_assign(&mut self, rhs: root::spv::FunctionControlMask)981             fn bitand_assign(&mut self, rhs: root::spv::FunctionControlMask) {
982                 self.0 &= rhs.0;
983             }
984         }
985         #[repr(transparent)]
986         #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
987         pub struct FunctionControlMask(pub u32);
988         pub const MemorySemanticsShift_MemorySemanticsAcquireShift:
989             root::spv::MemorySemanticsShift = 1;
990         pub const MemorySemanticsShift_MemorySemanticsReleaseShift:
991             root::spv::MemorySemanticsShift = 2;
992         pub const MemorySemanticsShift_MemorySemanticsAcquireReleaseShift:
993             root::spv::MemorySemanticsShift = 3;
994         pub const MemorySemanticsShift_MemorySemanticsSequentiallyConsistentShift:
995             root::spv::MemorySemanticsShift = 4;
996         pub const MemorySemanticsShift_MemorySemanticsUniformMemoryShift:
997             root::spv::MemorySemanticsShift = 6;
998         pub const MemorySemanticsShift_MemorySemanticsSubgroupMemoryShift:
999             root::spv::MemorySemanticsShift = 7;
1000         pub const MemorySemanticsShift_MemorySemanticsWorkgroupMemoryShift:
1001             root::spv::MemorySemanticsShift = 8;
1002         pub const MemorySemanticsShift_MemorySemanticsCrossWorkgroupMemoryShift:
1003             root::spv::MemorySemanticsShift = 9;
1004         pub const MemorySemanticsShift_MemorySemanticsAtomicCounterMemoryShift:
1005             root::spv::MemorySemanticsShift = 10;
1006         pub const MemorySemanticsShift_MemorySemanticsImageMemoryShift:
1007             root::spv::MemorySemanticsShift = 11;
1008         pub const MemorySemanticsShift_MemorySemanticsOutputMemoryShift:
1009             root::spv::MemorySemanticsShift = 12;
1010         pub const MemorySemanticsShift_MemorySemanticsOutputMemoryKHRShift:
1011             root::spv::MemorySemanticsShift = 12;
1012         pub const MemorySemanticsShift_MemorySemanticsMakeAvailableShift:
1013             root::spv::MemorySemanticsShift = 13;
1014         pub const MemorySemanticsShift_MemorySemanticsMakeAvailableKHRShift:
1015             root::spv::MemorySemanticsShift = 13;
1016         pub const MemorySemanticsShift_MemorySemanticsMakeVisibleShift:
1017             root::spv::MemorySemanticsShift = 14;
1018         pub const MemorySemanticsShift_MemorySemanticsMakeVisibleKHRShift:
1019             root::spv::MemorySemanticsShift = 14;
1020         pub const MemorySemanticsShift_MemorySemanticsVolatileShift:
1021             root::spv::MemorySemanticsShift = 15;
1022         pub const MemorySemanticsShift_MemorySemanticsMax: root::spv::MemorySemanticsShift =
1023             2147483647;
1024         pub type MemorySemanticsShift = u32;
1025         impl MemorySemanticsMask {
1026             pub const MemorySemanticsMaskNone: root::spv::MemorySemanticsMask =
1027                 root::spv::MemorySemanticsMask(0);
1028         }
1029         impl MemorySemanticsMask {
1030             pub const MemorySemanticsAcquireMask: root::spv::MemorySemanticsMask =
1031                 root::spv::MemorySemanticsMask(2);
1032         }
1033         impl MemorySemanticsMask {
1034             pub const MemorySemanticsReleaseMask: root::spv::MemorySemanticsMask =
1035                 root::spv::MemorySemanticsMask(4);
1036         }
1037         impl MemorySemanticsMask {
1038             pub const MemorySemanticsAcquireReleaseMask: root::spv::MemorySemanticsMask =
1039                 root::spv::MemorySemanticsMask(8);
1040         }
1041         impl MemorySemanticsMask {
1042             pub const MemorySemanticsSequentiallyConsistentMask: root::spv::MemorySemanticsMask =
1043                 root::spv::MemorySemanticsMask(16);
1044         }
1045         impl MemorySemanticsMask {
1046             pub const MemorySemanticsUniformMemoryMask: root::spv::MemorySemanticsMask =
1047                 root::spv::MemorySemanticsMask(64);
1048         }
1049         impl MemorySemanticsMask {
1050             pub const MemorySemanticsSubgroupMemoryMask: root::spv::MemorySemanticsMask =
1051                 root::spv::MemorySemanticsMask(128);
1052         }
1053         impl MemorySemanticsMask {
1054             pub const MemorySemanticsWorkgroupMemoryMask: root::spv::MemorySemanticsMask =
1055                 root::spv::MemorySemanticsMask(256);
1056         }
1057         impl MemorySemanticsMask {
1058             pub const MemorySemanticsCrossWorkgroupMemoryMask: root::spv::MemorySemanticsMask =
1059                 root::spv::MemorySemanticsMask(512);
1060         }
1061         impl MemorySemanticsMask {
1062             pub const MemorySemanticsAtomicCounterMemoryMask: root::spv::MemorySemanticsMask =
1063                 root::spv::MemorySemanticsMask(1024);
1064         }
1065         impl MemorySemanticsMask {
1066             pub const MemorySemanticsImageMemoryMask: root::spv::MemorySemanticsMask =
1067                 root::spv::MemorySemanticsMask(2048);
1068         }
1069         impl MemorySemanticsMask {
1070             pub const MemorySemanticsOutputMemoryMask: root::spv::MemorySemanticsMask =
1071                 root::spv::MemorySemanticsMask(4096);
1072         }
1073         impl MemorySemanticsMask {
1074             pub const MemorySemanticsOutputMemoryKHRMask: root::spv::MemorySemanticsMask =
1075                 root::spv::MemorySemanticsMask(4096);
1076         }
1077         impl MemorySemanticsMask {
1078             pub const MemorySemanticsMakeAvailableMask: root::spv::MemorySemanticsMask =
1079                 root::spv::MemorySemanticsMask(8192);
1080         }
1081         impl MemorySemanticsMask {
1082             pub const MemorySemanticsMakeAvailableKHRMask: root::spv::MemorySemanticsMask =
1083                 root::spv::MemorySemanticsMask(8192);
1084         }
1085         impl MemorySemanticsMask {
1086             pub const MemorySemanticsMakeVisibleMask: root::spv::MemorySemanticsMask =
1087                 root::spv::MemorySemanticsMask(16384);
1088         }
1089         impl MemorySemanticsMask {
1090             pub const MemorySemanticsMakeVisibleKHRMask: root::spv::MemorySemanticsMask =
1091                 root::spv::MemorySemanticsMask(16384);
1092         }
1093         impl MemorySemanticsMask {
1094             pub const MemorySemanticsVolatileMask: root::spv::MemorySemanticsMask =
1095                 root::spv::MemorySemanticsMask(32768);
1096         }
1097         impl ::std::ops::BitOr<root::spv::MemorySemanticsMask> for root::spv::MemorySemanticsMask {
1098             type Output = Self;
1099             #[inline]
bitor(self, other: Self) -> Self1100             fn bitor(self, other: Self) -> Self {
1101                 MemorySemanticsMask(self.0 | other.0)
1102             }
1103         }
1104         impl ::std::ops::BitOrAssign for root::spv::MemorySemanticsMask {
1105             #[inline]
bitor_assign(&mut self, rhs: root::spv::MemorySemanticsMask)1106             fn bitor_assign(&mut self, rhs: root::spv::MemorySemanticsMask) {
1107                 self.0 |= rhs.0;
1108             }
1109         }
1110         impl ::std::ops::BitAnd<root::spv::MemorySemanticsMask> for root::spv::MemorySemanticsMask {
1111             type Output = Self;
1112             #[inline]
bitand(self, other: Self) -> Self1113             fn bitand(self, other: Self) -> Self {
1114                 MemorySemanticsMask(self.0 & other.0)
1115             }
1116         }
1117         impl ::std::ops::BitAndAssign for root::spv::MemorySemanticsMask {
1118             #[inline]
bitand_assign(&mut self, rhs: root::spv::MemorySemanticsMask)1119             fn bitand_assign(&mut self, rhs: root::spv::MemorySemanticsMask) {
1120                 self.0 &= rhs.0;
1121             }
1122         }
1123         #[repr(transparent)]
1124         #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
1125         pub struct MemorySemanticsMask(pub u32);
1126         pub const MemoryAccessShift_MemoryAccessVolatileShift: root::spv::MemoryAccessShift = 0;
1127         pub const MemoryAccessShift_MemoryAccessAlignedShift: root::spv::MemoryAccessShift = 1;
1128         pub const MemoryAccessShift_MemoryAccessNontemporalShift: root::spv::MemoryAccessShift = 2;
1129         pub const MemoryAccessShift_MemoryAccessMakePointerAvailableShift:
1130             root::spv::MemoryAccessShift = 3;
1131         pub const MemoryAccessShift_MemoryAccessMakePointerAvailableKHRShift:
1132             root::spv::MemoryAccessShift = 3;
1133         pub const MemoryAccessShift_MemoryAccessMakePointerVisibleShift:
1134             root::spv::MemoryAccessShift = 4;
1135         pub const MemoryAccessShift_MemoryAccessMakePointerVisibleKHRShift:
1136             root::spv::MemoryAccessShift = 4;
1137         pub const MemoryAccessShift_MemoryAccessNonPrivatePointerShift:
1138             root::spv::MemoryAccessShift = 5;
1139         pub const MemoryAccessShift_MemoryAccessNonPrivatePointerKHRShift:
1140             root::spv::MemoryAccessShift = 5;
1141         pub const MemoryAccessShift_MemoryAccessMax: root::spv::MemoryAccessShift = 2147483647;
1142         pub type MemoryAccessShift = u32;
1143         impl MemoryAccessMask {
1144             pub const MemoryAccessMaskNone: root::spv::MemoryAccessMask =
1145                 root::spv::MemoryAccessMask(0);
1146         }
1147         impl MemoryAccessMask {
1148             pub const MemoryAccessVolatileMask: root::spv::MemoryAccessMask =
1149                 root::spv::MemoryAccessMask(1);
1150         }
1151         impl MemoryAccessMask {
1152             pub const MemoryAccessAlignedMask: root::spv::MemoryAccessMask =
1153                 root::spv::MemoryAccessMask(2);
1154         }
1155         impl MemoryAccessMask {
1156             pub const MemoryAccessNontemporalMask: root::spv::MemoryAccessMask =
1157                 root::spv::MemoryAccessMask(4);
1158         }
1159         impl MemoryAccessMask {
1160             pub const MemoryAccessMakePointerAvailableMask: root::spv::MemoryAccessMask =
1161                 root::spv::MemoryAccessMask(8);
1162         }
1163         impl MemoryAccessMask {
1164             pub const MemoryAccessMakePointerAvailableKHRMask: root::spv::MemoryAccessMask =
1165                 root::spv::MemoryAccessMask(8);
1166         }
1167         impl MemoryAccessMask {
1168             pub const MemoryAccessMakePointerVisibleMask: root::spv::MemoryAccessMask =
1169                 root::spv::MemoryAccessMask(16);
1170         }
1171         impl MemoryAccessMask {
1172             pub const MemoryAccessMakePointerVisibleKHRMask: root::spv::MemoryAccessMask =
1173                 root::spv::MemoryAccessMask(16);
1174         }
1175         impl MemoryAccessMask {
1176             pub const MemoryAccessNonPrivatePointerMask: root::spv::MemoryAccessMask =
1177                 root::spv::MemoryAccessMask(32);
1178         }
1179         impl MemoryAccessMask {
1180             pub const MemoryAccessNonPrivatePointerKHRMask: root::spv::MemoryAccessMask =
1181                 root::spv::MemoryAccessMask(32);
1182         }
1183         impl ::std::ops::BitOr<root::spv::MemoryAccessMask> for root::spv::MemoryAccessMask {
1184             type Output = Self;
1185             #[inline]
bitor(self, other: Self) -> Self1186             fn bitor(self, other: Self) -> Self {
1187                 MemoryAccessMask(self.0 | other.0)
1188             }
1189         }
1190         impl ::std::ops::BitOrAssign for root::spv::MemoryAccessMask {
1191             #[inline]
bitor_assign(&mut self, rhs: root::spv::MemoryAccessMask)1192             fn bitor_assign(&mut self, rhs: root::spv::MemoryAccessMask) {
1193                 self.0 |= rhs.0;
1194             }
1195         }
1196         impl ::std::ops::BitAnd<root::spv::MemoryAccessMask> for root::spv::MemoryAccessMask {
1197             type Output = Self;
1198             #[inline]
bitand(self, other: Self) -> Self1199             fn bitand(self, other: Self) -> Self {
1200                 MemoryAccessMask(self.0 & other.0)
1201             }
1202         }
1203         impl ::std::ops::BitAndAssign for root::spv::MemoryAccessMask {
1204             #[inline]
bitand_assign(&mut self, rhs: root::spv::MemoryAccessMask)1205             fn bitand_assign(&mut self, rhs: root::spv::MemoryAccessMask) {
1206                 self.0 &= rhs.0;
1207             }
1208         }
1209         #[repr(transparent)]
1210         #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
1211         pub struct MemoryAccessMask(pub u32);
1212         pub const Scope_ScopeCrossDevice: root::spv::Scope = 0;
1213         pub const Scope_ScopeDevice: root::spv::Scope = 1;
1214         pub const Scope_ScopeWorkgroup: root::spv::Scope = 2;
1215         pub const Scope_ScopeSubgroup: root::spv::Scope = 3;
1216         pub const Scope_ScopeInvocation: root::spv::Scope = 4;
1217         pub const Scope_ScopeQueueFamily: root::spv::Scope = 5;
1218         pub const Scope_ScopeQueueFamilyKHR: root::spv::Scope = 5;
1219         pub const Scope_ScopeShaderCallKHR: root::spv::Scope = 6;
1220         pub const Scope_ScopeMax: root::spv::Scope = 2147483647;
1221         pub type Scope = u32;
1222         pub const GroupOperation_GroupOperationReduce: root::spv::GroupOperation = 0;
1223         pub const GroupOperation_GroupOperationInclusiveScan: root::spv::GroupOperation = 1;
1224         pub const GroupOperation_GroupOperationExclusiveScan: root::spv::GroupOperation = 2;
1225         pub const GroupOperation_GroupOperationClusteredReduce: root::spv::GroupOperation = 3;
1226         pub const GroupOperation_GroupOperationPartitionedReduceNV: root::spv::GroupOperation = 6;
1227         pub const GroupOperation_GroupOperationPartitionedInclusiveScanNV:
1228             root::spv::GroupOperation = 7;
1229         pub const GroupOperation_GroupOperationPartitionedExclusiveScanNV:
1230             root::spv::GroupOperation = 8;
1231         pub const GroupOperation_GroupOperationMax: root::spv::GroupOperation = 2147483647;
1232         pub type GroupOperation = u32;
1233         impl KernelEnqueueFlags {
1234             pub const KernelEnqueueFlagsNoWait: root::spv::KernelEnqueueFlags =
1235                 root::spv::KernelEnqueueFlags(0);
1236         }
1237         impl KernelEnqueueFlags {
1238             pub const KernelEnqueueFlagsWaitKernel: root::spv::KernelEnqueueFlags =
1239                 root::spv::KernelEnqueueFlags(1);
1240         }
1241         impl KernelEnqueueFlags {
1242             pub const KernelEnqueueFlagsWaitWorkGroup: root::spv::KernelEnqueueFlags =
1243                 root::spv::KernelEnqueueFlags(2);
1244         }
1245         impl KernelEnqueueFlags {
1246             pub const KernelEnqueueFlagsMax: root::spv::KernelEnqueueFlags =
1247                 root::spv::KernelEnqueueFlags(2147483647);
1248         }
1249         impl ::std::ops::BitOr<root::spv::KernelEnqueueFlags> for root::spv::KernelEnqueueFlags {
1250             type Output = Self;
1251             #[inline]
bitor(self, other: Self) -> Self1252             fn bitor(self, other: Self) -> Self {
1253                 KernelEnqueueFlags(self.0 | other.0)
1254             }
1255         }
1256         impl ::std::ops::BitOrAssign for root::spv::KernelEnqueueFlags {
1257             #[inline]
bitor_assign(&mut self, rhs: root::spv::KernelEnqueueFlags)1258             fn bitor_assign(&mut self, rhs: root::spv::KernelEnqueueFlags) {
1259                 self.0 |= rhs.0;
1260             }
1261         }
1262         impl ::std::ops::BitAnd<root::spv::KernelEnqueueFlags> for root::spv::KernelEnqueueFlags {
1263             type Output = Self;
1264             #[inline]
bitand(self, other: Self) -> Self1265             fn bitand(self, other: Self) -> Self {
1266                 KernelEnqueueFlags(self.0 & other.0)
1267             }
1268         }
1269         impl ::std::ops::BitAndAssign for root::spv::KernelEnqueueFlags {
1270             #[inline]
bitand_assign(&mut self, rhs: root::spv::KernelEnqueueFlags)1271             fn bitand_assign(&mut self, rhs: root::spv::KernelEnqueueFlags) {
1272                 self.0 &= rhs.0;
1273             }
1274         }
1275         #[repr(transparent)]
1276         #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
1277         pub struct KernelEnqueueFlags(pub u32);
1278         pub const KernelProfilingInfoShift_KernelProfilingInfoCmdExecTimeShift:
1279             root::spv::KernelProfilingInfoShift = 0;
1280         pub const KernelProfilingInfoShift_KernelProfilingInfoMax:
1281             root::spv::KernelProfilingInfoShift = 2147483647;
1282         pub type KernelProfilingInfoShift = u32;
1283         impl KernelProfilingInfoMask {
1284             pub const KernelProfilingInfoMaskNone: root::spv::KernelProfilingInfoMask =
1285                 root::spv::KernelProfilingInfoMask(0);
1286         }
1287         impl KernelProfilingInfoMask {
1288             pub const KernelProfilingInfoCmdExecTimeMask: root::spv::KernelProfilingInfoMask =
1289                 root::spv::KernelProfilingInfoMask(1);
1290         }
1291         impl ::std::ops::BitOr<root::spv::KernelProfilingInfoMask> for root::spv::KernelProfilingInfoMask {
1292             type Output = Self;
1293             #[inline]
bitor(self, other: Self) -> Self1294             fn bitor(self, other: Self) -> Self {
1295                 KernelProfilingInfoMask(self.0 | other.0)
1296             }
1297         }
1298         impl ::std::ops::BitOrAssign for root::spv::KernelProfilingInfoMask {
1299             #[inline]
bitor_assign(&mut self, rhs: root::spv::KernelProfilingInfoMask)1300             fn bitor_assign(&mut self, rhs: root::spv::KernelProfilingInfoMask) {
1301                 self.0 |= rhs.0;
1302             }
1303         }
1304         impl ::std::ops::BitAnd<root::spv::KernelProfilingInfoMask> for root::spv::KernelProfilingInfoMask {
1305             type Output = Self;
1306             #[inline]
bitand(self, other: Self) -> Self1307             fn bitand(self, other: Self) -> Self {
1308                 KernelProfilingInfoMask(self.0 & other.0)
1309             }
1310         }
1311         impl ::std::ops::BitAndAssign for root::spv::KernelProfilingInfoMask {
1312             #[inline]
bitand_assign(&mut self, rhs: root::spv::KernelProfilingInfoMask)1313             fn bitand_assign(&mut self, rhs: root::spv::KernelProfilingInfoMask) {
1314                 self.0 &= rhs.0;
1315             }
1316         }
1317         #[repr(transparent)]
1318         #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
1319         pub struct KernelProfilingInfoMask(pub u32);
1320         pub const Capability_CapabilityMatrix: root::spv::Capability = 0;
1321         pub const Capability_CapabilityShader: root::spv::Capability = 1;
1322         pub const Capability_CapabilityGeometry: root::spv::Capability = 2;
1323         pub const Capability_CapabilityTessellation: root::spv::Capability = 3;
1324         pub const Capability_CapabilityAddresses: root::spv::Capability = 4;
1325         pub const Capability_CapabilityLinkage: root::spv::Capability = 5;
1326         pub const Capability_CapabilityKernel: root::spv::Capability = 6;
1327         pub const Capability_CapabilityVector16: root::spv::Capability = 7;
1328         pub const Capability_CapabilityFloat16Buffer: root::spv::Capability = 8;
1329         pub const Capability_CapabilityFloat16: root::spv::Capability = 9;
1330         pub const Capability_CapabilityFloat64: root::spv::Capability = 10;
1331         pub const Capability_CapabilityInt64: root::spv::Capability = 11;
1332         pub const Capability_CapabilityInt64Atomics: root::spv::Capability = 12;
1333         pub const Capability_CapabilityImageBasic: root::spv::Capability = 13;
1334         pub const Capability_CapabilityImageReadWrite: root::spv::Capability = 14;
1335         pub const Capability_CapabilityImageMipmap: root::spv::Capability = 15;
1336         pub const Capability_CapabilityPipes: root::spv::Capability = 17;
1337         pub const Capability_CapabilityGroups: root::spv::Capability = 18;
1338         pub const Capability_CapabilityDeviceEnqueue: root::spv::Capability = 19;
1339         pub const Capability_CapabilityLiteralSampler: root::spv::Capability = 20;
1340         pub const Capability_CapabilityAtomicStorage: root::spv::Capability = 21;
1341         pub const Capability_CapabilityInt16: root::spv::Capability = 22;
1342         pub const Capability_CapabilityTessellationPointSize: root::spv::Capability = 23;
1343         pub const Capability_CapabilityGeometryPointSize: root::spv::Capability = 24;
1344         pub const Capability_CapabilityImageGatherExtended: root::spv::Capability = 25;
1345         pub const Capability_CapabilityStorageImageMultisample: root::spv::Capability = 27;
1346         pub const Capability_CapabilityUniformBufferArrayDynamicIndexing: root::spv::Capability =
1347             28;
1348         pub const Capability_CapabilitySampledImageArrayDynamicIndexing: root::spv::Capability = 29;
1349         pub const Capability_CapabilityStorageBufferArrayDynamicIndexing: root::spv::Capability =
1350             30;
1351         pub const Capability_CapabilityStorageImageArrayDynamicIndexing: root::spv::Capability = 31;
1352         pub const Capability_CapabilityClipDistance: root::spv::Capability = 32;
1353         pub const Capability_CapabilityCullDistance: root::spv::Capability = 33;
1354         pub const Capability_CapabilityImageCubeArray: root::spv::Capability = 34;
1355         pub const Capability_CapabilitySampleRateShading: root::spv::Capability = 35;
1356         pub const Capability_CapabilityImageRect: root::spv::Capability = 36;
1357         pub const Capability_CapabilitySampledRect: root::spv::Capability = 37;
1358         pub const Capability_CapabilityGenericPointer: root::spv::Capability = 38;
1359         pub const Capability_CapabilityInt8: root::spv::Capability = 39;
1360         pub const Capability_CapabilityInputAttachment: root::spv::Capability = 40;
1361         pub const Capability_CapabilitySparseResidency: root::spv::Capability = 41;
1362         pub const Capability_CapabilityMinLod: root::spv::Capability = 42;
1363         pub const Capability_CapabilitySampled1D: root::spv::Capability = 43;
1364         pub const Capability_CapabilityImage1D: root::spv::Capability = 44;
1365         pub const Capability_CapabilitySampledCubeArray: root::spv::Capability = 45;
1366         pub const Capability_CapabilitySampledBuffer: root::spv::Capability = 46;
1367         pub const Capability_CapabilityImageBuffer: root::spv::Capability = 47;
1368         pub const Capability_CapabilityImageMSArray: root::spv::Capability = 48;
1369         pub const Capability_CapabilityStorageImageExtendedFormats: root::spv::Capability = 49;
1370         pub const Capability_CapabilityImageQuery: root::spv::Capability = 50;
1371         pub const Capability_CapabilityDerivativeControl: root::spv::Capability = 51;
1372         pub const Capability_CapabilityInterpolationFunction: root::spv::Capability = 52;
1373         pub const Capability_CapabilityTransformFeedback: root::spv::Capability = 53;
1374         pub const Capability_CapabilityGeometryStreams: root::spv::Capability = 54;
1375         pub const Capability_CapabilityStorageImageReadWithoutFormat: root::spv::Capability = 55;
1376         pub const Capability_CapabilityStorageImageWriteWithoutFormat: root::spv::Capability = 56;
1377         pub const Capability_CapabilityMultiViewport: root::spv::Capability = 57;
1378         pub const Capability_CapabilitySubgroupDispatch: root::spv::Capability = 58;
1379         pub const Capability_CapabilityNamedBarrier: root::spv::Capability = 59;
1380         pub const Capability_CapabilityPipeStorage: root::spv::Capability = 60;
1381         pub const Capability_CapabilityGroupNonUniform: root::spv::Capability = 61;
1382         pub const Capability_CapabilityGroupNonUniformVote: root::spv::Capability = 62;
1383         pub const Capability_CapabilityGroupNonUniformArithmetic: root::spv::Capability = 63;
1384         pub const Capability_CapabilityGroupNonUniformBallot: root::spv::Capability = 64;
1385         pub const Capability_CapabilityGroupNonUniformShuffle: root::spv::Capability = 65;
1386         pub const Capability_CapabilityGroupNonUniformShuffleRelative: root::spv::Capability = 66;
1387         pub const Capability_CapabilityGroupNonUniformClustered: root::spv::Capability = 67;
1388         pub const Capability_CapabilityGroupNonUniformQuad: root::spv::Capability = 68;
1389         pub const Capability_CapabilityShaderLayer: root::spv::Capability = 69;
1390         pub const Capability_CapabilityShaderViewportIndex: root::spv::Capability = 70;
1391         pub const Capability_CapabilitySubgroupBallotKHR: root::spv::Capability = 4423;
1392         pub const Capability_CapabilityDrawParameters: root::spv::Capability = 4427;
1393         pub const Capability_CapabilitySubgroupVoteKHR: root::spv::Capability = 4431;
1394         pub const Capability_CapabilityStorageBuffer16BitAccess: root::spv::Capability = 4433;
1395         pub const Capability_CapabilityStorageUniformBufferBlock16: root::spv::Capability = 4433;
1396         pub const Capability_CapabilityStorageUniform16: root::spv::Capability = 4434;
1397         pub const Capability_CapabilityUniformAndStorageBuffer16BitAccess: root::spv::Capability =
1398             4434;
1399         pub const Capability_CapabilityStoragePushConstant16: root::spv::Capability = 4435;
1400         pub const Capability_CapabilityStorageInputOutput16: root::spv::Capability = 4436;
1401         pub const Capability_CapabilityDeviceGroup: root::spv::Capability = 4437;
1402         pub const Capability_CapabilityMultiView: root::spv::Capability = 4439;
1403         pub const Capability_CapabilityVariablePointersStorageBuffer: root::spv::Capability = 4441;
1404         pub const Capability_CapabilityVariablePointers: root::spv::Capability = 4442;
1405         pub const Capability_CapabilityAtomicStorageOps: root::spv::Capability = 4445;
1406         pub const Capability_CapabilitySampleMaskPostDepthCoverage: root::spv::Capability = 4447;
1407         pub const Capability_CapabilityStorageBuffer8BitAccess: root::spv::Capability = 4448;
1408         pub const Capability_CapabilityUniformAndStorageBuffer8BitAccess: root::spv::Capability =
1409             4449;
1410         pub const Capability_CapabilityStoragePushConstant8: root::spv::Capability = 4450;
1411         pub const Capability_CapabilityDenormPreserve: root::spv::Capability = 4464;
1412         pub const Capability_CapabilityDenormFlushToZero: root::spv::Capability = 4465;
1413         pub const Capability_CapabilitySignedZeroInfNanPreserve: root::spv::Capability = 4466;
1414         pub const Capability_CapabilityRoundingModeRTE: root::spv::Capability = 4467;
1415         pub const Capability_CapabilityRoundingModeRTZ: root::spv::Capability = 4468;
1416         pub const Capability_CapabilityRayQueryProvisionalKHR: root::spv::Capability = 4471;
1417         pub const Capability_CapabilityRayTraversalPrimitiveCullingProvisionalKHR:
1418             root::spv::Capability = 4478;
1419         pub const Capability_CapabilityFloat16ImageAMD: root::spv::Capability = 5008;
1420         pub const Capability_CapabilityImageGatherBiasLodAMD: root::spv::Capability = 5009;
1421         pub const Capability_CapabilityFragmentMaskAMD: root::spv::Capability = 5010;
1422         pub const Capability_CapabilityStencilExportEXT: root::spv::Capability = 5013;
1423         pub const Capability_CapabilityImageReadWriteLodAMD: root::spv::Capability = 5015;
1424         pub const Capability_CapabilityShaderClockKHR: root::spv::Capability = 5055;
1425         pub const Capability_CapabilitySampleMaskOverrideCoverageNV: root::spv::Capability = 5249;
1426         pub const Capability_CapabilityGeometryShaderPassthroughNV: root::spv::Capability = 5251;
1427         pub const Capability_CapabilityShaderViewportIndexLayerEXT: root::spv::Capability = 5254;
1428         pub const Capability_CapabilityShaderViewportIndexLayerNV: root::spv::Capability = 5254;
1429         pub const Capability_CapabilityShaderViewportMaskNV: root::spv::Capability = 5255;
1430         pub const Capability_CapabilityShaderStereoViewNV: root::spv::Capability = 5259;
1431         pub const Capability_CapabilityPerViewAttributesNV: root::spv::Capability = 5260;
1432         pub const Capability_CapabilityFragmentFullyCoveredEXT: root::spv::Capability = 5265;
1433         pub const Capability_CapabilityMeshShadingNV: root::spv::Capability = 5266;
1434         pub const Capability_CapabilityImageFootprintNV: root::spv::Capability = 5282;
1435         pub const Capability_CapabilityFragmentBarycentricNV: root::spv::Capability = 5284;
1436         pub const Capability_CapabilityComputeDerivativeGroupQuadsNV: root::spv::Capability = 5288;
1437         pub const Capability_CapabilityFragmentDensityEXT: root::spv::Capability = 5291;
1438         pub const Capability_CapabilityShadingRateNV: root::spv::Capability = 5291;
1439         pub const Capability_CapabilityGroupNonUniformPartitionedNV: root::spv::Capability = 5297;
1440         pub const Capability_CapabilityShaderNonUniform: root::spv::Capability = 5301;
1441         pub const Capability_CapabilityShaderNonUniformEXT: root::spv::Capability = 5301;
1442         pub const Capability_CapabilityRuntimeDescriptorArray: root::spv::Capability = 5302;
1443         pub const Capability_CapabilityRuntimeDescriptorArrayEXT: root::spv::Capability = 5302;
1444         pub const Capability_CapabilityInputAttachmentArrayDynamicIndexing: root::spv::Capability =
1445             5303;
1446         pub const Capability_CapabilityInputAttachmentArrayDynamicIndexingEXT:
1447             root::spv::Capability = 5303;
1448         pub const Capability_CapabilityUniformTexelBufferArrayDynamicIndexing:
1449             root::spv::Capability = 5304;
1450         pub const Capability_CapabilityUniformTexelBufferArrayDynamicIndexingEXT:
1451             root::spv::Capability = 5304;
1452         pub const Capability_CapabilityStorageTexelBufferArrayDynamicIndexing:
1453             root::spv::Capability = 5305;
1454         pub const Capability_CapabilityStorageTexelBufferArrayDynamicIndexingEXT:
1455             root::spv::Capability = 5305;
1456         pub const Capability_CapabilityUniformBufferArrayNonUniformIndexing: root::spv::Capability =
1457             5306;
1458         pub const Capability_CapabilityUniformBufferArrayNonUniformIndexingEXT:
1459             root::spv::Capability = 5306;
1460         pub const Capability_CapabilitySampledImageArrayNonUniformIndexing: root::spv::Capability =
1461             5307;
1462         pub const Capability_CapabilitySampledImageArrayNonUniformIndexingEXT:
1463             root::spv::Capability = 5307;
1464         pub const Capability_CapabilityStorageBufferArrayNonUniformIndexing: root::spv::Capability =
1465             5308;
1466         pub const Capability_CapabilityStorageBufferArrayNonUniformIndexingEXT:
1467             root::spv::Capability = 5308;
1468         pub const Capability_CapabilityStorageImageArrayNonUniformIndexing: root::spv::Capability =
1469             5309;
1470         pub const Capability_CapabilityStorageImageArrayNonUniformIndexingEXT:
1471             root::spv::Capability = 5309;
1472         pub const Capability_CapabilityInputAttachmentArrayNonUniformIndexing:
1473             root::spv::Capability = 5310;
1474         pub const Capability_CapabilityInputAttachmentArrayNonUniformIndexingEXT:
1475             root::spv::Capability = 5310;
1476         pub const Capability_CapabilityUniformTexelBufferArrayNonUniformIndexing:
1477             root::spv::Capability = 5311;
1478         pub const Capability_CapabilityUniformTexelBufferArrayNonUniformIndexingEXT:
1479             root::spv::Capability = 5311;
1480         pub const Capability_CapabilityStorageTexelBufferArrayNonUniformIndexing:
1481             root::spv::Capability = 5312;
1482         pub const Capability_CapabilityStorageTexelBufferArrayNonUniformIndexingEXT:
1483             root::spv::Capability = 5312;
1484         pub const Capability_CapabilityRayTracingNV: root::spv::Capability = 5340;
1485         pub const Capability_CapabilityVulkanMemoryModel: root::spv::Capability = 5345;
1486         pub const Capability_CapabilityVulkanMemoryModelKHR: root::spv::Capability = 5345;
1487         pub const Capability_CapabilityVulkanMemoryModelDeviceScope: root::spv::Capability = 5346;
1488         pub const Capability_CapabilityVulkanMemoryModelDeviceScopeKHR: root::spv::Capability =
1489             5346;
1490         pub const Capability_CapabilityPhysicalStorageBufferAddresses: root::spv::Capability = 5347;
1491         pub const Capability_CapabilityPhysicalStorageBufferAddressesEXT: root::spv::Capability =
1492             5347;
1493         pub const Capability_CapabilityComputeDerivativeGroupLinearNV: root::spv::Capability = 5350;
1494         pub const Capability_CapabilityRayTracingProvisionalKHR: root::spv::Capability = 5353;
1495         pub const Capability_CapabilityCooperativeMatrixNV: root::spv::Capability = 5357;
1496         pub const Capability_CapabilityFragmentShaderSampleInterlockEXT: root::spv::Capability =
1497             5363;
1498         pub const Capability_CapabilityFragmentShaderShadingRateInterlockEXT:
1499             root::spv::Capability = 5372;
1500         pub const Capability_CapabilityShaderSMBuiltinsNV: root::spv::Capability = 5373;
1501         pub const Capability_CapabilityFragmentShaderPixelInterlockEXT: root::spv::Capability =
1502             5378;
1503         pub const Capability_CapabilityDemoteToHelperInvocationEXT: root::spv::Capability = 5379;
1504         pub const Capability_CapabilitySubgroupShuffleINTEL: root::spv::Capability = 5568;
1505         pub const Capability_CapabilitySubgroupBufferBlockIOINTEL: root::spv::Capability = 5569;
1506         pub const Capability_CapabilitySubgroupImageBlockIOINTEL: root::spv::Capability = 5570;
1507         pub const Capability_CapabilitySubgroupImageMediaBlockIOINTEL: root::spv::Capability = 5579;
1508         pub const Capability_CapabilityIntegerFunctions2INTEL: root::spv::Capability = 5584;
1509         pub const Capability_CapabilitySubgroupAvcMotionEstimationINTEL: root::spv::Capability =
1510             5696;
1511         pub const Capability_CapabilitySubgroupAvcMotionEstimationIntraINTEL:
1512             root::spv::Capability = 5697;
1513         pub const Capability_CapabilitySubgroupAvcMotionEstimationChromaINTEL:
1514             root::spv::Capability = 5698;
1515         pub const Capability_CapabilityMax: root::spv::Capability = 2147483647;
1516         pub type Capability = u32;
1517         pub const RayFlagsShift_RayFlagsOpaqueKHRShift: root::spv::RayFlagsShift = 0;
1518         pub const RayFlagsShift_RayFlagsNoOpaqueKHRShift: root::spv::RayFlagsShift = 1;
1519         pub const RayFlagsShift_RayFlagsTerminateOnFirstHitKHRShift: root::spv::RayFlagsShift = 2;
1520         pub const RayFlagsShift_RayFlagsSkipClosestHitShaderKHRShift: root::spv::RayFlagsShift = 3;
1521         pub const RayFlagsShift_RayFlagsCullBackFacingTrianglesKHRShift: root::spv::RayFlagsShift =
1522             4;
1523         pub const RayFlagsShift_RayFlagsCullFrontFacingTrianglesKHRShift: root::spv::RayFlagsShift =
1524             5;
1525         pub const RayFlagsShift_RayFlagsCullOpaqueKHRShift: root::spv::RayFlagsShift = 6;
1526         pub const RayFlagsShift_RayFlagsCullNoOpaqueKHRShift: root::spv::RayFlagsShift = 7;
1527         pub const RayFlagsShift_RayFlagsSkipTrianglesKHRShift: root::spv::RayFlagsShift = 8;
1528         pub const RayFlagsShift_RayFlagsSkipAABBsKHRShift: root::spv::RayFlagsShift = 9;
1529         pub const RayFlagsShift_RayFlagsMax: root::spv::RayFlagsShift = 2147483647;
1530         pub type RayFlagsShift = u32;
1531         impl RayFlagsMask {
1532             pub const RayFlagsMaskNone: root::spv::RayFlagsMask = root::spv::RayFlagsMask(0);
1533         }
1534         impl RayFlagsMask {
1535             pub const RayFlagsOpaqueKHRMask: root::spv::RayFlagsMask = root::spv::RayFlagsMask(1);
1536         }
1537         impl RayFlagsMask {
1538             pub const RayFlagsNoOpaqueKHRMask: root::spv::RayFlagsMask = root::spv::RayFlagsMask(2);
1539         }
1540         impl RayFlagsMask {
1541             pub const RayFlagsTerminateOnFirstHitKHRMask: root::spv::RayFlagsMask =
1542                 root::spv::RayFlagsMask(4);
1543         }
1544         impl RayFlagsMask {
1545             pub const RayFlagsSkipClosestHitShaderKHRMask: root::spv::RayFlagsMask =
1546                 root::spv::RayFlagsMask(8);
1547         }
1548         impl RayFlagsMask {
1549             pub const RayFlagsCullBackFacingTrianglesKHRMask: root::spv::RayFlagsMask =
1550                 root::spv::RayFlagsMask(16);
1551         }
1552         impl RayFlagsMask {
1553             pub const RayFlagsCullFrontFacingTrianglesKHRMask: root::spv::RayFlagsMask =
1554                 root::spv::RayFlagsMask(32);
1555         }
1556         impl RayFlagsMask {
1557             pub const RayFlagsCullOpaqueKHRMask: root::spv::RayFlagsMask =
1558                 root::spv::RayFlagsMask(64);
1559         }
1560         impl RayFlagsMask {
1561             pub const RayFlagsCullNoOpaqueKHRMask: root::spv::RayFlagsMask =
1562                 root::spv::RayFlagsMask(128);
1563         }
1564         impl RayFlagsMask {
1565             pub const RayFlagsSkipTrianglesKHRMask: root::spv::RayFlagsMask =
1566                 root::spv::RayFlagsMask(256);
1567         }
1568         impl RayFlagsMask {
1569             pub const RayFlagsSkipAABBsKHRMask: root::spv::RayFlagsMask =
1570                 root::spv::RayFlagsMask(512);
1571         }
1572         impl ::std::ops::BitOr<root::spv::RayFlagsMask> for root::spv::RayFlagsMask {
1573             type Output = Self;
1574             #[inline]
bitor(self, other: Self) -> Self1575             fn bitor(self, other: Self) -> Self {
1576                 RayFlagsMask(self.0 | other.0)
1577             }
1578         }
1579         impl ::std::ops::BitOrAssign for root::spv::RayFlagsMask {
1580             #[inline]
bitor_assign(&mut self, rhs: root::spv::RayFlagsMask)1581             fn bitor_assign(&mut self, rhs: root::spv::RayFlagsMask) {
1582                 self.0 |= rhs.0;
1583             }
1584         }
1585         impl ::std::ops::BitAnd<root::spv::RayFlagsMask> for root::spv::RayFlagsMask {
1586             type Output = Self;
1587             #[inline]
bitand(self, other: Self) -> Self1588             fn bitand(self, other: Self) -> Self {
1589                 RayFlagsMask(self.0 & other.0)
1590             }
1591         }
1592         impl ::std::ops::BitAndAssign for root::spv::RayFlagsMask {
1593             #[inline]
bitand_assign(&mut self, rhs: root::spv::RayFlagsMask)1594             fn bitand_assign(&mut self, rhs: root::spv::RayFlagsMask) {
1595                 self.0 &= rhs.0;
1596             }
1597         }
1598         #[repr(transparent)]
1599         #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
1600         pub struct RayFlagsMask(pub u32);
1601         pub const RayQueryIntersection_RayQueryIntersectionRayQueryCandidateIntersectionKHR:
1602             root::spv::RayQueryIntersection = 0;
1603         pub const RayQueryIntersection_RayQueryIntersectionRayQueryCommittedIntersectionKHR:
1604             root::spv::RayQueryIntersection = 1;
1605         pub const RayQueryIntersection_RayQueryIntersectionMax: root::spv::RayQueryIntersection =
1606             2147483647;
1607         pub type RayQueryIntersection = u32;
1608         pub const RayQueryCommittedIntersectionType_RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR : root :: spv :: RayQueryCommittedIntersectionType = 0 ;
1609         pub const RayQueryCommittedIntersectionType_RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR : root :: spv :: RayQueryCommittedIntersectionType = 1 ;
1610         pub const RayQueryCommittedIntersectionType_RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR : root :: spv :: RayQueryCommittedIntersectionType = 2 ;
1611         pub const RayQueryCommittedIntersectionType_RayQueryCommittedIntersectionTypeMax:
1612             root::spv::RayQueryCommittedIntersectionType = 2147483647;
1613         pub type RayQueryCommittedIntersectionType = u32;
1614         pub const RayQueryCandidateIntersectionType_RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR : root :: spv :: RayQueryCandidateIntersectionType = 0 ;
1615         pub const RayQueryCandidateIntersectionType_RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR : root :: spv :: RayQueryCandidateIntersectionType = 1 ;
1616         pub const RayQueryCandidateIntersectionType_RayQueryCandidateIntersectionTypeMax:
1617             root::spv::RayQueryCandidateIntersectionType = 2147483647;
1618         pub type RayQueryCandidateIntersectionType = u32;
1619         pub const Op_OpNop: root::spv::Op = 0;
1620         pub const Op_OpUndef: root::spv::Op = 1;
1621         pub const Op_OpSourceContinued: root::spv::Op = 2;
1622         pub const Op_OpSource: root::spv::Op = 3;
1623         pub const Op_OpSourceExtension: root::spv::Op = 4;
1624         pub const Op_OpName: root::spv::Op = 5;
1625         pub const Op_OpMemberName: root::spv::Op = 6;
1626         pub const Op_OpString: root::spv::Op = 7;
1627         pub const Op_OpLine: root::spv::Op = 8;
1628         pub const Op_OpExtension: root::spv::Op = 10;
1629         pub const Op_OpExtInstImport: root::spv::Op = 11;
1630         pub const Op_OpExtInst: root::spv::Op = 12;
1631         pub const Op_OpMemoryModel: root::spv::Op = 14;
1632         pub const Op_OpEntryPoint: root::spv::Op = 15;
1633         pub const Op_OpExecutionMode: root::spv::Op = 16;
1634         pub const Op_OpCapability: root::spv::Op = 17;
1635         pub const Op_OpTypeVoid: root::spv::Op = 19;
1636         pub const Op_OpTypeBool: root::spv::Op = 20;
1637         pub const Op_OpTypeInt: root::spv::Op = 21;
1638         pub const Op_OpTypeFloat: root::spv::Op = 22;
1639         pub const Op_OpTypeVector: root::spv::Op = 23;
1640         pub const Op_OpTypeMatrix: root::spv::Op = 24;
1641         pub const Op_OpTypeImage: root::spv::Op = 25;
1642         pub const Op_OpTypeSampler: root::spv::Op = 26;
1643         pub const Op_OpTypeSampledImage: root::spv::Op = 27;
1644         pub const Op_OpTypeArray: root::spv::Op = 28;
1645         pub const Op_OpTypeRuntimeArray: root::spv::Op = 29;
1646         pub const Op_OpTypeStruct: root::spv::Op = 30;
1647         pub const Op_OpTypeOpaque: root::spv::Op = 31;
1648         pub const Op_OpTypePointer: root::spv::Op = 32;
1649         pub const Op_OpTypeFunction: root::spv::Op = 33;
1650         pub const Op_OpTypeEvent: root::spv::Op = 34;
1651         pub const Op_OpTypeDeviceEvent: root::spv::Op = 35;
1652         pub const Op_OpTypeReserveId: root::spv::Op = 36;
1653         pub const Op_OpTypeQueue: root::spv::Op = 37;
1654         pub const Op_OpTypePipe: root::spv::Op = 38;
1655         pub const Op_OpTypeForwardPointer: root::spv::Op = 39;
1656         pub const Op_OpConstantTrue: root::spv::Op = 41;
1657         pub const Op_OpConstantFalse: root::spv::Op = 42;
1658         pub const Op_OpConstant: root::spv::Op = 43;
1659         pub const Op_OpConstantComposite: root::spv::Op = 44;
1660         pub const Op_OpConstantSampler: root::spv::Op = 45;
1661         pub const Op_OpConstantNull: root::spv::Op = 46;
1662         pub const Op_OpSpecConstantTrue: root::spv::Op = 48;
1663         pub const Op_OpSpecConstantFalse: root::spv::Op = 49;
1664         pub const Op_OpSpecConstant: root::spv::Op = 50;
1665         pub const Op_OpSpecConstantComposite: root::spv::Op = 51;
1666         pub const Op_OpSpecConstantOp: root::spv::Op = 52;
1667         pub const Op_OpFunction: root::spv::Op = 54;
1668         pub const Op_OpFunctionParameter: root::spv::Op = 55;
1669         pub const Op_OpFunctionEnd: root::spv::Op = 56;
1670         pub const Op_OpFunctionCall: root::spv::Op = 57;
1671         pub const Op_OpVariable: root::spv::Op = 59;
1672         pub const Op_OpImageTexelPointer: root::spv::Op = 60;
1673         pub const Op_OpLoad: root::spv::Op = 61;
1674         pub const Op_OpStore: root::spv::Op = 62;
1675         pub const Op_OpCopyMemory: root::spv::Op = 63;
1676         pub const Op_OpCopyMemorySized: root::spv::Op = 64;
1677         pub const Op_OpAccessChain: root::spv::Op = 65;
1678         pub const Op_OpInBoundsAccessChain: root::spv::Op = 66;
1679         pub const Op_OpPtrAccessChain: root::spv::Op = 67;
1680         pub const Op_OpArrayLength: root::spv::Op = 68;
1681         pub const Op_OpGenericPtrMemSemantics: root::spv::Op = 69;
1682         pub const Op_OpInBoundsPtrAccessChain: root::spv::Op = 70;
1683         pub const Op_OpDecorate: root::spv::Op = 71;
1684         pub const Op_OpMemberDecorate: root::spv::Op = 72;
1685         pub const Op_OpDecorationGroup: root::spv::Op = 73;
1686         pub const Op_OpGroupDecorate: root::spv::Op = 74;
1687         pub const Op_OpGroupMemberDecorate: root::spv::Op = 75;
1688         pub const Op_OpVectorExtractDynamic: root::spv::Op = 77;
1689         pub const Op_OpVectorInsertDynamic: root::spv::Op = 78;
1690         pub const Op_OpVectorShuffle: root::spv::Op = 79;
1691         pub const Op_OpCompositeConstruct: root::spv::Op = 80;
1692         pub const Op_OpCompositeExtract: root::spv::Op = 81;
1693         pub const Op_OpCompositeInsert: root::spv::Op = 82;
1694         pub const Op_OpCopyObject: root::spv::Op = 83;
1695         pub const Op_OpTranspose: root::spv::Op = 84;
1696         pub const Op_OpSampledImage: root::spv::Op = 86;
1697         pub const Op_OpImageSampleImplicitLod: root::spv::Op = 87;
1698         pub const Op_OpImageSampleExplicitLod: root::spv::Op = 88;
1699         pub const Op_OpImageSampleDrefImplicitLod: root::spv::Op = 89;
1700         pub const Op_OpImageSampleDrefExplicitLod: root::spv::Op = 90;
1701         pub const Op_OpImageSampleProjImplicitLod: root::spv::Op = 91;
1702         pub const Op_OpImageSampleProjExplicitLod: root::spv::Op = 92;
1703         pub const Op_OpImageSampleProjDrefImplicitLod: root::spv::Op = 93;
1704         pub const Op_OpImageSampleProjDrefExplicitLod: root::spv::Op = 94;
1705         pub const Op_OpImageFetch: root::spv::Op = 95;
1706         pub const Op_OpImageGather: root::spv::Op = 96;
1707         pub const Op_OpImageDrefGather: root::spv::Op = 97;
1708         pub const Op_OpImageRead: root::spv::Op = 98;
1709         pub const Op_OpImageWrite: root::spv::Op = 99;
1710         pub const Op_OpImage: root::spv::Op = 100;
1711         pub const Op_OpImageQueryFormat: root::spv::Op = 101;
1712         pub const Op_OpImageQueryOrder: root::spv::Op = 102;
1713         pub const Op_OpImageQuerySizeLod: root::spv::Op = 103;
1714         pub const Op_OpImageQuerySize: root::spv::Op = 104;
1715         pub const Op_OpImageQueryLod: root::spv::Op = 105;
1716         pub const Op_OpImageQueryLevels: root::spv::Op = 106;
1717         pub const Op_OpImageQuerySamples: root::spv::Op = 107;
1718         pub const Op_OpConvertFToU: root::spv::Op = 109;
1719         pub const Op_OpConvertFToS: root::spv::Op = 110;
1720         pub const Op_OpConvertSToF: root::spv::Op = 111;
1721         pub const Op_OpConvertUToF: root::spv::Op = 112;
1722         pub const Op_OpUConvert: root::spv::Op = 113;
1723         pub const Op_OpSConvert: root::spv::Op = 114;
1724         pub const Op_OpFConvert: root::spv::Op = 115;
1725         pub const Op_OpQuantizeToF16: root::spv::Op = 116;
1726         pub const Op_OpConvertPtrToU: root::spv::Op = 117;
1727         pub const Op_OpSatConvertSToU: root::spv::Op = 118;
1728         pub const Op_OpSatConvertUToS: root::spv::Op = 119;
1729         pub const Op_OpConvertUToPtr: root::spv::Op = 120;
1730         pub const Op_OpPtrCastToGeneric: root::spv::Op = 121;
1731         pub const Op_OpGenericCastToPtr: root::spv::Op = 122;
1732         pub const Op_OpGenericCastToPtrExplicit: root::spv::Op = 123;
1733         pub const Op_OpBitcast: root::spv::Op = 124;
1734         pub const Op_OpSNegate: root::spv::Op = 126;
1735         pub const Op_OpFNegate: root::spv::Op = 127;
1736         pub const Op_OpIAdd: root::spv::Op = 128;
1737         pub const Op_OpFAdd: root::spv::Op = 129;
1738         pub const Op_OpISub: root::spv::Op = 130;
1739         pub const Op_OpFSub: root::spv::Op = 131;
1740         pub const Op_OpIMul: root::spv::Op = 132;
1741         pub const Op_OpFMul: root::spv::Op = 133;
1742         pub const Op_OpUDiv: root::spv::Op = 134;
1743         pub const Op_OpSDiv: root::spv::Op = 135;
1744         pub const Op_OpFDiv: root::spv::Op = 136;
1745         pub const Op_OpUMod: root::spv::Op = 137;
1746         pub const Op_OpSRem: root::spv::Op = 138;
1747         pub const Op_OpSMod: root::spv::Op = 139;
1748         pub const Op_OpFRem: root::spv::Op = 140;
1749         pub const Op_OpFMod: root::spv::Op = 141;
1750         pub const Op_OpVectorTimesScalar: root::spv::Op = 142;
1751         pub const Op_OpMatrixTimesScalar: root::spv::Op = 143;
1752         pub const Op_OpVectorTimesMatrix: root::spv::Op = 144;
1753         pub const Op_OpMatrixTimesVector: root::spv::Op = 145;
1754         pub const Op_OpMatrixTimesMatrix: root::spv::Op = 146;
1755         pub const Op_OpOuterProduct: root::spv::Op = 147;
1756         pub const Op_OpDot: root::spv::Op = 148;
1757         pub const Op_OpIAddCarry: root::spv::Op = 149;
1758         pub const Op_OpISubBorrow: root::spv::Op = 150;
1759         pub const Op_OpUMulExtended: root::spv::Op = 151;
1760         pub const Op_OpSMulExtended: root::spv::Op = 152;
1761         pub const Op_OpAny: root::spv::Op = 154;
1762         pub const Op_OpAll: root::spv::Op = 155;
1763         pub const Op_OpIsNan: root::spv::Op = 156;
1764         pub const Op_OpIsInf: root::spv::Op = 157;
1765         pub const Op_OpIsFinite: root::spv::Op = 158;
1766         pub const Op_OpIsNormal: root::spv::Op = 159;
1767         pub const Op_OpSignBitSet: root::spv::Op = 160;
1768         pub const Op_OpLessOrGreater: root::spv::Op = 161;
1769         pub const Op_OpOrdered: root::spv::Op = 162;
1770         pub const Op_OpUnordered: root::spv::Op = 163;
1771         pub const Op_OpLogicalEqual: root::spv::Op = 164;
1772         pub const Op_OpLogicalNotEqual: root::spv::Op = 165;
1773         pub const Op_OpLogicalOr: root::spv::Op = 166;
1774         pub const Op_OpLogicalAnd: root::spv::Op = 167;
1775         pub const Op_OpLogicalNot: root::spv::Op = 168;
1776         pub const Op_OpSelect: root::spv::Op = 169;
1777         pub const Op_OpIEqual: root::spv::Op = 170;
1778         pub const Op_OpINotEqual: root::spv::Op = 171;
1779         pub const Op_OpUGreaterThan: root::spv::Op = 172;
1780         pub const Op_OpSGreaterThan: root::spv::Op = 173;
1781         pub const Op_OpUGreaterThanEqual: root::spv::Op = 174;
1782         pub const Op_OpSGreaterThanEqual: root::spv::Op = 175;
1783         pub const Op_OpULessThan: root::spv::Op = 176;
1784         pub const Op_OpSLessThan: root::spv::Op = 177;
1785         pub const Op_OpULessThanEqual: root::spv::Op = 178;
1786         pub const Op_OpSLessThanEqual: root::spv::Op = 179;
1787         pub const Op_OpFOrdEqual: root::spv::Op = 180;
1788         pub const Op_OpFUnordEqual: root::spv::Op = 181;
1789         pub const Op_OpFOrdNotEqual: root::spv::Op = 182;
1790         pub const Op_OpFUnordNotEqual: root::spv::Op = 183;
1791         pub const Op_OpFOrdLessThan: root::spv::Op = 184;
1792         pub const Op_OpFUnordLessThan: root::spv::Op = 185;
1793         pub const Op_OpFOrdGreaterThan: root::spv::Op = 186;
1794         pub const Op_OpFUnordGreaterThan: root::spv::Op = 187;
1795         pub const Op_OpFOrdLessThanEqual: root::spv::Op = 188;
1796         pub const Op_OpFUnordLessThanEqual: root::spv::Op = 189;
1797         pub const Op_OpFOrdGreaterThanEqual: root::spv::Op = 190;
1798         pub const Op_OpFUnordGreaterThanEqual: root::spv::Op = 191;
1799         pub const Op_OpShiftRightLogical: root::spv::Op = 194;
1800         pub const Op_OpShiftRightArithmetic: root::spv::Op = 195;
1801         pub const Op_OpShiftLeftLogical: root::spv::Op = 196;
1802         pub const Op_OpBitwiseOr: root::spv::Op = 197;
1803         pub const Op_OpBitwiseXor: root::spv::Op = 198;
1804         pub const Op_OpBitwiseAnd: root::spv::Op = 199;
1805         pub const Op_OpNot: root::spv::Op = 200;
1806         pub const Op_OpBitFieldInsert: root::spv::Op = 201;
1807         pub const Op_OpBitFieldSExtract: root::spv::Op = 202;
1808         pub const Op_OpBitFieldUExtract: root::spv::Op = 203;
1809         pub const Op_OpBitReverse: root::spv::Op = 204;
1810         pub const Op_OpBitCount: root::spv::Op = 205;
1811         pub const Op_OpDPdx: root::spv::Op = 207;
1812         pub const Op_OpDPdy: root::spv::Op = 208;
1813         pub const Op_OpFwidth: root::spv::Op = 209;
1814         pub const Op_OpDPdxFine: root::spv::Op = 210;
1815         pub const Op_OpDPdyFine: root::spv::Op = 211;
1816         pub const Op_OpFwidthFine: root::spv::Op = 212;
1817         pub const Op_OpDPdxCoarse: root::spv::Op = 213;
1818         pub const Op_OpDPdyCoarse: root::spv::Op = 214;
1819         pub const Op_OpFwidthCoarse: root::spv::Op = 215;
1820         pub const Op_OpEmitVertex: root::spv::Op = 218;
1821         pub const Op_OpEndPrimitive: root::spv::Op = 219;
1822         pub const Op_OpEmitStreamVertex: root::spv::Op = 220;
1823         pub const Op_OpEndStreamPrimitive: root::spv::Op = 221;
1824         pub const Op_OpControlBarrier: root::spv::Op = 224;
1825         pub const Op_OpMemoryBarrier: root::spv::Op = 225;
1826         pub const Op_OpAtomicLoad: root::spv::Op = 227;
1827         pub const Op_OpAtomicStore: root::spv::Op = 228;
1828         pub const Op_OpAtomicExchange: root::spv::Op = 229;
1829         pub const Op_OpAtomicCompareExchange: root::spv::Op = 230;
1830         pub const Op_OpAtomicCompareExchangeWeak: root::spv::Op = 231;
1831         pub const Op_OpAtomicIIncrement: root::spv::Op = 232;
1832         pub const Op_OpAtomicIDecrement: root::spv::Op = 233;
1833         pub const Op_OpAtomicIAdd: root::spv::Op = 234;
1834         pub const Op_OpAtomicISub: root::spv::Op = 235;
1835         pub const Op_OpAtomicSMin: root::spv::Op = 236;
1836         pub const Op_OpAtomicUMin: root::spv::Op = 237;
1837         pub const Op_OpAtomicSMax: root::spv::Op = 238;
1838         pub const Op_OpAtomicUMax: root::spv::Op = 239;
1839         pub const Op_OpAtomicAnd: root::spv::Op = 240;
1840         pub const Op_OpAtomicOr: root::spv::Op = 241;
1841         pub const Op_OpAtomicXor: root::spv::Op = 242;
1842         pub const Op_OpPhi: root::spv::Op = 245;
1843         pub const Op_OpLoopMerge: root::spv::Op = 246;
1844         pub const Op_OpSelectionMerge: root::spv::Op = 247;
1845         pub const Op_OpLabel: root::spv::Op = 248;
1846         pub const Op_OpBranch: root::spv::Op = 249;
1847         pub const Op_OpBranchConditional: root::spv::Op = 250;
1848         pub const Op_OpSwitch: root::spv::Op = 251;
1849         pub const Op_OpKill: root::spv::Op = 252;
1850         pub const Op_OpReturn: root::spv::Op = 253;
1851         pub const Op_OpReturnValue: root::spv::Op = 254;
1852         pub const Op_OpUnreachable: root::spv::Op = 255;
1853         pub const Op_OpLifetimeStart: root::spv::Op = 256;
1854         pub const Op_OpLifetimeStop: root::spv::Op = 257;
1855         pub const Op_OpGroupAsyncCopy: root::spv::Op = 259;
1856         pub const Op_OpGroupWaitEvents: root::spv::Op = 260;
1857         pub const Op_OpGroupAll: root::spv::Op = 261;
1858         pub const Op_OpGroupAny: root::spv::Op = 262;
1859         pub const Op_OpGroupBroadcast: root::spv::Op = 263;
1860         pub const Op_OpGroupIAdd: root::spv::Op = 264;
1861         pub const Op_OpGroupFAdd: root::spv::Op = 265;
1862         pub const Op_OpGroupFMin: root::spv::Op = 266;
1863         pub const Op_OpGroupUMin: root::spv::Op = 267;
1864         pub const Op_OpGroupSMin: root::spv::Op = 268;
1865         pub const Op_OpGroupFMax: root::spv::Op = 269;
1866         pub const Op_OpGroupUMax: root::spv::Op = 270;
1867         pub const Op_OpGroupSMax: root::spv::Op = 271;
1868         pub const Op_OpReadPipe: root::spv::Op = 274;
1869         pub const Op_OpWritePipe: root::spv::Op = 275;
1870         pub const Op_OpReservedReadPipe: root::spv::Op = 276;
1871         pub const Op_OpReservedWritePipe: root::spv::Op = 277;
1872         pub const Op_OpReserveReadPipePackets: root::spv::Op = 278;
1873         pub const Op_OpReserveWritePipePackets: root::spv::Op = 279;
1874         pub const Op_OpCommitReadPipe: root::spv::Op = 280;
1875         pub const Op_OpCommitWritePipe: root::spv::Op = 281;
1876         pub const Op_OpIsValidReserveId: root::spv::Op = 282;
1877         pub const Op_OpGetNumPipePackets: root::spv::Op = 283;
1878         pub const Op_OpGetMaxPipePackets: root::spv::Op = 284;
1879         pub const Op_OpGroupReserveReadPipePackets: root::spv::Op = 285;
1880         pub const Op_OpGroupReserveWritePipePackets: root::spv::Op = 286;
1881         pub const Op_OpGroupCommitReadPipe: root::spv::Op = 287;
1882         pub const Op_OpGroupCommitWritePipe: root::spv::Op = 288;
1883         pub const Op_OpEnqueueMarker: root::spv::Op = 291;
1884         pub const Op_OpEnqueueKernel: root::spv::Op = 292;
1885         pub const Op_OpGetKernelNDrangeSubGroupCount: root::spv::Op = 293;
1886         pub const Op_OpGetKernelNDrangeMaxSubGroupSize: root::spv::Op = 294;
1887         pub const Op_OpGetKernelWorkGroupSize: root::spv::Op = 295;
1888         pub const Op_OpGetKernelPreferredWorkGroupSizeMultiple: root::spv::Op = 296;
1889         pub const Op_OpRetainEvent: root::spv::Op = 297;
1890         pub const Op_OpReleaseEvent: root::spv::Op = 298;
1891         pub const Op_OpCreateUserEvent: root::spv::Op = 299;
1892         pub const Op_OpIsValidEvent: root::spv::Op = 300;
1893         pub const Op_OpSetUserEventStatus: root::spv::Op = 301;
1894         pub const Op_OpCaptureEventProfilingInfo: root::spv::Op = 302;
1895         pub const Op_OpGetDefaultQueue: root::spv::Op = 303;
1896         pub const Op_OpBuildNDRange: root::spv::Op = 304;
1897         pub const Op_OpImageSparseSampleImplicitLod: root::spv::Op = 305;
1898         pub const Op_OpImageSparseSampleExplicitLod: root::spv::Op = 306;
1899         pub const Op_OpImageSparseSampleDrefImplicitLod: root::spv::Op = 307;
1900         pub const Op_OpImageSparseSampleDrefExplicitLod: root::spv::Op = 308;
1901         pub const Op_OpImageSparseSampleProjImplicitLod: root::spv::Op = 309;
1902         pub const Op_OpImageSparseSampleProjExplicitLod: root::spv::Op = 310;
1903         pub const Op_OpImageSparseSampleProjDrefImplicitLod: root::spv::Op = 311;
1904         pub const Op_OpImageSparseSampleProjDrefExplicitLod: root::spv::Op = 312;
1905         pub const Op_OpImageSparseFetch: root::spv::Op = 313;
1906         pub const Op_OpImageSparseGather: root::spv::Op = 314;
1907         pub const Op_OpImageSparseDrefGather: root::spv::Op = 315;
1908         pub const Op_OpImageSparseTexelsResident: root::spv::Op = 316;
1909         pub const Op_OpNoLine: root::spv::Op = 317;
1910         pub const Op_OpAtomicFlagTestAndSet: root::spv::Op = 318;
1911         pub const Op_OpAtomicFlagClear: root::spv::Op = 319;
1912         pub const Op_OpImageSparseRead: root::spv::Op = 320;
1913         pub const Op_OpSizeOf: root::spv::Op = 321;
1914         pub const Op_OpTypePipeStorage: root::spv::Op = 322;
1915         pub const Op_OpConstantPipeStorage: root::spv::Op = 323;
1916         pub const Op_OpCreatePipeFromPipeStorage: root::spv::Op = 324;
1917         pub const Op_OpGetKernelLocalSizeForSubgroupCount: root::spv::Op = 325;
1918         pub const Op_OpGetKernelMaxNumSubgroups: root::spv::Op = 326;
1919         pub const Op_OpTypeNamedBarrier: root::spv::Op = 327;
1920         pub const Op_OpNamedBarrierInitialize: root::spv::Op = 328;
1921         pub const Op_OpMemoryNamedBarrier: root::spv::Op = 329;
1922         pub const Op_OpModuleProcessed: root::spv::Op = 330;
1923         pub const Op_OpExecutionModeId: root::spv::Op = 331;
1924         pub const Op_OpDecorateId: root::spv::Op = 332;
1925         pub const Op_OpGroupNonUniformElect: root::spv::Op = 333;
1926         pub const Op_OpGroupNonUniformAll: root::spv::Op = 334;
1927         pub const Op_OpGroupNonUniformAny: root::spv::Op = 335;
1928         pub const Op_OpGroupNonUniformAllEqual: root::spv::Op = 336;
1929         pub const Op_OpGroupNonUniformBroadcast: root::spv::Op = 337;
1930         pub const Op_OpGroupNonUniformBroadcastFirst: root::spv::Op = 338;
1931         pub const Op_OpGroupNonUniformBallot: root::spv::Op = 339;
1932         pub const Op_OpGroupNonUniformInverseBallot: root::spv::Op = 340;
1933         pub const Op_OpGroupNonUniformBallotBitExtract: root::spv::Op = 341;
1934         pub const Op_OpGroupNonUniformBallotBitCount: root::spv::Op = 342;
1935         pub const Op_OpGroupNonUniformBallotFindLSB: root::spv::Op = 343;
1936         pub const Op_OpGroupNonUniformBallotFindMSB: root::spv::Op = 344;
1937         pub const Op_OpGroupNonUniformShuffle: root::spv::Op = 345;
1938         pub const Op_OpGroupNonUniformShuffleXor: root::spv::Op = 346;
1939         pub const Op_OpGroupNonUniformShuffleUp: root::spv::Op = 347;
1940         pub const Op_OpGroupNonUniformShuffleDown: root::spv::Op = 348;
1941         pub const Op_OpGroupNonUniformIAdd: root::spv::Op = 349;
1942         pub const Op_OpGroupNonUniformFAdd: root::spv::Op = 350;
1943         pub const Op_OpGroupNonUniformIMul: root::spv::Op = 351;
1944         pub const Op_OpGroupNonUniformFMul: root::spv::Op = 352;
1945         pub const Op_OpGroupNonUniformSMin: root::spv::Op = 353;
1946         pub const Op_OpGroupNonUniformUMin: root::spv::Op = 354;
1947         pub const Op_OpGroupNonUniformFMin: root::spv::Op = 355;
1948         pub const Op_OpGroupNonUniformSMax: root::spv::Op = 356;
1949         pub const Op_OpGroupNonUniformUMax: root::spv::Op = 357;
1950         pub const Op_OpGroupNonUniformFMax: root::spv::Op = 358;
1951         pub const Op_OpGroupNonUniformBitwiseAnd: root::spv::Op = 359;
1952         pub const Op_OpGroupNonUniformBitwiseOr: root::spv::Op = 360;
1953         pub const Op_OpGroupNonUniformBitwiseXor: root::spv::Op = 361;
1954         pub const Op_OpGroupNonUniformLogicalAnd: root::spv::Op = 362;
1955         pub const Op_OpGroupNonUniformLogicalOr: root::spv::Op = 363;
1956         pub const Op_OpGroupNonUniformLogicalXor: root::spv::Op = 364;
1957         pub const Op_OpGroupNonUniformQuadBroadcast: root::spv::Op = 365;
1958         pub const Op_OpGroupNonUniformQuadSwap: root::spv::Op = 366;
1959         pub const Op_OpCopyLogical: root::spv::Op = 400;
1960         pub const Op_OpPtrEqual: root::spv::Op = 401;
1961         pub const Op_OpPtrNotEqual: root::spv::Op = 402;
1962         pub const Op_OpPtrDiff: root::spv::Op = 403;
1963         pub const Op_OpSubgroupBallotKHR: root::spv::Op = 4421;
1964         pub const Op_OpSubgroupFirstInvocationKHR: root::spv::Op = 4422;
1965         pub const Op_OpSubgroupAllKHR: root::spv::Op = 4428;
1966         pub const Op_OpSubgroupAnyKHR: root::spv::Op = 4429;
1967         pub const Op_OpSubgroupAllEqualKHR: root::spv::Op = 4430;
1968         pub const Op_OpSubgroupReadInvocationKHR: root::spv::Op = 4432;
1969         pub const Op_OpTypeRayQueryProvisionalKHR: root::spv::Op = 4472;
1970         pub const Op_OpRayQueryInitializeKHR: root::spv::Op = 4473;
1971         pub const Op_OpRayQueryTerminateKHR: root::spv::Op = 4474;
1972         pub const Op_OpRayQueryGenerateIntersectionKHR: root::spv::Op = 4475;
1973         pub const Op_OpRayQueryConfirmIntersectionKHR: root::spv::Op = 4476;
1974         pub const Op_OpRayQueryProceedKHR: root::spv::Op = 4477;
1975         pub const Op_OpRayQueryGetIntersectionTypeKHR: root::spv::Op = 4479;
1976         pub const Op_OpGroupIAddNonUniformAMD: root::spv::Op = 5000;
1977         pub const Op_OpGroupFAddNonUniformAMD: root::spv::Op = 5001;
1978         pub const Op_OpGroupFMinNonUniformAMD: root::spv::Op = 5002;
1979         pub const Op_OpGroupUMinNonUniformAMD: root::spv::Op = 5003;
1980         pub const Op_OpGroupSMinNonUniformAMD: root::spv::Op = 5004;
1981         pub const Op_OpGroupFMaxNonUniformAMD: root::spv::Op = 5005;
1982         pub const Op_OpGroupUMaxNonUniformAMD: root::spv::Op = 5006;
1983         pub const Op_OpGroupSMaxNonUniformAMD: root::spv::Op = 5007;
1984         pub const Op_OpFragmentMaskFetchAMD: root::spv::Op = 5011;
1985         pub const Op_OpFragmentFetchAMD: root::spv::Op = 5012;
1986         pub const Op_OpReadClockKHR: root::spv::Op = 5056;
1987         pub const Op_OpImageSampleFootprintNV: root::spv::Op = 5283;
1988         pub const Op_OpGroupNonUniformPartitionNV: root::spv::Op = 5296;
1989         pub const Op_OpWritePackedPrimitiveIndices4x8NV: root::spv::Op = 5299;
1990         pub const Op_OpReportIntersectionKHR: root::spv::Op = 5334;
1991         pub const Op_OpReportIntersectionNV: root::spv::Op = 5334;
1992         pub const Op_OpIgnoreIntersectionKHR: root::spv::Op = 5335;
1993         pub const Op_OpIgnoreIntersectionNV: root::spv::Op = 5335;
1994         pub const Op_OpTerminateRayKHR: root::spv::Op = 5336;
1995         pub const Op_OpTerminateRayNV: root::spv::Op = 5336;
1996         pub const Op_OpTraceNV: root::spv::Op = 5337;
1997         pub const Op_OpTraceRayKHR: root::spv::Op = 5337;
1998         pub const Op_OpTypeAccelerationStructureKHR: root::spv::Op = 5341;
1999         pub const Op_OpTypeAccelerationStructureNV: root::spv::Op = 5341;
2000         pub const Op_OpExecuteCallableKHR: root::spv::Op = 5344;
2001         pub const Op_OpExecuteCallableNV: root::spv::Op = 5344;
2002         pub const Op_OpTypeCooperativeMatrixNV: root::spv::Op = 5358;
2003         pub const Op_OpCooperativeMatrixLoadNV: root::spv::Op = 5359;
2004         pub const Op_OpCooperativeMatrixStoreNV: root::spv::Op = 5360;
2005         pub const Op_OpCooperativeMatrixMulAddNV: root::spv::Op = 5361;
2006         pub const Op_OpCooperativeMatrixLengthNV: root::spv::Op = 5362;
2007         pub const Op_OpBeginInvocationInterlockEXT: root::spv::Op = 5364;
2008         pub const Op_OpEndInvocationInterlockEXT: root::spv::Op = 5365;
2009         pub const Op_OpDemoteToHelperInvocationEXT: root::spv::Op = 5380;
2010         pub const Op_OpIsHelperInvocationEXT: root::spv::Op = 5381;
2011         pub const Op_OpSubgroupShuffleINTEL: root::spv::Op = 5571;
2012         pub const Op_OpSubgroupShuffleDownINTEL: root::spv::Op = 5572;
2013         pub const Op_OpSubgroupShuffleUpINTEL: root::spv::Op = 5573;
2014         pub const Op_OpSubgroupShuffleXorINTEL: root::spv::Op = 5574;
2015         pub const Op_OpSubgroupBlockReadINTEL: root::spv::Op = 5575;
2016         pub const Op_OpSubgroupBlockWriteINTEL: root::spv::Op = 5576;
2017         pub const Op_OpSubgroupImageBlockReadINTEL: root::spv::Op = 5577;
2018         pub const Op_OpSubgroupImageBlockWriteINTEL: root::spv::Op = 5578;
2019         pub const Op_OpSubgroupImageMediaBlockReadINTEL: root::spv::Op = 5580;
2020         pub const Op_OpSubgroupImageMediaBlockWriteINTEL: root::spv::Op = 5581;
2021         pub const Op_OpUCountLeadingZerosINTEL: root::spv::Op = 5585;
2022         pub const Op_OpUCountTrailingZerosINTEL: root::spv::Op = 5586;
2023         pub const Op_OpAbsISubINTEL: root::spv::Op = 5587;
2024         pub const Op_OpAbsUSubINTEL: root::spv::Op = 5588;
2025         pub const Op_OpIAddSatINTEL: root::spv::Op = 5589;
2026         pub const Op_OpUAddSatINTEL: root::spv::Op = 5590;
2027         pub const Op_OpIAverageINTEL: root::spv::Op = 5591;
2028         pub const Op_OpUAverageINTEL: root::spv::Op = 5592;
2029         pub const Op_OpIAverageRoundedINTEL: root::spv::Op = 5593;
2030         pub const Op_OpUAverageRoundedINTEL: root::spv::Op = 5594;
2031         pub const Op_OpISubSatINTEL: root::spv::Op = 5595;
2032         pub const Op_OpUSubSatINTEL: root::spv::Op = 5596;
2033         pub const Op_OpIMul32x16INTEL: root::spv::Op = 5597;
2034         pub const Op_OpUMul32x16INTEL: root::spv::Op = 5598;
2035         pub const Op_OpDecorateString: root::spv::Op = 5632;
2036         pub const Op_OpDecorateStringGOOGLE: root::spv::Op = 5632;
2037         pub const Op_OpMemberDecorateString: root::spv::Op = 5633;
2038         pub const Op_OpMemberDecorateStringGOOGLE: root::spv::Op = 5633;
2039         pub const Op_OpVmeImageINTEL: root::spv::Op = 5699;
2040         pub const Op_OpTypeVmeImageINTEL: root::spv::Op = 5700;
2041         pub const Op_OpTypeAvcImePayloadINTEL: root::spv::Op = 5701;
2042         pub const Op_OpTypeAvcRefPayloadINTEL: root::spv::Op = 5702;
2043         pub const Op_OpTypeAvcSicPayloadINTEL: root::spv::Op = 5703;
2044         pub const Op_OpTypeAvcMcePayloadINTEL: root::spv::Op = 5704;
2045         pub const Op_OpTypeAvcMceResultINTEL: root::spv::Op = 5705;
2046         pub const Op_OpTypeAvcImeResultINTEL: root::spv::Op = 5706;
2047         pub const Op_OpTypeAvcImeResultSingleReferenceStreamoutINTEL: root::spv::Op = 5707;
2048         pub const Op_OpTypeAvcImeResultDualReferenceStreamoutINTEL: root::spv::Op = 5708;
2049         pub const Op_OpTypeAvcImeSingleReferenceStreaminINTEL: root::spv::Op = 5709;
2050         pub const Op_OpTypeAvcImeDualReferenceStreaminINTEL: root::spv::Op = 5710;
2051         pub const Op_OpTypeAvcRefResultINTEL: root::spv::Op = 5711;
2052         pub const Op_OpTypeAvcSicResultINTEL: root::spv::Op = 5712;
2053         pub const Op_OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: root::spv::Op =
2054             5713;
2055         pub const Op_OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: root::spv::Op = 5714;
2056         pub const Op_OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: root::spv::Op = 5715;
2057         pub const Op_OpSubgroupAvcMceSetInterShapePenaltyINTEL: root::spv::Op = 5716;
2058         pub const Op_OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: root::spv::Op = 5717;
2059         pub const Op_OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: root::spv::Op = 5718;
2060         pub const Op_OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: root::spv::Op = 5719;
2061         pub const Op_OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: root::spv::Op =
2062             5720;
2063         pub const Op_OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: root::spv::Op = 5721;
2064         pub const Op_OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: root::spv::Op = 5722;
2065         pub const Op_OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: root::spv::Op = 5723;
2066         pub const Op_OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: root::spv::Op = 5724;
2067         pub const Op_OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: root::spv::Op = 5725;
2068         pub const Op_OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: root::spv::Op = 5726;
2069         pub const Op_OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: root::spv::Op =
2070             5727;
2071         pub const Op_OpSubgroupAvcMceSetAcOnlyHaarINTEL: root::spv::Op = 5728;
2072         pub const Op_OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: root::spv::Op = 5729;
2073         pub const Op_OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: root::spv::Op =
2074             5730;
2075         pub const Op_OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: root::spv::Op =
2076             5731;
2077         pub const Op_OpSubgroupAvcMceConvertToImePayloadINTEL: root::spv::Op = 5732;
2078         pub const Op_OpSubgroupAvcMceConvertToImeResultINTEL: root::spv::Op = 5733;
2079         pub const Op_OpSubgroupAvcMceConvertToRefPayloadINTEL: root::spv::Op = 5734;
2080         pub const Op_OpSubgroupAvcMceConvertToRefResultINTEL: root::spv::Op = 5735;
2081         pub const Op_OpSubgroupAvcMceConvertToSicPayloadINTEL: root::spv::Op = 5736;
2082         pub const Op_OpSubgroupAvcMceConvertToSicResultINTEL: root::spv::Op = 5737;
2083         pub const Op_OpSubgroupAvcMceGetMotionVectorsINTEL: root::spv::Op = 5738;
2084         pub const Op_OpSubgroupAvcMceGetInterDistortionsINTEL: root::spv::Op = 5739;
2085         pub const Op_OpSubgroupAvcMceGetBestInterDistortionsINTEL: root::spv::Op = 5740;
2086         pub const Op_OpSubgroupAvcMceGetInterMajorShapeINTEL: root::spv::Op = 5741;
2087         pub const Op_OpSubgroupAvcMceGetInterMinorShapeINTEL: root::spv::Op = 5742;
2088         pub const Op_OpSubgroupAvcMceGetInterDirectionsINTEL: root::spv::Op = 5743;
2089         pub const Op_OpSubgroupAvcMceGetInterMotionVectorCountINTEL: root::spv::Op = 5744;
2090         pub const Op_OpSubgroupAvcMceGetInterReferenceIdsINTEL: root::spv::Op = 5745;
2091         pub const Op_OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL:
2092             root::spv::Op = 5746;
2093         pub const Op_OpSubgroupAvcImeInitializeINTEL: root::spv::Op = 5747;
2094         pub const Op_OpSubgroupAvcImeSetSingleReferenceINTEL: root::spv::Op = 5748;
2095         pub const Op_OpSubgroupAvcImeSetDualReferenceINTEL: root::spv::Op = 5749;
2096         pub const Op_OpSubgroupAvcImeRefWindowSizeINTEL: root::spv::Op = 5750;
2097         pub const Op_OpSubgroupAvcImeAdjustRefOffsetINTEL: root::spv::Op = 5751;
2098         pub const Op_OpSubgroupAvcImeConvertToMcePayloadINTEL: root::spv::Op = 5752;
2099         pub const Op_OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: root::spv::Op = 5753;
2100         pub const Op_OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: root::spv::Op = 5754;
2101         pub const Op_OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: root::spv::Op = 5755;
2102         pub const Op_OpSubgroupAvcImeSetWeightedSadINTEL: root::spv::Op = 5756;
2103         pub const Op_OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: root::spv::Op = 5757;
2104         pub const Op_OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: root::spv::Op = 5758;
2105         pub const Op_OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: root::spv::Op = 5759;
2106         pub const Op_OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: root::spv::Op = 5760;
2107         pub const Op_OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: root::spv::Op =
2108             5761;
2109         pub const Op_OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: root::spv::Op = 5762;
2110         pub const Op_OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: root::spv::Op =
2111             5763;
2112         pub const Op_OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: root::spv::Op =
2113             5764;
2114         pub const Op_OpSubgroupAvcImeConvertToMceResultINTEL: root::spv::Op = 5765;
2115         pub const Op_OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: root::spv::Op = 5766;
2116         pub const Op_OpSubgroupAvcImeGetDualReferenceStreaminINTEL: root::spv::Op = 5767;
2117         pub const Op_OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: root::spv::Op = 5768;
2118         pub const Op_OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: root::spv::Op = 5769;
2119         pub const Op_OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL:
2120             root::spv::Op = 5770;
2121         pub const Op_OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL:
2122             root::spv::Op = 5771;
2123         pub const Op_OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL:
2124             root::spv::Op = 5772;
2125         pub const Op_OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL:
2126             root::spv::Op = 5773;
2127         pub const Op_OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL:
2128             root::spv::Op = 5774;
2129         pub const Op_OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL:
2130             root::spv::Op = 5775;
2131         pub const Op_OpSubgroupAvcImeGetBorderReachedINTEL: root::spv::Op = 5776;
2132         pub const Op_OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: root::spv::Op = 5777;
2133         pub const Op_OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: root::spv::Op =
2134             5778;
2135         pub const Op_OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: root::spv::Op =
2136             5779;
2137         pub const Op_OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: root::spv::Op =
2138             5780;
2139         pub const Op_OpSubgroupAvcFmeInitializeINTEL: root::spv::Op = 5781;
2140         pub const Op_OpSubgroupAvcBmeInitializeINTEL: root::spv::Op = 5782;
2141         pub const Op_OpSubgroupAvcRefConvertToMcePayloadINTEL: root::spv::Op = 5783;
2142         pub const Op_OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: root::spv::Op = 5784;
2143         pub const Op_OpSubgroupAvcRefSetBilinearFilterEnableINTEL: root::spv::Op = 5785;
2144         pub const Op_OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: root::spv::Op = 5786;
2145         pub const Op_OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: root::spv::Op = 5787;
2146         pub const Op_OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: root::spv::Op = 5788;
2147         pub const Op_OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: root::spv::Op =
2148             5789;
2149         pub const Op_OpSubgroupAvcRefConvertToMceResultINTEL: root::spv::Op = 5790;
2150         pub const Op_OpSubgroupAvcSicInitializeINTEL: root::spv::Op = 5791;
2151         pub const Op_OpSubgroupAvcSicConfigureSkcINTEL: root::spv::Op = 5792;
2152         pub const Op_OpSubgroupAvcSicConfigureIpeLumaINTEL: root::spv::Op = 5793;
2153         pub const Op_OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: root::spv::Op = 5794;
2154         pub const Op_OpSubgroupAvcSicGetMotionVectorMaskINTEL: root::spv::Op = 5795;
2155         pub const Op_OpSubgroupAvcSicConvertToMcePayloadINTEL: root::spv::Op = 5796;
2156         pub const Op_OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: root::spv::Op = 5797;
2157         pub const Op_OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: root::spv::Op = 5798;
2158         pub const Op_OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: root::spv::Op = 5799;
2159         pub const Op_OpSubgroupAvcSicSetBilinearFilterEnableINTEL: root::spv::Op = 5800;
2160         pub const Op_OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: root::spv::Op = 5801;
2161         pub const Op_OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: root::spv::Op = 5802;
2162         pub const Op_OpSubgroupAvcSicEvaluateIpeINTEL: root::spv::Op = 5803;
2163         pub const Op_OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: root::spv::Op = 5804;
2164         pub const Op_OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: root::spv::Op = 5805;
2165         pub const Op_OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: root::spv::Op = 5806;
2166         pub const Op_OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: root::spv::Op =
2167             5807;
2168         pub const Op_OpSubgroupAvcSicConvertToMceResultINTEL: root::spv::Op = 5808;
2169         pub const Op_OpSubgroupAvcSicGetIpeLumaShapeINTEL: root::spv::Op = 5809;
2170         pub const Op_OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: root::spv::Op = 5810;
2171         pub const Op_OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: root::spv::Op = 5811;
2172         pub const Op_OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: root::spv::Op = 5812;
2173         pub const Op_OpSubgroupAvcSicGetIpeChromaModeINTEL: root::spv::Op = 5813;
2174         pub const Op_OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: root::spv::Op = 5814;
2175         pub const Op_OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: root::spv::Op = 5815;
2176         pub const Op_OpSubgroupAvcSicGetInterRawSadsINTEL: root::spv::Op = 5816;
2177         pub const Op_OpRayQueryGetRayTMinKHR: root::spv::Op = 6016;
2178         pub const Op_OpRayQueryGetRayFlagsKHR: root::spv::Op = 6017;
2179         pub const Op_OpRayQueryGetIntersectionTKHR: root::spv::Op = 6018;
2180         pub const Op_OpRayQueryGetIntersectionInstanceCustomIndexKHR: root::spv::Op = 6019;
2181         pub const Op_OpRayQueryGetIntersectionInstanceIdKHR: root::spv::Op = 6020;
2182         pub const Op_OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR:
2183             root::spv::Op = 6021;
2184         pub const Op_OpRayQueryGetIntersectionGeometryIndexKHR: root::spv::Op = 6022;
2185         pub const Op_OpRayQueryGetIntersectionPrimitiveIndexKHR: root::spv::Op = 6023;
2186         pub const Op_OpRayQueryGetIntersectionBarycentricsKHR: root::spv::Op = 6024;
2187         pub const Op_OpRayQueryGetIntersectionFrontFaceKHR: root::spv::Op = 6025;
2188         pub const Op_OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: root::spv::Op = 6026;
2189         pub const Op_OpRayQueryGetIntersectionObjectRayDirectionKHR: root::spv::Op = 6027;
2190         pub const Op_OpRayQueryGetIntersectionObjectRayOriginKHR: root::spv::Op = 6028;
2191         pub const Op_OpRayQueryGetWorldRayDirectionKHR: root::spv::Op = 6029;
2192         pub const Op_OpRayQueryGetWorldRayOriginKHR: root::spv::Op = 6030;
2193         pub const Op_OpRayQueryGetIntersectionObjectToWorldKHR: root::spv::Op = 6031;
2194         pub const Op_OpRayQueryGetIntersectionWorldToObjectKHR: root::spv::Op = 6032;
2195         pub const Op_OpMax: root::spv::Op = 2147483647;
2196         pub type Op = u32;
2197     }
2198     pub mod std {
2199         #[allow(unused_imports)]
2200         use self::super::super::root;
2201     }
2202     pub type __darwin_size_t = ::std::os::raw::c_ulong;
2203     pub mod spirv_cross {
2204         #[allow(unused_imports)]
2205         use self::super::super::root;
2206         #[repr(u32)]
2207         #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
2208         pub enum SPIRType_BaseType {
2209             Unknown = 0,
2210             Void = 1,
2211             Boolean = 2,
2212             SByte = 3,
2213             UByte = 4,
2214             Short = 5,
2215             UShort = 6,
2216             Int = 7,
2217             UInt = 8,
2218             Int64 = 9,
2219             UInt64 = 10,
2220             AtomicCounter = 11,
2221             Half = 12,
2222             Float = 13,
2223             Double = 14,
2224             Struct = 15,
2225             Image = 16,
2226             SampledImage = 17,
2227             Sampler = 18,
2228             AccelerationStructure = 19,
2229             RayQuery = 20,
2230             ControlPointArray = 21,
2231             Char = 22,
2232         }
2233         #[repr(u32)]
2234         #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
2235         pub enum MSLVertexFormat {
2236             MSL_VERTEX_FORMAT_OTHER = 0,
2237             MSL_VERTEX_FORMAT_UINT8 = 1,
2238             MSL_VERTEX_FORMAT_UINT16 = 2,
2239             MSL_VERTEX_FORMAT_INT_MAX = 2147483647,
2240         }
2241         #[repr(C)]
2242         #[derive(Debug, Copy, Clone)]
2243         pub struct MSLVertexAttr {
2244             pub location: u32,
2245             pub msl_buffer: u32,
2246             pub msl_offset: u32,
2247             pub msl_stride: u32,
2248             pub per_instance: bool,
2249             pub format: root::spirv_cross::MSLVertexFormat,
2250             pub builtin: root::spv::BuiltIn,
2251         }
2252         #[repr(C)]
2253         #[derive(Debug, Copy, Clone)]
2254         pub struct MSLResourceBinding {
2255             pub stage: root::spv::ExecutionModel,
2256             pub desc_set: u32,
2257             pub binding: u32,
2258             pub msl_buffer: u32,
2259             pub msl_texture: u32,
2260             pub msl_sampler: u32,
2261         }
2262         pub const MSLSamplerCoord_MSL_SAMPLER_COORD_NORMALIZED: root::spirv_cross::MSLSamplerCoord =
2263             0;
2264         pub const MSLSamplerCoord_MSL_SAMPLER_COORD_PIXEL: root::spirv_cross::MSLSamplerCoord = 1;
2265         pub const MSLSamplerCoord_MSL_SAMPLER_INT_MAX: root::spirv_cross::MSLSamplerCoord =
2266             2147483647;
2267         pub type MSLSamplerCoord = u32;
2268         pub const MSLSamplerFilter_MSL_SAMPLER_FILTER_NEAREST: root::spirv_cross::MSLSamplerFilter =
2269             0;
2270         pub const MSLSamplerFilter_MSL_SAMPLER_FILTER_LINEAR: root::spirv_cross::MSLSamplerFilter =
2271             1;
2272         pub const MSLSamplerFilter_MSL_SAMPLER_FILTER_INT_MAX: root::spirv_cross::MSLSamplerFilter =
2273             2147483647;
2274         pub type MSLSamplerFilter = u32;
2275         pub const MSLSamplerMipFilter_MSL_SAMPLER_MIP_FILTER_NONE:
2276             root::spirv_cross::MSLSamplerMipFilter = 0;
2277         pub const MSLSamplerMipFilter_MSL_SAMPLER_MIP_FILTER_NEAREST:
2278             root::spirv_cross::MSLSamplerMipFilter = 1;
2279         pub const MSLSamplerMipFilter_MSL_SAMPLER_MIP_FILTER_LINEAR:
2280             root::spirv_cross::MSLSamplerMipFilter = 2;
2281         pub const MSLSamplerMipFilter_MSL_SAMPLER_MIP_FILTER_INT_MAX:
2282             root::spirv_cross::MSLSamplerMipFilter = 2147483647;
2283         pub type MSLSamplerMipFilter = u32;
2284         pub const MSLSamplerAddress_MSL_SAMPLER_ADDRESS_CLAMP_TO_ZERO:
2285             root::spirv_cross::MSLSamplerAddress = 0;
2286         pub const MSLSamplerAddress_MSL_SAMPLER_ADDRESS_CLAMP_TO_EDGE:
2287             root::spirv_cross::MSLSamplerAddress = 1;
2288         pub const MSLSamplerAddress_MSL_SAMPLER_ADDRESS_CLAMP_TO_BORDER:
2289             root::spirv_cross::MSLSamplerAddress = 2;
2290         pub const MSLSamplerAddress_MSL_SAMPLER_ADDRESS_REPEAT:
2291             root::spirv_cross::MSLSamplerAddress = 3;
2292         pub const MSLSamplerAddress_MSL_SAMPLER_ADDRESS_MIRRORED_REPEAT:
2293             root::spirv_cross::MSLSamplerAddress = 4;
2294         pub const MSLSamplerAddress_MSL_SAMPLER_ADDRESS_INT_MAX:
2295             root::spirv_cross::MSLSamplerAddress = 2147483647;
2296         pub type MSLSamplerAddress = u32;
2297         pub const MSLSamplerCompareFunc_MSL_SAMPLER_COMPARE_FUNC_NEVER:
2298             root::spirv_cross::MSLSamplerCompareFunc = 0;
2299         pub const MSLSamplerCompareFunc_MSL_SAMPLER_COMPARE_FUNC_LESS:
2300             root::spirv_cross::MSLSamplerCompareFunc = 1;
2301         pub const MSLSamplerCompareFunc_MSL_SAMPLER_COMPARE_FUNC_LESS_EQUAL:
2302             root::spirv_cross::MSLSamplerCompareFunc = 2;
2303         pub const MSLSamplerCompareFunc_MSL_SAMPLER_COMPARE_FUNC_GREATER:
2304             root::spirv_cross::MSLSamplerCompareFunc = 3;
2305         pub const MSLSamplerCompareFunc_MSL_SAMPLER_COMPARE_FUNC_GREATER_EQUAL:
2306             root::spirv_cross::MSLSamplerCompareFunc = 4;
2307         pub const MSLSamplerCompareFunc_MSL_SAMPLER_COMPARE_FUNC_EQUAL:
2308             root::spirv_cross::MSLSamplerCompareFunc = 5;
2309         pub const MSLSamplerCompareFunc_MSL_SAMPLER_COMPARE_FUNC_NOT_EQUAL:
2310             root::spirv_cross::MSLSamplerCompareFunc = 6;
2311         pub const MSLSamplerCompareFunc_MSL_SAMPLER_COMPARE_FUNC_ALWAYS:
2312             root::spirv_cross::MSLSamplerCompareFunc = 7;
2313         pub const MSLSamplerCompareFunc_MSL_SAMPLER_COMPARE_FUNC_INT_MAX:
2314             root::spirv_cross::MSLSamplerCompareFunc = 2147483647;
2315         pub type MSLSamplerCompareFunc = u32;
2316         pub const MSLSamplerBorderColor_MSL_SAMPLER_BORDER_COLOR_TRANSPARENT_BLACK:
2317             root::spirv_cross::MSLSamplerBorderColor = 0;
2318         pub const MSLSamplerBorderColor_MSL_SAMPLER_BORDER_COLOR_OPAQUE_BLACK:
2319             root::spirv_cross::MSLSamplerBorderColor = 1;
2320         pub const MSLSamplerBorderColor_MSL_SAMPLER_BORDER_COLOR_OPAQUE_WHITE:
2321             root::spirv_cross::MSLSamplerBorderColor = 2;
2322         pub const MSLSamplerBorderColor_MSL_SAMPLER_BORDER_COLOR_INT_MAX:
2323             root::spirv_cross::MSLSamplerBorderColor = 2147483647;
2324         pub type MSLSamplerBorderColor = u32;
2325         pub const MSLFormatResolution_MSL_FORMAT_RESOLUTION_444:
2326             root::spirv_cross::MSLFormatResolution = 0;
2327         pub const MSLFormatResolution_MSL_FORMAT_RESOLUTION_422:
2328             root::spirv_cross::MSLFormatResolution = 1;
2329         pub const MSLFormatResolution_MSL_FORMAT_RESOLUTION_420:
2330             root::spirv_cross::MSLFormatResolution = 2;
2331         pub const MSLFormatResolution_MSL_FORMAT_RESOLUTION_INT_MAX:
2332             root::spirv_cross::MSLFormatResolution = 2147483647;
2333         pub type MSLFormatResolution = u32;
2334         pub const MSLChromaLocation_MSL_CHROMA_LOCATION_COSITED_EVEN:
2335             root::spirv_cross::MSLChromaLocation = 0;
2336         pub const MSLChromaLocation_MSL_CHROMA_LOCATION_MIDPOINT:
2337             root::spirv_cross::MSLChromaLocation = 1;
2338         pub const MSLChromaLocation_MSL_CHROMA_LOCATION_INT_MAX:
2339             root::spirv_cross::MSLChromaLocation = 2147483647;
2340         pub type MSLChromaLocation = u32;
2341         pub const MSLComponentSwizzle_MSL_COMPONENT_SWIZZLE_IDENTITY:
2342             root::spirv_cross::MSLComponentSwizzle = 0;
2343         pub const MSLComponentSwizzle_MSL_COMPONENT_SWIZZLE_ZERO:
2344             root::spirv_cross::MSLComponentSwizzle = 1;
2345         pub const MSLComponentSwizzle_MSL_COMPONENT_SWIZZLE_ONE:
2346             root::spirv_cross::MSLComponentSwizzle = 2;
2347         pub const MSLComponentSwizzle_MSL_COMPONENT_SWIZZLE_R:
2348             root::spirv_cross::MSLComponentSwizzle = 3;
2349         pub const MSLComponentSwizzle_MSL_COMPONENT_SWIZZLE_G:
2350             root::spirv_cross::MSLComponentSwizzle = 4;
2351         pub const MSLComponentSwizzle_MSL_COMPONENT_SWIZZLE_B:
2352             root::spirv_cross::MSLComponentSwizzle = 5;
2353         pub const MSLComponentSwizzle_MSL_COMPONENT_SWIZZLE_A:
2354             root::spirv_cross::MSLComponentSwizzle = 6;
2355         pub const MSLComponentSwizzle_MSL_COMPONENT_SWIZZLE_INT_MAX:
2356             root::spirv_cross::MSLComponentSwizzle = 2147483647;
2357         pub type MSLComponentSwizzle = u32;
2358         pub const MSLSamplerYCbCrModelConversion_MSL_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY:
2359             root::spirv_cross::MSLSamplerYCbCrModelConversion = 0;
2360         pub const MSLSamplerYCbCrModelConversion_MSL_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY : root :: spirv_cross :: MSLSamplerYCbCrModelConversion = 1 ;
2361         pub const MSLSamplerYCbCrModelConversion_MSL_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_BT_709:
2362             root::spirv_cross::MSLSamplerYCbCrModelConversion = 2;
2363         pub const MSLSamplerYCbCrModelConversion_MSL_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_BT_601:
2364             root::spirv_cross::MSLSamplerYCbCrModelConversion = 3;
2365         pub const MSLSamplerYCbCrModelConversion_MSL_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_BT_2020 : root :: spirv_cross :: MSLSamplerYCbCrModelConversion = 4 ;
2366         pub const MSLSamplerYCbCrModelConversion_MSL_SAMPLER_YCBCR_MODEL_CONVERSION_INT_MAX:
2367             root::spirv_cross::MSLSamplerYCbCrModelConversion = 2147483647;
2368         pub type MSLSamplerYCbCrModelConversion = u32;
2369         pub const MSLSamplerYCbCrRange_MSL_SAMPLER_YCBCR_RANGE_ITU_FULL:
2370             root::spirv_cross::MSLSamplerYCbCrRange = 0;
2371         pub const MSLSamplerYCbCrRange_MSL_SAMPLER_YCBCR_RANGE_ITU_NARROW:
2372             root::spirv_cross::MSLSamplerYCbCrRange = 1;
2373         pub const MSLSamplerYCbCrRange_MSL_SAMPLER_YCBCR_RANGE_INT_MAX:
2374             root::spirv_cross::MSLSamplerYCbCrRange = 2147483647;
2375         pub type MSLSamplerYCbCrRange = u32;
2376         #[repr(C)]
2377         #[derive(Debug, Copy, Clone)]
2378         pub struct MSLConstexprSampler {
2379             pub coord: root::spirv_cross::MSLSamplerCoord,
2380             pub min_filter: root::spirv_cross::MSLSamplerFilter,
2381             pub mag_filter: root::spirv_cross::MSLSamplerFilter,
2382             pub mip_filter: root::spirv_cross::MSLSamplerMipFilter,
2383             pub s_address: root::spirv_cross::MSLSamplerAddress,
2384             pub t_address: root::spirv_cross::MSLSamplerAddress,
2385             pub r_address: root::spirv_cross::MSLSamplerAddress,
2386             pub compare_func: root::spirv_cross::MSLSamplerCompareFunc,
2387             pub border_color: root::spirv_cross::MSLSamplerBorderColor,
2388             pub lod_clamp_min: f32,
2389             pub lod_clamp_max: f32,
2390             pub max_anisotropy: ::std::os::raw::c_int,
2391             pub planes: u32,
2392             pub resolution: root::spirv_cross::MSLFormatResolution,
2393             pub chroma_filter: root::spirv_cross::MSLSamplerFilter,
2394             pub x_chroma_offset: root::spirv_cross::MSLChromaLocation,
2395             pub y_chroma_offset: root::spirv_cross::MSLChromaLocation,
2396             pub swizzle: [root::spirv_cross::MSLComponentSwizzle; 4usize],
2397             pub ycbcr_model: root::spirv_cross::MSLSamplerYCbCrModelConversion,
2398             pub ycbcr_range: root::spirv_cross::MSLSamplerYCbCrRange,
2399             pub bpc: u32,
2400             pub compare_enable: bool,
2401             pub lod_clamp_enable: bool,
2402             pub anisotropy_enable: bool,
2403             pub ycbcr_conversion_enable: bool,
2404         }
2405     }
2406     pub type ScInternalCompilerBase = ::std::os::raw::c_void;
2407     pub type ScInternalCompilerHlsl = ::std::os::raw::c_void;
2408     pub type ScInternalCompilerMsl = ::std::os::raw::c_void;
2409     pub type ScInternalCompilerGlsl = ::std::os::raw::c_void;
2410     #[repr(u32)]
2411     #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
2412     pub enum ScInternalResult {
2413         Success = 0,
2414         Unhandled = 1,
2415         CompilationError = 2,
2416     }
2417     #[repr(C)]
2418     #[derive(Debug, Copy, Clone)]
2419     pub struct ScEntryPoint {
2420         pub name: *mut ::std::os::raw::c_char,
2421         pub execution_model: root::spv::ExecutionModel,
2422         pub work_group_size_x: u32,
2423         pub work_group_size_y: u32,
2424         pub work_group_size_z: u32,
2425     }
2426     #[repr(C)]
2427     #[derive(Debug, Copy, Clone)]
2428     pub struct ScBufferRange {
2429         pub index: ::std::os::raw::c_uint,
2430         pub offset: usize,
2431         pub range: usize,
2432     }
2433     #[repr(C)]
2434     #[derive(Debug, Copy, Clone)]
2435     pub struct ScCombinedImageSampler {
2436         pub combined_id: u32,
2437         pub image_id: u32,
2438         pub sampler_id: u32,
2439     }
2440     #[repr(C)]
2441     #[derive(Debug, Copy, Clone)]
2442     pub struct ScHlslRootConstant {
2443         pub start: u32,
2444         pub end: u32,
2445         pub binding: u32,
2446         pub space: u32,
2447     }
2448     #[repr(C)]
2449     #[derive(Debug, Copy, Clone)]
2450     pub struct ScHlslCompilerOptions {
2451         pub shader_model: i32,
2452         pub point_size_compat: bool,
2453         pub point_coord_compat: bool,
2454         pub vertex_transform_clip_space: bool,
2455         pub vertex_invert_y: bool,
2456         pub force_storage_buffer_as_uav: bool,
2457         pub nonwritable_uav_texture_as_srv: bool,
2458     }
2459     #[repr(C)]
2460     #[derive(Debug, Copy, Clone)]
2461     pub struct ScMslCompilerOptions {
2462         pub vertex_transform_clip_space: bool,
2463         pub vertex_invert_y: bool,
2464         pub platform: u8,
2465         pub version: u32,
2466         pub enable_point_size_builtin: bool,
2467         pub disable_rasterization: bool,
2468         pub swizzle_buffer_index: u32,
2469         pub indirect_params_buffer_index: u32,
2470         pub shader_output_buffer_index: u32,
2471         pub shader_patch_output_buffer_index: u32,
2472         pub shader_tess_factor_buffer_index: u32,
2473         pub buffer_size_buffer_index: u32,
2474         pub capture_output_to_buffer: bool,
2475         pub swizzle_texture_samples: bool,
2476         pub tess_domain_origin_lower_left: bool,
2477         pub argument_buffers: bool,
2478         pub pad_fragment_output_components: bool,
2479     }
2480     #[repr(C)]
2481     #[derive(Debug, Copy, Clone)]
2482     pub struct ScGlslCompilerOptions {
2483         pub vertex_transform_clip_space: bool,
2484         pub vertex_invert_y: bool,
2485         pub version: u32,
2486         pub es: bool,
2487         pub enable_420_pack_extension: bool,
2488     }
2489     #[repr(C)]
2490     #[derive(Debug, Copy, Clone)]
2491     pub struct ScResource {
2492         pub id: u32,
2493         pub type_id: u32,
2494         pub base_type_id: u32,
2495         pub name: *mut ::std::os::raw::c_char,
2496     }
2497     #[repr(C)]
2498     #[derive(Debug, Copy, Clone)]
2499     pub struct ScResourceArray {
2500         pub data: *mut root::ScResource,
2501         pub num: usize,
2502     }
2503     #[repr(C)]
2504     #[derive(Debug, Copy, Clone)]
2505     pub struct ScShaderResources {
2506         pub uniform_buffers: root::ScResourceArray,
2507         pub storage_buffers: root::ScResourceArray,
2508         pub stage_inputs: root::ScResourceArray,
2509         pub stage_outputs: root::ScResourceArray,
2510         pub subpass_inputs: root::ScResourceArray,
2511         pub storage_images: root::ScResourceArray,
2512         pub sampled_images: root::ScResourceArray,
2513         pub atomic_counters: root::ScResourceArray,
2514         pub push_constant_buffers: root::ScResourceArray,
2515         pub separate_images: root::ScResourceArray,
2516         pub separate_samplers: root::ScResourceArray,
2517     }
2518     #[repr(C)]
2519     #[derive(Debug, Copy, Clone)]
2520     pub struct ScSpecializationConstant {
2521         pub id: u32,
2522         pub constant_id: u32,
2523     }
2524     #[repr(C)]
2525     #[derive(Debug, Copy, Clone)]
2526     pub struct ScType {
2527         pub type_: root::spirv_cross::SPIRType_BaseType,
2528         pub vecsize: u32,
2529         pub columns: u32,
2530         pub member_types: *mut u32,
2531         pub member_types_size: usize,
2532         pub array: *mut u32,
2533         pub array_size: usize,
2534     }
2535     extern "C" {
sc_internal_get_latest_exception_message( message: *mut *const ::std::os::raw::c_char, ) -> root::ScInternalResult2536         pub fn sc_internal_get_latest_exception_message(
2537             message: *mut *const ::std::os::raw::c_char,
2538         ) -> root::ScInternalResult;
2539     }
2540     extern "C" {
sc_internal_compiler_hlsl_new( compiler: *mut *mut root::ScInternalCompilerHlsl, ir: *const u32, size: usize, ) -> root::ScInternalResult2541         pub fn sc_internal_compiler_hlsl_new(
2542             compiler: *mut *mut root::ScInternalCompilerHlsl,
2543             ir: *const u32,
2544             size: usize,
2545         ) -> root::ScInternalResult;
2546     }
2547     extern "C" {
sc_internal_compiler_hlsl_set_options( compiler: *const root::ScInternalCompilerHlsl, options: *const root::ScHlslCompilerOptions, ) -> root::ScInternalResult2548         pub fn sc_internal_compiler_hlsl_set_options(
2549             compiler: *const root::ScInternalCompilerHlsl,
2550             options: *const root::ScHlslCompilerOptions,
2551         ) -> root::ScInternalResult;
2552     }
2553     extern "C" {
sc_internal_compiler_hlsl_set_root_constant_layout( compiler: *const root::ScInternalCompilerHlsl, constants: *const root::ScHlslRootConstant, count: usize, ) -> root::ScInternalResult2554         pub fn sc_internal_compiler_hlsl_set_root_constant_layout(
2555             compiler: *const root::ScInternalCompilerHlsl,
2556             constants: *const root::ScHlslRootConstant,
2557             count: usize,
2558         ) -> root::ScInternalResult;
2559     }
2560     #[repr(C)]
2561     #[derive(Debug, Copy, Clone)]
2562     pub struct ScMslConstSamplerMapping {
2563         pub desc_set: u32,
2564         pub binding: u32,
2565         pub sampler: root::spirv_cross::MSLConstexprSampler,
2566     }
2567     extern "C" {
sc_internal_compiler_msl_new( compiler: *mut *mut root::ScInternalCompilerMsl, ir: *const u32, size: usize, ) -> root::ScInternalResult2568         pub fn sc_internal_compiler_msl_new(
2569             compiler: *mut *mut root::ScInternalCompilerMsl,
2570             ir: *const u32,
2571             size: usize,
2572         ) -> root::ScInternalResult;
2573     }
2574     extern "C" {
sc_internal_compiler_msl_set_options( compiler: *const root::ScInternalCompilerMsl, options: *const root::ScMslCompilerOptions, ) -> root::ScInternalResult2575         pub fn sc_internal_compiler_msl_set_options(
2576             compiler: *const root::ScInternalCompilerMsl,
2577             options: *const root::ScMslCompilerOptions,
2578         ) -> root::ScInternalResult;
2579     }
2580     extern "C" {
sc_internal_compiler_msl_get_is_rasterization_disabled( compiler: *const root::ScInternalCompilerMsl, is_rasterization_disabled: *mut bool, ) -> root::ScInternalResult2581         pub fn sc_internal_compiler_msl_get_is_rasterization_disabled(
2582             compiler: *const root::ScInternalCompilerMsl,
2583             is_rasterization_disabled: *mut bool,
2584         ) -> root::ScInternalResult;
2585     }
2586     extern "C" {
sc_internal_compiler_msl_compile( compiler: *const root::ScInternalCompilerBase, shader: *mut *const ::std::os::raw::c_char, p_vat_overrides: *const root::spirv_cross::MSLVertexAttr, vat_override_count: usize, p_res_overrides: *const root::spirv_cross::MSLResourceBinding, res_override_count: usize, p_const_samplers: *const root::ScMslConstSamplerMapping, const_sampler_count: usize, ) -> root::ScInternalResult2587         pub fn sc_internal_compiler_msl_compile(
2588             compiler: *const root::ScInternalCompilerBase,
2589             shader: *mut *const ::std::os::raw::c_char,
2590             p_vat_overrides: *const root::spirv_cross::MSLVertexAttr,
2591             vat_override_count: usize,
2592             p_res_overrides: *const root::spirv_cross::MSLResourceBinding,
2593             res_override_count: usize,
2594             p_const_samplers: *const root::ScMslConstSamplerMapping,
2595             const_sampler_count: usize,
2596         ) -> root::ScInternalResult;
2597     }
2598     extern "C" {
sc_internal_compiler_glsl_new( compiler: *mut *mut root::ScInternalCompilerGlsl, ir: *const u32, size: usize, ) -> root::ScInternalResult2599         pub fn sc_internal_compiler_glsl_new(
2600             compiler: *mut *mut root::ScInternalCompilerGlsl,
2601             ir: *const u32,
2602             size: usize,
2603         ) -> root::ScInternalResult;
2604     }
2605     extern "C" {
sc_internal_compiler_glsl_set_options( compiler: *const root::ScInternalCompilerGlsl, options: *const root::ScGlslCompilerOptions, ) -> root::ScInternalResult2606         pub fn sc_internal_compiler_glsl_set_options(
2607             compiler: *const root::ScInternalCompilerGlsl,
2608             options: *const root::ScGlslCompilerOptions,
2609         ) -> root::ScInternalResult;
2610     }
2611     extern "C" {
sc_internal_compiler_glsl_build_combined_image_samplers( compiler: *const root::ScInternalCompilerBase, ) -> root::ScInternalResult2612         pub fn sc_internal_compiler_glsl_build_combined_image_samplers(
2613             compiler: *const root::ScInternalCompilerBase,
2614         ) -> root::ScInternalResult;
2615     }
2616     extern "C" {
sc_internal_compiler_glsl_get_combined_image_samplers( compiler: *const root::ScInternalCompilerBase, samplers: *mut *const root::ScCombinedImageSampler, size: *mut usize, ) -> root::ScInternalResult2617         pub fn sc_internal_compiler_glsl_get_combined_image_samplers(
2618             compiler: *const root::ScInternalCompilerBase,
2619             samplers: *mut *const root::ScCombinedImageSampler,
2620             size: *mut usize,
2621         ) -> root::ScInternalResult;
2622     }
2623     extern "C" {
sc_internal_compiler_get_decoration( compiler: *const root::ScInternalCompilerBase, result: *mut u32, id: u32, decoration: root::spv::Decoration, ) -> root::ScInternalResult2624         pub fn sc_internal_compiler_get_decoration(
2625             compiler: *const root::ScInternalCompilerBase,
2626             result: *mut u32,
2627             id: u32,
2628             decoration: root::spv::Decoration,
2629         ) -> root::ScInternalResult;
2630     }
2631     extern "C" {
sc_internal_compiler_set_decoration( compiler: *const root::ScInternalCompilerBase, id: u32, decoration: root::spv::Decoration, argument: u32, ) -> root::ScInternalResult2632         pub fn sc_internal_compiler_set_decoration(
2633             compiler: *const root::ScInternalCompilerBase,
2634             id: u32,
2635             decoration: root::spv::Decoration,
2636             argument: u32,
2637         ) -> root::ScInternalResult;
2638     }
2639     extern "C" {
sc_internal_compiler_unset_decoration( compiler: *const root::ScInternalCompilerBase, id: u32, decoration: root::spv::Decoration, ) -> root::ScInternalResult2640         pub fn sc_internal_compiler_unset_decoration(
2641             compiler: *const root::ScInternalCompilerBase,
2642             id: u32,
2643             decoration: root::spv::Decoration,
2644         ) -> root::ScInternalResult;
2645     }
2646     extern "C" {
sc_internal_compiler_get_name( compiler: *const root::ScInternalCompilerBase, id: u32, name: *mut *const ::std::os::raw::c_char, ) -> root::ScInternalResult2647         pub fn sc_internal_compiler_get_name(
2648             compiler: *const root::ScInternalCompilerBase,
2649             id: u32,
2650             name: *mut *const ::std::os::raw::c_char,
2651         ) -> root::ScInternalResult;
2652     }
2653     extern "C" {
sc_internal_compiler_set_name( compiler: *const root::ScInternalCompilerBase, id: u32, name: *const ::std::os::raw::c_char, ) -> root::ScInternalResult2654         pub fn sc_internal_compiler_set_name(
2655             compiler: *const root::ScInternalCompilerBase,
2656             id: u32,
2657             name: *const ::std::os::raw::c_char,
2658         ) -> root::ScInternalResult;
2659     }
2660     extern "C" {
sc_internal_compiler_get_entry_points( compiler: *const root::ScInternalCompilerBase, entry_points: *mut *mut root::ScEntryPoint, size: *mut usize, ) -> root::ScInternalResult2661         pub fn sc_internal_compiler_get_entry_points(
2662             compiler: *const root::ScInternalCompilerBase,
2663             entry_points: *mut *mut root::ScEntryPoint,
2664             size: *mut usize,
2665         ) -> root::ScInternalResult;
2666     }
2667     extern "C" {
sc_internal_compiler_get_active_buffer_ranges( compiler: *const root::ScInternalCompilerBase, id: u32, active_buffer_ranges: *mut *mut root::ScBufferRange, size: *mut usize, ) -> root::ScInternalResult2668         pub fn sc_internal_compiler_get_active_buffer_ranges(
2669             compiler: *const root::ScInternalCompilerBase,
2670             id: u32,
2671             active_buffer_ranges: *mut *mut root::ScBufferRange,
2672             size: *mut usize,
2673         ) -> root::ScInternalResult;
2674     }
2675     extern "C" {
sc_internal_compiler_get_cleansed_entry_point_name( compiler: *const root::ScInternalCompilerBase, original_entry_point_name: *const ::std::os::raw::c_char, execution_model: root::spv::ExecutionModel, compiled_entry_point_name: *mut *const ::std::os::raw::c_char, ) -> root::ScInternalResult2676         pub fn sc_internal_compiler_get_cleansed_entry_point_name(
2677             compiler: *const root::ScInternalCompilerBase,
2678             original_entry_point_name: *const ::std::os::raw::c_char,
2679             execution_model: root::spv::ExecutionModel,
2680             compiled_entry_point_name: *mut *const ::std::os::raw::c_char,
2681         ) -> root::ScInternalResult;
2682     }
2683     extern "C" {
sc_internal_compiler_get_shader_resources( compiler: *const root::ScInternalCompilerBase, shader_resources: *mut root::ScShaderResources, ) -> root::ScInternalResult2684         pub fn sc_internal_compiler_get_shader_resources(
2685             compiler: *const root::ScInternalCompilerBase,
2686             shader_resources: *mut root::ScShaderResources,
2687         ) -> root::ScInternalResult;
2688     }
2689     extern "C" {
sc_internal_compiler_get_specialization_constants( compiler: *const root::ScInternalCompilerBase, constants: *mut *mut root::ScSpecializationConstant, size: *mut usize, ) -> root::ScInternalResult2690         pub fn sc_internal_compiler_get_specialization_constants(
2691             compiler: *const root::ScInternalCompilerBase,
2692             constants: *mut *mut root::ScSpecializationConstant,
2693             size: *mut usize,
2694         ) -> root::ScInternalResult;
2695     }
2696     extern "C" {
sc_internal_compiler_set_scalar_constant( compiler: *const root::ScInternalCompilerBase, id: u32, constant_high_bits: u32, constant_low_bits: u32, ) -> root::ScInternalResult2697         pub fn sc_internal_compiler_set_scalar_constant(
2698             compiler: *const root::ScInternalCompilerBase,
2699             id: u32,
2700             constant_high_bits: u32,
2701             constant_low_bits: u32,
2702         ) -> root::ScInternalResult;
2703     }
2704     extern "C" {
sc_internal_compiler_get_type( compiler: *const root::ScInternalCompilerBase, id: u32, spirv_type: *mut *const root::ScType, ) -> root::ScInternalResult2705         pub fn sc_internal_compiler_get_type(
2706             compiler: *const root::ScInternalCompilerBase,
2707             id: u32,
2708             spirv_type: *mut *const root::ScType,
2709         ) -> root::ScInternalResult;
2710     }
2711     extern "C" {
sc_internal_compiler_get_member_name( compiler: *const root::ScInternalCompilerBase, id: u32, index: u32, name: *mut *const ::std::os::raw::c_char, ) -> root::ScInternalResult2712         pub fn sc_internal_compiler_get_member_name(
2713             compiler: *const root::ScInternalCompilerBase,
2714             id: u32,
2715             index: u32,
2716             name: *mut *const ::std::os::raw::c_char,
2717         ) -> root::ScInternalResult;
2718     }
2719     extern "C" {
sc_internal_compiler_get_member_decoration( compiler: *const root::ScInternalCompilerBase, id: u32, index: u32, decoration: root::spv::Decoration, result: *mut u32, ) -> root::ScInternalResult2720         pub fn sc_internal_compiler_get_member_decoration(
2721             compiler: *const root::ScInternalCompilerBase,
2722             id: u32,
2723             index: u32,
2724             decoration: root::spv::Decoration,
2725             result: *mut u32,
2726         ) -> root::ScInternalResult;
2727     }
2728     extern "C" {
sc_internal_compiler_set_member_decoration( compiler: *const root::ScInternalCompilerBase, id: u32, index: u32, decoration: root::spv::Decoration, argument: u32, ) -> root::ScInternalResult2729         pub fn sc_internal_compiler_set_member_decoration(
2730             compiler: *const root::ScInternalCompilerBase,
2731             id: u32,
2732             index: u32,
2733             decoration: root::spv::Decoration,
2734             argument: u32,
2735         ) -> root::ScInternalResult;
2736     }
2737     extern "C" {
sc_internal_compiler_get_declared_struct_size( compiler: *const root::ScInternalCompilerBase, id: u32, result: *mut u32, ) -> root::ScInternalResult2738         pub fn sc_internal_compiler_get_declared_struct_size(
2739             compiler: *const root::ScInternalCompilerBase,
2740             id: u32,
2741             result: *mut u32,
2742         ) -> root::ScInternalResult;
2743     }
2744     extern "C" {
sc_internal_compiler_get_declared_struct_member_size( compiler: *const root::ScInternalCompilerBase, id: u32, index: u32, result: *mut u32, ) -> root::ScInternalResult2745         pub fn sc_internal_compiler_get_declared_struct_member_size(
2746             compiler: *const root::ScInternalCompilerBase,
2747             id: u32,
2748             index: u32,
2749             result: *mut u32,
2750         ) -> root::ScInternalResult;
2751     }
2752     extern "C" {
sc_internal_compiler_rename_interface_variable( compiler: *const root::ScInternalCompilerBase, resources: *const root::ScResource, resources_size: usize, location: u32, name: *const ::std::os::raw::c_char, ) -> root::ScInternalResult2753         pub fn sc_internal_compiler_rename_interface_variable(
2754             compiler: *const root::ScInternalCompilerBase,
2755             resources: *const root::ScResource,
2756             resources_size: usize,
2757             location: u32,
2758             name: *const ::std::os::raw::c_char,
2759         ) -> root::ScInternalResult;
2760     }
2761     extern "C" {
sc_internal_compiler_get_work_group_size_specialization_constants( compiler: *const root::ScInternalCompilerBase, constants: *mut *mut root::ScSpecializationConstant, ) -> root::ScInternalResult2762         pub fn sc_internal_compiler_get_work_group_size_specialization_constants(
2763             compiler: *const root::ScInternalCompilerBase,
2764             constants: *mut *mut root::ScSpecializationConstant,
2765         ) -> root::ScInternalResult;
2766     }
2767     extern "C" {
sc_internal_compiler_compile( compiler: *const root::ScInternalCompilerBase, shader: *mut *const ::std::os::raw::c_char, ) -> root::ScInternalResult2768         pub fn sc_internal_compiler_compile(
2769             compiler: *const root::ScInternalCompilerBase,
2770             shader: *mut *const ::std::os::raw::c_char,
2771         ) -> root::ScInternalResult;
2772     }
2773     extern "C" {
sc_internal_compiler_delete( compiler: *mut root::ScInternalCompilerBase, ) -> root::ScInternalResult2774         pub fn sc_internal_compiler_delete(
2775             compiler: *mut root::ScInternalCompilerBase,
2776         ) -> root::ScInternalResult;
2777     }
2778     extern "C" {
sc_internal_free_pointer( pointer: *mut ::std::os::raw::c_void, ) -> root::ScInternalResult2779         pub fn sc_internal_free_pointer(
2780             pointer: *mut ::std::os::raw::c_void,
2781         ) -> root::ScInternalResult;
2782     }
2783 }
2784