Skip to main content

spirv_cross_sys/
bindings.rs

1/* automatically generated by rust-bindgen 0.72.1 */
2
3#[repr(transparent)]
4#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5pub struct SpvId(pub crate::ctypes::c_uint);
6impl SpvExecutionModel {
7    pub const Vertex: SpvExecutionModel = SpvExecutionModel(0);
8    pub const TessellationControl: SpvExecutionModel = SpvExecutionModel(1);
9    pub const TessellationEvaluation: SpvExecutionModel = SpvExecutionModel(2);
10    pub const Geometry: SpvExecutionModel = SpvExecutionModel(3);
11    pub const Fragment: SpvExecutionModel = SpvExecutionModel(4);
12    pub const GLCompute: SpvExecutionModel = SpvExecutionModel(5);
13    pub const Kernel: SpvExecutionModel = SpvExecutionModel(6);
14    pub const TaskNV: SpvExecutionModel = SpvExecutionModel(5267);
15    pub const MeshNV: SpvExecutionModel = SpvExecutionModel(5268);
16    pub const RayGenerationKHR: SpvExecutionModel = SpvExecutionModel(5313);
17    pub const RayGenerationNV: SpvExecutionModel = SpvExecutionModel(5313);
18    pub const IntersectionKHR: SpvExecutionModel = SpvExecutionModel(5314);
19    pub const IntersectionNV: SpvExecutionModel = SpvExecutionModel(5314);
20    pub const AnyHitKHR: SpvExecutionModel = SpvExecutionModel(5315);
21    pub const AnyHitNV: SpvExecutionModel = SpvExecutionModel(5315);
22    pub const ClosestHitKHR: SpvExecutionModel = SpvExecutionModel(5316);
23    pub const ClosestHitNV: SpvExecutionModel = SpvExecutionModel(5316);
24    pub const MissKHR: SpvExecutionModel = SpvExecutionModel(5317);
25    pub const MissNV: SpvExecutionModel = SpvExecutionModel(5317);
26    pub const CallableKHR: SpvExecutionModel = SpvExecutionModel(5318);
27    pub const CallableNV: SpvExecutionModel = SpvExecutionModel(5318);
28    pub const TaskEXT: SpvExecutionModel = SpvExecutionModel(5364);
29    pub const MeshEXT: SpvExecutionModel = SpvExecutionModel(5365);
30    pub const Max: SpvExecutionModel = SpvExecutionModel(2147483647);
31}
32#[repr(transparent)]
33#[derive(
34    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
35)]
36pub struct SpvExecutionModel(pub u32);
37impl SpvExecutionMode {
38    pub const Invocations: SpvExecutionMode = SpvExecutionMode(0);
39    pub const SpacingEqual: SpvExecutionMode = SpvExecutionMode(1);
40    pub const SpacingFractionalEven: SpvExecutionMode = SpvExecutionMode(2);
41    pub const SpacingFractionalOdd: SpvExecutionMode = SpvExecutionMode(3);
42    pub const VertexOrderCw: SpvExecutionMode = SpvExecutionMode(4);
43    pub const VertexOrderCcw: SpvExecutionMode = SpvExecutionMode(5);
44    pub const PixelCenterInteger: SpvExecutionMode = SpvExecutionMode(6);
45    pub const OriginUpperLeft: SpvExecutionMode = SpvExecutionMode(7);
46    pub const OriginLowerLeft: SpvExecutionMode = SpvExecutionMode(8);
47    pub const EarlyFragmentTests: SpvExecutionMode = SpvExecutionMode(9);
48    pub const PointMode: SpvExecutionMode = SpvExecutionMode(10);
49    pub const Xfb: SpvExecutionMode = SpvExecutionMode(11);
50    pub const DepthReplacing: SpvExecutionMode = SpvExecutionMode(12);
51    pub const DepthGreater: SpvExecutionMode = SpvExecutionMode(14);
52    pub const DepthLess: SpvExecutionMode = SpvExecutionMode(15);
53    pub const DepthUnchanged: SpvExecutionMode = SpvExecutionMode(16);
54    pub const LocalSize: SpvExecutionMode = SpvExecutionMode(17);
55    pub const LocalSizeHint: SpvExecutionMode = SpvExecutionMode(18);
56    pub const InputPoints: SpvExecutionMode = SpvExecutionMode(19);
57    pub const InputLines: SpvExecutionMode = SpvExecutionMode(20);
58    pub const InputLinesAdjacency: SpvExecutionMode = SpvExecutionMode(21);
59    pub const Triangles: SpvExecutionMode = SpvExecutionMode(22);
60    pub const InputTrianglesAdjacency: SpvExecutionMode = SpvExecutionMode(23);
61    pub const Quads: SpvExecutionMode = SpvExecutionMode(24);
62    pub const Isolines: SpvExecutionMode = SpvExecutionMode(25);
63    pub const OutputVertices: SpvExecutionMode = SpvExecutionMode(26);
64    pub const OutputPoints: SpvExecutionMode = SpvExecutionMode(27);
65    pub const OutputLineStrip: SpvExecutionMode = SpvExecutionMode(28);
66    pub const OutputTriangleStrip: SpvExecutionMode = SpvExecutionMode(29);
67    pub const VecTypeHint: SpvExecutionMode = SpvExecutionMode(30);
68    pub const ContractionOff: SpvExecutionMode = SpvExecutionMode(31);
69    pub const Initializer: SpvExecutionMode = SpvExecutionMode(33);
70    pub const Finalizer: SpvExecutionMode = SpvExecutionMode(34);
71    pub const SubgroupSize: SpvExecutionMode = SpvExecutionMode(35);
72    pub const SubgroupsPerWorkgroup: SpvExecutionMode = SpvExecutionMode(36);
73    pub const SubgroupsPerWorkgroupId: SpvExecutionMode = SpvExecutionMode(37);
74    pub const LocalSizeId: SpvExecutionMode = SpvExecutionMode(38);
75    pub const LocalSizeHintId: SpvExecutionMode = SpvExecutionMode(39);
76    pub const NonCoherentColorAttachmentReadEXT: SpvExecutionMode = SpvExecutionMode(4169);
77    pub const NonCoherentDepthAttachmentReadEXT: SpvExecutionMode = SpvExecutionMode(4170);
78    pub const NonCoherentStencilAttachmentReadEXT: SpvExecutionMode = SpvExecutionMode(4171);
79    pub const SubgroupUniformControlFlowKHR: SpvExecutionMode = SpvExecutionMode(4421);
80    pub const PostDepthCoverage: SpvExecutionMode = SpvExecutionMode(4446);
81    pub const DenormPreserve: SpvExecutionMode = SpvExecutionMode(4459);
82    pub const DenormFlushToZero: SpvExecutionMode = SpvExecutionMode(4460);
83    pub const SignedZeroInfNanPreserve: SpvExecutionMode = SpvExecutionMode(4461);
84    pub const RoundingModeRTE: SpvExecutionMode = SpvExecutionMode(4462);
85    pub const RoundingModeRTZ: SpvExecutionMode = SpvExecutionMode(4463);
86    pub const NonCoherentTileAttachmentReadQCOM: SpvExecutionMode = SpvExecutionMode(4489);
87    pub const TileShadingRateQCOM: SpvExecutionMode = SpvExecutionMode(4490);
88    pub const EarlyAndLateFragmentTestsAMD: SpvExecutionMode = SpvExecutionMode(5017);
89    pub const StencilRefReplacingEXT: SpvExecutionMode = SpvExecutionMode(5027);
90    pub const CoalescingAMDX: SpvExecutionMode = SpvExecutionMode(5069);
91    pub const IsApiEntryAMDX: SpvExecutionMode = SpvExecutionMode(5070);
92    pub const MaxNodeRecursionAMDX: SpvExecutionMode = SpvExecutionMode(5071);
93    pub const StaticNumWorkgroupsAMDX: SpvExecutionMode = SpvExecutionMode(5072);
94    pub const ShaderIndexAMDX: SpvExecutionMode = SpvExecutionMode(5073);
95    pub const MaxNumWorkgroupsAMDX: SpvExecutionMode = SpvExecutionMode(5077);
96    pub const StencilRefUnchangedFrontAMD: SpvExecutionMode = SpvExecutionMode(5079);
97    pub const StencilRefGreaterFrontAMD: SpvExecutionMode = SpvExecutionMode(5080);
98    pub const StencilRefLessFrontAMD: SpvExecutionMode = SpvExecutionMode(5081);
99    pub const StencilRefUnchangedBackAMD: SpvExecutionMode = SpvExecutionMode(5082);
100    pub const StencilRefGreaterBackAMD: SpvExecutionMode = SpvExecutionMode(5083);
101    pub const StencilRefLessBackAMD: SpvExecutionMode = SpvExecutionMode(5084);
102    pub const QuadDerivativesKHR: SpvExecutionMode = SpvExecutionMode(5088);
103    pub const RequireFullQuadsKHR: SpvExecutionMode = SpvExecutionMode(5089);
104    pub const SharesInputWithAMDX: SpvExecutionMode = SpvExecutionMode(5102);
105    pub const ArithmeticPoisonKHR: SpvExecutionMode = SpvExecutionMode(5157);
106    pub const OutputLinesEXT: SpvExecutionMode = SpvExecutionMode(5269);
107    pub const OutputLinesNV: SpvExecutionMode = SpvExecutionMode(5269);
108    pub const OutputPrimitivesEXT: SpvExecutionMode = SpvExecutionMode(5270);
109    pub const OutputPrimitivesNV: SpvExecutionMode = SpvExecutionMode(5270);
110    pub const DerivativeGroupQuadsKHR: SpvExecutionMode = SpvExecutionMode(5289);
111    pub const DerivativeGroupQuadsNV: SpvExecutionMode = SpvExecutionMode(5289);
112    pub const DerivativeGroupLinearKHR: SpvExecutionMode = SpvExecutionMode(5290);
113    pub const DerivativeGroupLinearNV: SpvExecutionMode = SpvExecutionMode(5290);
114    pub const OutputTrianglesEXT: SpvExecutionMode = SpvExecutionMode(5298);
115    pub const OutputTrianglesNV: SpvExecutionMode = SpvExecutionMode(5298);
116    pub const PixelInterlockOrderedEXT: SpvExecutionMode = SpvExecutionMode(5366);
117    pub const PixelInterlockUnorderedEXT: SpvExecutionMode = SpvExecutionMode(5367);
118    pub const SampleInterlockOrderedEXT: SpvExecutionMode = SpvExecutionMode(5368);
119    pub const SampleInterlockUnorderedEXT: SpvExecutionMode = SpvExecutionMode(5369);
120    pub const ShadingRateInterlockOrderedEXT: SpvExecutionMode = SpvExecutionMode(5370);
121    pub const ShadingRateInterlockUnorderedEXT: SpvExecutionMode = SpvExecutionMode(5371);
122    pub const Shader64BitIndexingEXT: SpvExecutionMode = SpvExecutionMode(5427);
123    pub const SharedLocalMemorySizeINTEL: SpvExecutionMode = SpvExecutionMode(5618);
124    pub const RoundingModeRTPINTEL: SpvExecutionMode = SpvExecutionMode(5620);
125    pub const RoundingModeRTNINTEL: SpvExecutionMode = SpvExecutionMode(5621);
126    pub const FloatingPointModeALTINTEL: SpvExecutionMode = SpvExecutionMode(5622);
127    pub const FloatingPointModeIEEEINTEL: SpvExecutionMode = SpvExecutionMode(5623);
128    pub const MaxWorkgroupSizeINTEL: SpvExecutionMode = SpvExecutionMode(5893);
129    pub const MaxWorkDimINTEL: SpvExecutionMode = SpvExecutionMode(5894);
130    pub const NoGlobalOffsetINTEL: SpvExecutionMode = SpvExecutionMode(5895);
131    pub const NumSIMDWorkitemsINTEL: SpvExecutionMode = SpvExecutionMode(5896);
132    pub const SchedulerTargetFmaxMhzINTEL: SpvExecutionMode = SpvExecutionMode(5903);
133    pub const MaximallyReconvergesKHR: SpvExecutionMode = SpvExecutionMode(6023);
134    pub const FPFastMathDefault: SpvExecutionMode = SpvExecutionMode(6028);
135    pub const StreamingInterfaceINTEL: SpvExecutionMode = SpvExecutionMode(6154);
136    pub const RegisterMapInterfaceINTEL: SpvExecutionMode = SpvExecutionMode(6160);
137    pub const NamedBarrierCountINTEL: SpvExecutionMode = SpvExecutionMode(6417);
138    pub const MaximumRegistersINTEL: SpvExecutionMode = SpvExecutionMode(6461);
139    pub const MaximumRegistersIdINTEL: SpvExecutionMode = SpvExecutionMode(6462);
140    pub const NamedMaximumRegistersINTEL: SpvExecutionMode = SpvExecutionMode(6463);
141    pub const Max: SpvExecutionMode = SpvExecutionMode(2147483647);
142}
143#[repr(transparent)]
144#[derive(
145    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
146)]
147pub struct SpvExecutionMode(pub u32);
148impl SpvStorageClass {
149    pub const UniformConstant: SpvStorageClass = SpvStorageClass(0);
150    pub const Input: SpvStorageClass = SpvStorageClass(1);
151    pub const Uniform: SpvStorageClass = SpvStorageClass(2);
152    pub const Output: SpvStorageClass = SpvStorageClass(3);
153    pub const Workgroup: SpvStorageClass = SpvStorageClass(4);
154    pub const CrossWorkgroup: SpvStorageClass = SpvStorageClass(5);
155    pub const Private: SpvStorageClass = SpvStorageClass(6);
156    pub const Function: SpvStorageClass = SpvStorageClass(7);
157    pub const Generic: SpvStorageClass = SpvStorageClass(8);
158    pub const PushConstant: SpvStorageClass = SpvStorageClass(9);
159    pub const AtomicCounter: SpvStorageClass = SpvStorageClass(10);
160    pub const Image: SpvStorageClass = SpvStorageClass(11);
161    pub const StorageBuffer: SpvStorageClass = SpvStorageClass(12);
162    pub const TileImageEXT: SpvStorageClass = SpvStorageClass(4172);
163    pub const TileAttachmentQCOM: SpvStorageClass = SpvStorageClass(4491);
164    pub const NodePayloadAMDX: SpvStorageClass = SpvStorageClass(5068);
165    pub const CallableDataKHR: SpvStorageClass = SpvStorageClass(5328);
166    pub const CallableDataNV: SpvStorageClass = SpvStorageClass(5328);
167    pub const IncomingCallableDataKHR: SpvStorageClass = SpvStorageClass(5329);
168    pub const IncomingCallableDataNV: SpvStorageClass = SpvStorageClass(5329);
169    pub const RayPayloadKHR: SpvStorageClass = SpvStorageClass(5338);
170    pub const RayPayloadNV: SpvStorageClass = SpvStorageClass(5338);
171    pub const HitAttributeKHR: SpvStorageClass = SpvStorageClass(5339);
172    pub const HitAttributeNV: SpvStorageClass = SpvStorageClass(5339);
173    pub const IncomingRayPayloadKHR: SpvStorageClass = SpvStorageClass(5342);
174    pub const IncomingRayPayloadNV: SpvStorageClass = SpvStorageClass(5342);
175    pub const ShaderRecordBufferKHR: SpvStorageClass = SpvStorageClass(5343);
176    pub const ShaderRecordBufferNV: SpvStorageClass = SpvStorageClass(5343);
177    pub const PhysicalStorageBuffer: SpvStorageClass = SpvStorageClass(5349);
178    pub const PhysicalStorageBufferEXT: SpvStorageClass = SpvStorageClass(5349);
179    pub const HitObjectAttributeNV: SpvStorageClass = SpvStorageClass(5385);
180    pub const TaskPayloadWorkgroupEXT: SpvStorageClass = SpvStorageClass(5402);
181    pub const HitObjectAttributeEXT: SpvStorageClass = SpvStorageClass(5411);
182    pub const CodeSectionINTEL: SpvStorageClass = SpvStorageClass(5605);
183    pub const DeviceOnlyALTERA: SpvStorageClass = SpvStorageClass(5936);
184    pub const DeviceOnlyINTEL: SpvStorageClass = SpvStorageClass(5936);
185    pub const HostOnlyALTERA: SpvStorageClass = SpvStorageClass(5937);
186    pub const HostOnlyINTEL: SpvStorageClass = SpvStorageClass(5937);
187    pub const Max: SpvStorageClass = SpvStorageClass(2147483647);
188}
189#[repr(transparent)]
190#[derive(
191    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
192)]
193pub struct SpvStorageClass(pub u32);
194impl SpvDim {
195    pub const Dim1D: SpvDim = SpvDim(0);
196    pub const Dim2D: SpvDim = SpvDim(1);
197    pub const Dim3D: SpvDim = SpvDim(2);
198    pub const DimCube: SpvDim = SpvDim(3);
199    pub const DimRect: SpvDim = SpvDim(4);
200    pub const DimBuffer: SpvDim = SpvDim(5);
201    pub const DimSubpassData: SpvDim = SpvDim(6);
202    pub const DimTileImageDataEXT: SpvDim = SpvDim(4173);
203    pub const DimMax: SpvDim = SpvDim(2147483647);
204}
205#[repr(transparent)]
206#[derive(
207    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
208)]
209pub struct SpvDim(pub u32);
210impl SpvImageFormat {
211    pub const Unknown: SpvImageFormat = SpvImageFormat(0);
212    pub const Rgba32f: SpvImageFormat = SpvImageFormat(1);
213    pub const Rgba16f: SpvImageFormat = SpvImageFormat(2);
214    pub const R32f: SpvImageFormat = SpvImageFormat(3);
215    pub const Rgba8: SpvImageFormat = SpvImageFormat(4);
216    pub const Rgba8Snorm: SpvImageFormat = SpvImageFormat(5);
217    pub const Rg32f: SpvImageFormat = SpvImageFormat(6);
218    pub const Rg16f: SpvImageFormat = SpvImageFormat(7);
219    pub const R11fG11fB10f: SpvImageFormat = SpvImageFormat(8);
220    pub const R16f: SpvImageFormat = SpvImageFormat(9);
221    pub const Rgba16: SpvImageFormat = SpvImageFormat(10);
222    pub const Rgb10A2: SpvImageFormat = SpvImageFormat(11);
223    pub const Rg16: SpvImageFormat = SpvImageFormat(12);
224    pub const Rg8: SpvImageFormat = SpvImageFormat(13);
225    pub const R16: SpvImageFormat = SpvImageFormat(14);
226    pub const R8: SpvImageFormat = SpvImageFormat(15);
227    pub const Rgba16Snorm: SpvImageFormat = SpvImageFormat(16);
228    pub const Rg16Snorm: SpvImageFormat = SpvImageFormat(17);
229    pub const Rg8Snorm: SpvImageFormat = SpvImageFormat(18);
230    pub const R16Snorm: SpvImageFormat = SpvImageFormat(19);
231    pub const R8Snorm: SpvImageFormat = SpvImageFormat(20);
232    pub const Rgba32i: SpvImageFormat = SpvImageFormat(21);
233    pub const Rgba16i: SpvImageFormat = SpvImageFormat(22);
234    pub const Rgba8i: SpvImageFormat = SpvImageFormat(23);
235    pub const R32i: SpvImageFormat = SpvImageFormat(24);
236    pub const Rg32i: SpvImageFormat = SpvImageFormat(25);
237    pub const Rg16i: SpvImageFormat = SpvImageFormat(26);
238    pub const Rg8i: SpvImageFormat = SpvImageFormat(27);
239    pub const R16i: SpvImageFormat = SpvImageFormat(28);
240    pub const R8i: SpvImageFormat = SpvImageFormat(29);
241    pub const Rgba32ui: SpvImageFormat = SpvImageFormat(30);
242    pub const Rgba16ui: SpvImageFormat = SpvImageFormat(31);
243    pub const Rgba8ui: SpvImageFormat = SpvImageFormat(32);
244    pub const R32ui: SpvImageFormat = SpvImageFormat(33);
245    pub const Rgb10a2ui: SpvImageFormat = SpvImageFormat(34);
246    pub const Rg32ui: SpvImageFormat = SpvImageFormat(35);
247    pub const Rg16ui: SpvImageFormat = SpvImageFormat(36);
248    pub const Rg8ui: SpvImageFormat = SpvImageFormat(37);
249    pub const R16ui: SpvImageFormat = SpvImageFormat(38);
250    pub const R8ui: SpvImageFormat = SpvImageFormat(39);
251    pub const R64ui: SpvImageFormat = SpvImageFormat(40);
252    pub const R64i: SpvImageFormat = SpvImageFormat(41);
253    pub const Max: SpvImageFormat = SpvImageFormat(2147483647);
254}
255#[repr(transparent)]
256#[derive(
257    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
258)]
259pub struct SpvImageFormat(pub u32);
260impl SpvFPRoundingMode {
261    pub const RTE: SpvFPRoundingMode = SpvFPRoundingMode(0);
262    pub const RTZ: SpvFPRoundingMode = SpvFPRoundingMode(1);
263    pub const RTP: SpvFPRoundingMode = SpvFPRoundingMode(2);
264    pub const RTN: SpvFPRoundingMode = SpvFPRoundingMode(3);
265    pub const Max: SpvFPRoundingMode = SpvFPRoundingMode(2147483647);
266}
267#[repr(transparent)]
268#[derive(
269    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
270)]
271pub struct SpvFPRoundingMode(pub u32);
272pub const SpvAccessQualifier_ReadOnly: SpvAccessQualifier = 0;
273pub const SpvAccessQualifier_WriteOnly: SpvAccessQualifier = 1;
274pub const SpvAccessQualifier_ReadWrite: SpvAccessQualifier = 2;
275pub const SpvAccessQualifier_Max: SpvAccessQualifier = 2147483647;
276pub type SpvAccessQualifier = u32;
277impl SpvDecoration {
278    pub const RelaxedPrecision: SpvDecoration = SpvDecoration(0);
279    pub const SpecId: SpvDecoration = SpvDecoration(1);
280    pub const Block: SpvDecoration = SpvDecoration(2);
281    pub const BufferBlock: SpvDecoration = SpvDecoration(3);
282    pub const RowMajor: SpvDecoration = SpvDecoration(4);
283    pub const ColMajor: SpvDecoration = SpvDecoration(5);
284    pub const ArrayStride: SpvDecoration = SpvDecoration(6);
285    pub const MatrixStride: SpvDecoration = SpvDecoration(7);
286    pub const GLSLShared: SpvDecoration = SpvDecoration(8);
287    pub const GLSLPacked: SpvDecoration = SpvDecoration(9);
288    pub const CPacked: SpvDecoration = SpvDecoration(10);
289    pub const BuiltIn: SpvDecoration = SpvDecoration(11);
290    pub const NoPerspective: SpvDecoration = SpvDecoration(13);
291    pub const Flat: SpvDecoration = SpvDecoration(14);
292    pub const Patch: SpvDecoration = SpvDecoration(15);
293    pub const Centroid: SpvDecoration = SpvDecoration(16);
294    pub const Sample: SpvDecoration = SpvDecoration(17);
295    pub const Invariant: SpvDecoration = SpvDecoration(18);
296    pub const Restrict: SpvDecoration = SpvDecoration(19);
297    pub const Aliased: SpvDecoration = SpvDecoration(20);
298    pub const Volatile: SpvDecoration = SpvDecoration(21);
299    pub const Constant: SpvDecoration = SpvDecoration(22);
300    pub const Coherent: SpvDecoration = SpvDecoration(23);
301    pub const NonWritable: SpvDecoration = SpvDecoration(24);
302    pub const NonReadable: SpvDecoration = SpvDecoration(25);
303    pub const Uniform: SpvDecoration = SpvDecoration(26);
304    pub const UniformId: SpvDecoration = SpvDecoration(27);
305    pub const SaturatedConversion: SpvDecoration = SpvDecoration(28);
306    pub const Stream: SpvDecoration = SpvDecoration(29);
307    pub const Location: SpvDecoration = SpvDecoration(30);
308    pub const Component: SpvDecoration = SpvDecoration(31);
309    pub const Index: SpvDecoration = SpvDecoration(32);
310    pub const Binding: SpvDecoration = SpvDecoration(33);
311    pub const DescriptorSet: SpvDecoration = SpvDecoration(34);
312    pub const Offset: SpvDecoration = SpvDecoration(35);
313    pub const XfbBuffer: SpvDecoration = SpvDecoration(36);
314    pub const XfbStride: SpvDecoration = SpvDecoration(37);
315    pub const FuncParamAttr: SpvDecoration = SpvDecoration(38);
316    pub const FPRoundingMode: SpvDecoration = SpvDecoration(39);
317    pub const FPFastMathMode: SpvDecoration = SpvDecoration(40);
318    pub const LinkageAttributes: SpvDecoration = SpvDecoration(41);
319    pub const NoContraction: SpvDecoration = SpvDecoration(42);
320    pub const InputAttachmentIndex: SpvDecoration = SpvDecoration(43);
321    pub const Alignment: SpvDecoration = SpvDecoration(44);
322    pub const MaxByteOffset: SpvDecoration = SpvDecoration(45);
323    pub const AlignmentId: SpvDecoration = SpvDecoration(46);
324    pub const MaxByteOffsetId: SpvDecoration = SpvDecoration(47);
325    pub const SaturatedToLargestFloat8NormalConversionEXT: SpvDecoration = SpvDecoration(4216);
326    pub const NoSignedWrap: SpvDecoration = SpvDecoration(4469);
327    pub const NoUnsignedWrap: SpvDecoration = SpvDecoration(4470);
328    pub const WeightTextureQCOM: SpvDecoration = SpvDecoration(4487);
329    pub const BlockMatchTextureQCOM: SpvDecoration = SpvDecoration(4488);
330    pub const BlockMatchSamplerQCOM: SpvDecoration = SpvDecoration(4499);
331    pub const ExplicitInterpAMD: SpvDecoration = SpvDecoration(4999);
332    pub const NodeSharesPayloadLimitsWithAMDX: SpvDecoration = SpvDecoration(5019);
333    pub const NodeMaxPayloadsAMDX: SpvDecoration = SpvDecoration(5020);
334    pub const TrackFinishWritingAMDX: SpvDecoration = SpvDecoration(5078);
335    pub const PayloadNodeNameAMDX: SpvDecoration = SpvDecoration(5091);
336    pub const PayloadNodeBaseIndexAMDX: SpvDecoration = SpvDecoration(5098);
337    pub const PayloadNodeSparseArrayAMDX: SpvDecoration = SpvDecoration(5099);
338    pub const PayloadNodeArraySizeAMDX: SpvDecoration = SpvDecoration(5100);
339    pub const PayloadDispatchIndirectAMDX: SpvDecoration = SpvDecoration(5105);
340    pub const ArrayStrideIdEXT: SpvDecoration = SpvDecoration(5124);
341    pub const OffsetIdEXT: SpvDecoration = SpvDecoration(5125);
342    pub const UTFEncodedKHR: SpvDecoration = SpvDecoration(5145);
343    pub const OverrideCoverageNV: SpvDecoration = SpvDecoration(5248);
344    pub const PassthroughNV: SpvDecoration = SpvDecoration(5250);
345    pub const ViewportRelativeNV: SpvDecoration = SpvDecoration(5252);
346    pub const SecondaryViewportRelativeNV: SpvDecoration = SpvDecoration(5256);
347    pub const PerPrimitiveEXT: SpvDecoration = SpvDecoration(5271);
348    pub const PerPrimitiveNV: SpvDecoration = SpvDecoration(5271);
349    pub const PerViewNV: SpvDecoration = SpvDecoration(5272);
350    pub const PerTaskNV: SpvDecoration = SpvDecoration(5273);
351    pub const PerVertexKHR: SpvDecoration = SpvDecoration(5285);
352    pub const PerVertexNV: SpvDecoration = SpvDecoration(5285);
353    pub const NonUniform: SpvDecoration = SpvDecoration(5300);
354    pub const NonUniformEXT: SpvDecoration = SpvDecoration(5300);
355    pub const RestrictPointer: SpvDecoration = SpvDecoration(5355);
356    pub const RestrictPointerEXT: SpvDecoration = SpvDecoration(5355);
357    pub const AliasedPointer: SpvDecoration = SpvDecoration(5356);
358    pub const AliasedPointerEXT: SpvDecoration = SpvDecoration(5356);
359    pub const MemberOffsetNV: SpvDecoration = SpvDecoration(5358);
360    pub const HitObjectShaderRecordBufferNV: SpvDecoration = SpvDecoration(5386);
361    pub const HitObjectShaderRecordBufferEXT: SpvDecoration = SpvDecoration(5389);
362    pub const BankNV: SpvDecoration = SpvDecoration(5397);
363    pub const BindlessSamplerNV: SpvDecoration = SpvDecoration(5398);
364    pub const BindlessImageNV: SpvDecoration = SpvDecoration(5399);
365    pub const BoundSamplerNV: SpvDecoration = SpvDecoration(5400);
366    pub const BoundImageNV: SpvDecoration = SpvDecoration(5401);
367    pub const SIMTCallINTEL: SpvDecoration = SpvDecoration(5599);
368    pub const ReferencedIndirectlyINTEL: SpvDecoration = SpvDecoration(5602);
369    pub const ClobberINTEL: SpvDecoration = SpvDecoration(5607);
370    pub const SideEffectsINTEL: SpvDecoration = SpvDecoration(5608);
371    pub const VectorComputeVariableINTEL: SpvDecoration = SpvDecoration(5624);
372    pub const FuncParamIOKindINTEL: SpvDecoration = SpvDecoration(5625);
373    pub const VectorComputeFunctionINTEL: SpvDecoration = SpvDecoration(5626);
374    pub const StackCallINTEL: SpvDecoration = SpvDecoration(5627);
375    pub const GlobalVariableOffsetINTEL: SpvDecoration = SpvDecoration(5628);
376    pub const CounterBuffer: SpvDecoration = SpvDecoration(5634);
377    pub const HlslCounterBufferGOOGLE: SpvDecoration = SpvDecoration(5634);
378    pub const HlslSemanticGOOGLE: SpvDecoration = SpvDecoration(5635);
379    pub const UserSemantic: SpvDecoration = SpvDecoration(5635);
380    pub const UserTypeGOOGLE: SpvDecoration = SpvDecoration(5636);
381    pub const FunctionRoundingModeINTEL: SpvDecoration = SpvDecoration(5822);
382    pub const FunctionDenormModeINTEL: SpvDecoration = SpvDecoration(5823);
383    pub const RegisterALTERA: SpvDecoration = SpvDecoration(5825);
384    pub const RegisterINTEL: SpvDecoration = SpvDecoration(5825);
385    pub const MemoryALTERA: SpvDecoration = SpvDecoration(5826);
386    pub const MemoryINTEL: SpvDecoration = SpvDecoration(5826);
387    pub const NumbanksALTERA: SpvDecoration = SpvDecoration(5827);
388    pub const NumbanksINTEL: SpvDecoration = SpvDecoration(5827);
389    pub const BankwidthALTERA: SpvDecoration = SpvDecoration(5828);
390    pub const BankwidthINTEL: SpvDecoration = SpvDecoration(5828);
391    pub const MaxPrivateCopiesALTERA: SpvDecoration = SpvDecoration(5829);
392    pub const MaxPrivateCopiesINTEL: SpvDecoration = SpvDecoration(5829);
393    pub const SinglepumpALTERA: SpvDecoration = SpvDecoration(5830);
394    pub const SinglepumpINTEL: SpvDecoration = SpvDecoration(5830);
395    pub const DoublepumpALTERA: SpvDecoration = SpvDecoration(5831);
396    pub const DoublepumpINTEL: SpvDecoration = SpvDecoration(5831);
397    pub const MaxReplicatesALTERA: SpvDecoration = SpvDecoration(5832);
398    pub const MaxReplicatesINTEL: SpvDecoration = SpvDecoration(5832);
399    pub const SimpleDualPortALTERA: SpvDecoration = SpvDecoration(5833);
400    pub const SimpleDualPortINTEL: SpvDecoration = SpvDecoration(5833);
401    pub const MergeALTERA: SpvDecoration = SpvDecoration(5834);
402    pub const MergeINTEL: SpvDecoration = SpvDecoration(5834);
403    pub const BankBitsALTERA: SpvDecoration = SpvDecoration(5835);
404    pub const BankBitsINTEL: SpvDecoration = SpvDecoration(5835);
405    pub const ForcePow2DepthALTERA: SpvDecoration = SpvDecoration(5836);
406    pub const ForcePow2DepthINTEL: SpvDecoration = SpvDecoration(5836);
407    pub const StridesizeALTERA: SpvDecoration = SpvDecoration(5883);
408    pub const StridesizeINTEL: SpvDecoration = SpvDecoration(5883);
409    pub const WordsizeALTERA: SpvDecoration = SpvDecoration(5884);
410    pub const WordsizeINTEL: SpvDecoration = SpvDecoration(5884);
411    pub const TrueDualPortALTERA: SpvDecoration = SpvDecoration(5885);
412    pub const TrueDualPortINTEL: SpvDecoration = SpvDecoration(5885);
413    pub const BurstCoalesceALTERA: SpvDecoration = SpvDecoration(5899);
414    pub const BurstCoalesceINTEL: SpvDecoration = SpvDecoration(5899);
415    pub const CacheSizeALTERA: SpvDecoration = SpvDecoration(5900);
416    pub const CacheSizeINTEL: SpvDecoration = SpvDecoration(5900);
417    pub const DontStaticallyCoalesceALTERA: SpvDecoration = SpvDecoration(5901);
418    pub const DontStaticallyCoalesceINTEL: SpvDecoration = SpvDecoration(5901);
419    pub const PrefetchALTERA: SpvDecoration = SpvDecoration(5902);
420    pub const PrefetchINTEL: SpvDecoration = SpvDecoration(5902);
421    pub const StallEnableALTERA: SpvDecoration = SpvDecoration(5905);
422    pub const StallEnableINTEL: SpvDecoration = SpvDecoration(5905);
423    pub const FuseLoopsInFunctionALTERA: SpvDecoration = SpvDecoration(5907);
424    pub const FuseLoopsInFunctionINTEL: SpvDecoration = SpvDecoration(5907);
425    pub const MathOpDSPModeALTERA: SpvDecoration = SpvDecoration(5909);
426    pub const MathOpDSPModeINTEL: SpvDecoration = SpvDecoration(5909);
427    pub const AliasScopeINTEL: SpvDecoration = SpvDecoration(5914);
428    pub const NoAliasINTEL: SpvDecoration = SpvDecoration(5915);
429    pub const InitiationIntervalALTERA: SpvDecoration = SpvDecoration(5917);
430    pub const InitiationIntervalINTEL: SpvDecoration = SpvDecoration(5917);
431    pub const MaxConcurrencyALTERA: SpvDecoration = SpvDecoration(5918);
432    pub const MaxConcurrencyINTEL: SpvDecoration = SpvDecoration(5918);
433    pub const PipelineEnableALTERA: SpvDecoration = SpvDecoration(5919);
434    pub const PipelineEnableINTEL: SpvDecoration = SpvDecoration(5919);
435    pub const BufferLocationALTERA: SpvDecoration = SpvDecoration(5921);
436    pub const BufferLocationINTEL: SpvDecoration = SpvDecoration(5921);
437    pub const IOPipeStorageALTERA: SpvDecoration = SpvDecoration(5944);
438    pub const IOPipeStorageINTEL: SpvDecoration = SpvDecoration(5944);
439    pub const FunctionFloatingPointModeINTEL: SpvDecoration = SpvDecoration(6080);
440    pub const SingleElementVectorINTEL: SpvDecoration = SpvDecoration(6085);
441    pub const VectorComputeCallableFunctionINTEL: SpvDecoration = SpvDecoration(6087);
442    pub const MediaBlockIOINTEL: SpvDecoration = SpvDecoration(6140);
443    pub const StallFreeALTERA: SpvDecoration = SpvDecoration(6151);
444    pub const StallFreeINTEL: SpvDecoration = SpvDecoration(6151);
445    pub const FPMaxErrorDecorationINTEL: SpvDecoration = SpvDecoration(6170);
446    pub const LatencyControlLabelALTERA: SpvDecoration = SpvDecoration(6172);
447    pub const LatencyControlLabelINTEL: SpvDecoration = SpvDecoration(6172);
448    pub const LatencyControlConstraintALTERA: SpvDecoration = SpvDecoration(6173);
449    pub const LatencyControlConstraintINTEL: SpvDecoration = SpvDecoration(6173);
450    pub const ConduitKernelArgumentALTERA: SpvDecoration = SpvDecoration(6175);
451    pub const ConduitKernelArgumentINTEL: SpvDecoration = SpvDecoration(6175);
452    pub const RegisterMapKernelArgumentALTERA: SpvDecoration = SpvDecoration(6176);
453    pub const RegisterMapKernelArgumentINTEL: SpvDecoration = SpvDecoration(6176);
454    pub const MMHostInterfaceAddressWidthALTERA: SpvDecoration = SpvDecoration(6177);
455    pub const MMHostInterfaceAddressWidthINTEL: SpvDecoration = SpvDecoration(6177);
456    pub const MMHostInterfaceDataWidthALTERA: SpvDecoration = SpvDecoration(6178);
457    pub const MMHostInterfaceDataWidthINTEL: SpvDecoration = SpvDecoration(6178);
458    pub const MMHostInterfaceLatencyALTERA: SpvDecoration = SpvDecoration(6179);
459    pub const MMHostInterfaceLatencyINTEL: SpvDecoration = SpvDecoration(6179);
460    pub const MMHostInterfaceReadWriteModeALTERA: SpvDecoration = SpvDecoration(6180);
461    pub const MMHostInterfaceReadWriteModeINTEL: SpvDecoration = SpvDecoration(6180);
462    pub const MMHostInterfaceMaxBurstALTERA: SpvDecoration = SpvDecoration(6181);
463    pub const MMHostInterfaceMaxBurstINTEL: SpvDecoration = SpvDecoration(6181);
464    pub const MMHostInterfaceWaitRequestALTERA: SpvDecoration = SpvDecoration(6182);
465    pub const MMHostInterfaceWaitRequestINTEL: SpvDecoration = SpvDecoration(6182);
466    pub const StableKernelArgumentALTERA: SpvDecoration = SpvDecoration(6183);
467    pub const StableKernelArgumentINTEL: SpvDecoration = SpvDecoration(6183);
468    pub const HostAccessINTEL: SpvDecoration = SpvDecoration(6188);
469    pub const InitModeALTERA: SpvDecoration = SpvDecoration(6190);
470    pub const InitModeINTEL: SpvDecoration = SpvDecoration(6190);
471    pub const ImplementInRegisterMapALTERA: SpvDecoration = SpvDecoration(6191);
472    pub const ImplementInRegisterMapINTEL: SpvDecoration = SpvDecoration(6191);
473    pub const ConditionalINTEL: SpvDecoration = SpvDecoration(6247);
474    pub const CacheControlLoadINTEL: SpvDecoration = SpvDecoration(6442);
475    pub const CacheControlStoreINTEL: SpvDecoration = SpvDecoration(6443);
476    pub const Max: SpvDecoration = SpvDecoration(2147483647);
477}
478#[repr(transparent)]
479#[derive(
480    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
481)]
482pub struct SpvDecoration(pub u32);
483impl SpvBuiltIn {
484    pub const Position: SpvBuiltIn = SpvBuiltIn(0);
485    pub const PointSize: SpvBuiltIn = SpvBuiltIn(1);
486    pub const ClipDistance: SpvBuiltIn = SpvBuiltIn(3);
487    pub const CullDistance: SpvBuiltIn = SpvBuiltIn(4);
488    pub const VertexId: SpvBuiltIn = SpvBuiltIn(5);
489    pub const InstanceId: SpvBuiltIn = SpvBuiltIn(6);
490    pub const PrimitiveId: SpvBuiltIn = SpvBuiltIn(7);
491    pub const InvocationId: SpvBuiltIn = SpvBuiltIn(8);
492    pub const Layer: SpvBuiltIn = SpvBuiltIn(9);
493    pub const ViewportIndex: SpvBuiltIn = SpvBuiltIn(10);
494    pub const TessLevelOuter: SpvBuiltIn = SpvBuiltIn(11);
495    pub const TessLevelInner: SpvBuiltIn = SpvBuiltIn(12);
496    pub const TessCoord: SpvBuiltIn = SpvBuiltIn(13);
497    pub const PatchVertices: SpvBuiltIn = SpvBuiltIn(14);
498    pub const FragCoord: SpvBuiltIn = SpvBuiltIn(15);
499    pub const PointCoord: SpvBuiltIn = SpvBuiltIn(16);
500    pub const FrontFacing: SpvBuiltIn = SpvBuiltIn(17);
501    pub const SampleId: SpvBuiltIn = SpvBuiltIn(18);
502    pub const SamplePosition: SpvBuiltIn = SpvBuiltIn(19);
503    pub const SampleMask: SpvBuiltIn = SpvBuiltIn(20);
504    pub const FragDepth: SpvBuiltIn = SpvBuiltIn(22);
505    pub const HelperInvocation: SpvBuiltIn = SpvBuiltIn(23);
506    pub const NumWorkgroups: SpvBuiltIn = SpvBuiltIn(24);
507    pub const WorkgroupSize: SpvBuiltIn = SpvBuiltIn(25);
508    pub const WorkgroupId: SpvBuiltIn = SpvBuiltIn(26);
509    pub const LocalInvocationId: SpvBuiltIn = SpvBuiltIn(27);
510    pub const GlobalInvocationId: SpvBuiltIn = SpvBuiltIn(28);
511    pub const LocalInvocationIndex: SpvBuiltIn = SpvBuiltIn(29);
512    pub const WorkDim: SpvBuiltIn = SpvBuiltIn(30);
513    pub const GlobalSize: SpvBuiltIn = SpvBuiltIn(31);
514    pub const EnqueuedWorkgroupSize: SpvBuiltIn = SpvBuiltIn(32);
515    pub const GlobalOffset: SpvBuiltIn = SpvBuiltIn(33);
516    pub const GlobalLinearId: SpvBuiltIn = SpvBuiltIn(34);
517    pub const SubgroupSize: SpvBuiltIn = SpvBuiltIn(36);
518    pub const SubgroupMaxSize: SpvBuiltIn = SpvBuiltIn(37);
519    pub const NumSubgroups: SpvBuiltIn = SpvBuiltIn(38);
520    pub const NumEnqueuedSubgroups: SpvBuiltIn = SpvBuiltIn(39);
521    pub const SubgroupId: SpvBuiltIn = SpvBuiltIn(40);
522    pub const SubgroupLocalInvocationId: SpvBuiltIn = SpvBuiltIn(41);
523    pub const VertexIndex: SpvBuiltIn = SpvBuiltIn(42);
524    pub const InstanceIndex: SpvBuiltIn = SpvBuiltIn(43);
525    pub const CoreIDARM: SpvBuiltIn = SpvBuiltIn(4160);
526    pub const CoreCountARM: SpvBuiltIn = SpvBuiltIn(4161);
527    pub const CoreMaxIDARM: SpvBuiltIn = SpvBuiltIn(4162);
528    pub const WarpIDARM: SpvBuiltIn = SpvBuiltIn(4163);
529    pub const WarpMaxIDARM: SpvBuiltIn = SpvBuiltIn(4164);
530    pub const SubgroupEqMask: SpvBuiltIn = SpvBuiltIn(4416);
531    pub const SubgroupEqMaskKHR: SpvBuiltIn = SpvBuiltIn(4416);
532    pub const SubgroupGeMask: SpvBuiltIn = SpvBuiltIn(4417);
533    pub const SubgroupGeMaskKHR: SpvBuiltIn = SpvBuiltIn(4417);
534    pub const SubgroupGtMask: SpvBuiltIn = SpvBuiltIn(4418);
535    pub const SubgroupGtMaskKHR: SpvBuiltIn = SpvBuiltIn(4418);
536    pub const SubgroupLeMask: SpvBuiltIn = SpvBuiltIn(4419);
537    pub const SubgroupLeMaskKHR: SpvBuiltIn = SpvBuiltIn(4419);
538    pub const SubgroupLtMask: SpvBuiltIn = SpvBuiltIn(4420);
539    pub const SubgroupLtMaskKHR: SpvBuiltIn = SpvBuiltIn(4420);
540    pub const BaseVertex: SpvBuiltIn = SpvBuiltIn(4424);
541    pub const BaseInstance: SpvBuiltIn = SpvBuiltIn(4425);
542    pub const DrawIndex: SpvBuiltIn = SpvBuiltIn(4426);
543    pub const PrimitiveShadingRateKHR: SpvBuiltIn = SpvBuiltIn(4432);
544    pub const DeviceIndex: SpvBuiltIn = SpvBuiltIn(4438);
545    pub const ViewIndex: SpvBuiltIn = SpvBuiltIn(4440);
546    pub const ShadingRateKHR: SpvBuiltIn = SpvBuiltIn(4444);
547    pub const TileOffsetQCOM: SpvBuiltIn = SpvBuiltIn(4492);
548    pub const TileDimensionQCOM: SpvBuiltIn = SpvBuiltIn(4493);
549    pub const TileApronSizeQCOM: SpvBuiltIn = SpvBuiltIn(4494);
550    pub const BaryCoordNoPerspAMD: SpvBuiltIn = SpvBuiltIn(4992);
551    pub const BaryCoordNoPerspCentroidAMD: SpvBuiltIn = SpvBuiltIn(4993);
552    pub const BaryCoordNoPerspSampleAMD: SpvBuiltIn = SpvBuiltIn(4994);
553    pub const BaryCoordSmoothAMD: SpvBuiltIn = SpvBuiltIn(4995);
554    pub const BaryCoordSmoothCentroidAMD: SpvBuiltIn = SpvBuiltIn(4996);
555    pub const BaryCoordSmoothSampleAMD: SpvBuiltIn = SpvBuiltIn(4997);
556    pub const BaryCoordPullModelAMD: SpvBuiltIn = SpvBuiltIn(4998);
557    pub const FragStencilRefEXT: SpvBuiltIn = SpvBuiltIn(5014);
558    pub const RemainingRecursionLevelsAMDX: SpvBuiltIn = SpvBuiltIn(5021);
559    pub const ShaderIndexAMDX: SpvBuiltIn = SpvBuiltIn(5073);
560    pub const SamplerHeapEXT: SpvBuiltIn = SpvBuiltIn(5122);
561    pub const ResourceHeapEXT: SpvBuiltIn = SpvBuiltIn(5123);
562    pub const ViewportMaskNV: SpvBuiltIn = SpvBuiltIn(5253);
563    pub const SecondaryPositionNV: SpvBuiltIn = SpvBuiltIn(5257);
564    pub const SecondaryViewportMaskNV: SpvBuiltIn = SpvBuiltIn(5258);
565    pub const PositionPerViewNV: SpvBuiltIn = SpvBuiltIn(5261);
566    pub const ViewportMaskPerViewNV: SpvBuiltIn = SpvBuiltIn(5262);
567    pub const FullyCoveredEXT: SpvBuiltIn = SpvBuiltIn(5264);
568    pub const TaskCountNV: SpvBuiltIn = SpvBuiltIn(5274);
569    pub const PrimitiveCountNV: SpvBuiltIn = SpvBuiltIn(5275);
570    pub const PrimitiveIndicesNV: SpvBuiltIn = SpvBuiltIn(5276);
571    pub const ClipDistancePerViewNV: SpvBuiltIn = SpvBuiltIn(5277);
572    pub const CullDistancePerViewNV: SpvBuiltIn = SpvBuiltIn(5278);
573    pub const LayerPerViewNV: SpvBuiltIn = SpvBuiltIn(5279);
574    pub const MeshViewCountNV: SpvBuiltIn = SpvBuiltIn(5280);
575    pub const MeshViewIndicesNV: SpvBuiltIn = SpvBuiltIn(5281);
576    pub const BaryCoordKHR: SpvBuiltIn = SpvBuiltIn(5286);
577    pub const BaryCoordNV: SpvBuiltIn = SpvBuiltIn(5286);
578    pub const BaryCoordNoPerspKHR: SpvBuiltIn = SpvBuiltIn(5287);
579    pub const BaryCoordNoPerspNV: SpvBuiltIn = SpvBuiltIn(5287);
580    pub const FragSizeEXT: SpvBuiltIn = SpvBuiltIn(5292);
581    pub const FragmentSizeNV: SpvBuiltIn = SpvBuiltIn(5292);
582    pub const FragInvocationCountEXT: SpvBuiltIn = SpvBuiltIn(5293);
583    pub const InvocationsPerPixelNV: SpvBuiltIn = SpvBuiltIn(5293);
584    pub const PrimitivePointIndicesEXT: SpvBuiltIn = SpvBuiltIn(5294);
585    pub const PrimitiveLineIndicesEXT: SpvBuiltIn = SpvBuiltIn(5295);
586    pub const PrimitiveTriangleIndicesEXT: SpvBuiltIn = SpvBuiltIn(5296);
587    pub const CullPrimitiveEXT: SpvBuiltIn = SpvBuiltIn(5299);
588    pub const LaunchIdKHR: SpvBuiltIn = SpvBuiltIn(5319);
589    pub const LaunchIdNV: SpvBuiltIn = SpvBuiltIn(5319);
590    pub const LaunchSizeKHR: SpvBuiltIn = SpvBuiltIn(5320);
591    pub const LaunchSizeNV: SpvBuiltIn = SpvBuiltIn(5320);
592    pub const WorldRayOriginKHR: SpvBuiltIn = SpvBuiltIn(5321);
593    pub const WorldRayOriginNV: SpvBuiltIn = SpvBuiltIn(5321);
594    pub const WorldRayDirectionKHR: SpvBuiltIn = SpvBuiltIn(5322);
595    pub const WorldRayDirectionNV: SpvBuiltIn = SpvBuiltIn(5322);
596    pub const ObjectRayOriginKHR: SpvBuiltIn = SpvBuiltIn(5323);
597    pub const ObjectRayOriginNV: SpvBuiltIn = SpvBuiltIn(5323);
598    pub const ObjectRayDirectionKHR: SpvBuiltIn = SpvBuiltIn(5324);
599    pub const ObjectRayDirectionNV: SpvBuiltIn = SpvBuiltIn(5324);
600    pub const RayTminKHR: SpvBuiltIn = SpvBuiltIn(5325);
601    pub const RayTminNV: SpvBuiltIn = SpvBuiltIn(5325);
602    pub const RayTmaxKHR: SpvBuiltIn = SpvBuiltIn(5326);
603    pub const RayTmaxNV: SpvBuiltIn = SpvBuiltIn(5326);
604    pub const InstanceCustomIndexKHR: SpvBuiltIn = SpvBuiltIn(5327);
605    pub const InstanceCustomIndexNV: SpvBuiltIn = SpvBuiltIn(5327);
606    pub const ObjectToWorldKHR: SpvBuiltIn = SpvBuiltIn(5330);
607    pub const ObjectToWorldNV: SpvBuiltIn = SpvBuiltIn(5330);
608    pub const WorldToObjectKHR: SpvBuiltIn = SpvBuiltIn(5331);
609    pub const WorldToObjectNV: SpvBuiltIn = SpvBuiltIn(5331);
610    pub const HitTNV: SpvBuiltIn = SpvBuiltIn(5332);
611    pub const HitKindKHR: SpvBuiltIn = SpvBuiltIn(5333);
612    pub const HitKindNV: SpvBuiltIn = SpvBuiltIn(5333);
613    pub const CurrentRayTimeNV: SpvBuiltIn = SpvBuiltIn(5334);
614    pub const HitTriangleVertexPositionsKHR: SpvBuiltIn = SpvBuiltIn(5335);
615    pub const HitMicroTriangleVertexPositionsNV: SpvBuiltIn = SpvBuiltIn(5337);
616    pub const HitMicroTriangleVertexBarycentricsNV: SpvBuiltIn = SpvBuiltIn(5344);
617    pub const IncomingRayFlagsKHR: SpvBuiltIn = SpvBuiltIn(5351);
618    pub const IncomingRayFlagsNV: SpvBuiltIn = SpvBuiltIn(5351);
619    pub const RayGeometryIndexKHR: SpvBuiltIn = SpvBuiltIn(5352);
620    pub const HitIsSphereNV: SpvBuiltIn = SpvBuiltIn(5359);
621    pub const HitIsLSSNV: SpvBuiltIn = SpvBuiltIn(5360);
622    pub const HitSpherePositionNV: SpvBuiltIn = SpvBuiltIn(5361);
623    pub const WarpsPerSMNV: SpvBuiltIn = SpvBuiltIn(5374);
624    pub const SMCountNV: SpvBuiltIn = SpvBuiltIn(5375);
625    pub const WarpIDNV: SpvBuiltIn = SpvBuiltIn(5376);
626    pub const SMIDNV: SpvBuiltIn = SpvBuiltIn(5377);
627    pub const HitLSSPositionsNV: SpvBuiltIn = SpvBuiltIn(5396);
628    pub const HitKindFrontFacingMicroTriangleNV: SpvBuiltIn = SpvBuiltIn(5405);
629    pub const HitKindBackFacingMicroTriangleNV: SpvBuiltIn = SpvBuiltIn(5406);
630    pub const HitSphereRadiusNV: SpvBuiltIn = SpvBuiltIn(5420);
631    pub const HitLSSRadiiNV: SpvBuiltIn = SpvBuiltIn(5421);
632    pub const ClusterIDNV: SpvBuiltIn = SpvBuiltIn(5436);
633    pub const CullMaskKHR: SpvBuiltIn = SpvBuiltIn(6021);
634    pub const Max: SpvBuiltIn = SpvBuiltIn(2147483647);
635}
636#[repr(transparent)]
637#[derive(
638    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
639)]
640pub struct SpvBuiltIn(pub u32);
641impl SpvCapability {
642    pub const Matrix: SpvCapability = SpvCapability(0);
643    pub const Shader: SpvCapability = SpvCapability(1);
644    pub const Geometry: SpvCapability = SpvCapability(2);
645    pub const Tessellation: SpvCapability = SpvCapability(3);
646    pub const Addresses: SpvCapability = SpvCapability(4);
647    pub const Linkage: SpvCapability = SpvCapability(5);
648    pub const Kernel: SpvCapability = SpvCapability(6);
649    pub const Vector16: SpvCapability = SpvCapability(7);
650    pub const Float16Buffer: SpvCapability = SpvCapability(8);
651    pub const Float16: SpvCapability = SpvCapability(9);
652    pub const Float64: SpvCapability = SpvCapability(10);
653    pub const Int64: SpvCapability = SpvCapability(11);
654    pub const Int64Atomics: SpvCapability = SpvCapability(12);
655    pub const ImageBasic: SpvCapability = SpvCapability(13);
656    pub const ImageReadWrite: SpvCapability = SpvCapability(14);
657    pub const ImageMipmap: SpvCapability = SpvCapability(15);
658    pub const Pipes: SpvCapability = SpvCapability(17);
659    pub const Groups: SpvCapability = SpvCapability(18);
660    pub const DeviceEnqueue: SpvCapability = SpvCapability(19);
661    pub const LiteralSampler: SpvCapability = SpvCapability(20);
662    pub const AtomicStorage: SpvCapability = SpvCapability(21);
663    pub const Int16: SpvCapability = SpvCapability(22);
664    pub const TessellationPointSize: SpvCapability = SpvCapability(23);
665    pub const GeometryPointSize: SpvCapability = SpvCapability(24);
666    pub const ImageGatherExtended: SpvCapability = SpvCapability(25);
667    pub const StorageImageMultisample: SpvCapability = SpvCapability(27);
668    pub const UniformBufferArrayDynamicIndexing: SpvCapability = SpvCapability(28);
669    pub const SampledImageArrayDynamicIndexing: SpvCapability = SpvCapability(29);
670    pub const StorageBufferArrayDynamicIndexing: SpvCapability = SpvCapability(30);
671    pub const StorageImageArrayDynamicIndexing: SpvCapability = SpvCapability(31);
672    pub const ClipDistance: SpvCapability = SpvCapability(32);
673    pub const CullDistance: SpvCapability = SpvCapability(33);
674    pub const ImageCubeArray: SpvCapability = SpvCapability(34);
675    pub const SampleRateShading: SpvCapability = SpvCapability(35);
676    pub const ImageRect: SpvCapability = SpvCapability(36);
677    pub const SampledRect: SpvCapability = SpvCapability(37);
678    pub const GenericPointer: SpvCapability = SpvCapability(38);
679    pub const Int8: SpvCapability = SpvCapability(39);
680    pub const InputAttachment: SpvCapability = SpvCapability(40);
681    pub const SparseResidency: SpvCapability = SpvCapability(41);
682    pub const MinLod: SpvCapability = SpvCapability(42);
683    pub const Sampled1D: SpvCapability = SpvCapability(43);
684    pub const Image1D: SpvCapability = SpvCapability(44);
685    pub const SampledCubeArray: SpvCapability = SpvCapability(45);
686    pub const SampledBuffer: SpvCapability = SpvCapability(46);
687    pub const ImageBuffer: SpvCapability = SpvCapability(47);
688    pub const ImageMSArray: SpvCapability = SpvCapability(48);
689    pub const StorageImageExtendedFormats: SpvCapability = SpvCapability(49);
690    pub const ImageQuery: SpvCapability = SpvCapability(50);
691    pub const DerivativeControl: SpvCapability = SpvCapability(51);
692    pub const InterpolationFunction: SpvCapability = SpvCapability(52);
693    pub const TransformFeedback: SpvCapability = SpvCapability(53);
694    pub const GeometryStreams: SpvCapability = SpvCapability(54);
695    pub const StorageImageReadWithoutFormat: SpvCapability = SpvCapability(55);
696    pub const StorageImageWriteWithoutFormat: SpvCapability = SpvCapability(56);
697    pub const MultiViewport: SpvCapability = SpvCapability(57);
698    pub const SubgroupDispatch: SpvCapability = SpvCapability(58);
699    pub const NamedBarrier: SpvCapability = SpvCapability(59);
700    pub const PipeStorage: SpvCapability = SpvCapability(60);
701    pub const GroupNonUniform: SpvCapability = SpvCapability(61);
702    pub const GroupNonUniformVote: SpvCapability = SpvCapability(62);
703    pub const GroupNonUniformArithmetic: SpvCapability = SpvCapability(63);
704    pub const GroupNonUniformBallot: SpvCapability = SpvCapability(64);
705    pub const GroupNonUniformShuffle: SpvCapability = SpvCapability(65);
706    pub const GroupNonUniformShuffleRelative: SpvCapability = SpvCapability(66);
707    pub const GroupNonUniformClustered: SpvCapability = SpvCapability(67);
708    pub const GroupNonUniformQuad: SpvCapability = SpvCapability(68);
709    pub const ShaderLayer: SpvCapability = SpvCapability(69);
710    pub const ShaderViewportIndex: SpvCapability = SpvCapability(70);
711    pub const UniformDecoration: SpvCapability = SpvCapability(71);
712    pub const CoreBuiltinsARM: SpvCapability = SpvCapability(4165);
713    pub const TileImageColorReadAccessEXT: SpvCapability = SpvCapability(4166);
714    pub const TileImageDepthReadAccessEXT: SpvCapability = SpvCapability(4167);
715    pub const TileImageStencilReadAccessEXT: SpvCapability = SpvCapability(4168);
716    pub const TensorsARM: SpvCapability = SpvCapability(4174);
717    pub const StorageTensorArrayDynamicIndexingARM: SpvCapability = SpvCapability(4175);
718    pub const StorageTensorArrayNonUniformIndexingARM: SpvCapability = SpvCapability(4176);
719    pub const GraphARM: SpvCapability = SpvCapability(4191);
720    pub const CooperativeMatrixLayoutsARM: SpvCapability = SpvCapability(4201);
721    pub const Float8EXT: SpvCapability = SpvCapability(4212);
722    pub const Float8CooperativeMatrixEXT: SpvCapability = SpvCapability(4213);
723    pub const FragmentShadingRateKHR: SpvCapability = SpvCapability(4422);
724    pub const SubgroupBallotKHR: SpvCapability = SpvCapability(4423);
725    pub const DrawParameters: SpvCapability = SpvCapability(4427);
726    pub const WorkgroupMemoryExplicitLayoutKHR: SpvCapability = SpvCapability(4428);
727    pub const WorkgroupMemoryExplicitLayout8BitAccessKHR: SpvCapability = SpvCapability(4429);
728    pub const WorkgroupMemoryExplicitLayout16BitAccessKHR: SpvCapability = SpvCapability(4430);
729    pub const SubgroupVoteKHR: SpvCapability = SpvCapability(4431);
730    pub const StorageBuffer16BitAccess: SpvCapability = SpvCapability(4433);
731    pub const StorageUniformBufferBlock16: SpvCapability = SpvCapability(4433);
732    pub const StorageUniform16: SpvCapability = SpvCapability(4434);
733    pub const UniformAndStorageBuffer16BitAccess: SpvCapability = SpvCapability(4434);
734    pub const StoragePushConstant16: SpvCapability = SpvCapability(4435);
735    pub const StorageInputOutput16: SpvCapability = SpvCapability(4436);
736    pub const DeviceGroup: SpvCapability = SpvCapability(4437);
737    pub const MultiView: SpvCapability = SpvCapability(4439);
738    pub const VariablePointersStorageBuffer: SpvCapability = SpvCapability(4441);
739    pub const VariablePointers: SpvCapability = SpvCapability(4442);
740    pub const AtomicStorageOps: SpvCapability = SpvCapability(4445);
741    pub const SampleMaskPostDepthCoverage: SpvCapability = SpvCapability(4447);
742    pub const StorageBuffer8BitAccess: SpvCapability = SpvCapability(4448);
743    pub const UniformAndStorageBuffer8BitAccess: SpvCapability = SpvCapability(4449);
744    pub const StoragePushConstant8: SpvCapability = SpvCapability(4450);
745    pub const DenormPreserve: SpvCapability = SpvCapability(4464);
746    pub const DenormFlushToZero: SpvCapability = SpvCapability(4465);
747    pub const SignedZeroInfNanPreserve: SpvCapability = SpvCapability(4466);
748    pub const RoundingModeRTE: SpvCapability = SpvCapability(4467);
749    pub const RoundingModeRTZ: SpvCapability = SpvCapability(4468);
750    pub const RayQueryProvisionalKHR: SpvCapability = SpvCapability(4471);
751    pub const RayQueryKHR: SpvCapability = SpvCapability(4472);
752    pub const UntypedPointersKHR: SpvCapability = SpvCapability(4473);
753    pub const RayTraversalPrimitiveCullingKHR: SpvCapability = SpvCapability(4478);
754    pub const RayTracingKHR: SpvCapability = SpvCapability(4479);
755    pub const TextureSampleWeightedQCOM: SpvCapability = SpvCapability(4484);
756    pub const TextureBoxFilterQCOM: SpvCapability = SpvCapability(4485);
757    pub const TextureBlockMatchQCOM: SpvCapability = SpvCapability(4486);
758    pub const TileShadingQCOM: SpvCapability = SpvCapability(4495);
759    pub const CooperativeMatrixConversionQCOM: SpvCapability = SpvCapability(4496);
760    pub const TextureBlockMatch2QCOM: SpvCapability = SpvCapability(4498);
761    pub const Float16ImageAMD: SpvCapability = SpvCapability(5008);
762    pub const ImageGatherBiasLodAMD: SpvCapability = SpvCapability(5009);
763    pub const FragmentMaskAMD: SpvCapability = SpvCapability(5010);
764    pub const StencilExportEXT: SpvCapability = SpvCapability(5013);
765    pub const ImageReadWriteLodAMD: SpvCapability = SpvCapability(5015);
766    pub const Int64ImageEXT: SpvCapability = SpvCapability(5016);
767    pub const ShaderClockKHR: SpvCapability = SpvCapability(5055);
768    pub const ShaderEnqueueAMDX: SpvCapability = SpvCapability(5067);
769    pub const QuadControlKHR: SpvCapability = SpvCapability(5087);
770    pub const Int4TypeINTEL: SpvCapability = SpvCapability(5112);
771    pub const Int4CooperativeMatrixINTEL: SpvCapability = SpvCapability(5114);
772    pub const BFloat16TypeKHR: SpvCapability = SpvCapability(5116);
773    pub const BFloat16DotProductKHR: SpvCapability = SpvCapability(5117);
774    pub const BFloat16CooperativeMatrixKHR: SpvCapability = SpvCapability(5118);
775    pub const AbortKHR: SpvCapability = SpvCapability(5120);
776    pub const DescriptorHeapEXT: SpvCapability = SpvCapability(5128);
777    pub const ConstantDataKHR: SpvCapability = SpvCapability(5146);
778    pub const PoisonFreezeKHR: SpvCapability = SpvCapability(5156);
779    pub const SampleMaskOverrideCoverageNV: SpvCapability = SpvCapability(5249);
780    pub const GeometryShaderPassthroughNV: SpvCapability = SpvCapability(5251);
781    pub const ShaderViewportIndexLayerEXT: SpvCapability = SpvCapability(5254);
782    pub const ShaderViewportIndexLayerNV: SpvCapability = SpvCapability(5254);
783    pub const ShaderViewportMaskNV: SpvCapability = SpvCapability(5255);
784    pub const ShaderStereoViewNV: SpvCapability = SpvCapability(5259);
785    pub const PerViewAttributesNV: SpvCapability = SpvCapability(5260);
786    pub const FragmentFullyCoveredEXT: SpvCapability = SpvCapability(5265);
787    pub const MeshShadingNV: SpvCapability = SpvCapability(5266);
788    pub const ImageFootprintNV: SpvCapability = SpvCapability(5282);
789    pub const MeshShadingEXT: SpvCapability = SpvCapability(5283);
790    pub const FragmentBarycentricKHR: SpvCapability = SpvCapability(5284);
791    pub const FragmentBarycentricNV: SpvCapability = SpvCapability(5284);
792    pub const ComputeDerivativeGroupQuadsKHR: SpvCapability = SpvCapability(5288);
793    pub const ComputeDerivativeGroupQuadsNV: SpvCapability = SpvCapability(5288);
794    pub const FragmentDensityEXT: SpvCapability = SpvCapability(5291);
795    pub const ShadingRateNV: SpvCapability = SpvCapability(5291);
796    pub const GroupNonUniformPartitionedEXT: SpvCapability = SpvCapability(5297);
797    pub const GroupNonUniformPartitionedNV: SpvCapability = SpvCapability(5297);
798    pub const ShaderNonUniform: SpvCapability = SpvCapability(5301);
799    pub const ShaderNonUniformEXT: SpvCapability = SpvCapability(5301);
800    pub const RuntimeDescriptorArray: SpvCapability = SpvCapability(5302);
801    pub const RuntimeDescriptorArrayEXT: SpvCapability = SpvCapability(5302);
802    pub const InputAttachmentArrayDynamicIndexing: SpvCapability = SpvCapability(5303);
803    pub const InputAttachmentArrayDynamicIndexingEXT: SpvCapability = SpvCapability(5303);
804    pub const UniformTexelBufferArrayDynamicIndexing: SpvCapability = SpvCapability(5304);
805    pub const UniformTexelBufferArrayDynamicIndexingEXT: SpvCapability = SpvCapability(5304);
806    pub const StorageTexelBufferArrayDynamicIndexing: SpvCapability = SpvCapability(5305);
807    pub const StorageTexelBufferArrayDynamicIndexingEXT: SpvCapability = SpvCapability(5305);
808    pub const UniformBufferArrayNonUniformIndexing: SpvCapability = SpvCapability(5306);
809    pub const UniformBufferArrayNonUniformIndexingEXT: SpvCapability = SpvCapability(5306);
810    pub const SampledImageArrayNonUniformIndexing: SpvCapability = SpvCapability(5307);
811    pub const SampledImageArrayNonUniformIndexingEXT: SpvCapability = SpvCapability(5307);
812    pub const StorageBufferArrayNonUniformIndexing: SpvCapability = SpvCapability(5308);
813    pub const StorageBufferArrayNonUniformIndexingEXT: SpvCapability = SpvCapability(5308);
814    pub const StorageImageArrayNonUniformIndexing: SpvCapability = SpvCapability(5309);
815    pub const StorageImageArrayNonUniformIndexingEXT: SpvCapability = SpvCapability(5309);
816    pub const InputAttachmentArrayNonUniformIndexing: SpvCapability = SpvCapability(5310);
817    pub const InputAttachmentArrayNonUniformIndexingEXT: SpvCapability = SpvCapability(5310);
818    pub const UniformTexelBufferArrayNonUniformIndexing: SpvCapability = SpvCapability(5311);
819    pub const UniformTexelBufferArrayNonUniformIndexingEXT: SpvCapability = SpvCapability(5311);
820    pub const StorageTexelBufferArrayNonUniformIndexing: SpvCapability = SpvCapability(5312);
821    pub const StorageTexelBufferArrayNonUniformIndexingEXT: SpvCapability = SpvCapability(5312);
822    pub const RayTracingPositionFetchKHR: SpvCapability = SpvCapability(5336);
823    pub const RayTracingNV: SpvCapability = SpvCapability(5340);
824    pub const RayTracingMotionBlurNV: SpvCapability = SpvCapability(5341);
825    pub const VulkanMemoryModel: SpvCapability = SpvCapability(5345);
826    pub const VulkanMemoryModelKHR: SpvCapability = SpvCapability(5345);
827    pub const VulkanMemoryModelDeviceScope: SpvCapability = SpvCapability(5346);
828    pub const VulkanMemoryModelDeviceScopeKHR: SpvCapability = SpvCapability(5346);
829    pub const PhysicalStorageBufferAddresses: SpvCapability = SpvCapability(5347);
830    pub const PhysicalStorageBufferAddressesEXT: SpvCapability = SpvCapability(5347);
831    pub const ComputeDerivativeGroupLinearKHR: SpvCapability = SpvCapability(5350);
832    pub const ComputeDerivativeGroupLinearNV: SpvCapability = SpvCapability(5350);
833    pub const RayTracingProvisionalKHR: SpvCapability = SpvCapability(5353);
834    pub const CooperativeMatrixNV: SpvCapability = SpvCapability(5357);
835    pub const FragmentShaderSampleInterlockEXT: SpvCapability = SpvCapability(5363);
836    pub const FragmentShaderShadingRateInterlockEXT: SpvCapability = SpvCapability(5372);
837    pub const ShaderSMBuiltinsNV: SpvCapability = SpvCapability(5373);
838    pub const FragmentShaderPixelInterlockEXT: SpvCapability = SpvCapability(5378);
839    pub const DemoteToHelperInvocation: SpvCapability = SpvCapability(5379);
840    pub const DemoteToHelperInvocationEXT: SpvCapability = SpvCapability(5379);
841    pub const DisplacementMicromapNV: SpvCapability = SpvCapability(5380);
842    pub const RayTracingOpacityMicromapEXT: SpvCapability = SpvCapability(5381);
843    pub const ShaderInvocationReorderNV: SpvCapability = SpvCapability(5383);
844    pub const ShaderInvocationReorderEXT: SpvCapability = SpvCapability(5388);
845    pub const BindlessTextureNV: SpvCapability = SpvCapability(5390);
846    pub const RayQueryPositionFetchKHR: SpvCapability = SpvCapability(5391);
847    pub const CooperativeVectorNV: SpvCapability = SpvCapability(5394);
848    pub const AtomicFloat16VectorNV: SpvCapability = SpvCapability(5404);
849    pub const RayTracingDisplacementMicromapNV: SpvCapability = SpvCapability(5409);
850    pub const RawAccessChainsNV: SpvCapability = SpvCapability(5414);
851    pub const RayTracingSpheresGeometryNV: SpvCapability = SpvCapability(5418);
852    pub const RayTracingLinearSweptSpheresGeometryNV: SpvCapability = SpvCapability(5419);
853    pub const PushConstantBanksNV: SpvCapability = SpvCapability(5423);
854    pub const LongVectorEXT: SpvCapability = SpvCapability(5425);
855    pub const Shader64BitIndexingEXT: SpvCapability = SpvCapability(5426);
856    pub const CooperativeMatrixReductionsNV: SpvCapability = SpvCapability(5430);
857    pub const CooperativeMatrixConversionsNV: SpvCapability = SpvCapability(5431);
858    pub const CooperativeMatrixPerElementOperationsNV: SpvCapability = SpvCapability(5432);
859    pub const CooperativeMatrixTensorAddressingNV: SpvCapability = SpvCapability(5433);
860    pub const CooperativeMatrixBlockLoadsNV: SpvCapability = SpvCapability(5434);
861    pub const CooperativeVectorTrainingNV: SpvCapability = SpvCapability(5435);
862    pub const RayTracingClusterAccelerationStructureNV: SpvCapability = SpvCapability(5437);
863    pub const TensorAddressingNV: SpvCapability = SpvCapability(5439);
864    pub const SubgroupShuffleINTEL: SpvCapability = SpvCapability(5568);
865    pub const SubgroupBufferBlockIOINTEL: SpvCapability = SpvCapability(5569);
866    pub const SubgroupImageBlockIOINTEL: SpvCapability = SpvCapability(5570);
867    pub const SubgroupImageMediaBlockIOINTEL: SpvCapability = SpvCapability(5579);
868    pub const RoundToInfinityINTEL: SpvCapability = SpvCapability(5582);
869    pub const FloatingPointModeINTEL: SpvCapability = SpvCapability(5583);
870    pub const IntegerFunctions2INTEL: SpvCapability = SpvCapability(5584);
871    pub const FunctionPointersINTEL: SpvCapability = SpvCapability(5603);
872    pub const IndirectReferencesINTEL: SpvCapability = SpvCapability(5604);
873    pub const AsmINTEL: SpvCapability = SpvCapability(5606);
874    pub const AtomicFloat32MinMaxEXT: SpvCapability = SpvCapability(5612);
875    pub const AtomicFloat64MinMaxEXT: SpvCapability = SpvCapability(5613);
876    pub const AtomicFloat16MinMaxEXT: SpvCapability = SpvCapability(5616);
877    pub const VectorComputeINTEL: SpvCapability = SpvCapability(5617);
878    pub const VectorAnyINTEL: SpvCapability = SpvCapability(5619);
879    pub const ExpectAssumeKHR: SpvCapability = SpvCapability(5629);
880    pub const SubgroupAvcMotionEstimationINTEL: SpvCapability = SpvCapability(5696);
881    pub const SubgroupAvcMotionEstimationIntraINTEL: SpvCapability = SpvCapability(5697);
882    pub const SubgroupAvcMotionEstimationChromaINTEL: SpvCapability = SpvCapability(5698);
883    pub const VariableLengthArrayINTEL: SpvCapability = SpvCapability(5817);
884    pub const FunctionFloatControlINTEL: SpvCapability = SpvCapability(5821);
885    pub const FPGAMemoryAttributesALTERA: SpvCapability = SpvCapability(5824);
886    pub const FPGAMemoryAttributesINTEL: SpvCapability = SpvCapability(5824);
887    pub const FPFastMathModeINTEL: SpvCapability = SpvCapability(5837);
888    pub const ArbitraryPrecisionIntegersALTERA: SpvCapability = SpvCapability(5844);
889    pub const ArbitraryPrecisionIntegersINTEL: SpvCapability = SpvCapability(5844);
890    pub const ArbitraryPrecisionFloatingPointALTERA: SpvCapability = SpvCapability(5845);
891    pub const ArbitraryPrecisionFloatingPointINTEL: SpvCapability = SpvCapability(5845);
892    pub const UnstructuredLoopControlsINTEL: SpvCapability = SpvCapability(5886);
893    pub const FPGALoopControlsALTERA: SpvCapability = SpvCapability(5888);
894    pub const FPGALoopControlsINTEL: SpvCapability = SpvCapability(5888);
895    pub const KernelAttributesINTEL: SpvCapability = SpvCapability(5892);
896    pub const FPGAKernelAttributesINTEL: SpvCapability = SpvCapability(5897);
897    pub const FPGAMemoryAccessesALTERA: SpvCapability = SpvCapability(5898);
898    pub const FPGAMemoryAccessesINTEL: SpvCapability = SpvCapability(5898);
899    pub const FPGAClusterAttributesALTERA: SpvCapability = SpvCapability(5904);
900    pub const FPGAClusterAttributesINTEL: SpvCapability = SpvCapability(5904);
901    pub const LoopFuseALTERA: SpvCapability = SpvCapability(5906);
902    pub const LoopFuseINTEL: SpvCapability = SpvCapability(5906);
903    pub const FPGADSPControlALTERA: SpvCapability = SpvCapability(5908);
904    pub const FPGADSPControlINTEL: SpvCapability = SpvCapability(5908);
905    pub const MemoryAccessAliasingINTEL: SpvCapability = SpvCapability(5910);
906    pub const FPGAInvocationPipeliningAttributesALTERA: SpvCapability = SpvCapability(5916);
907    pub const FPGAInvocationPipeliningAttributesINTEL: SpvCapability = SpvCapability(5916);
908    pub const FPGABufferLocationALTERA: SpvCapability = SpvCapability(5920);
909    pub const FPGABufferLocationINTEL: SpvCapability = SpvCapability(5920);
910    pub const ArbitraryPrecisionFixedPointALTERA: SpvCapability = SpvCapability(5922);
911    pub const ArbitraryPrecisionFixedPointINTEL: SpvCapability = SpvCapability(5922);
912    pub const USMStorageClassesALTERA: SpvCapability = SpvCapability(5935);
913    pub const USMStorageClassesINTEL: SpvCapability = SpvCapability(5935);
914    pub const RuntimeAlignedAttributeALTERA: SpvCapability = SpvCapability(5939);
915    pub const RuntimeAlignedAttributeINTEL: SpvCapability = SpvCapability(5939);
916    pub const IOPipesALTERA: SpvCapability = SpvCapability(5943);
917    pub const IOPipesINTEL: SpvCapability = SpvCapability(5943);
918    pub const BlockingPipesALTERA: SpvCapability = SpvCapability(5945);
919    pub const BlockingPipesINTEL: SpvCapability = SpvCapability(5945);
920    pub const FPGARegALTERA: SpvCapability = SpvCapability(5948);
921    pub const FPGARegINTEL: SpvCapability = SpvCapability(5948);
922    pub const DotProductInputAll: SpvCapability = SpvCapability(6016);
923    pub const DotProductInputAllKHR: SpvCapability = SpvCapability(6016);
924    pub const DotProductInput4x8Bit: SpvCapability = SpvCapability(6017);
925    pub const DotProductInput4x8BitKHR: SpvCapability = SpvCapability(6017);
926    pub const DotProductInput4x8BitPacked: SpvCapability = SpvCapability(6018);
927    pub const DotProductInput4x8BitPackedKHR: SpvCapability = SpvCapability(6018);
928    pub const DotProduct: SpvCapability = SpvCapability(6019);
929    pub const DotProductKHR: SpvCapability = SpvCapability(6019);
930    pub const RayCullMaskKHR: SpvCapability = SpvCapability(6020);
931    pub const CooperativeMatrixKHR: SpvCapability = SpvCapability(6022);
932    pub const ReplicatedCompositesEXT: SpvCapability = SpvCapability(6024);
933    pub const BitInstructions: SpvCapability = SpvCapability(6025);
934    pub const GroupNonUniformRotateKHR: SpvCapability = SpvCapability(6026);
935    pub const FloatControls2: SpvCapability = SpvCapability(6029);
936    pub const FMAKHR: SpvCapability = SpvCapability(6030);
937    pub const AtomicFloat32AddEXT: SpvCapability = SpvCapability(6033);
938    pub const AtomicFloat64AddEXT: SpvCapability = SpvCapability(6034);
939    pub const LongCompositesINTEL: SpvCapability = SpvCapability(6089);
940    pub const OptNoneEXT: SpvCapability = SpvCapability(6094);
941    pub const OptNoneINTEL: SpvCapability = SpvCapability(6094);
942    pub const AtomicFloat16AddEXT: SpvCapability = SpvCapability(6095);
943    pub const DebugInfoModuleINTEL: SpvCapability = SpvCapability(6114);
944    pub const BFloat16ConversionINTEL: SpvCapability = SpvCapability(6115);
945    pub const SplitBarrierINTEL: SpvCapability = SpvCapability(6141);
946    pub const ArithmeticFenceEXT: SpvCapability = SpvCapability(6144);
947    pub const FPGAClusterAttributesV2ALTERA: SpvCapability = SpvCapability(6150);
948    pub const FPGAClusterAttributesV2INTEL: SpvCapability = SpvCapability(6150);
949    pub const FPGAKernelAttributesv2INTEL: SpvCapability = SpvCapability(6161);
950    pub const TaskSequenceALTERA: SpvCapability = SpvCapability(6162);
951    pub const TaskSequenceINTEL: SpvCapability = SpvCapability(6162);
952    pub const FPMaxErrorINTEL: SpvCapability = SpvCapability(6169);
953    pub const FPGALatencyControlALTERA: SpvCapability = SpvCapability(6171);
954    pub const FPGALatencyControlINTEL: SpvCapability = SpvCapability(6171);
955    pub const FPGAArgumentInterfacesALTERA: SpvCapability = SpvCapability(6174);
956    pub const FPGAArgumentInterfacesINTEL: SpvCapability = SpvCapability(6174);
957    pub const GlobalVariableHostAccessINTEL: SpvCapability = SpvCapability(6187);
958    pub const GlobalVariableFPGADecorationsALTERA: SpvCapability = SpvCapability(6189);
959    pub const GlobalVariableFPGADecorationsINTEL: SpvCapability = SpvCapability(6189);
960    pub const SubgroupBufferPrefetchINTEL: SpvCapability = SpvCapability(6220);
961    pub const Subgroup2DBlockIOINTEL: SpvCapability = SpvCapability(6228);
962    pub const Subgroup2DBlockTransformINTEL: SpvCapability = SpvCapability(6229);
963    pub const Subgroup2DBlockTransposeINTEL: SpvCapability = SpvCapability(6230);
964    pub const SubgroupMatrixMultiplyAccumulateINTEL: SpvCapability = SpvCapability(6236);
965    pub const TernaryBitwiseFunctionINTEL: SpvCapability = SpvCapability(6241);
966    pub const UntypedVariableLengthArrayINTEL: SpvCapability = SpvCapability(6243);
967    pub const SpecConditionalINTEL: SpvCapability = SpvCapability(6245);
968    pub const FunctionVariantsINTEL: SpvCapability = SpvCapability(6246);
969    pub const GroupUniformArithmeticKHR: SpvCapability = SpvCapability(6400);
970    pub const TensorFloat32RoundingINTEL: SpvCapability = SpvCapability(6425);
971    pub const MaskedGatherScatterINTEL: SpvCapability = SpvCapability(6427);
972    pub const CacheControlsINTEL: SpvCapability = SpvCapability(6441);
973    pub const RegisterLimitsINTEL: SpvCapability = SpvCapability(6460);
974    pub const BindlessImagesINTEL: SpvCapability = SpvCapability(6528);
975    pub const DotProductFloat16AccFloat32VALVE: SpvCapability = SpvCapability(6912);
976    pub const DotProductFloat16AccFloat16VALVE: SpvCapability = SpvCapability(6913);
977    pub const DotProductBFloat16AccVALVE: SpvCapability = SpvCapability(6914);
978    pub const DotProductFloat8AccFloat32VALVE: SpvCapability = SpvCapability(6915);
979    pub const Max: SpvCapability = SpvCapability(2147483647);
980}
981#[repr(transparent)]
982#[derive(
983    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
984)]
985pub struct SpvCapability(pub u32);
986unsafe extern "C" {
987    pub fn spvc_get_version(
988        major: *mut crate::ctypes::c_uint,
989        minor: *mut crate::ctypes::c_uint,
990        patch: *mut crate::ctypes::c_uint,
991    );
992}
993unsafe extern "C" {
994    pub fn spvc_get_commit_revision_and_timestamp() -> *const crate::ctypes::c_char;
995}
996#[repr(C)]
997#[derive(Debug, Copy, Clone)]
998pub struct spvc_context_s {
999    _unused: [u8; 0],
1000}
1001pub type spvc_context = *mut spvc_context_s;
1002#[repr(C)]
1003#[derive(Debug, Copy, Clone)]
1004pub struct spvc_parsed_ir_s {
1005    _unused: [u8; 0],
1006}
1007pub type spvc_parsed_ir = *mut spvc_parsed_ir_s;
1008#[repr(C)]
1009#[derive(Debug, Copy, Clone)]
1010pub struct spvc_compiler_s {
1011    _unused: [u8; 0],
1012}
1013pub type spvc_compiler = *mut spvc_compiler_s;
1014#[repr(C)]
1015#[derive(Debug, Copy, Clone)]
1016pub struct spvc_compiler_options_s {
1017    _unused: [u8; 0],
1018}
1019pub type spvc_compiler_options = *mut spvc_compiler_options_s;
1020#[repr(C)]
1021#[derive(Debug, Copy, Clone)]
1022pub struct spvc_resources_s {
1023    _unused: [u8; 0],
1024}
1025pub type spvc_resources = *mut spvc_resources_s;
1026#[repr(C)]
1027#[derive(Debug, Copy, Clone)]
1028pub struct spvc_type_s {
1029    _unused: [u8; 0],
1030}
1031pub type spvc_type = *const spvc_type_s;
1032#[repr(C)]
1033#[derive(Debug, Copy, Clone)]
1034pub struct spvc_constant_s {
1035    _unused: [u8; 0],
1036}
1037pub type spvc_constant = *mut spvc_constant_s;
1038#[repr(C)]
1039#[derive(Debug, Copy, Clone)]
1040pub struct spvc_set_s {
1041    _unused: [u8; 0],
1042}
1043pub type spvc_set = *const spvc_set_s;
1044#[repr(transparent)]
1045#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1046pub struct TypeId(pub SpvId);
1047#[repr(transparent)]
1048#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1049pub struct VariableId(pub SpvId);
1050#[repr(transparent)]
1051#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1052pub struct ConstantId(pub SpvId);
1053#[repr(C)]
1054#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1055pub struct spvc_reflected_resource {
1056    pub id: VariableId,
1057    pub base_type_id: TypeId,
1058    pub type_id: TypeId,
1059    pub name: *const crate::ctypes::c_char,
1060}
1061#[repr(C)]
1062#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1063pub struct spvc_reflected_builtin_resource {
1064    pub builtin: SpvBuiltIn,
1065    pub value_type_id: TypeId,
1066    pub resource: spvc_reflected_resource,
1067}
1068#[repr(C)]
1069#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1070pub struct spvc_entry_point {
1071    pub execution_model: SpvExecutionModel,
1072    pub name: *const crate::ctypes::c_char,
1073}
1074#[repr(C)]
1075#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1076pub struct spvc_combined_image_sampler {
1077    pub combined_id: VariableId,
1078    pub image_id: VariableId,
1079    pub sampler_id: VariableId,
1080}
1081#[repr(C)]
1082#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1083pub struct spvc_specialization_constant {
1084    pub id: ConstantId,
1085    pub constant_id: crate::ctypes::c_uint,
1086}
1087#[repr(C)]
1088#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1089pub struct BufferRange {
1090    pub index: crate::ctypes::c_uint,
1091    pub offset: usize,
1092    pub range: usize,
1093}
1094#[repr(C)]
1095#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1096pub struct HlslRootConstants {
1097    pub start: crate::ctypes::c_uint,
1098    pub end: crate::ctypes::c_uint,
1099    pub binding: crate::ctypes::c_uint,
1100    pub space: crate::ctypes::c_uint,
1101}
1102#[repr(C)]
1103#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1104pub struct HlslVertexAttributeRemap {
1105    pub location: crate::ctypes::c_uint,
1106    pub semantic: *const crate::ctypes::c_char,
1107}
1108#[repr(i32)]
1109#[must_use]
1110#[derive(
1111    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1112)]
1113pub enum spvc_result {
1114    SPVC_SUCCESS = 0,
1115    SPVC_ERROR_INVALID_SPIRV = -1,
1116    SPVC_ERROR_UNSUPPORTED_SPIRV = -2,
1117    SPVC_ERROR_OUT_OF_MEMORY = -3,
1118    SPVC_ERROR_INVALID_ARGUMENT = -4,
1119}
1120#[repr(u32)]
1121#[derive(
1122    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1123)]
1124pub enum spvc_capture_mode {
1125    Copy = 0,
1126    TakeOwnership = 1,
1127}
1128#[repr(u32)]
1129#[derive(
1130    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1131)]
1132pub enum CompilerBackend {
1133    None = 0,
1134    Glsl = 1,
1135    Hlsl = 2,
1136    Msl = 3,
1137    Cpp = 4,
1138    Json = 5,
1139}
1140#[repr(u32)]
1141#[non_exhaustive]
1142#[derive(
1143    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1144)]
1145pub enum ResourceType {
1146    Unknown = 0,
1147    UniformBuffer = 1,
1148    StorageBuffer = 2,
1149    StageInput = 3,
1150    StageOutput = 4,
1151    SubpassInput = 5,
1152    StorageImage = 6,
1153    SampledImage = 7,
1154    AtomicCounter = 8,
1155    PushConstant = 9,
1156    SeparateImage = 10,
1157    SeparateSamplers = 11,
1158    AccelerationStructure = 12,
1159    RayQuery = 13,
1160    ShaderRecordBuffer = 14,
1161    GlPlainUniform = 15,
1162    Tensor = 16,
1163}
1164#[repr(u32)]
1165#[derive(
1166    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1167)]
1168pub enum BuiltinResourceType {
1169    Unknown = 0,
1170    StageInput = 1,
1171    StageOutput = 2,
1172}
1173#[repr(u32)]
1174#[derive(
1175    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1176)]
1177pub enum BaseType {
1178    Unknown = 0,
1179    Void = 1,
1180    Boolean = 2,
1181    Int8 = 3,
1182    Uint8 = 4,
1183    Int16 = 5,
1184    Uint16 = 6,
1185    Int32 = 7,
1186    Uint32 = 8,
1187    Int64 = 9,
1188    Uint64 = 10,
1189    AtomicCounter = 11,
1190    Fp16 = 12,
1191    Fp32 = 13,
1192    Fp64 = 14,
1193    Struct = 15,
1194    Image = 16,
1195    SampledImage = 17,
1196    Sampler = 18,
1197    AccelerationStructure = 19,
1198}
1199#[repr(u32)]
1200#[derive(
1201    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1202)]
1203pub enum MslPlatform {
1204    Ios = 0,
1205    Macos = 1,
1206}
1207#[repr(u32)]
1208#[derive(
1209    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1210)]
1211pub enum MslIndexType {
1212    None = 0,
1213    Uint16 = 1,
1214    Uint32 = 2,
1215}
1216impl MslShaderVariableFormat {
1217    pub const SPVC_MSL_VERTEX_FORMAT_OTHER: MslShaderVariableFormat =
1218        MslShaderVariableFormat::Other;
1219}
1220impl MslShaderVariableFormat {
1221    pub const SPVC_MSL_VERTEX_FORMAT_UINT8: MslShaderVariableFormat =
1222        MslShaderVariableFormat::Uint8;
1223}
1224impl MslShaderVariableFormat {
1225    pub const SPVC_MSL_VERTEX_FORMAT_UINT16: MslShaderVariableFormat =
1226        MslShaderVariableFormat::Uint16;
1227}
1228impl MslShaderVariableFormat {
1229    pub const SPVC_MSL_SHADER_INPUT_FORMAT_OTHER: MslShaderVariableFormat =
1230        MslShaderVariableFormat::Other;
1231}
1232impl MslShaderVariableFormat {
1233    pub const SPVC_MSL_SHADER_INPUT_FORMAT_UINT8: MslShaderVariableFormat =
1234        MslShaderVariableFormat::Uint8;
1235}
1236impl MslShaderVariableFormat {
1237    pub const SPVC_MSL_SHADER_INPUT_FORMAT_UINT16: MslShaderVariableFormat =
1238        MslShaderVariableFormat::Uint16;
1239}
1240impl MslShaderVariableFormat {
1241    pub const SPVC_MSL_SHADER_INPUT_FORMAT_ANY16: MslShaderVariableFormat =
1242        MslShaderVariableFormat::Any16;
1243}
1244impl MslShaderVariableFormat {
1245    pub const SPVC_MSL_SHADER_INPUT_FORMAT_ANY32: MslShaderVariableFormat =
1246        MslShaderVariableFormat::Any32;
1247}
1248#[repr(u32)]
1249#[non_exhaustive]
1250#[derive(
1251    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1252)]
1253pub enum MslShaderVariableFormat {
1254    Other = 0,
1255    Uint8 = 1,
1256    Uint16 = 2,
1257    Any16 = 3,
1258    Any32 = 4,
1259}
1260pub use self::MslShaderVariableFormat as MslShaderInputFormat;
1261pub use self::MslShaderVariableFormat as MslVertexFormat;
1262#[repr(C)]
1263pub struct MslVertexAttribute {
1264    pub location: crate::ctypes::c_uint,
1265    pub msl_buffer: crate::ctypes::c_uint,
1266    pub msl_offset: crate::ctypes::c_uint,
1267    pub msl_stride: crate::ctypes::c_uint,
1268    pub per_instance: crate::ctypes::spvc_bool,
1269    pub format: MslVertexFormat,
1270    pub builtin: SpvBuiltIn,
1271}
1272unsafe extern "C" {
1273    pub fn spvc_msl_vertex_attribute_init(attr: *mut MslVertexAttribute);
1274}
1275#[repr(C)]
1276#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1277pub struct MslShaderInterfaceVar {
1278    pub location: crate::ctypes::c_uint,
1279    pub format: MslVertexFormat,
1280    pub builtin: SpvBuiltIn,
1281    pub vecsize: crate::ctypes::c_uint,
1282}
1283pub type MslShaderInput = MslShaderInterfaceVar;
1284unsafe extern "C" {
1285    pub fn spvc_msl_shader_interface_var_init(var: *mut MslShaderInterfaceVar);
1286}
1287unsafe extern "C" {
1288    pub fn spvc_msl_shader_input_init(input: *mut MslShaderInput);
1289}
1290#[repr(u32)]
1291#[derive(
1292    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1293)]
1294pub enum MslShaderVariableRate {
1295    PerVertex = 0,
1296    PerPrimitive = 1,
1297    PerPatch = 2,
1298}
1299#[repr(C)]
1300#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1301pub struct MslShaderInterfaceVar2 {
1302    pub location: crate::ctypes::c_uint,
1303    pub format: MslShaderVariableFormat,
1304    pub builtin: SpvBuiltIn,
1305    pub vecsize: crate::ctypes::c_uint,
1306    pub rate: MslShaderVariableRate,
1307}
1308unsafe extern "C" {
1309    pub fn spvc_msl_shader_interface_var_init_2(var: *mut MslShaderInterfaceVar2);
1310}
1311#[repr(C)]
1312#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1313pub struct MslResourceBinding {
1314    pub stage: SpvExecutionModel,
1315    pub desc_set: crate::ctypes::c_uint,
1316    pub binding: crate::ctypes::c_uint,
1317    pub msl_buffer: crate::ctypes::c_uint,
1318    pub msl_texture: crate::ctypes::c_uint,
1319    pub msl_sampler: crate::ctypes::c_uint,
1320}
1321#[repr(C)]
1322#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1323pub struct MslResourceBinding2 {
1324    pub stage: SpvExecutionModel,
1325    pub desc_set: crate::ctypes::c_uint,
1326    pub binding: crate::ctypes::c_uint,
1327    pub count: crate::ctypes::c_uint,
1328    pub msl_buffer: crate::ctypes::c_uint,
1329    pub msl_texture: crate::ctypes::c_uint,
1330    pub msl_sampler: crate::ctypes::c_uint,
1331}
1332unsafe extern "C" {
1333    pub fn spvc_msl_resource_binding_init(binding: *mut MslResourceBinding);
1334}
1335unsafe extern "C" {
1336    pub fn spvc_msl_resource_binding_init_2(binding: *mut MslResourceBinding2);
1337}
1338unsafe extern "C" {
1339    pub fn spvc_msl_get_aux_buffer_struct_version() -> crate::ctypes::c_uint;
1340}
1341#[repr(u32)]
1342#[derive(
1343    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1344)]
1345pub enum MslSamplerCoord {
1346    Normalized = 0,
1347    Pixel = 1,
1348}
1349#[repr(u32)]
1350#[derive(
1351    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1352)]
1353pub enum MslSamplerFilter {
1354    Nearest = 0,
1355    Linear = 1,
1356}
1357#[repr(u32)]
1358#[derive(
1359    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1360)]
1361pub enum MslSamplerMipFilter {
1362    None = 0,
1363    Nearest = 1,
1364    Linear = 2,
1365}
1366#[repr(u32)]
1367#[derive(
1368    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1369)]
1370pub enum MslSamplerAddress {
1371    ClampToZero = 0,
1372    ClampToEdge = 1,
1373    ClampToBorder = 2,
1374    Repeat = 3,
1375    MirroredRepeat = 4,
1376}
1377#[repr(u32)]
1378#[derive(
1379    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1380)]
1381pub enum MslSamplerCompareFunc {
1382    Never = 0,
1383    Less = 1,
1384    LessEqual = 2,
1385    Greater = 3,
1386    GreaterEqual = 4,
1387    Equal = 5,
1388    NotEqual = 6,
1389    Always = 7,
1390}
1391#[repr(u32)]
1392#[derive(
1393    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1394)]
1395pub enum MslSamplerBorderColor {
1396    TransparentBlack = 0,
1397    OpaqueBlack = 1,
1398    OpaqueWhite = 2,
1399}
1400#[repr(u32)]
1401#[derive(
1402    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1403)]
1404pub enum MslFormatResolution {
1405    FormatResolution444 = 0,
1406    FormatResolution422 = 1,
1407    FormatResolution420 = 2,
1408}
1409#[repr(u32)]
1410#[derive(
1411    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1412)]
1413pub enum MslChromaLocation {
1414    CositedEven = 0,
1415    Midpoint = 1,
1416}
1417#[repr(u32)]
1418#[derive(
1419    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1420)]
1421pub enum MslComponentSwizzle {
1422    Identity = 0,
1423    Zero = 1,
1424    One = 2,
1425    R = 3,
1426    G = 4,
1427    B = 5,
1428    A = 6,
1429}
1430#[repr(u32)]
1431#[derive(
1432    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1433)]
1434pub enum MslSamplerYcbcrModelConversion {
1435    RgbIdentity = 0,
1436    YcbcrIdentity = 1,
1437    YcbcrBt709 = 2,
1438    YcbcrBt601 = 3,
1439    YcbcrBt2020 = 4,
1440}
1441#[repr(u32)]
1442#[derive(
1443    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1444)]
1445pub enum MslSamplerYcbcrRange {
1446    ItuFull = 0,
1447    ItuNarrow = 1,
1448}
1449#[repr(C)]
1450pub struct MslConstexprSampler {
1451    pub coord: MslSamplerCoord,
1452    pub min_filter: MslSamplerFilter,
1453    pub mag_filter: MslSamplerFilter,
1454    pub mip_filter: MslSamplerMipFilter,
1455    pub s_address: MslSamplerAddress,
1456    pub t_address: MslSamplerAddress,
1457    pub r_address: MslSamplerAddress,
1458    pub compare_func: MslSamplerCompareFunc,
1459    pub border_color: MslSamplerBorderColor,
1460    pub lod_clamp_min: f32,
1461    pub lod_clamp_max: f32,
1462    pub max_anisotropy: crate::ctypes::c_int,
1463    pub compare_enable: crate::ctypes::spvc_bool,
1464    pub lod_clamp_enable: crate::ctypes::spvc_bool,
1465    pub anisotropy_enable: crate::ctypes::spvc_bool,
1466}
1467unsafe extern "C" {
1468    pub fn spvc_msl_constexpr_sampler_init(sampler: *mut MslConstexprSampler);
1469}
1470#[repr(C)]
1471#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1472pub struct MslSamplerYcbcrConversion {
1473    pub planes: crate::ctypes::c_uint,
1474    pub resolution: MslFormatResolution,
1475    pub chroma_filter: MslSamplerFilter,
1476    pub x_chroma_offset: MslChromaLocation,
1477    pub y_chroma_offset: MslChromaLocation,
1478    pub swizzle: [MslComponentSwizzle; 4usize],
1479    pub ycbcr_model: MslSamplerYcbcrModelConversion,
1480    pub ycbcr_range: MslSamplerYcbcrRange,
1481    pub bpc: crate::ctypes::c_uint,
1482}
1483unsafe extern "C" {
1484    pub fn spvc_msl_sampler_ycbcr_conversion_init(conv: *mut MslSamplerYcbcrConversion);
1485}
1486impl HlslBindingFlagBits {
1487    pub const SPVC_HLSL_BINDING_AUTO_NONE_BIT: HlslBindingFlagBits = HlslBindingFlagBits(0);
1488    pub const SPVC_HLSL_BINDING_AUTO_PUSH_CONSTANT_BIT: HlslBindingFlagBits =
1489        HlslBindingFlagBits(1);
1490    pub const SPVC_HLSL_BINDING_AUTO_CBV_BIT: HlslBindingFlagBits = HlslBindingFlagBits(2);
1491    pub const SPVC_HLSL_BINDING_AUTO_SRV_BIT: HlslBindingFlagBits = HlslBindingFlagBits(4);
1492    pub const SPVC_HLSL_BINDING_AUTO_UAV_BIT: HlslBindingFlagBits = HlslBindingFlagBits(8);
1493    pub const SPVC_HLSL_BINDING_AUTO_SAMPLER_BIT: HlslBindingFlagBits = HlslBindingFlagBits(16);
1494    pub const SPVC_HLSL_BINDING_AUTO_ALL: HlslBindingFlagBits = HlslBindingFlagBits(2147483647);
1495}
1496impl ::std::ops::BitOr<HlslBindingFlagBits> for HlslBindingFlagBits {
1497    type Output = Self;
1498    #[inline]
1499    fn bitor(self, other: Self) -> Self {
1500        HlslBindingFlagBits(self.0 | other.0)
1501    }
1502}
1503impl ::std::ops::BitOrAssign for HlslBindingFlagBits {
1504    #[inline]
1505    fn bitor_assign(&mut self, rhs: HlslBindingFlagBits) {
1506        self.0 |= rhs.0;
1507    }
1508}
1509impl ::std::ops::BitAnd<HlslBindingFlagBits> for HlslBindingFlagBits {
1510    type Output = Self;
1511    #[inline]
1512    fn bitand(self, other: Self) -> Self {
1513        HlslBindingFlagBits(self.0 & other.0)
1514    }
1515}
1516impl ::std::ops::BitAndAssign for HlslBindingFlagBits {
1517    #[inline]
1518    fn bitand_assign(&mut self, rhs: HlslBindingFlagBits) {
1519        self.0 &= rhs.0;
1520    }
1521}
1522#[repr(transparent)]
1523#[derive(
1524    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1525)]
1526pub struct HlslBindingFlagBits(pub u32);
1527#[repr(transparent)]
1528#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1529pub struct HlslBindingFlags(pub crate::ctypes::c_uint);
1530#[repr(C)]
1531#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1532pub struct HlslResourceBindingMapping {
1533    pub register_space: crate::ctypes::c_uint,
1534    pub register_binding: crate::ctypes::c_uint,
1535}
1536#[repr(C)]
1537#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1538pub struct HlslResourceBinding {
1539    pub stage: SpvExecutionModel,
1540    pub desc_set: crate::ctypes::c_uint,
1541    pub binding: crate::ctypes::c_uint,
1542    pub cbv: HlslResourceBindingMapping,
1543    pub uav: HlslResourceBindingMapping,
1544    pub srv: HlslResourceBindingMapping,
1545    pub sampler: HlslResourceBindingMapping,
1546}
1547unsafe extern "C" {
1548    pub fn spvc_hlsl_resource_binding_init(binding: *mut HlslResourceBinding);
1549}
1550impl spvc_compiler_option {
1551    pub const SPVC_COMPILER_OPTION_UNKNOWN: spvc_compiler_option = spvc_compiler_option(0);
1552    pub const SPVC_COMPILER_OPTION_FORCE_TEMPORARY: spvc_compiler_option =
1553        spvc_compiler_option(16777217);
1554    pub const SPVC_COMPILER_OPTION_FLATTEN_MULTIDIMENSIONAL_ARRAYS: spvc_compiler_option =
1555        spvc_compiler_option(16777218);
1556    pub const SPVC_COMPILER_OPTION_FIXUP_DEPTH_CONVENTION: spvc_compiler_option =
1557        spvc_compiler_option(16777219);
1558    pub const SPVC_COMPILER_OPTION_FLIP_VERTEX_Y: spvc_compiler_option =
1559        spvc_compiler_option(16777220);
1560    pub const SPVC_COMPILER_OPTION_GLSL_SUPPORT_NONZERO_BASE_INSTANCE: spvc_compiler_option =
1561        spvc_compiler_option(33554437);
1562    pub const SPVC_COMPILER_OPTION_GLSL_SEPARATE_SHADER_OBJECTS: spvc_compiler_option =
1563        spvc_compiler_option(33554438);
1564    pub const SPVC_COMPILER_OPTION_GLSL_ENABLE_420PACK_EXTENSION: spvc_compiler_option =
1565        spvc_compiler_option(33554439);
1566    pub const SPVC_COMPILER_OPTION_GLSL_VERSION: spvc_compiler_option =
1567        spvc_compiler_option(33554440);
1568    pub const SPVC_COMPILER_OPTION_GLSL_ES: spvc_compiler_option = spvc_compiler_option(33554441);
1569    pub const SPVC_COMPILER_OPTION_GLSL_VULKAN_SEMANTICS: spvc_compiler_option =
1570        spvc_compiler_option(33554442);
1571    pub const SPVC_COMPILER_OPTION_GLSL_ES_DEFAULT_FLOAT_PRECISION_HIGHP: spvc_compiler_option =
1572        spvc_compiler_option(33554443);
1573    pub const SPVC_COMPILER_OPTION_GLSL_ES_DEFAULT_INT_PRECISION_HIGHP: spvc_compiler_option =
1574        spvc_compiler_option(33554444);
1575    pub const SPVC_COMPILER_OPTION_HLSL_SHADER_MODEL: spvc_compiler_option =
1576        spvc_compiler_option(67108877);
1577    pub const SPVC_COMPILER_OPTION_HLSL_POINT_SIZE_COMPAT: spvc_compiler_option =
1578        spvc_compiler_option(67108878);
1579    pub const SPVC_COMPILER_OPTION_HLSL_POINT_COORD_COMPAT: spvc_compiler_option =
1580        spvc_compiler_option(67108879);
1581    pub const SPVC_COMPILER_OPTION_HLSL_SUPPORT_NONZERO_BASE_VERTEX_BASE_INSTANCE:
1582        spvc_compiler_option = spvc_compiler_option(67108880);
1583    pub const SPVC_COMPILER_OPTION_MSL_VERSION: spvc_compiler_option =
1584        spvc_compiler_option(134217745);
1585    pub const SPVC_COMPILER_OPTION_MSL_TEXEL_BUFFER_TEXTURE_WIDTH: spvc_compiler_option =
1586        spvc_compiler_option(134217746);
1587    pub const SPVC_COMPILER_OPTION_MSL_AUX_BUFFER_INDEX: spvc_compiler_option =
1588        spvc_compiler_option(134217747);
1589    pub const SPVC_COMPILER_OPTION_MSL_SWIZZLE_BUFFER_INDEX: spvc_compiler_option =
1590        spvc_compiler_option(134217747);
1591    pub const SPVC_COMPILER_OPTION_MSL_INDIRECT_PARAMS_BUFFER_INDEX: spvc_compiler_option =
1592        spvc_compiler_option(134217748);
1593    pub const SPVC_COMPILER_OPTION_MSL_SHADER_OUTPUT_BUFFER_INDEX: spvc_compiler_option =
1594        spvc_compiler_option(134217749);
1595    pub const SPVC_COMPILER_OPTION_MSL_SHADER_PATCH_OUTPUT_BUFFER_INDEX: spvc_compiler_option =
1596        spvc_compiler_option(134217750);
1597    pub const SPVC_COMPILER_OPTION_MSL_SHADER_TESS_FACTOR_OUTPUT_BUFFER_INDEX:
1598        spvc_compiler_option = spvc_compiler_option(134217751);
1599    pub const SPVC_COMPILER_OPTION_MSL_SHADER_INPUT_WORKGROUP_INDEX: spvc_compiler_option =
1600        spvc_compiler_option(134217752);
1601    pub const SPVC_COMPILER_OPTION_MSL_ENABLE_POINT_SIZE_BUILTIN: spvc_compiler_option =
1602        spvc_compiler_option(134217753);
1603    pub const SPVC_COMPILER_OPTION_MSL_DISABLE_RASTERIZATION: spvc_compiler_option =
1604        spvc_compiler_option(134217754);
1605    pub const SPVC_COMPILER_OPTION_MSL_CAPTURE_OUTPUT_TO_BUFFER: spvc_compiler_option =
1606        spvc_compiler_option(134217755);
1607    pub const SPVC_COMPILER_OPTION_MSL_SWIZZLE_TEXTURE_SAMPLES: spvc_compiler_option =
1608        spvc_compiler_option(134217756);
1609    pub const SPVC_COMPILER_OPTION_MSL_PAD_FRAGMENT_OUTPUT_COMPONENTS: spvc_compiler_option =
1610        spvc_compiler_option(134217757);
1611    pub const SPVC_COMPILER_OPTION_MSL_TESS_DOMAIN_ORIGIN_LOWER_LEFT: spvc_compiler_option =
1612        spvc_compiler_option(134217758);
1613    pub const SPVC_COMPILER_OPTION_MSL_PLATFORM: spvc_compiler_option =
1614        spvc_compiler_option(134217759);
1615    pub const SPVC_COMPILER_OPTION_MSL_ARGUMENT_BUFFERS: spvc_compiler_option =
1616        spvc_compiler_option(134217760);
1617    pub const SPVC_COMPILER_OPTION_GLSL_EMIT_PUSH_CONSTANT_AS_UNIFORM_BUFFER: spvc_compiler_option =
1618        spvc_compiler_option(33554465);
1619    pub const SPVC_COMPILER_OPTION_MSL_TEXTURE_BUFFER_NATIVE: spvc_compiler_option =
1620        spvc_compiler_option(134217762);
1621    pub const SPVC_COMPILER_OPTION_GLSL_EMIT_UNIFORM_BUFFER_AS_PLAIN_UNIFORMS:
1622        spvc_compiler_option = spvc_compiler_option(33554467);
1623    pub const SPVC_COMPILER_OPTION_MSL_BUFFER_SIZE_BUFFER_INDEX: spvc_compiler_option =
1624        spvc_compiler_option(134217764);
1625    pub const SPVC_COMPILER_OPTION_EMIT_LINE_DIRECTIVES: spvc_compiler_option =
1626        spvc_compiler_option(16777253);
1627    pub const SPVC_COMPILER_OPTION_MSL_MULTIVIEW: spvc_compiler_option =
1628        spvc_compiler_option(134217766);
1629    pub const SPVC_COMPILER_OPTION_MSL_VIEW_MASK_BUFFER_INDEX: spvc_compiler_option =
1630        spvc_compiler_option(134217767);
1631    pub const SPVC_COMPILER_OPTION_MSL_DEVICE_INDEX: spvc_compiler_option =
1632        spvc_compiler_option(134217768);
1633    pub const SPVC_COMPILER_OPTION_MSL_VIEW_INDEX_FROM_DEVICE_INDEX: spvc_compiler_option =
1634        spvc_compiler_option(134217769);
1635    pub const SPVC_COMPILER_OPTION_MSL_DISPATCH_BASE: spvc_compiler_option =
1636        spvc_compiler_option(134217770);
1637    pub const SPVC_COMPILER_OPTION_MSL_DYNAMIC_OFFSETS_BUFFER_INDEX: spvc_compiler_option =
1638        spvc_compiler_option(134217771);
1639    pub const SPVC_COMPILER_OPTION_MSL_TEXTURE_1D_AS_2D: spvc_compiler_option =
1640        spvc_compiler_option(134217772);
1641    pub const SPVC_COMPILER_OPTION_MSL_ENABLE_BASE_INDEX_ZERO: spvc_compiler_option =
1642        spvc_compiler_option(134217773);
1643    pub const SPVC_COMPILER_OPTION_MSL_IOS_FRAMEBUFFER_FETCH_SUBPASS: spvc_compiler_option =
1644        spvc_compiler_option(134217774);
1645    pub const SPVC_COMPILER_OPTION_MSL_FRAMEBUFFER_FETCH_SUBPASS: spvc_compiler_option =
1646        spvc_compiler_option(134217774);
1647    pub const SPVC_COMPILER_OPTION_MSL_INVARIANT_FP_MATH: spvc_compiler_option =
1648        spvc_compiler_option(134217775);
1649    pub const SPVC_COMPILER_OPTION_MSL_EMULATE_CUBEMAP_ARRAY: spvc_compiler_option =
1650        spvc_compiler_option(134217776);
1651    pub const SPVC_COMPILER_OPTION_MSL_ENABLE_DECORATION_BINDING: spvc_compiler_option =
1652        spvc_compiler_option(134217777);
1653    pub const SPVC_COMPILER_OPTION_MSL_FORCE_ACTIVE_ARGUMENT_BUFFER_RESOURCES:
1654        spvc_compiler_option = spvc_compiler_option(134217778);
1655    pub const SPVC_COMPILER_OPTION_MSL_FORCE_NATIVE_ARRAYS: spvc_compiler_option =
1656        spvc_compiler_option(134217779);
1657    pub const SPVC_COMPILER_OPTION_ENABLE_STORAGE_IMAGE_QUALIFIER_DEDUCTION: spvc_compiler_option =
1658        spvc_compiler_option(16777268);
1659    pub const SPVC_COMPILER_OPTION_HLSL_FORCE_STORAGE_BUFFER_AS_UAV: spvc_compiler_option =
1660        spvc_compiler_option(67108917);
1661    pub const SPVC_COMPILER_OPTION_FORCE_ZERO_INITIALIZED_VARIABLES: spvc_compiler_option =
1662        spvc_compiler_option(16777270);
1663    pub const SPVC_COMPILER_OPTION_HLSL_NONWRITABLE_UAV_TEXTURE_AS_SRV: spvc_compiler_option =
1664        spvc_compiler_option(67108919);
1665    pub const SPVC_COMPILER_OPTION_MSL_ENABLE_FRAG_OUTPUT_MASK: spvc_compiler_option =
1666        spvc_compiler_option(134217784);
1667    pub const SPVC_COMPILER_OPTION_MSL_ENABLE_FRAG_DEPTH_BUILTIN: spvc_compiler_option =
1668        spvc_compiler_option(134217785);
1669    pub const SPVC_COMPILER_OPTION_MSL_ENABLE_FRAG_STENCIL_REF_BUILTIN: spvc_compiler_option =
1670        spvc_compiler_option(134217786);
1671    pub const SPVC_COMPILER_OPTION_MSL_ENABLE_CLIP_DISTANCE_USER_VARYING: spvc_compiler_option =
1672        spvc_compiler_option(134217787);
1673    pub const SPVC_COMPILER_OPTION_HLSL_ENABLE_16BIT_TYPES: spvc_compiler_option =
1674        spvc_compiler_option(67108924);
1675    pub const SPVC_COMPILER_OPTION_MSL_MULTI_PATCH_WORKGROUP: spvc_compiler_option =
1676        spvc_compiler_option(134217789);
1677    pub const SPVC_COMPILER_OPTION_MSL_SHADER_INPUT_BUFFER_INDEX: spvc_compiler_option =
1678        spvc_compiler_option(134217790);
1679    pub const SPVC_COMPILER_OPTION_MSL_SHADER_INDEX_BUFFER_INDEX: spvc_compiler_option =
1680        spvc_compiler_option(134217791);
1681    pub const SPVC_COMPILER_OPTION_MSL_VERTEX_FOR_TESSELLATION: spvc_compiler_option =
1682        spvc_compiler_option(134217792);
1683    pub const SPVC_COMPILER_OPTION_MSL_VERTEX_INDEX_TYPE: spvc_compiler_option =
1684        spvc_compiler_option(134217793);
1685    pub const SPVC_COMPILER_OPTION_GLSL_FORCE_FLATTENED_IO_BLOCKS: spvc_compiler_option =
1686        spvc_compiler_option(33554498);
1687    pub const SPVC_COMPILER_OPTION_MSL_MULTIVIEW_LAYERED_RENDERING: spvc_compiler_option =
1688        spvc_compiler_option(134217795);
1689    pub const SPVC_COMPILER_OPTION_MSL_ARRAYED_SUBPASS_INPUT: spvc_compiler_option =
1690        spvc_compiler_option(134217796);
1691    pub const SPVC_COMPILER_OPTION_MSL_R32UI_LINEAR_TEXTURE_ALIGNMENT: spvc_compiler_option =
1692        spvc_compiler_option(134217797);
1693    pub const SPVC_COMPILER_OPTION_MSL_R32UI_ALIGNMENT_CONSTANT_ID: spvc_compiler_option =
1694        spvc_compiler_option(134217798);
1695    pub const SPVC_COMPILER_OPTION_HLSL_FLATTEN_MATRIX_VERTEX_INPUT_SEMANTICS:
1696        spvc_compiler_option = spvc_compiler_option(67108935);
1697    pub const SPVC_COMPILER_OPTION_MSL_IOS_USE_SIMDGROUP_FUNCTIONS: spvc_compiler_option =
1698        spvc_compiler_option(134217800);
1699    pub const SPVC_COMPILER_OPTION_MSL_EMULATE_SUBGROUPS: spvc_compiler_option =
1700        spvc_compiler_option(134217801);
1701    pub const SPVC_COMPILER_OPTION_MSL_FIXED_SUBGROUP_SIZE: spvc_compiler_option =
1702        spvc_compiler_option(134217802);
1703    pub const SPVC_COMPILER_OPTION_MSL_FORCE_SAMPLE_RATE_SHADING: spvc_compiler_option =
1704        spvc_compiler_option(134217803);
1705    pub const SPVC_COMPILER_OPTION_MSL_IOS_SUPPORT_BASE_VERTEX_INSTANCE: spvc_compiler_option =
1706        spvc_compiler_option(134217804);
1707    pub const SPVC_COMPILER_OPTION_GLSL_OVR_MULTIVIEW_VIEW_COUNT: spvc_compiler_option =
1708        spvc_compiler_option(33554509);
1709    pub const SPVC_COMPILER_OPTION_RELAX_NAN_CHECKS: spvc_compiler_option =
1710        spvc_compiler_option(16777294);
1711    pub const SPVC_COMPILER_OPTION_MSL_RAW_BUFFER_TESE_INPUT: spvc_compiler_option =
1712        spvc_compiler_option(134217807);
1713    pub const SPVC_COMPILER_OPTION_MSL_SHADER_PATCH_INPUT_BUFFER_INDEX: spvc_compiler_option =
1714        spvc_compiler_option(134217808);
1715    pub const SPVC_COMPILER_OPTION_MSL_MANUAL_HELPER_INVOCATION_UPDATES: spvc_compiler_option =
1716        spvc_compiler_option(134217809);
1717    pub const SPVC_COMPILER_OPTION_MSL_CHECK_DISCARDED_FRAG_STORES: spvc_compiler_option =
1718        spvc_compiler_option(134217810);
1719    pub const SPVC_COMPILER_OPTION_GLSL_ENABLE_ROW_MAJOR_LOAD_WORKAROUND: spvc_compiler_option =
1720        spvc_compiler_option(33554515);
1721    pub const SPVC_COMPILER_OPTION_MSL_ARGUMENT_BUFFERS_TIER: spvc_compiler_option =
1722        spvc_compiler_option(134217812);
1723    pub const SPVC_COMPILER_OPTION_MSL_SAMPLE_DREF_LOD_ARRAY_AS_GRAD: spvc_compiler_option =
1724        spvc_compiler_option(134217813);
1725    pub const SPVC_COMPILER_OPTION_MSL_READWRITE_TEXTURE_FENCES: spvc_compiler_option =
1726        spvc_compiler_option(134217814);
1727    pub const SPVC_COMPILER_OPTION_MSL_REPLACE_RECURSIVE_INPUTS: spvc_compiler_option =
1728        spvc_compiler_option(134217815);
1729    pub const SPVC_COMPILER_OPTION_MSL_AGX_MANUAL_CUBE_GRAD_FIXUP: spvc_compiler_option =
1730        spvc_compiler_option(134217816);
1731    pub const SPVC_COMPILER_OPTION_MSL_FORCE_FRAGMENT_WITH_SIDE_EFFECTS_EXECUTION:
1732        spvc_compiler_option = spvc_compiler_option(134217817);
1733    pub const SPVC_COMPILER_OPTION_HLSL_USE_ENTRY_POINT_NAME: spvc_compiler_option =
1734        spvc_compiler_option(67108954);
1735    pub const SPVC_COMPILER_OPTION_HLSL_PRESERVE_STRUCTURED_BUFFERS: spvc_compiler_option =
1736        spvc_compiler_option(67108955);
1737    pub const SPVC_COMPILER_OPTION_MSL_AUTO_DISABLE_RASTERIZATION: spvc_compiler_option =
1738        spvc_compiler_option(134217820);
1739    pub const SPVC_COMPILER_OPTION_MSL_ENABLE_POINT_SIZE_DEFAULT: spvc_compiler_option =
1740        spvc_compiler_option(134217821);
1741    pub const SPVC_COMPILER_OPTION_HLSL_USER_SEMANTIC: spvc_compiler_option =
1742        spvc_compiler_option(67108958);
1743}
1744impl ::std::ops::BitOr<spvc_compiler_option> for spvc_compiler_option {
1745    type Output = Self;
1746    #[inline]
1747    fn bitor(self, other: Self) -> Self {
1748        spvc_compiler_option(self.0 | other.0)
1749    }
1750}
1751impl ::std::ops::BitOrAssign for spvc_compiler_option {
1752    #[inline]
1753    fn bitor_assign(&mut self, rhs: spvc_compiler_option) {
1754        self.0 |= rhs.0;
1755    }
1756}
1757impl ::std::ops::BitAnd<spvc_compiler_option> for spvc_compiler_option {
1758    type Output = Self;
1759    #[inline]
1760    fn bitand(self, other: Self) -> Self {
1761        spvc_compiler_option(self.0 & other.0)
1762    }
1763}
1764impl ::std::ops::BitAndAssign for spvc_compiler_option {
1765    #[inline]
1766    fn bitand_assign(&mut self, rhs: spvc_compiler_option) {
1767        self.0 &= rhs.0;
1768    }
1769}
1770#[repr(transparent)]
1771#[derive(
1772    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1773)]
1774pub struct spvc_compiler_option(pub u32);
1775unsafe extern "C" {
1776    #[must_use]
1777    pub fn spvc_context_create(context: *mut spvc_context) -> spvc_result;
1778}
1779unsafe extern "C" {
1780    pub fn spvc_context_destroy(context: spvc_context);
1781}
1782unsafe extern "C" {
1783    pub fn spvc_context_release_allocations(context: spvc_context);
1784}
1785unsafe extern "C" {
1786    pub fn spvc_context_get_last_error_string(
1787        context: spvc_context,
1788    ) -> *const crate::ctypes::c_char;
1789}
1790pub type spvc_error_callback = ::std::option::Option<
1791    unsafe extern "C" fn(userdata: *mut crate::ctypes::c_void, error: *const crate::ctypes::c_char),
1792>;
1793unsafe extern "C" {
1794    pub fn spvc_context_set_error_callback(
1795        context: spvc_context,
1796        cb: spvc_error_callback,
1797        userdata: *mut crate::ctypes::c_void,
1798    );
1799}
1800unsafe extern "C" {
1801    #[must_use]
1802    pub fn spvc_context_parse_spirv(
1803        context: spvc_context,
1804        spirv: *const SpvId,
1805        word_count: usize,
1806        parsed_ir: *mut spvc_parsed_ir,
1807    ) -> spvc_result;
1808}
1809unsafe extern "C" {
1810    #[must_use]
1811    pub fn spvc_context_create_compiler(
1812        context: spvc_context,
1813        backend: CompilerBackend,
1814        parsed_ir: spvc_parsed_ir,
1815        mode: spvc_capture_mode,
1816        compiler: *mut spvc_compiler,
1817    ) -> spvc_result;
1818}
1819unsafe extern "C" {
1820    pub fn spvc_compiler_get_current_id_bound(compiler: spvc_compiler) -> crate::ctypes::c_uint;
1821}
1822unsafe extern "C" {
1823    #[must_use]
1824    pub fn spvc_compiler_create_compiler_options(
1825        compiler: spvc_compiler,
1826        options: *mut spvc_compiler_options,
1827    ) -> spvc_result;
1828}
1829unsafe extern "C" {
1830    #[must_use]
1831    pub fn spvc_compiler_options_set_bool(
1832        options: spvc_compiler_options,
1833        option: spvc_compiler_option,
1834        value: crate::ctypes::spvc_bool,
1835    ) -> spvc_result;
1836}
1837unsafe extern "C" {
1838    #[must_use]
1839    pub fn spvc_compiler_options_set_uint(
1840        options: spvc_compiler_options,
1841        option: spvc_compiler_option,
1842        value: crate::ctypes::c_uint,
1843    ) -> spvc_result;
1844}
1845unsafe extern "C" {
1846    #[must_use]
1847    pub fn spvc_compiler_install_compiler_options(
1848        compiler: spvc_compiler,
1849        options: spvc_compiler_options,
1850    ) -> spvc_result;
1851}
1852unsafe extern "C" {
1853    #[must_use]
1854    pub fn spvc_compiler_compile(
1855        compiler: spvc_compiler,
1856        source: *mut *const crate::ctypes::c_char,
1857    ) -> spvc_result;
1858}
1859unsafe extern "C" {
1860    #[must_use]
1861    pub fn spvc_compiler_add_header_line(
1862        compiler: spvc_compiler,
1863        line: *const crate::ctypes::c_char,
1864    ) -> spvc_result;
1865}
1866unsafe extern "C" {
1867    #[must_use]
1868    pub fn spvc_compiler_require_extension(
1869        compiler: spvc_compiler,
1870        ext: *const crate::ctypes::c_char,
1871    ) -> spvc_result;
1872}
1873unsafe extern "C" {
1874    pub fn spvc_compiler_get_num_required_extensions(compiler: spvc_compiler) -> usize;
1875}
1876unsafe extern "C" {
1877    pub fn spvc_compiler_get_required_extension(
1878        compiler: spvc_compiler,
1879        index: usize,
1880    ) -> *const crate::ctypes::c_char;
1881}
1882unsafe extern "C" {
1883    #[must_use]
1884    pub fn spvc_compiler_flatten_buffer_block(
1885        compiler: spvc_compiler,
1886        id: VariableId,
1887    ) -> spvc_result;
1888}
1889unsafe extern "C" {
1890    pub fn spvc_compiler_variable_is_depth_or_compare(
1891        compiler: spvc_compiler,
1892        id: VariableId,
1893    ) -> crate::ctypes::spvc_bool;
1894}
1895unsafe extern "C" {
1896    #[must_use]
1897    pub fn spvc_compiler_mask_stage_output_by_location(
1898        compiler: spvc_compiler,
1899        location: crate::ctypes::c_uint,
1900        component: crate::ctypes::c_uint,
1901    ) -> spvc_result;
1902}
1903unsafe extern "C" {
1904    #[must_use]
1905    pub fn spvc_compiler_mask_stage_output_by_builtin(
1906        compiler: spvc_compiler,
1907        builtin: SpvBuiltIn,
1908    ) -> spvc_result;
1909}
1910unsafe extern "C" {
1911    #[must_use]
1912    pub fn spvc_compiler_hlsl_set_root_constants_layout(
1913        compiler: spvc_compiler,
1914        constant_info: *const HlslRootConstants,
1915        count: usize,
1916    ) -> spvc_result;
1917}
1918unsafe extern "C" {
1919    #[must_use]
1920    pub fn spvc_compiler_hlsl_add_vertex_attribute_remap(
1921        compiler: spvc_compiler,
1922        remap: *const HlslVertexAttributeRemap,
1923        remaps: usize,
1924    ) -> spvc_result;
1925}
1926unsafe extern "C" {
1927    pub fn spvc_compiler_hlsl_remap_num_workgroups_builtin(compiler: spvc_compiler) -> VariableId;
1928}
1929unsafe extern "C" {
1930    #[must_use]
1931    pub fn spvc_compiler_hlsl_set_resource_binding_flags(
1932        compiler: spvc_compiler,
1933        flags: HlslBindingFlags,
1934    ) -> spvc_result;
1935}
1936unsafe extern "C" {
1937    #[must_use]
1938    pub fn spvc_compiler_hlsl_add_resource_binding(
1939        compiler: spvc_compiler,
1940        binding: *const HlslResourceBinding,
1941    ) -> spvc_result;
1942}
1943unsafe extern "C" {
1944    pub fn spvc_compiler_hlsl_is_resource_used(
1945        compiler: spvc_compiler,
1946        model: SpvExecutionModel,
1947        set: crate::ctypes::c_uint,
1948        binding: crate::ctypes::c_uint,
1949    ) -> crate::ctypes::spvc_bool;
1950}
1951unsafe extern "C" {
1952    pub fn spvc_compiler_msl_is_rasterization_disabled(
1953        compiler: spvc_compiler,
1954    ) -> crate::ctypes::spvc_bool;
1955}
1956unsafe extern "C" {
1957    pub fn spvc_compiler_msl_needs_aux_buffer(compiler: spvc_compiler) -> crate::ctypes::spvc_bool;
1958}
1959unsafe extern "C" {
1960    pub fn spvc_compiler_msl_needs_swizzle_buffer(
1961        compiler: spvc_compiler,
1962    ) -> crate::ctypes::spvc_bool;
1963}
1964unsafe extern "C" {
1965    pub fn spvc_compiler_msl_needs_buffer_size_buffer(
1966        compiler: spvc_compiler,
1967    ) -> crate::ctypes::spvc_bool;
1968}
1969unsafe extern "C" {
1970    pub fn spvc_compiler_msl_needs_output_buffer(
1971        compiler: spvc_compiler,
1972    ) -> crate::ctypes::spvc_bool;
1973}
1974unsafe extern "C" {
1975    pub fn spvc_compiler_msl_needs_patch_output_buffer(
1976        compiler: spvc_compiler,
1977    ) -> crate::ctypes::spvc_bool;
1978}
1979unsafe extern "C" {
1980    pub fn spvc_compiler_msl_needs_input_threadgroup_mem(
1981        compiler: spvc_compiler,
1982    ) -> crate::ctypes::spvc_bool;
1983}
1984unsafe extern "C" {
1985    #[must_use]
1986    pub fn spvc_compiler_msl_add_vertex_attribute(
1987        compiler: spvc_compiler,
1988        attrs: *const MslVertexAttribute,
1989    ) -> spvc_result;
1990}
1991unsafe extern "C" {
1992    #[must_use]
1993    pub fn spvc_compiler_msl_add_resource_binding(
1994        compiler: spvc_compiler,
1995        binding: *const MslResourceBinding,
1996    ) -> spvc_result;
1997}
1998unsafe extern "C" {
1999    #[must_use]
2000    pub fn spvc_compiler_msl_add_resource_binding_2(
2001        compiler: spvc_compiler,
2002        binding: *const MslResourceBinding2,
2003    ) -> spvc_result;
2004}
2005unsafe extern "C" {
2006    #[must_use]
2007    pub fn spvc_compiler_msl_add_shader_input(
2008        compiler: spvc_compiler,
2009        input: *const MslShaderInterfaceVar,
2010    ) -> spvc_result;
2011}
2012unsafe extern "C" {
2013    #[must_use]
2014    pub fn spvc_compiler_msl_add_shader_input_2(
2015        compiler: spvc_compiler,
2016        input: *const MslShaderInterfaceVar2,
2017    ) -> spvc_result;
2018}
2019unsafe extern "C" {
2020    #[must_use]
2021    pub fn spvc_compiler_msl_add_shader_output(
2022        compiler: spvc_compiler,
2023        output: *const MslShaderInterfaceVar,
2024    ) -> spvc_result;
2025}
2026unsafe extern "C" {
2027    #[must_use]
2028    pub fn spvc_compiler_msl_add_shader_output_2(
2029        compiler: spvc_compiler,
2030        output: *const MslShaderInterfaceVar2,
2031    ) -> spvc_result;
2032}
2033unsafe extern "C" {
2034    #[must_use]
2035    pub fn spvc_compiler_msl_add_discrete_descriptor_set(
2036        compiler: spvc_compiler,
2037        desc_set: crate::ctypes::c_uint,
2038    ) -> spvc_result;
2039}
2040unsafe extern "C" {
2041    #[must_use]
2042    pub fn spvc_compiler_msl_set_argument_buffer_device_address_space(
2043        compiler: spvc_compiler,
2044        desc_set: crate::ctypes::c_uint,
2045        device_address: crate::ctypes::spvc_bool,
2046    ) -> spvc_result;
2047}
2048unsafe extern "C" {
2049    pub fn spvc_compiler_msl_is_vertex_attribute_used(
2050        compiler: spvc_compiler,
2051        location: crate::ctypes::c_uint,
2052    ) -> crate::ctypes::spvc_bool;
2053}
2054unsafe extern "C" {
2055    pub fn spvc_compiler_msl_is_shader_input_used(
2056        compiler: spvc_compiler,
2057        location: crate::ctypes::c_uint,
2058    ) -> crate::ctypes::spvc_bool;
2059}
2060unsafe extern "C" {
2061    pub fn spvc_compiler_msl_is_shader_output_used(
2062        compiler: spvc_compiler,
2063        location: crate::ctypes::c_uint,
2064    ) -> crate::ctypes::spvc_bool;
2065}
2066unsafe extern "C" {
2067    pub fn spvc_compiler_msl_is_resource_used(
2068        compiler: spvc_compiler,
2069        model: SpvExecutionModel,
2070        set: crate::ctypes::c_uint,
2071        binding: crate::ctypes::c_uint,
2072    ) -> crate::ctypes::spvc_bool;
2073}
2074unsafe extern "C" {
2075    #[must_use]
2076    pub fn spvc_compiler_msl_remap_constexpr_sampler(
2077        compiler: spvc_compiler,
2078        id: VariableId,
2079        sampler: *const MslConstexprSampler,
2080    ) -> spvc_result;
2081}
2082unsafe extern "C" {
2083    #[must_use]
2084    pub fn spvc_compiler_msl_remap_constexpr_sampler_by_binding(
2085        compiler: spvc_compiler,
2086        desc_set: crate::ctypes::c_uint,
2087        binding: crate::ctypes::c_uint,
2088        sampler: *const MslConstexprSampler,
2089    ) -> spvc_result;
2090}
2091unsafe extern "C" {
2092    #[must_use]
2093    pub fn spvc_compiler_msl_remap_constexpr_sampler_ycbcr(
2094        compiler: spvc_compiler,
2095        id: VariableId,
2096        sampler: *const MslConstexprSampler,
2097        conv: *const MslSamplerYcbcrConversion,
2098    ) -> spvc_result;
2099}
2100unsafe extern "C" {
2101    #[must_use]
2102    pub fn spvc_compiler_msl_remap_constexpr_sampler_by_binding_ycbcr(
2103        compiler: spvc_compiler,
2104        desc_set: crate::ctypes::c_uint,
2105        binding: crate::ctypes::c_uint,
2106        sampler: *const MslConstexprSampler,
2107        conv: *const MslSamplerYcbcrConversion,
2108    ) -> spvc_result;
2109}
2110unsafe extern "C" {
2111    #[must_use]
2112    pub fn spvc_compiler_msl_set_fragment_output_components(
2113        compiler: spvc_compiler,
2114        location: crate::ctypes::c_uint,
2115        components: crate::ctypes::c_uint,
2116    ) -> spvc_result;
2117}
2118unsafe extern "C" {
2119    pub fn spvc_compiler_msl_get_automatic_resource_binding(
2120        compiler: spvc_compiler,
2121        id: VariableId,
2122    ) -> crate::ctypes::c_uint;
2123}
2124unsafe extern "C" {
2125    pub fn spvc_compiler_msl_get_automatic_resource_binding_secondary(
2126        compiler: spvc_compiler,
2127        id: VariableId,
2128    ) -> crate::ctypes::c_uint;
2129}
2130unsafe extern "C" {
2131    #[must_use]
2132    pub fn spvc_compiler_msl_add_dynamic_buffer(
2133        compiler: spvc_compiler,
2134        desc_set: crate::ctypes::c_uint,
2135        binding: crate::ctypes::c_uint,
2136        index: crate::ctypes::c_uint,
2137    ) -> spvc_result;
2138}
2139unsafe extern "C" {
2140    #[must_use]
2141    pub fn spvc_compiler_msl_add_inline_uniform_block(
2142        compiler: spvc_compiler,
2143        desc_set: crate::ctypes::c_uint,
2144        binding: crate::ctypes::c_uint,
2145    ) -> spvc_result;
2146}
2147unsafe extern "C" {
2148    #[must_use]
2149    pub fn spvc_compiler_msl_set_combined_sampler_suffix(
2150        compiler: spvc_compiler,
2151        suffix: *const crate::ctypes::c_char,
2152    ) -> spvc_result;
2153}
2154unsafe extern "C" {
2155    pub fn spvc_compiler_msl_get_combined_sampler_suffix(
2156        compiler: spvc_compiler,
2157    ) -> *const crate::ctypes::c_char;
2158}
2159unsafe extern "C" {
2160    #[must_use]
2161    pub fn spvc_compiler_get_active_interface_variables(
2162        compiler: spvc_compiler,
2163        set: *mut spvc_set,
2164    ) -> spvc_result;
2165}
2166unsafe extern "C" {
2167    #[must_use]
2168    pub fn spvc_compiler_set_enabled_interface_variables(
2169        compiler: spvc_compiler,
2170        set: spvc_set,
2171    ) -> spvc_result;
2172}
2173unsafe extern "C" {
2174    #[must_use]
2175    pub fn spvc_compiler_create_shader_resources(
2176        compiler: spvc_compiler,
2177        resources: *mut spvc_resources,
2178    ) -> spvc_result;
2179}
2180unsafe extern "C" {
2181    #[must_use]
2182    pub fn spvc_compiler_create_shader_resources_for_active_variables(
2183        compiler: spvc_compiler,
2184        resources: *mut spvc_resources,
2185        active: spvc_set,
2186    ) -> spvc_result;
2187}
2188unsafe extern "C" {
2189    #[must_use]
2190    pub fn spvc_resources_get_resource_list_for_type(
2191        resources: spvc_resources,
2192        type_: ResourceType,
2193        resource_list: *mut *const spvc_reflected_resource,
2194        resource_size: *mut usize,
2195    ) -> spvc_result;
2196}
2197unsafe extern "C" {
2198    #[must_use]
2199    pub fn spvc_resources_get_builtin_resource_list_for_type(
2200        resources: spvc_resources,
2201        type_: BuiltinResourceType,
2202        resource_list: *mut *const spvc_reflected_builtin_resource,
2203        resource_size: *mut usize,
2204    ) -> spvc_result;
2205}
2206unsafe extern "C" {
2207    pub fn spvc_compiler_set_decoration(
2208        compiler: spvc_compiler,
2209        id: SpvId,
2210        decoration: SpvDecoration,
2211        argument: crate::ctypes::c_uint,
2212    );
2213}
2214unsafe extern "C" {
2215    pub fn spvc_compiler_set_decoration_string(
2216        compiler: spvc_compiler,
2217        id: SpvId,
2218        decoration: SpvDecoration,
2219        argument: *const crate::ctypes::c_char,
2220    );
2221}
2222unsafe extern "C" {
2223    pub fn spvc_compiler_set_name(
2224        compiler: spvc_compiler,
2225        id: SpvId,
2226        argument: *const crate::ctypes::c_char,
2227    );
2228}
2229unsafe extern "C" {
2230    pub fn spvc_compiler_set_member_decoration(
2231        compiler: spvc_compiler,
2232        id: TypeId,
2233        member_index: crate::ctypes::c_uint,
2234        decoration: SpvDecoration,
2235        argument: crate::ctypes::c_uint,
2236    );
2237}
2238unsafe extern "C" {
2239    pub fn spvc_compiler_set_member_decoration_string(
2240        compiler: spvc_compiler,
2241        id: TypeId,
2242        member_index: crate::ctypes::c_uint,
2243        decoration: SpvDecoration,
2244        argument: *const crate::ctypes::c_char,
2245    );
2246}
2247unsafe extern "C" {
2248    pub fn spvc_compiler_set_member_name(
2249        compiler: spvc_compiler,
2250        id: TypeId,
2251        member_index: crate::ctypes::c_uint,
2252        argument: *const crate::ctypes::c_char,
2253    );
2254}
2255unsafe extern "C" {
2256    pub fn spvc_compiler_unset_decoration(
2257        compiler: spvc_compiler,
2258        id: SpvId,
2259        decoration: SpvDecoration,
2260    );
2261}
2262unsafe extern "C" {
2263    pub fn spvc_compiler_unset_member_decoration(
2264        compiler: spvc_compiler,
2265        id: TypeId,
2266        member_index: crate::ctypes::c_uint,
2267        decoration: SpvDecoration,
2268    );
2269}
2270unsafe extern "C" {
2271    pub fn spvc_compiler_has_decoration(
2272        compiler: spvc_compiler,
2273        id: SpvId,
2274        decoration: SpvDecoration,
2275    ) -> crate::ctypes::spvc_bool;
2276}
2277unsafe extern "C" {
2278    pub fn spvc_compiler_has_member_decoration(
2279        compiler: spvc_compiler,
2280        id: TypeId,
2281        member_index: crate::ctypes::c_uint,
2282        decoration: SpvDecoration,
2283    ) -> crate::ctypes::spvc_bool;
2284}
2285unsafe extern "C" {
2286    pub fn spvc_compiler_get_name(
2287        compiler: spvc_compiler,
2288        id: SpvId,
2289    ) -> *const crate::ctypes::c_char;
2290}
2291unsafe extern "C" {
2292    pub fn spvc_compiler_get_decoration(
2293        compiler: spvc_compiler,
2294        id: SpvId,
2295        decoration: SpvDecoration,
2296    ) -> crate::ctypes::c_uint;
2297}
2298unsafe extern "C" {
2299    pub fn spvc_compiler_get_decoration_string(
2300        compiler: spvc_compiler,
2301        id: SpvId,
2302        decoration: SpvDecoration,
2303    ) -> *const crate::ctypes::c_char;
2304}
2305unsafe extern "C" {
2306    pub fn spvc_compiler_get_member_decoration(
2307        compiler: spvc_compiler,
2308        id: TypeId,
2309        member_index: crate::ctypes::c_uint,
2310        decoration: SpvDecoration,
2311    ) -> crate::ctypes::c_uint;
2312}
2313unsafe extern "C" {
2314    pub fn spvc_compiler_get_member_decoration_string(
2315        compiler: spvc_compiler,
2316        id: TypeId,
2317        member_index: crate::ctypes::c_uint,
2318        decoration: SpvDecoration,
2319    ) -> *const crate::ctypes::c_char;
2320}
2321unsafe extern "C" {
2322    pub fn spvc_compiler_get_member_name(
2323        compiler: spvc_compiler,
2324        id: TypeId,
2325        member_index: crate::ctypes::c_uint,
2326    ) -> *const crate::ctypes::c_char;
2327}
2328unsafe extern "C" {
2329    #[must_use]
2330    pub fn spvc_compiler_get_entry_points(
2331        compiler: spvc_compiler,
2332        entry_points: *mut *const spvc_entry_point,
2333        num_entry_points: *mut usize,
2334    ) -> spvc_result;
2335}
2336unsafe extern "C" {
2337    #[must_use]
2338    pub fn spvc_compiler_set_entry_point(
2339        compiler: spvc_compiler,
2340        name: *const crate::ctypes::c_char,
2341        model: SpvExecutionModel,
2342    ) -> spvc_result;
2343}
2344unsafe extern "C" {
2345    #[must_use]
2346    pub fn spvc_compiler_rename_entry_point(
2347        compiler: spvc_compiler,
2348        old_name: *const crate::ctypes::c_char,
2349        new_name: *const crate::ctypes::c_char,
2350        model: SpvExecutionModel,
2351    ) -> spvc_result;
2352}
2353unsafe extern "C" {
2354    pub fn spvc_compiler_get_cleansed_entry_point_name(
2355        compiler: spvc_compiler,
2356        name: *const crate::ctypes::c_char,
2357        model: SpvExecutionModel,
2358    ) -> *const crate::ctypes::c_char;
2359}
2360unsafe extern "C" {
2361    pub fn spvc_compiler_set_execution_mode(compiler: spvc_compiler, mode: SpvExecutionMode);
2362}
2363unsafe extern "C" {
2364    pub fn spvc_compiler_unset_execution_mode(compiler: spvc_compiler, mode: SpvExecutionMode);
2365}
2366unsafe extern "C" {
2367    pub fn spvc_compiler_set_execution_mode_with_arguments(
2368        compiler: spvc_compiler,
2369        mode: SpvExecutionMode,
2370        arg0: crate::ctypes::c_uint,
2371        arg1: crate::ctypes::c_uint,
2372        arg2: crate::ctypes::c_uint,
2373    );
2374}
2375unsafe extern "C" {
2376    #[must_use]
2377    pub fn spvc_compiler_get_execution_modes(
2378        compiler: spvc_compiler,
2379        modes: *mut *const SpvExecutionMode,
2380        num_modes: *mut usize,
2381    ) -> spvc_result;
2382}
2383unsafe extern "C" {
2384    pub fn spvc_compiler_get_execution_mode_argument(
2385        compiler: spvc_compiler,
2386        mode: SpvExecutionMode,
2387    ) -> crate::ctypes::c_uint;
2388}
2389unsafe extern "C" {
2390    pub fn spvc_compiler_get_execution_mode_argument_by_index(
2391        compiler: spvc_compiler,
2392        mode: SpvExecutionMode,
2393        index: crate::ctypes::c_uint,
2394    ) -> crate::ctypes::c_uint;
2395}
2396unsafe extern "C" {
2397    pub fn spvc_compiler_get_execution_model(compiler: spvc_compiler) -> SpvExecutionModel;
2398}
2399unsafe extern "C" {
2400    pub fn spvc_compiler_update_active_builtins(compiler: spvc_compiler);
2401}
2402unsafe extern "C" {
2403    pub fn spvc_compiler_has_active_builtin(
2404        compiler: spvc_compiler,
2405        builtin: SpvBuiltIn,
2406        storage: SpvStorageClass,
2407    ) -> crate::ctypes::spvc_bool;
2408}
2409unsafe extern "C" {
2410    pub fn spvc_compiler_get_type_handle(compiler: spvc_compiler, id: TypeId) -> spvc_type;
2411}
2412unsafe extern "C" {
2413    pub fn spvc_type_get_base_type_id(type_: spvc_type) -> TypeId;
2414}
2415unsafe extern "C" {
2416    pub fn spvc_type_get_basetype(type_: spvc_type) -> BaseType;
2417}
2418unsafe extern "C" {
2419    pub fn spvc_type_get_bit_width(type_: spvc_type) -> crate::ctypes::c_uint;
2420}
2421unsafe extern "C" {
2422    pub fn spvc_type_get_vector_size(type_: spvc_type) -> crate::ctypes::c_uint;
2423}
2424unsafe extern "C" {
2425    pub fn spvc_type_get_columns(type_: spvc_type) -> crate::ctypes::c_uint;
2426}
2427unsafe extern "C" {
2428    pub fn spvc_type_get_num_array_dimensions(type_: spvc_type) -> crate::ctypes::c_uint;
2429}
2430unsafe extern "C" {
2431    pub fn spvc_type_array_dimension_is_literal(
2432        type_: spvc_type,
2433        dimension: crate::ctypes::c_uint,
2434    ) -> crate::ctypes::spvc_bool;
2435}
2436unsafe extern "C" {
2437    pub fn spvc_type_get_array_dimension(
2438        type_: spvc_type,
2439        dimension: crate::ctypes::c_uint,
2440    ) -> SpvId;
2441}
2442unsafe extern "C" {
2443    pub fn spvc_type_get_num_member_types(type_: spvc_type) -> crate::ctypes::c_uint;
2444}
2445unsafe extern "C" {
2446    pub fn spvc_type_get_member_type(type_: spvc_type, index: crate::ctypes::c_uint) -> TypeId;
2447}
2448unsafe extern "C" {
2449    pub fn spvc_type_get_storage_class(type_: spvc_type) -> SpvStorageClass;
2450}
2451unsafe extern "C" {
2452    pub fn spvc_type_get_image_sampled_type(type_: spvc_type) -> TypeId;
2453}
2454unsafe extern "C" {
2455    pub fn spvc_type_get_image_dimension(type_: spvc_type) -> SpvDim;
2456}
2457unsafe extern "C" {
2458    pub fn spvc_type_get_image_is_depth(type_: spvc_type) -> crate::ctypes::spvc_bool;
2459}
2460unsafe extern "C" {
2461    pub fn spvc_type_get_image_arrayed(type_: spvc_type) -> crate::ctypes::spvc_bool;
2462}
2463unsafe extern "C" {
2464    pub fn spvc_type_get_image_multisampled(type_: spvc_type) -> crate::ctypes::spvc_bool;
2465}
2466unsafe extern "C" {
2467    pub fn spvc_type_get_image_is_storage(type_: spvc_type) -> crate::ctypes::spvc_bool;
2468}
2469unsafe extern "C" {
2470    pub fn spvc_type_get_image_storage_format(type_: spvc_type) -> SpvImageFormat;
2471}
2472unsafe extern "C" {
2473    pub fn spvc_type_get_image_access_qualifier(type_: spvc_type) -> SpvAccessQualifier;
2474}
2475unsafe extern "C" {
2476    #[must_use]
2477    pub fn spvc_compiler_get_declared_struct_size(
2478        compiler: spvc_compiler,
2479        struct_type: spvc_type,
2480        size: *mut usize,
2481    ) -> spvc_result;
2482}
2483unsafe extern "C" {
2484    #[must_use]
2485    pub fn spvc_compiler_get_declared_struct_size_runtime_array(
2486        compiler: spvc_compiler,
2487        struct_type: spvc_type,
2488        array_size: usize,
2489        size: *mut usize,
2490    ) -> spvc_result;
2491}
2492unsafe extern "C" {
2493    #[must_use]
2494    pub fn spvc_compiler_get_declared_struct_member_size(
2495        compiler: spvc_compiler,
2496        type_: spvc_type,
2497        index: crate::ctypes::c_uint,
2498        size: *mut usize,
2499    ) -> spvc_result;
2500}
2501unsafe extern "C" {
2502    #[must_use]
2503    pub fn spvc_compiler_type_struct_member_offset(
2504        compiler: spvc_compiler,
2505        type_: spvc_type,
2506        index: crate::ctypes::c_uint,
2507        offset: *mut crate::ctypes::c_uint,
2508    ) -> spvc_result;
2509}
2510unsafe extern "C" {
2511    #[must_use]
2512    pub fn spvc_compiler_type_struct_member_array_stride(
2513        compiler: spvc_compiler,
2514        type_: spvc_type,
2515        index: crate::ctypes::c_uint,
2516        stride: *mut crate::ctypes::c_uint,
2517    ) -> spvc_result;
2518}
2519unsafe extern "C" {
2520    #[must_use]
2521    pub fn spvc_compiler_type_struct_member_matrix_stride(
2522        compiler: spvc_compiler,
2523        type_: spvc_type,
2524        index: crate::ctypes::c_uint,
2525        stride: *mut crate::ctypes::c_uint,
2526    ) -> spvc_result;
2527}
2528unsafe extern "C" {
2529    #[must_use]
2530    pub fn spvc_compiler_build_dummy_sampler_for_combined_images(
2531        compiler: spvc_compiler,
2532        id: *mut VariableId,
2533    ) -> spvc_result;
2534}
2535unsafe extern "C" {
2536    #[must_use]
2537    pub fn spvc_compiler_build_combined_image_samplers(compiler: spvc_compiler) -> spvc_result;
2538}
2539unsafe extern "C" {
2540    #[must_use]
2541    pub fn spvc_compiler_get_combined_image_samplers(
2542        compiler: spvc_compiler,
2543        samplers: *mut *const spvc_combined_image_sampler,
2544        num_samplers: *mut usize,
2545    ) -> spvc_result;
2546}
2547unsafe extern "C" {
2548    #[must_use]
2549    pub fn spvc_compiler_get_specialization_constants(
2550        compiler: spvc_compiler,
2551        constants: *mut *const spvc_specialization_constant,
2552        num_constants: *mut usize,
2553    ) -> spvc_result;
2554}
2555unsafe extern "C" {
2556    pub fn spvc_compiler_get_constant_handle(
2557        compiler: spvc_compiler,
2558        id: ConstantId,
2559    ) -> spvc_constant;
2560}
2561unsafe extern "C" {
2562    pub fn spvc_compiler_get_work_group_size_specialization_constants(
2563        compiler: spvc_compiler,
2564        x: *mut spvc_specialization_constant,
2565        y: *mut spvc_specialization_constant,
2566        z: *mut spvc_specialization_constant,
2567    ) -> ConstantId;
2568}
2569unsafe extern "C" {
2570    #[must_use]
2571    pub fn spvc_compiler_get_active_buffer_ranges(
2572        compiler: spvc_compiler,
2573        id: VariableId,
2574        ranges: *mut *const BufferRange,
2575        num_ranges: *mut usize,
2576    ) -> spvc_result;
2577}
2578unsafe extern "C" {
2579    pub fn spvc_constant_get_scalar_fp16(
2580        constant: spvc_constant,
2581        column: crate::ctypes::c_uint,
2582        row: crate::ctypes::c_uint,
2583    ) -> f32;
2584}
2585unsafe extern "C" {
2586    pub fn spvc_constant_get_scalar_fp32(
2587        constant: spvc_constant,
2588        column: crate::ctypes::c_uint,
2589        row: crate::ctypes::c_uint,
2590    ) -> f32;
2591}
2592unsafe extern "C" {
2593    pub fn spvc_constant_get_scalar_fp64(
2594        constant: spvc_constant,
2595        column: crate::ctypes::c_uint,
2596        row: crate::ctypes::c_uint,
2597    ) -> f64;
2598}
2599unsafe extern "C" {
2600    pub fn spvc_constant_get_scalar_u32(
2601        constant: spvc_constant,
2602        column: crate::ctypes::c_uint,
2603        row: crate::ctypes::c_uint,
2604    ) -> crate::ctypes::c_uint;
2605}
2606unsafe extern "C" {
2607    pub fn spvc_constant_get_scalar_i32(
2608        constant: spvc_constant,
2609        column: crate::ctypes::c_uint,
2610        row: crate::ctypes::c_uint,
2611    ) -> crate::ctypes::c_int;
2612}
2613unsafe extern "C" {
2614    pub fn spvc_constant_get_scalar_u16(
2615        constant: spvc_constant,
2616        column: crate::ctypes::c_uint,
2617        row: crate::ctypes::c_uint,
2618    ) -> crate::ctypes::c_uint;
2619}
2620unsafe extern "C" {
2621    pub fn spvc_constant_get_scalar_i16(
2622        constant: spvc_constant,
2623        column: crate::ctypes::c_uint,
2624        row: crate::ctypes::c_uint,
2625    ) -> crate::ctypes::c_int;
2626}
2627unsafe extern "C" {
2628    pub fn spvc_constant_get_scalar_u8(
2629        constant: spvc_constant,
2630        column: crate::ctypes::c_uint,
2631        row: crate::ctypes::c_uint,
2632    ) -> crate::ctypes::c_uint;
2633}
2634unsafe extern "C" {
2635    pub fn spvc_constant_get_scalar_i8(
2636        constant: spvc_constant,
2637        column: crate::ctypes::c_uint,
2638        row: crate::ctypes::c_uint,
2639    ) -> crate::ctypes::c_int;
2640}
2641unsafe extern "C" {
2642    pub fn spvc_constant_get_subconstants(
2643        constant: spvc_constant,
2644        constituents: *mut *const ConstantId,
2645        count: *mut usize,
2646    );
2647}
2648unsafe extern "C" {
2649    pub fn spvc_constant_get_scalar_u64(
2650        constant: spvc_constant,
2651        column: crate::ctypes::c_uint,
2652        row: crate::ctypes::c_uint,
2653    ) -> crate::ctypes::c_ulonglong;
2654}
2655unsafe extern "C" {
2656    pub fn spvc_constant_get_scalar_i64(
2657        constant: spvc_constant,
2658        column: crate::ctypes::c_uint,
2659        row: crate::ctypes::c_uint,
2660    ) -> crate::ctypes::c_longlong;
2661}
2662unsafe extern "C" {
2663    pub fn spvc_constant_get_type(constant: spvc_constant) -> TypeId;
2664}
2665unsafe extern "C" {
2666    pub fn spvc_constant_set_scalar_fp16(
2667        constant: spvc_constant,
2668        column: crate::ctypes::c_uint,
2669        row: crate::ctypes::c_uint,
2670        value: crate::ctypes::c_ushort,
2671    );
2672}
2673unsafe extern "C" {
2674    pub fn spvc_constant_set_scalar_fp32(
2675        constant: spvc_constant,
2676        column: crate::ctypes::c_uint,
2677        row: crate::ctypes::c_uint,
2678        value: f32,
2679    );
2680}
2681unsafe extern "C" {
2682    pub fn spvc_constant_set_scalar_fp64(
2683        constant: spvc_constant,
2684        column: crate::ctypes::c_uint,
2685        row: crate::ctypes::c_uint,
2686        value: f64,
2687    );
2688}
2689unsafe extern "C" {
2690    pub fn spvc_constant_set_scalar_u32(
2691        constant: spvc_constant,
2692        column: crate::ctypes::c_uint,
2693        row: crate::ctypes::c_uint,
2694        value: crate::ctypes::c_uint,
2695    );
2696}
2697unsafe extern "C" {
2698    pub fn spvc_constant_set_scalar_i32(
2699        constant: spvc_constant,
2700        column: crate::ctypes::c_uint,
2701        row: crate::ctypes::c_uint,
2702        value: crate::ctypes::c_int,
2703    );
2704}
2705unsafe extern "C" {
2706    pub fn spvc_constant_set_scalar_u64(
2707        constant: spvc_constant,
2708        column: crate::ctypes::c_uint,
2709        row: crate::ctypes::c_uint,
2710        value: crate::ctypes::c_ulonglong,
2711    );
2712}
2713unsafe extern "C" {
2714    pub fn spvc_constant_set_scalar_i64(
2715        constant: spvc_constant,
2716        column: crate::ctypes::c_uint,
2717        row: crate::ctypes::c_uint,
2718        value: crate::ctypes::c_longlong,
2719    );
2720}
2721unsafe extern "C" {
2722    pub fn spvc_constant_set_scalar_u16(
2723        constant: spvc_constant,
2724        column: crate::ctypes::c_uint,
2725        row: crate::ctypes::c_uint,
2726        value: crate::ctypes::c_ushort,
2727    );
2728}
2729unsafe extern "C" {
2730    pub fn spvc_constant_set_scalar_i16(
2731        constant: spvc_constant,
2732        column: crate::ctypes::c_uint,
2733        row: crate::ctypes::c_uint,
2734        value: crate::ctypes::c_short,
2735    );
2736}
2737unsafe extern "C" {
2738    pub fn spvc_constant_set_scalar_u8(
2739        constant: spvc_constant,
2740        column: crate::ctypes::c_uint,
2741        row: crate::ctypes::c_uint,
2742        value: crate::ctypes::c_uchar,
2743    );
2744}
2745unsafe extern "C" {
2746    pub fn spvc_constant_set_scalar_i8(
2747        constant: spvc_constant,
2748        column: crate::ctypes::c_uint,
2749        row: crate::ctypes::c_uint,
2750        value: crate::ctypes::c_schar,
2751    );
2752}
2753unsafe extern "C" {
2754    pub fn spvc_compiler_get_binary_offset_for_decoration(
2755        compiler: spvc_compiler,
2756        id: VariableId,
2757        decoration: SpvDecoration,
2758        word_offset: *mut crate::ctypes::c_uint,
2759    ) -> crate::ctypes::spvc_bool;
2760}
2761unsafe extern "C" {
2762    pub fn spvc_compiler_buffer_is_hlsl_counter_buffer(
2763        compiler: spvc_compiler,
2764        id: VariableId,
2765    ) -> crate::ctypes::spvc_bool;
2766}
2767unsafe extern "C" {
2768    pub fn spvc_compiler_buffer_get_hlsl_counter_buffer(
2769        compiler: spvc_compiler,
2770        id: VariableId,
2771        counter_id: *mut VariableId,
2772    ) -> crate::ctypes::spvc_bool;
2773}
2774unsafe extern "C" {
2775    #[must_use]
2776    pub fn spvc_compiler_get_declared_capabilities(
2777        compiler: spvc_compiler,
2778        capabilities: *mut *const SpvCapability,
2779        num_capabilities: *mut usize,
2780    ) -> spvc_result;
2781}
2782unsafe extern "C" {
2783    #[must_use]
2784    pub fn spvc_compiler_get_declared_extensions(
2785        compiler: spvc_compiler,
2786        extensions: *mut *mut *const crate::ctypes::c_char,
2787        num_extensions: *mut usize,
2788    ) -> spvc_result;
2789}
2790unsafe extern "C" {
2791    pub fn spvc_compiler_get_remapped_declared_block_name(
2792        compiler: spvc_compiler,
2793        id: VariableId,
2794    ) -> *const crate::ctypes::c_char;
2795}
2796unsafe extern "C" {
2797    #[must_use]
2798    pub fn spvc_compiler_get_buffer_block_decorations(
2799        compiler: spvc_compiler,
2800        id: VariableId,
2801        decorations: *mut *const SpvDecoration,
2802        num_decorations: *mut usize,
2803    ) -> spvc_result;
2804}
2805unsafe extern "C" {
2806    pub fn spvc_rs_expose_set(set: spvc_set, out: *mut u32, length: *mut usize);
2807}
2808unsafe extern "C" {
2809    pub fn spvc_rs_constant_is_scalar(constant: spvc_constant) -> crate::ctypes::spvc_bool;
2810}
2811unsafe extern "C" {
2812    pub fn spvc_rs_constant_get_vecsize(constant: spvc_constant) -> u32;
2813}
2814unsafe extern "C" {
2815    pub fn spvc_rs_constant_get_matrix_colsize(constant: spvc_constant) -> u32;
2816}
2817unsafe extern "C" {
2818    #[must_use]
2819    pub fn spvc_rs_compiler_variable_get_type(
2820        compiler: spvc_compiler,
2821        variable_id: VariableId,
2822        out: *mut TypeId,
2823    ) -> spvc_result;
2824}
2825unsafe extern "C" {
2826    pub fn spvc_rs_type_is_pointer(type_: spvc_type) -> crate::ctypes::spvc_bool;
2827}
2828unsafe extern "C" {
2829    pub fn spvc_rs_type_is_forward_pointer(type_: spvc_type) -> crate::ctypes::spvc_bool;
2830}
2831unsafe extern "C" {
2832    pub fn spvc_rs_compiler_get_execution_model_indirect(
2833        compiler: spvc_compiler,
2834        out: *mut SpvExecutionModel,
2835    );
2836}