spirv_cross_sys/
bindings.rs

1/* automatically generated by rust-bindgen 0.70.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}
9impl SpvExecutionModel {
10    pub const TessellationControl: SpvExecutionModel = SpvExecutionModel(1);
11}
12impl SpvExecutionModel {
13    pub const TessellationEvaluation: SpvExecutionModel = SpvExecutionModel(2);
14}
15impl SpvExecutionModel {
16    pub const Geometry: SpvExecutionModel = SpvExecutionModel(3);
17}
18impl SpvExecutionModel {
19    pub const Fragment: SpvExecutionModel = SpvExecutionModel(4);
20}
21impl SpvExecutionModel {
22    pub const GLCompute: SpvExecutionModel = SpvExecutionModel(5);
23}
24impl SpvExecutionModel {
25    pub const Kernel: SpvExecutionModel = SpvExecutionModel(6);
26}
27impl SpvExecutionModel {
28    pub const TaskNV: SpvExecutionModel = SpvExecutionModel(5267);
29}
30impl SpvExecutionModel {
31    pub const MeshNV: SpvExecutionModel = SpvExecutionModel(5268);
32}
33impl SpvExecutionModel {
34    pub const RayGenerationKHR: SpvExecutionModel = SpvExecutionModel(5313);
35}
36impl SpvExecutionModel {
37    pub const RayGenerationNV: SpvExecutionModel = SpvExecutionModel(5313);
38}
39impl SpvExecutionModel {
40    pub const IntersectionKHR: SpvExecutionModel = SpvExecutionModel(5314);
41}
42impl SpvExecutionModel {
43    pub const IntersectionNV: SpvExecutionModel = SpvExecutionModel(5314);
44}
45impl SpvExecutionModel {
46    pub const AnyHitKHR: SpvExecutionModel = SpvExecutionModel(5315);
47}
48impl SpvExecutionModel {
49    pub const AnyHitNV: SpvExecutionModel = SpvExecutionModel(5315);
50}
51impl SpvExecutionModel {
52    pub const ClosestHitKHR: SpvExecutionModel = SpvExecutionModel(5316);
53}
54impl SpvExecutionModel {
55    pub const ClosestHitNV: SpvExecutionModel = SpvExecutionModel(5316);
56}
57impl SpvExecutionModel {
58    pub const MissKHR: SpvExecutionModel = SpvExecutionModel(5317);
59}
60impl SpvExecutionModel {
61    pub const MissNV: SpvExecutionModel = SpvExecutionModel(5317);
62}
63impl SpvExecutionModel {
64    pub const CallableKHR: SpvExecutionModel = SpvExecutionModel(5318);
65}
66impl SpvExecutionModel {
67    pub const CallableNV: SpvExecutionModel = SpvExecutionModel(5318);
68}
69impl SpvExecutionModel {
70    pub const TaskEXT: SpvExecutionModel = SpvExecutionModel(5364);
71}
72impl SpvExecutionModel {
73    pub const MeshEXT: SpvExecutionModel = SpvExecutionModel(5365);
74}
75impl SpvExecutionModel {
76    pub const Max: SpvExecutionModel = SpvExecutionModel(2147483647);
77}
78#[repr(transparent)]
79#[derive(
80    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
81)]
82pub struct SpvExecutionModel(pub i32);
83impl SpvExecutionMode {
84    pub const Invocations: SpvExecutionMode = SpvExecutionMode(0);
85}
86impl SpvExecutionMode {
87    pub const SpacingEqual: SpvExecutionMode = SpvExecutionMode(1);
88}
89impl SpvExecutionMode {
90    pub const SpacingFractionalEven: SpvExecutionMode = SpvExecutionMode(2);
91}
92impl SpvExecutionMode {
93    pub const SpacingFractionalOdd: SpvExecutionMode = SpvExecutionMode(3);
94}
95impl SpvExecutionMode {
96    pub const VertexOrderCw: SpvExecutionMode = SpvExecutionMode(4);
97}
98impl SpvExecutionMode {
99    pub const VertexOrderCcw: SpvExecutionMode = SpvExecutionMode(5);
100}
101impl SpvExecutionMode {
102    pub const PixelCenterInteger: SpvExecutionMode = SpvExecutionMode(6);
103}
104impl SpvExecutionMode {
105    pub const OriginUpperLeft: SpvExecutionMode = SpvExecutionMode(7);
106}
107impl SpvExecutionMode {
108    pub const OriginLowerLeft: SpvExecutionMode = SpvExecutionMode(8);
109}
110impl SpvExecutionMode {
111    pub const EarlyFragmentTests: SpvExecutionMode = SpvExecutionMode(9);
112}
113impl SpvExecutionMode {
114    pub const PointMode: SpvExecutionMode = SpvExecutionMode(10);
115}
116impl SpvExecutionMode {
117    pub const Xfb: SpvExecutionMode = SpvExecutionMode(11);
118}
119impl SpvExecutionMode {
120    pub const DepthReplacing: SpvExecutionMode = SpvExecutionMode(12);
121}
122impl SpvExecutionMode {
123    pub const DepthGreater: SpvExecutionMode = SpvExecutionMode(14);
124}
125impl SpvExecutionMode {
126    pub const DepthLess: SpvExecutionMode = SpvExecutionMode(15);
127}
128impl SpvExecutionMode {
129    pub const DepthUnchanged: SpvExecutionMode = SpvExecutionMode(16);
130}
131impl SpvExecutionMode {
132    pub const LocalSize: SpvExecutionMode = SpvExecutionMode(17);
133}
134impl SpvExecutionMode {
135    pub const LocalSizeHint: SpvExecutionMode = SpvExecutionMode(18);
136}
137impl SpvExecutionMode {
138    pub const InputPoints: SpvExecutionMode = SpvExecutionMode(19);
139}
140impl SpvExecutionMode {
141    pub const InputLines: SpvExecutionMode = SpvExecutionMode(20);
142}
143impl SpvExecutionMode {
144    pub const InputLinesAdjacency: SpvExecutionMode = SpvExecutionMode(21);
145}
146impl SpvExecutionMode {
147    pub const Triangles: SpvExecutionMode = SpvExecutionMode(22);
148}
149impl SpvExecutionMode {
150    pub const InputTrianglesAdjacency: SpvExecutionMode = SpvExecutionMode(23);
151}
152impl SpvExecutionMode {
153    pub const Quads: SpvExecutionMode = SpvExecutionMode(24);
154}
155impl SpvExecutionMode {
156    pub const Isolines: SpvExecutionMode = SpvExecutionMode(25);
157}
158impl SpvExecutionMode {
159    pub const OutputVertices: SpvExecutionMode = SpvExecutionMode(26);
160}
161impl SpvExecutionMode {
162    pub const OutputPoints: SpvExecutionMode = SpvExecutionMode(27);
163}
164impl SpvExecutionMode {
165    pub const OutputLineStrip: SpvExecutionMode = SpvExecutionMode(28);
166}
167impl SpvExecutionMode {
168    pub const OutputTriangleStrip: SpvExecutionMode = SpvExecutionMode(29);
169}
170impl SpvExecutionMode {
171    pub const VecTypeHint: SpvExecutionMode = SpvExecutionMode(30);
172}
173impl SpvExecutionMode {
174    pub const ContractionOff: SpvExecutionMode = SpvExecutionMode(31);
175}
176impl SpvExecutionMode {
177    pub const Initializer: SpvExecutionMode = SpvExecutionMode(33);
178}
179impl SpvExecutionMode {
180    pub const Finalizer: SpvExecutionMode = SpvExecutionMode(34);
181}
182impl SpvExecutionMode {
183    pub const SubgroupSize: SpvExecutionMode = SpvExecutionMode(35);
184}
185impl SpvExecutionMode {
186    pub const SubgroupsPerWorkgroup: SpvExecutionMode = SpvExecutionMode(36);
187}
188impl SpvExecutionMode {
189    pub const SubgroupsPerWorkgroupId: SpvExecutionMode = SpvExecutionMode(37);
190}
191impl SpvExecutionMode {
192    pub const LocalSizeId: SpvExecutionMode = SpvExecutionMode(38);
193}
194impl SpvExecutionMode {
195    pub const LocalSizeHintId: SpvExecutionMode = SpvExecutionMode(39);
196}
197impl SpvExecutionMode {
198    pub const SubgroupUniformControlFlowKHR: SpvExecutionMode = SpvExecutionMode(4421);
199}
200impl SpvExecutionMode {
201    pub const PostDepthCoverage: SpvExecutionMode = SpvExecutionMode(4446);
202}
203impl SpvExecutionMode {
204    pub const DenormPreserve: SpvExecutionMode = SpvExecutionMode(4459);
205}
206impl SpvExecutionMode {
207    pub const DenormFlushToZero: SpvExecutionMode = SpvExecutionMode(4460);
208}
209impl SpvExecutionMode {
210    pub const SignedZeroInfNanPreserve: SpvExecutionMode = SpvExecutionMode(4461);
211}
212impl SpvExecutionMode {
213    pub const RoundingModeRTE: SpvExecutionMode = SpvExecutionMode(4462);
214}
215impl SpvExecutionMode {
216    pub const RoundingModeRTZ: SpvExecutionMode = SpvExecutionMode(4463);
217}
218impl SpvExecutionMode {
219    pub const EarlyAndLateFragmentTestsAMD: SpvExecutionMode = SpvExecutionMode(5017);
220}
221impl SpvExecutionMode {
222    pub const StencilRefReplacingEXT: SpvExecutionMode = SpvExecutionMode(5027);
223}
224impl SpvExecutionMode {
225    pub const StencilRefUnchangedFrontAMD: SpvExecutionMode = SpvExecutionMode(5079);
226}
227impl SpvExecutionMode {
228    pub const StencilRefGreaterFrontAMD: SpvExecutionMode = SpvExecutionMode(5080);
229}
230impl SpvExecutionMode {
231    pub const StencilRefLessFrontAMD: SpvExecutionMode = SpvExecutionMode(5081);
232}
233impl SpvExecutionMode {
234    pub const StencilRefUnchangedBackAMD: SpvExecutionMode = SpvExecutionMode(5082);
235}
236impl SpvExecutionMode {
237    pub const StencilRefGreaterBackAMD: SpvExecutionMode = SpvExecutionMode(5083);
238}
239impl SpvExecutionMode {
240    pub const StencilRefLessBackAMD: SpvExecutionMode = SpvExecutionMode(5084);
241}
242impl SpvExecutionMode {
243    pub const OutputLinesEXT: SpvExecutionMode = SpvExecutionMode(5269);
244}
245impl SpvExecutionMode {
246    pub const OutputLinesNV: SpvExecutionMode = SpvExecutionMode(5269);
247}
248impl SpvExecutionMode {
249    pub const OutputPrimitivesEXT: SpvExecutionMode = SpvExecutionMode(5270);
250}
251impl SpvExecutionMode {
252    pub const OutputPrimitivesNV: SpvExecutionMode = SpvExecutionMode(5270);
253}
254impl SpvExecutionMode {
255    pub const DerivativeGroupQuadsNV: SpvExecutionMode = SpvExecutionMode(5289);
256}
257impl SpvExecutionMode {
258    pub const DerivativeGroupLinearNV: SpvExecutionMode = SpvExecutionMode(5290);
259}
260impl SpvExecutionMode {
261    pub const OutputTrianglesEXT: SpvExecutionMode = SpvExecutionMode(5298);
262}
263impl SpvExecutionMode {
264    pub const OutputTrianglesNV: SpvExecutionMode = SpvExecutionMode(5298);
265}
266impl SpvExecutionMode {
267    pub const PixelInterlockOrderedEXT: SpvExecutionMode = SpvExecutionMode(5366);
268}
269impl SpvExecutionMode {
270    pub const PixelInterlockUnorderedEXT: SpvExecutionMode = SpvExecutionMode(5367);
271}
272impl SpvExecutionMode {
273    pub const SampleInterlockOrderedEXT: SpvExecutionMode = SpvExecutionMode(5368);
274}
275impl SpvExecutionMode {
276    pub const SampleInterlockUnorderedEXT: SpvExecutionMode = SpvExecutionMode(5369);
277}
278impl SpvExecutionMode {
279    pub const ShadingRateInterlockOrderedEXT: SpvExecutionMode = SpvExecutionMode(5370);
280}
281impl SpvExecutionMode {
282    pub const ShadingRateInterlockUnorderedEXT: SpvExecutionMode = SpvExecutionMode(5371);
283}
284impl SpvExecutionMode {
285    pub const SharedLocalMemorySizeINTEL: SpvExecutionMode = SpvExecutionMode(5618);
286}
287impl SpvExecutionMode {
288    pub const RoundingModeRTPINTEL: SpvExecutionMode = SpvExecutionMode(5620);
289}
290impl SpvExecutionMode {
291    pub const RoundingModeRTNINTEL: SpvExecutionMode = SpvExecutionMode(5621);
292}
293impl SpvExecutionMode {
294    pub const FloatingPointModeALTINTEL: SpvExecutionMode = SpvExecutionMode(5622);
295}
296impl SpvExecutionMode {
297    pub const FloatingPointModeIEEEINTEL: SpvExecutionMode = SpvExecutionMode(5623);
298}
299impl SpvExecutionMode {
300    pub const MaxWorkgroupSizeINTEL: SpvExecutionMode = SpvExecutionMode(5893);
301}
302impl SpvExecutionMode {
303    pub const MaxWorkDimINTEL: SpvExecutionMode = SpvExecutionMode(5894);
304}
305impl SpvExecutionMode {
306    pub const NoGlobalOffsetINTEL: SpvExecutionMode = SpvExecutionMode(5895);
307}
308impl SpvExecutionMode {
309    pub const NumSIMDWorkitemsINTEL: SpvExecutionMode = SpvExecutionMode(5896);
310}
311impl SpvExecutionMode {
312    pub const SchedulerTargetFmaxMhzINTEL: SpvExecutionMode = SpvExecutionMode(5903);
313}
314impl SpvExecutionMode {
315    pub const NamedBarrierCountINTEL: SpvExecutionMode = SpvExecutionMode(6417);
316}
317impl SpvExecutionMode {
318    pub const Max: SpvExecutionMode = SpvExecutionMode(2147483647);
319}
320#[repr(transparent)]
321#[derive(
322    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
323)]
324pub struct SpvExecutionMode(pub i32);
325impl SpvStorageClass {
326    pub const UniformConstant: SpvStorageClass = SpvStorageClass(0);
327}
328impl SpvStorageClass {
329    pub const Input: SpvStorageClass = SpvStorageClass(1);
330}
331impl SpvStorageClass {
332    pub const Uniform: SpvStorageClass = SpvStorageClass(2);
333}
334impl SpvStorageClass {
335    pub const Output: SpvStorageClass = SpvStorageClass(3);
336}
337impl SpvStorageClass {
338    pub const Workgroup: SpvStorageClass = SpvStorageClass(4);
339}
340impl SpvStorageClass {
341    pub const CrossWorkgroup: SpvStorageClass = SpvStorageClass(5);
342}
343impl SpvStorageClass {
344    pub const Private: SpvStorageClass = SpvStorageClass(6);
345}
346impl SpvStorageClass {
347    pub const Function: SpvStorageClass = SpvStorageClass(7);
348}
349impl SpvStorageClass {
350    pub const Generic: SpvStorageClass = SpvStorageClass(8);
351}
352impl SpvStorageClass {
353    pub const PushConstant: SpvStorageClass = SpvStorageClass(9);
354}
355impl SpvStorageClass {
356    pub const AtomicCounter: SpvStorageClass = SpvStorageClass(10);
357}
358impl SpvStorageClass {
359    pub const Image: SpvStorageClass = SpvStorageClass(11);
360}
361impl SpvStorageClass {
362    pub const StorageBuffer: SpvStorageClass = SpvStorageClass(12);
363}
364impl SpvStorageClass {
365    pub const CallableDataKHR: SpvStorageClass = SpvStorageClass(5328);
366}
367impl SpvStorageClass {
368    pub const CallableDataNV: SpvStorageClass = SpvStorageClass(5328);
369}
370impl SpvStorageClass {
371    pub const IncomingCallableDataKHR: SpvStorageClass = SpvStorageClass(5329);
372}
373impl SpvStorageClass {
374    pub const IncomingCallableDataNV: SpvStorageClass = SpvStorageClass(5329);
375}
376impl SpvStorageClass {
377    pub const RayPayloadKHR: SpvStorageClass = SpvStorageClass(5338);
378}
379impl SpvStorageClass {
380    pub const RayPayloadNV: SpvStorageClass = SpvStorageClass(5338);
381}
382impl SpvStorageClass {
383    pub const HitAttributeKHR: SpvStorageClass = SpvStorageClass(5339);
384}
385impl SpvStorageClass {
386    pub const HitAttributeNV: SpvStorageClass = SpvStorageClass(5339);
387}
388impl SpvStorageClass {
389    pub const IncomingRayPayloadKHR: SpvStorageClass = SpvStorageClass(5342);
390}
391impl SpvStorageClass {
392    pub const IncomingRayPayloadNV: SpvStorageClass = SpvStorageClass(5342);
393}
394impl SpvStorageClass {
395    pub const ShaderRecordBufferKHR: SpvStorageClass = SpvStorageClass(5343);
396}
397impl SpvStorageClass {
398    pub const ShaderRecordBufferNV: SpvStorageClass = SpvStorageClass(5343);
399}
400impl SpvStorageClass {
401    pub const PhysicalStorageBuffer: SpvStorageClass = SpvStorageClass(5349);
402}
403impl SpvStorageClass {
404    pub const PhysicalStorageBufferEXT: SpvStorageClass = SpvStorageClass(5349);
405}
406impl SpvStorageClass {
407    pub const TaskPayloadWorkgroupEXT: SpvStorageClass = SpvStorageClass(5402);
408}
409impl SpvStorageClass {
410    pub const CodeSectionINTEL: SpvStorageClass = SpvStorageClass(5605);
411}
412impl SpvStorageClass {
413    pub const DeviceOnlyINTEL: SpvStorageClass = SpvStorageClass(5936);
414}
415impl SpvStorageClass {
416    pub const HostOnlyINTEL: SpvStorageClass = SpvStorageClass(5937);
417}
418impl SpvStorageClass {
419    pub const Max: SpvStorageClass = SpvStorageClass(2147483647);
420}
421#[repr(transparent)]
422#[derive(
423    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
424)]
425pub struct SpvStorageClass(pub i32);
426impl SpvDim {
427    pub const Dim1D: SpvDim = SpvDim(0);
428}
429impl SpvDim {
430    pub const Dim2D: SpvDim = SpvDim(1);
431}
432impl SpvDim {
433    pub const Dim3D: SpvDim = SpvDim(2);
434}
435impl SpvDim {
436    pub const DimCube: SpvDim = SpvDim(3);
437}
438impl SpvDim {
439    pub const DimRect: SpvDim = SpvDim(4);
440}
441impl SpvDim {
442    pub const DimBuffer: SpvDim = SpvDim(5);
443}
444impl SpvDim {
445    pub const DimSubpassData: SpvDim = SpvDim(6);
446}
447impl SpvDim {
448    pub const DimMax: SpvDim = SpvDim(2147483647);
449}
450#[repr(transparent)]
451#[derive(
452    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
453)]
454pub struct SpvDim(pub i32);
455impl SpvImageFormat {
456    pub const Unknown: SpvImageFormat = SpvImageFormat(0);
457}
458impl SpvImageFormat {
459    pub const Rgba32f: SpvImageFormat = SpvImageFormat(1);
460}
461impl SpvImageFormat {
462    pub const Rgba16f: SpvImageFormat = SpvImageFormat(2);
463}
464impl SpvImageFormat {
465    pub const R32f: SpvImageFormat = SpvImageFormat(3);
466}
467impl SpvImageFormat {
468    pub const Rgba8: SpvImageFormat = SpvImageFormat(4);
469}
470impl SpvImageFormat {
471    pub const Rgba8Snorm: SpvImageFormat = SpvImageFormat(5);
472}
473impl SpvImageFormat {
474    pub const Rg32f: SpvImageFormat = SpvImageFormat(6);
475}
476impl SpvImageFormat {
477    pub const Rg16f: SpvImageFormat = SpvImageFormat(7);
478}
479impl SpvImageFormat {
480    pub const R11fG11fB10f: SpvImageFormat = SpvImageFormat(8);
481}
482impl SpvImageFormat {
483    pub const R16f: SpvImageFormat = SpvImageFormat(9);
484}
485impl SpvImageFormat {
486    pub const Rgba16: SpvImageFormat = SpvImageFormat(10);
487}
488impl SpvImageFormat {
489    pub const Rgb10A2: SpvImageFormat = SpvImageFormat(11);
490}
491impl SpvImageFormat {
492    pub const Rg16: SpvImageFormat = SpvImageFormat(12);
493}
494impl SpvImageFormat {
495    pub const Rg8: SpvImageFormat = SpvImageFormat(13);
496}
497impl SpvImageFormat {
498    pub const R16: SpvImageFormat = SpvImageFormat(14);
499}
500impl SpvImageFormat {
501    pub const R8: SpvImageFormat = SpvImageFormat(15);
502}
503impl SpvImageFormat {
504    pub const Rgba16Snorm: SpvImageFormat = SpvImageFormat(16);
505}
506impl SpvImageFormat {
507    pub const Rg16Snorm: SpvImageFormat = SpvImageFormat(17);
508}
509impl SpvImageFormat {
510    pub const Rg8Snorm: SpvImageFormat = SpvImageFormat(18);
511}
512impl SpvImageFormat {
513    pub const R16Snorm: SpvImageFormat = SpvImageFormat(19);
514}
515impl SpvImageFormat {
516    pub const R8Snorm: SpvImageFormat = SpvImageFormat(20);
517}
518impl SpvImageFormat {
519    pub const Rgba32i: SpvImageFormat = SpvImageFormat(21);
520}
521impl SpvImageFormat {
522    pub const Rgba16i: SpvImageFormat = SpvImageFormat(22);
523}
524impl SpvImageFormat {
525    pub const Rgba8i: SpvImageFormat = SpvImageFormat(23);
526}
527impl SpvImageFormat {
528    pub const R32i: SpvImageFormat = SpvImageFormat(24);
529}
530impl SpvImageFormat {
531    pub const Rg32i: SpvImageFormat = SpvImageFormat(25);
532}
533impl SpvImageFormat {
534    pub const Rg16i: SpvImageFormat = SpvImageFormat(26);
535}
536impl SpvImageFormat {
537    pub const Rg8i: SpvImageFormat = SpvImageFormat(27);
538}
539impl SpvImageFormat {
540    pub const R16i: SpvImageFormat = SpvImageFormat(28);
541}
542impl SpvImageFormat {
543    pub const R8i: SpvImageFormat = SpvImageFormat(29);
544}
545impl SpvImageFormat {
546    pub const Rgba32ui: SpvImageFormat = SpvImageFormat(30);
547}
548impl SpvImageFormat {
549    pub const Rgba16ui: SpvImageFormat = SpvImageFormat(31);
550}
551impl SpvImageFormat {
552    pub const Rgba8ui: SpvImageFormat = SpvImageFormat(32);
553}
554impl SpvImageFormat {
555    pub const R32ui: SpvImageFormat = SpvImageFormat(33);
556}
557impl SpvImageFormat {
558    pub const Rgb10a2ui: SpvImageFormat = SpvImageFormat(34);
559}
560impl SpvImageFormat {
561    pub const Rg32ui: SpvImageFormat = SpvImageFormat(35);
562}
563impl SpvImageFormat {
564    pub const Rg16ui: SpvImageFormat = SpvImageFormat(36);
565}
566impl SpvImageFormat {
567    pub const Rg8ui: SpvImageFormat = SpvImageFormat(37);
568}
569impl SpvImageFormat {
570    pub const R16ui: SpvImageFormat = SpvImageFormat(38);
571}
572impl SpvImageFormat {
573    pub const R8ui: SpvImageFormat = SpvImageFormat(39);
574}
575impl SpvImageFormat {
576    pub const R64ui: SpvImageFormat = SpvImageFormat(40);
577}
578impl SpvImageFormat {
579    pub const R64i: SpvImageFormat = SpvImageFormat(41);
580}
581impl SpvImageFormat {
582    pub const Max: SpvImageFormat = SpvImageFormat(2147483647);
583}
584#[repr(transparent)]
585#[derive(
586    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
587)]
588pub struct SpvImageFormat(pub i32);
589impl SpvFPRoundingMode {
590    pub const RTE: SpvFPRoundingMode = SpvFPRoundingMode(0);
591}
592impl SpvFPRoundingMode {
593    pub const RTZ: SpvFPRoundingMode = SpvFPRoundingMode(1);
594}
595impl SpvFPRoundingMode {
596    pub const RTP: SpvFPRoundingMode = SpvFPRoundingMode(2);
597}
598impl SpvFPRoundingMode {
599    pub const RTN: SpvFPRoundingMode = SpvFPRoundingMode(3);
600}
601impl SpvFPRoundingMode {
602    pub const Max: SpvFPRoundingMode = SpvFPRoundingMode(2147483647);
603}
604#[repr(transparent)]
605#[derive(
606    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
607)]
608pub struct SpvFPRoundingMode(pub i32);
609pub const SpvAccessQualifier_ReadOnly: SpvAccessQualifier = 0;
610pub const SpvAccessQualifier_WriteOnly: SpvAccessQualifier = 1;
611pub const SpvAccessQualifier_ReadWrite: SpvAccessQualifier = 2;
612pub const SpvAccessQualifier_Max: SpvAccessQualifier = 2147483647;
613pub type SpvAccessQualifier = i32;
614impl SpvDecoration {
615    pub const RelaxedPrecision: SpvDecoration = SpvDecoration(0);
616}
617impl SpvDecoration {
618    pub const SpecId: SpvDecoration = SpvDecoration(1);
619}
620impl SpvDecoration {
621    pub const Block: SpvDecoration = SpvDecoration(2);
622}
623impl SpvDecoration {
624    pub const BufferBlock: SpvDecoration = SpvDecoration(3);
625}
626impl SpvDecoration {
627    pub const RowMajor: SpvDecoration = SpvDecoration(4);
628}
629impl SpvDecoration {
630    pub const ColMajor: SpvDecoration = SpvDecoration(5);
631}
632impl SpvDecoration {
633    pub const ArrayStride: SpvDecoration = SpvDecoration(6);
634}
635impl SpvDecoration {
636    pub const MatrixStride: SpvDecoration = SpvDecoration(7);
637}
638impl SpvDecoration {
639    pub const GLSLShared: SpvDecoration = SpvDecoration(8);
640}
641impl SpvDecoration {
642    pub const GLSLPacked: SpvDecoration = SpvDecoration(9);
643}
644impl SpvDecoration {
645    pub const CPacked: SpvDecoration = SpvDecoration(10);
646}
647impl SpvDecoration {
648    pub const BuiltIn: SpvDecoration = SpvDecoration(11);
649}
650impl SpvDecoration {
651    pub const NoPerspective: SpvDecoration = SpvDecoration(13);
652}
653impl SpvDecoration {
654    pub const Flat: SpvDecoration = SpvDecoration(14);
655}
656impl SpvDecoration {
657    pub const Patch: SpvDecoration = SpvDecoration(15);
658}
659impl SpvDecoration {
660    pub const Centroid: SpvDecoration = SpvDecoration(16);
661}
662impl SpvDecoration {
663    pub const Sample: SpvDecoration = SpvDecoration(17);
664}
665impl SpvDecoration {
666    pub const Invariant: SpvDecoration = SpvDecoration(18);
667}
668impl SpvDecoration {
669    pub const Restrict: SpvDecoration = SpvDecoration(19);
670}
671impl SpvDecoration {
672    pub const Aliased: SpvDecoration = SpvDecoration(20);
673}
674impl SpvDecoration {
675    pub const Volatile: SpvDecoration = SpvDecoration(21);
676}
677impl SpvDecoration {
678    pub const Constant: SpvDecoration = SpvDecoration(22);
679}
680impl SpvDecoration {
681    pub const Coherent: SpvDecoration = SpvDecoration(23);
682}
683impl SpvDecoration {
684    pub const NonWritable: SpvDecoration = SpvDecoration(24);
685}
686impl SpvDecoration {
687    pub const NonReadable: SpvDecoration = SpvDecoration(25);
688}
689impl SpvDecoration {
690    pub const Uniform: SpvDecoration = SpvDecoration(26);
691}
692impl SpvDecoration {
693    pub const UniformId: SpvDecoration = SpvDecoration(27);
694}
695impl SpvDecoration {
696    pub const SaturatedConversion: SpvDecoration = SpvDecoration(28);
697}
698impl SpvDecoration {
699    pub const Stream: SpvDecoration = SpvDecoration(29);
700}
701impl SpvDecoration {
702    pub const Location: SpvDecoration = SpvDecoration(30);
703}
704impl SpvDecoration {
705    pub const Component: SpvDecoration = SpvDecoration(31);
706}
707impl SpvDecoration {
708    pub const Index: SpvDecoration = SpvDecoration(32);
709}
710impl SpvDecoration {
711    pub const Binding: SpvDecoration = SpvDecoration(33);
712}
713impl SpvDecoration {
714    pub const DescriptorSet: SpvDecoration = SpvDecoration(34);
715}
716impl SpvDecoration {
717    pub const Offset: SpvDecoration = SpvDecoration(35);
718}
719impl SpvDecoration {
720    pub const XfbBuffer: SpvDecoration = SpvDecoration(36);
721}
722impl SpvDecoration {
723    pub const XfbStride: SpvDecoration = SpvDecoration(37);
724}
725impl SpvDecoration {
726    pub const FuncParamAttr: SpvDecoration = SpvDecoration(38);
727}
728impl SpvDecoration {
729    pub const FPRoundingMode: SpvDecoration = SpvDecoration(39);
730}
731impl SpvDecoration {
732    pub const FPFastMathMode: SpvDecoration = SpvDecoration(40);
733}
734impl SpvDecoration {
735    pub const LinkageAttributes: SpvDecoration = SpvDecoration(41);
736}
737impl SpvDecoration {
738    pub const NoContraction: SpvDecoration = SpvDecoration(42);
739}
740impl SpvDecoration {
741    pub const InputAttachmentIndex: SpvDecoration = SpvDecoration(43);
742}
743impl SpvDecoration {
744    pub const Alignment: SpvDecoration = SpvDecoration(44);
745}
746impl SpvDecoration {
747    pub const MaxByteOffset: SpvDecoration = SpvDecoration(45);
748}
749impl SpvDecoration {
750    pub const AlignmentId: SpvDecoration = SpvDecoration(46);
751}
752impl SpvDecoration {
753    pub const MaxByteOffsetId: SpvDecoration = SpvDecoration(47);
754}
755impl SpvDecoration {
756    pub const NoSignedWrap: SpvDecoration = SpvDecoration(4469);
757}
758impl SpvDecoration {
759    pub const NoUnsignedWrap: SpvDecoration = SpvDecoration(4470);
760}
761impl SpvDecoration {
762    pub const WeightTextureQCOM: SpvDecoration = SpvDecoration(4487);
763}
764impl SpvDecoration {
765    pub const BlockMatchTextureQCOM: SpvDecoration = SpvDecoration(4488);
766}
767impl SpvDecoration {
768    pub const BlockMatchSamplerQCOM: SpvDecoration = SpvDecoration(4499);
769}
770impl SpvDecoration {
771    pub const ExplicitInterpAMD: SpvDecoration = SpvDecoration(4999);
772}
773impl SpvDecoration {
774    pub const OverrideCoverageNV: SpvDecoration = SpvDecoration(5248);
775}
776impl SpvDecoration {
777    pub const PassthroughNV: SpvDecoration = SpvDecoration(5250);
778}
779impl SpvDecoration {
780    pub const ViewportRelativeNV: SpvDecoration = SpvDecoration(5252);
781}
782impl SpvDecoration {
783    pub const SecondaryViewportRelativeNV: SpvDecoration = SpvDecoration(5256);
784}
785impl SpvDecoration {
786    pub const PerPrimitiveEXT: SpvDecoration = SpvDecoration(5271);
787}
788impl SpvDecoration {
789    pub const PerPrimitiveNV: SpvDecoration = SpvDecoration(5271);
790}
791impl SpvDecoration {
792    pub const PerViewNV: SpvDecoration = SpvDecoration(5272);
793}
794impl SpvDecoration {
795    pub const PerTaskNV: SpvDecoration = SpvDecoration(5273);
796}
797impl SpvDecoration {
798    pub const PerVertexKHR: SpvDecoration = SpvDecoration(5285);
799}
800impl SpvDecoration {
801    pub const PerVertexNV: SpvDecoration = SpvDecoration(5285);
802}
803impl SpvDecoration {
804    pub const NonUniform: SpvDecoration = SpvDecoration(5300);
805}
806impl SpvDecoration {
807    pub const NonUniformEXT: SpvDecoration = SpvDecoration(5300);
808}
809impl SpvDecoration {
810    pub const RestrictPointer: SpvDecoration = SpvDecoration(5355);
811}
812impl SpvDecoration {
813    pub const RestrictPointerEXT: SpvDecoration = SpvDecoration(5355);
814}
815impl SpvDecoration {
816    pub const AliasedPointer: SpvDecoration = SpvDecoration(5356);
817}
818impl SpvDecoration {
819    pub const AliasedPointerEXT: SpvDecoration = SpvDecoration(5356);
820}
821impl SpvDecoration {
822    pub const BindlessSamplerNV: SpvDecoration = SpvDecoration(5398);
823}
824impl SpvDecoration {
825    pub const BindlessImageNV: SpvDecoration = SpvDecoration(5399);
826}
827impl SpvDecoration {
828    pub const BoundSamplerNV: SpvDecoration = SpvDecoration(5400);
829}
830impl SpvDecoration {
831    pub const BoundImageNV: SpvDecoration = SpvDecoration(5401);
832}
833impl SpvDecoration {
834    pub const SIMTCallINTEL: SpvDecoration = SpvDecoration(5599);
835}
836impl SpvDecoration {
837    pub const ReferencedIndirectlyINTEL: SpvDecoration = SpvDecoration(5602);
838}
839impl SpvDecoration {
840    pub const ClobberINTEL: SpvDecoration = SpvDecoration(5607);
841}
842impl SpvDecoration {
843    pub const SideEffectsINTEL: SpvDecoration = SpvDecoration(5608);
844}
845impl SpvDecoration {
846    pub const VectorComputeVariableINTEL: SpvDecoration = SpvDecoration(5624);
847}
848impl SpvDecoration {
849    pub const FuncParamIOKindINTEL: SpvDecoration = SpvDecoration(5625);
850}
851impl SpvDecoration {
852    pub const VectorComputeFunctionINTEL: SpvDecoration = SpvDecoration(5626);
853}
854impl SpvDecoration {
855    pub const StackCallINTEL: SpvDecoration = SpvDecoration(5627);
856}
857impl SpvDecoration {
858    pub const GlobalVariableOffsetINTEL: SpvDecoration = SpvDecoration(5628);
859}
860impl SpvDecoration {
861    pub const CounterBuffer: SpvDecoration = SpvDecoration(5634);
862}
863impl SpvDecoration {
864    pub const HlslCounterBufferGOOGLE: SpvDecoration = SpvDecoration(5634);
865}
866impl SpvDecoration {
867    pub const HlslSemanticGOOGLE: SpvDecoration = SpvDecoration(5635);
868}
869impl SpvDecoration {
870    pub const UserSemantic: SpvDecoration = SpvDecoration(5635);
871}
872impl SpvDecoration {
873    pub const UserTypeGOOGLE: SpvDecoration = SpvDecoration(5636);
874}
875impl SpvDecoration {
876    pub const FunctionRoundingModeINTEL: SpvDecoration = SpvDecoration(5822);
877}
878impl SpvDecoration {
879    pub const FunctionDenormModeINTEL: SpvDecoration = SpvDecoration(5823);
880}
881impl SpvDecoration {
882    pub const RegisterINTEL: SpvDecoration = SpvDecoration(5825);
883}
884impl SpvDecoration {
885    pub const MemoryINTEL: SpvDecoration = SpvDecoration(5826);
886}
887impl SpvDecoration {
888    pub const NumbanksINTEL: SpvDecoration = SpvDecoration(5827);
889}
890impl SpvDecoration {
891    pub const BankwidthINTEL: SpvDecoration = SpvDecoration(5828);
892}
893impl SpvDecoration {
894    pub const MaxPrivateCopiesINTEL: SpvDecoration = SpvDecoration(5829);
895}
896impl SpvDecoration {
897    pub const SinglepumpINTEL: SpvDecoration = SpvDecoration(5830);
898}
899impl SpvDecoration {
900    pub const DoublepumpINTEL: SpvDecoration = SpvDecoration(5831);
901}
902impl SpvDecoration {
903    pub const MaxReplicatesINTEL: SpvDecoration = SpvDecoration(5832);
904}
905impl SpvDecoration {
906    pub const SimpleDualPortINTEL: SpvDecoration = SpvDecoration(5833);
907}
908impl SpvDecoration {
909    pub const MergeINTEL: SpvDecoration = SpvDecoration(5834);
910}
911impl SpvDecoration {
912    pub const BankBitsINTEL: SpvDecoration = SpvDecoration(5835);
913}
914impl SpvDecoration {
915    pub const ForcePow2DepthINTEL: SpvDecoration = SpvDecoration(5836);
916}
917impl SpvDecoration {
918    pub const BurstCoalesceINTEL: SpvDecoration = SpvDecoration(5899);
919}
920impl SpvDecoration {
921    pub const CacheSizeINTEL: SpvDecoration = SpvDecoration(5900);
922}
923impl SpvDecoration {
924    pub const DontStaticallyCoalesceINTEL: SpvDecoration = SpvDecoration(5901);
925}
926impl SpvDecoration {
927    pub const PrefetchINTEL: SpvDecoration = SpvDecoration(5902);
928}
929impl SpvDecoration {
930    pub const StallEnableINTEL: SpvDecoration = SpvDecoration(5905);
931}
932impl SpvDecoration {
933    pub const FuseLoopsInFunctionINTEL: SpvDecoration = SpvDecoration(5907);
934}
935impl SpvDecoration {
936    pub const AliasScopeINTEL: SpvDecoration = SpvDecoration(5914);
937}
938impl SpvDecoration {
939    pub const NoAliasINTEL: SpvDecoration = SpvDecoration(5915);
940}
941impl SpvDecoration {
942    pub const BufferLocationINTEL: SpvDecoration = SpvDecoration(5921);
943}
944impl SpvDecoration {
945    pub const IOPipeStorageINTEL: SpvDecoration = SpvDecoration(5944);
946}
947impl SpvDecoration {
948    pub const FunctionFloatingPointModeINTEL: SpvDecoration = SpvDecoration(6080);
949}
950impl SpvDecoration {
951    pub const SingleElementVectorINTEL: SpvDecoration = SpvDecoration(6085);
952}
953impl SpvDecoration {
954    pub const VectorComputeCallableFunctionINTEL: SpvDecoration = SpvDecoration(6087);
955}
956impl SpvDecoration {
957    pub const MediaBlockIOINTEL: SpvDecoration = SpvDecoration(6140);
958}
959impl SpvDecoration {
960    pub const Max: SpvDecoration = SpvDecoration(2147483647);
961}
962#[repr(transparent)]
963#[derive(
964    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
965)]
966pub struct SpvDecoration(pub i32);
967impl SpvBuiltIn {
968    pub const Position: SpvBuiltIn = SpvBuiltIn(0);
969}
970impl SpvBuiltIn {
971    pub const PointSize: SpvBuiltIn = SpvBuiltIn(1);
972}
973impl SpvBuiltIn {
974    pub const ClipDistance: SpvBuiltIn = SpvBuiltIn(3);
975}
976impl SpvBuiltIn {
977    pub const CullDistance: SpvBuiltIn = SpvBuiltIn(4);
978}
979impl SpvBuiltIn {
980    pub const VertexId: SpvBuiltIn = SpvBuiltIn(5);
981}
982impl SpvBuiltIn {
983    pub const InstanceId: SpvBuiltIn = SpvBuiltIn(6);
984}
985impl SpvBuiltIn {
986    pub const PrimitiveId: SpvBuiltIn = SpvBuiltIn(7);
987}
988impl SpvBuiltIn {
989    pub const InvocationId: SpvBuiltIn = SpvBuiltIn(8);
990}
991impl SpvBuiltIn {
992    pub const Layer: SpvBuiltIn = SpvBuiltIn(9);
993}
994impl SpvBuiltIn {
995    pub const ViewportIndex: SpvBuiltIn = SpvBuiltIn(10);
996}
997impl SpvBuiltIn {
998    pub const TessLevelOuter: SpvBuiltIn = SpvBuiltIn(11);
999}
1000impl SpvBuiltIn {
1001    pub const TessLevelInner: SpvBuiltIn = SpvBuiltIn(12);
1002}
1003impl SpvBuiltIn {
1004    pub const TessCoord: SpvBuiltIn = SpvBuiltIn(13);
1005}
1006impl SpvBuiltIn {
1007    pub const PatchVertices: SpvBuiltIn = SpvBuiltIn(14);
1008}
1009impl SpvBuiltIn {
1010    pub const FragCoord: SpvBuiltIn = SpvBuiltIn(15);
1011}
1012impl SpvBuiltIn {
1013    pub const PointCoord: SpvBuiltIn = SpvBuiltIn(16);
1014}
1015impl SpvBuiltIn {
1016    pub const FrontFacing: SpvBuiltIn = SpvBuiltIn(17);
1017}
1018impl SpvBuiltIn {
1019    pub const SampleId: SpvBuiltIn = SpvBuiltIn(18);
1020}
1021impl SpvBuiltIn {
1022    pub const SamplePosition: SpvBuiltIn = SpvBuiltIn(19);
1023}
1024impl SpvBuiltIn {
1025    pub const SampleMask: SpvBuiltIn = SpvBuiltIn(20);
1026}
1027impl SpvBuiltIn {
1028    pub const FragDepth: SpvBuiltIn = SpvBuiltIn(22);
1029}
1030impl SpvBuiltIn {
1031    pub const HelperInvocation: SpvBuiltIn = SpvBuiltIn(23);
1032}
1033impl SpvBuiltIn {
1034    pub const NumWorkgroups: SpvBuiltIn = SpvBuiltIn(24);
1035}
1036impl SpvBuiltIn {
1037    pub const WorkgroupSize: SpvBuiltIn = SpvBuiltIn(25);
1038}
1039impl SpvBuiltIn {
1040    pub const WorkgroupId: SpvBuiltIn = SpvBuiltIn(26);
1041}
1042impl SpvBuiltIn {
1043    pub const LocalInvocationId: SpvBuiltIn = SpvBuiltIn(27);
1044}
1045impl SpvBuiltIn {
1046    pub const GlobalInvocationId: SpvBuiltIn = SpvBuiltIn(28);
1047}
1048impl SpvBuiltIn {
1049    pub const LocalInvocationIndex: SpvBuiltIn = SpvBuiltIn(29);
1050}
1051impl SpvBuiltIn {
1052    pub const WorkDim: SpvBuiltIn = SpvBuiltIn(30);
1053}
1054impl SpvBuiltIn {
1055    pub const GlobalSize: SpvBuiltIn = SpvBuiltIn(31);
1056}
1057impl SpvBuiltIn {
1058    pub const EnqueuedWorkgroupSize: SpvBuiltIn = SpvBuiltIn(32);
1059}
1060impl SpvBuiltIn {
1061    pub const GlobalOffset: SpvBuiltIn = SpvBuiltIn(33);
1062}
1063impl SpvBuiltIn {
1064    pub const GlobalLinearId: SpvBuiltIn = SpvBuiltIn(34);
1065}
1066impl SpvBuiltIn {
1067    pub const SubgroupSize: SpvBuiltIn = SpvBuiltIn(36);
1068}
1069impl SpvBuiltIn {
1070    pub const SubgroupMaxSize: SpvBuiltIn = SpvBuiltIn(37);
1071}
1072impl SpvBuiltIn {
1073    pub const NumSubgroups: SpvBuiltIn = SpvBuiltIn(38);
1074}
1075impl SpvBuiltIn {
1076    pub const NumEnqueuedSubgroups: SpvBuiltIn = SpvBuiltIn(39);
1077}
1078impl SpvBuiltIn {
1079    pub const SubgroupId: SpvBuiltIn = SpvBuiltIn(40);
1080}
1081impl SpvBuiltIn {
1082    pub const SubgroupLocalInvocationId: SpvBuiltIn = SpvBuiltIn(41);
1083}
1084impl SpvBuiltIn {
1085    pub const VertexIndex: SpvBuiltIn = SpvBuiltIn(42);
1086}
1087impl SpvBuiltIn {
1088    pub const InstanceIndex: SpvBuiltIn = SpvBuiltIn(43);
1089}
1090impl SpvBuiltIn {
1091    pub const SubgroupEqMask: SpvBuiltIn = SpvBuiltIn(4416);
1092}
1093impl SpvBuiltIn {
1094    pub const SubgroupEqMaskKHR: SpvBuiltIn = SpvBuiltIn(4416);
1095}
1096impl SpvBuiltIn {
1097    pub const SubgroupGeMask: SpvBuiltIn = SpvBuiltIn(4417);
1098}
1099impl SpvBuiltIn {
1100    pub const SubgroupGeMaskKHR: SpvBuiltIn = SpvBuiltIn(4417);
1101}
1102impl SpvBuiltIn {
1103    pub const SubgroupGtMask: SpvBuiltIn = SpvBuiltIn(4418);
1104}
1105impl SpvBuiltIn {
1106    pub const SubgroupGtMaskKHR: SpvBuiltIn = SpvBuiltIn(4418);
1107}
1108impl SpvBuiltIn {
1109    pub const SubgroupLeMask: SpvBuiltIn = SpvBuiltIn(4419);
1110}
1111impl SpvBuiltIn {
1112    pub const SubgroupLeMaskKHR: SpvBuiltIn = SpvBuiltIn(4419);
1113}
1114impl SpvBuiltIn {
1115    pub const SubgroupLtMask: SpvBuiltIn = SpvBuiltIn(4420);
1116}
1117impl SpvBuiltIn {
1118    pub const SubgroupLtMaskKHR: SpvBuiltIn = SpvBuiltIn(4420);
1119}
1120impl SpvBuiltIn {
1121    pub const BaseVertex: SpvBuiltIn = SpvBuiltIn(4424);
1122}
1123impl SpvBuiltIn {
1124    pub const BaseInstance: SpvBuiltIn = SpvBuiltIn(4425);
1125}
1126impl SpvBuiltIn {
1127    pub const DrawIndex: SpvBuiltIn = SpvBuiltIn(4426);
1128}
1129impl SpvBuiltIn {
1130    pub const PrimitiveShadingRateKHR: SpvBuiltIn = SpvBuiltIn(4432);
1131}
1132impl SpvBuiltIn {
1133    pub const DeviceIndex: SpvBuiltIn = SpvBuiltIn(4438);
1134}
1135impl SpvBuiltIn {
1136    pub const ViewIndex: SpvBuiltIn = SpvBuiltIn(4440);
1137}
1138impl SpvBuiltIn {
1139    pub const ShadingRateKHR: SpvBuiltIn = SpvBuiltIn(4444);
1140}
1141impl SpvBuiltIn {
1142    pub const BaryCoordNoPerspAMD: SpvBuiltIn = SpvBuiltIn(4992);
1143}
1144impl SpvBuiltIn {
1145    pub const BaryCoordNoPerspCentroidAMD: SpvBuiltIn = SpvBuiltIn(4993);
1146}
1147impl SpvBuiltIn {
1148    pub const BaryCoordNoPerspSampleAMD: SpvBuiltIn = SpvBuiltIn(4994);
1149}
1150impl SpvBuiltIn {
1151    pub const BaryCoordSmoothAMD: SpvBuiltIn = SpvBuiltIn(4995);
1152}
1153impl SpvBuiltIn {
1154    pub const BaryCoordSmoothCentroidAMD: SpvBuiltIn = SpvBuiltIn(4996);
1155}
1156impl SpvBuiltIn {
1157    pub const BaryCoordSmoothSampleAMD: SpvBuiltIn = SpvBuiltIn(4997);
1158}
1159impl SpvBuiltIn {
1160    pub const BaryCoordPullModelAMD: SpvBuiltIn = SpvBuiltIn(4998);
1161}
1162impl SpvBuiltIn {
1163    pub const FragStencilRefEXT: SpvBuiltIn = SpvBuiltIn(5014);
1164}
1165impl SpvBuiltIn {
1166    pub const ViewportMaskNV: SpvBuiltIn = SpvBuiltIn(5253);
1167}
1168impl SpvBuiltIn {
1169    pub const SecondaryPositionNV: SpvBuiltIn = SpvBuiltIn(5257);
1170}
1171impl SpvBuiltIn {
1172    pub const SecondaryViewportMaskNV: SpvBuiltIn = SpvBuiltIn(5258);
1173}
1174impl SpvBuiltIn {
1175    pub const PositionPerViewNV: SpvBuiltIn = SpvBuiltIn(5261);
1176}
1177impl SpvBuiltIn {
1178    pub const ViewportMaskPerViewNV: SpvBuiltIn = SpvBuiltIn(5262);
1179}
1180impl SpvBuiltIn {
1181    pub const FullyCoveredEXT: SpvBuiltIn = SpvBuiltIn(5264);
1182}
1183impl SpvBuiltIn {
1184    pub const TaskCountNV: SpvBuiltIn = SpvBuiltIn(5274);
1185}
1186impl SpvBuiltIn {
1187    pub const PrimitiveCountNV: SpvBuiltIn = SpvBuiltIn(5275);
1188}
1189impl SpvBuiltIn {
1190    pub const PrimitiveIndicesNV: SpvBuiltIn = SpvBuiltIn(5276);
1191}
1192impl SpvBuiltIn {
1193    pub const ClipDistancePerViewNV: SpvBuiltIn = SpvBuiltIn(5277);
1194}
1195impl SpvBuiltIn {
1196    pub const CullDistancePerViewNV: SpvBuiltIn = SpvBuiltIn(5278);
1197}
1198impl SpvBuiltIn {
1199    pub const LayerPerViewNV: SpvBuiltIn = SpvBuiltIn(5279);
1200}
1201impl SpvBuiltIn {
1202    pub const MeshViewCountNV: SpvBuiltIn = SpvBuiltIn(5280);
1203}
1204impl SpvBuiltIn {
1205    pub const MeshViewIndicesNV: SpvBuiltIn = SpvBuiltIn(5281);
1206}
1207impl SpvBuiltIn {
1208    pub const BaryCoordKHR: SpvBuiltIn = SpvBuiltIn(5286);
1209}
1210impl SpvBuiltIn {
1211    pub const BaryCoordNV: SpvBuiltIn = SpvBuiltIn(5286);
1212}
1213impl SpvBuiltIn {
1214    pub const BaryCoordNoPerspKHR: SpvBuiltIn = SpvBuiltIn(5287);
1215}
1216impl SpvBuiltIn {
1217    pub const BaryCoordNoPerspNV: SpvBuiltIn = SpvBuiltIn(5287);
1218}
1219impl SpvBuiltIn {
1220    pub const FragSizeEXT: SpvBuiltIn = SpvBuiltIn(5292);
1221}
1222impl SpvBuiltIn {
1223    pub const FragmentSizeNV: SpvBuiltIn = SpvBuiltIn(5292);
1224}
1225impl SpvBuiltIn {
1226    pub const FragInvocationCountEXT: SpvBuiltIn = SpvBuiltIn(5293);
1227}
1228impl SpvBuiltIn {
1229    pub const InvocationsPerPixelNV: SpvBuiltIn = SpvBuiltIn(5293);
1230}
1231impl SpvBuiltIn {
1232    pub const PrimitivePointIndicesEXT: SpvBuiltIn = SpvBuiltIn(5294);
1233}
1234impl SpvBuiltIn {
1235    pub const PrimitiveLineIndicesEXT: SpvBuiltIn = SpvBuiltIn(5295);
1236}
1237impl SpvBuiltIn {
1238    pub const PrimitiveTriangleIndicesEXT: SpvBuiltIn = SpvBuiltIn(5296);
1239}
1240impl SpvBuiltIn {
1241    pub const CullPrimitiveEXT: SpvBuiltIn = SpvBuiltIn(5299);
1242}
1243impl SpvBuiltIn {
1244    pub const LaunchIdKHR: SpvBuiltIn = SpvBuiltIn(5319);
1245}
1246impl SpvBuiltIn {
1247    pub const LaunchIdNV: SpvBuiltIn = SpvBuiltIn(5319);
1248}
1249impl SpvBuiltIn {
1250    pub const LaunchSizeKHR: SpvBuiltIn = SpvBuiltIn(5320);
1251}
1252impl SpvBuiltIn {
1253    pub const LaunchSizeNV: SpvBuiltIn = SpvBuiltIn(5320);
1254}
1255impl SpvBuiltIn {
1256    pub const WorldRayOriginKHR: SpvBuiltIn = SpvBuiltIn(5321);
1257}
1258impl SpvBuiltIn {
1259    pub const WorldRayOriginNV: SpvBuiltIn = SpvBuiltIn(5321);
1260}
1261impl SpvBuiltIn {
1262    pub const WorldRayDirectionKHR: SpvBuiltIn = SpvBuiltIn(5322);
1263}
1264impl SpvBuiltIn {
1265    pub const WorldRayDirectionNV: SpvBuiltIn = SpvBuiltIn(5322);
1266}
1267impl SpvBuiltIn {
1268    pub const ObjectRayOriginKHR: SpvBuiltIn = SpvBuiltIn(5323);
1269}
1270impl SpvBuiltIn {
1271    pub const ObjectRayOriginNV: SpvBuiltIn = SpvBuiltIn(5323);
1272}
1273impl SpvBuiltIn {
1274    pub const ObjectRayDirectionKHR: SpvBuiltIn = SpvBuiltIn(5324);
1275}
1276impl SpvBuiltIn {
1277    pub const ObjectRayDirectionNV: SpvBuiltIn = SpvBuiltIn(5324);
1278}
1279impl SpvBuiltIn {
1280    pub const RayTminKHR: SpvBuiltIn = SpvBuiltIn(5325);
1281}
1282impl SpvBuiltIn {
1283    pub const RayTminNV: SpvBuiltIn = SpvBuiltIn(5325);
1284}
1285impl SpvBuiltIn {
1286    pub const RayTmaxKHR: SpvBuiltIn = SpvBuiltIn(5326);
1287}
1288impl SpvBuiltIn {
1289    pub const RayTmaxNV: SpvBuiltIn = SpvBuiltIn(5326);
1290}
1291impl SpvBuiltIn {
1292    pub const InstanceCustomIndexKHR: SpvBuiltIn = SpvBuiltIn(5327);
1293}
1294impl SpvBuiltIn {
1295    pub const InstanceCustomIndexNV: SpvBuiltIn = SpvBuiltIn(5327);
1296}
1297impl SpvBuiltIn {
1298    pub const ObjectToWorldKHR: SpvBuiltIn = SpvBuiltIn(5330);
1299}
1300impl SpvBuiltIn {
1301    pub const ObjectToWorldNV: SpvBuiltIn = SpvBuiltIn(5330);
1302}
1303impl SpvBuiltIn {
1304    pub const WorldToObjectKHR: SpvBuiltIn = SpvBuiltIn(5331);
1305}
1306impl SpvBuiltIn {
1307    pub const WorldToObjectNV: SpvBuiltIn = SpvBuiltIn(5331);
1308}
1309impl SpvBuiltIn {
1310    pub const HitTNV: SpvBuiltIn = SpvBuiltIn(5332);
1311}
1312impl SpvBuiltIn {
1313    pub const HitKindKHR: SpvBuiltIn = SpvBuiltIn(5333);
1314}
1315impl SpvBuiltIn {
1316    pub const HitKindNV: SpvBuiltIn = SpvBuiltIn(5333);
1317}
1318impl SpvBuiltIn {
1319    pub const CurrentRayTimeNV: SpvBuiltIn = SpvBuiltIn(5334);
1320}
1321impl SpvBuiltIn {
1322    pub const IncomingRayFlagsKHR: SpvBuiltIn = SpvBuiltIn(5351);
1323}
1324impl SpvBuiltIn {
1325    pub const IncomingRayFlagsNV: SpvBuiltIn = SpvBuiltIn(5351);
1326}
1327impl SpvBuiltIn {
1328    pub const RayGeometryIndexKHR: SpvBuiltIn = SpvBuiltIn(5352);
1329}
1330impl SpvBuiltIn {
1331    pub const WarpsPerSMNV: SpvBuiltIn = SpvBuiltIn(5374);
1332}
1333impl SpvBuiltIn {
1334    pub const SMCountNV: SpvBuiltIn = SpvBuiltIn(5375);
1335}
1336impl SpvBuiltIn {
1337    pub const WarpIDNV: SpvBuiltIn = SpvBuiltIn(5376);
1338}
1339impl SpvBuiltIn {
1340    pub const SMIDNV: SpvBuiltIn = SpvBuiltIn(5377);
1341}
1342impl SpvBuiltIn {
1343    pub const CullMaskKHR: SpvBuiltIn = SpvBuiltIn(6021);
1344}
1345impl SpvBuiltIn {
1346    pub const Max: SpvBuiltIn = SpvBuiltIn(2147483647);
1347}
1348#[repr(transparent)]
1349#[derive(
1350    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
1351)]
1352pub struct SpvBuiltIn(pub i32);
1353impl SpvCapability {
1354    pub const Matrix: SpvCapability = SpvCapability(0);
1355}
1356impl SpvCapability {
1357    pub const Shader: SpvCapability = SpvCapability(1);
1358}
1359impl SpvCapability {
1360    pub const Geometry: SpvCapability = SpvCapability(2);
1361}
1362impl SpvCapability {
1363    pub const Tessellation: SpvCapability = SpvCapability(3);
1364}
1365impl SpvCapability {
1366    pub const Addresses: SpvCapability = SpvCapability(4);
1367}
1368impl SpvCapability {
1369    pub const Linkage: SpvCapability = SpvCapability(5);
1370}
1371impl SpvCapability {
1372    pub const Kernel: SpvCapability = SpvCapability(6);
1373}
1374impl SpvCapability {
1375    pub const Vector16: SpvCapability = SpvCapability(7);
1376}
1377impl SpvCapability {
1378    pub const Float16Buffer: SpvCapability = SpvCapability(8);
1379}
1380impl SpvCapability {
1381    pub const Float16: SpvCapability = SpvCapability(9);
1382}
1383impl SpvCapability {
1384    pub const Float64: SpvCapability = SpvCapability(10);
1385}
1386impl SpvCapability {
1387    pub const Int64: SpvCapability = SpvCapability(11);
1388}
1389impl SpvCapability {
1390    pub const Int64Atomics: SpvCapability = SpvCapability(12);
1391}
1392impl SpvCapability {
1393    pub const ImageBasic: SpvCapability = SpvCapability(13);
1394}
1395impl SpvCapability {
1396    pub const ImageReadWrite: SpvCapability = SpvCapability(14);
1397}
1398impl SpvCapability {
1399    pub const ImageMipmap: SpvCapability = SpvCapability(15);
1400}
1401impl SpvCapability {
1402    pub const Pipes: SpvCapability = SpvCapability(17);
1403}
1404impl SpvCapability {
1405    pub const Groups: SpvCapability = SpvCapability(18);
1406}
1407impl SpvCapability {
1408    pub const DeviceEnqueue: SpvCapability = SpvCapability(19);
1409}
1410impl SpvCapability {
1411    pub const LiteralSampler: SpvCapability = SpvCapability(20);
1412}
1413impl SpvCapability {
1414    pub const AtomicStorage: SpvCapability = SpvCapability(21);
1415}
1416impl SpvCapability {
1417    pub const Int16: SpvCapability = SpvCapability(22);
1418}
1419impl SpvCapability {
1420    pub const TessellationPointSize: SpvCapability = SpvCapability(23);
1421}
1422impl SpvCapability {
1423    pub const GeometryPointSize: SpvCapability = SpvCapability(24);
1424}
1425impl SpvCapability {
1426    pub const ImageGatherExtended: SpvCapability = SpvCapability(25);
1427}
1428impl SpvCapability {
1429    pub const StorageImageMultisample: SpvCapability = SpvCapability(27);
1430}
1431impl SpvCapability {
1432    pub const UniformBufferArrayDynamicIndexing: SpvCapability = SpvCapability(28);
1433}
1434impl SpvCapability {
1435    pub const SampledImageArrayDynamicIndexing: SpvCapability = SpvCapability(29);
1436}
1437impl SpvCapability {
1438    pub const StorageBufferArrayDynamicIndexing: SpvCapability = SpvCapability(30);
1439}
1440impl SpvCapability {
1441    pub const StorageImageArrayDynamicIndexing: SpvCapability = SpvCapability(31);
1442}
1443impl SpvCapability {
1444    pub const ClipDistance: SpvCapability = SpvCapability(32);
1445}
1446impl SpvCapability {
1447    pub const CullDistance: SpvCapability = SpvCapability(33);
1448}
1449impl SpvCapability {
1450    pub const ImageCubeArray: SpvCapability = SpvCapability(34);
1451}
1452impl SpvCapability {
1453    pub const SampleRateShading: SpvCapability = SpvCapability(35);
1454}
1455impl SpvCapability {
1456    pub const ImageRect: SpvCapability = SpvCapability(36);
1457}
1458impl SpvCapability {
1459    pub const SampledRect: SpvCapability = SpvCapability(37);
1460}
1461impl SpvCapability {
1462    pub const GenericPointer: SpvCapability = SpvCapability(38);
1463}
1464impl SpvCapability {
1465    pub const Int8: SpvCapability = SpvCapability(39);
1466}
1467impl SpvCapability {
1468    pub const InputAttachment: SpvCapability = SpvCapability(40);
1469}
1470impl SpvCapability {
1471    pub const SparseResidency: SpvCapability = SpvCapability(41);
1472}
1473impl SpvCapability {
1474    pub const MinLod: SpvCapability = SpvCapability(42);
1475}
1476impl SpvCapability {
1477    pub const Sampled1D: SpvCapability = SpvCapability(43);
1478}
1479impl SpvCapability {
1480    pub const Image1D: SpvCapability = SpvCapability(44);
1481}
1482impl SpvCapability {
1483    pub const SampledCubeArray: SpvCapability = SpvCapability(45);
1484}
1485impl SpvCapability {
1486    pub const SampledBuffer: SpvCapability = SpvCapability(46);
1487}
1488impl SpvCapability {
1489    pub const ImageBuffer: SpvCapability = SpvCapability(47);
1490}
1491impl SpvCapability {
1492    pub const ImageMSArray: SpvCapability = SpvCapability(48);
1493}
1494impl SpvCapability {
1495    pub const StorageImageExtendedFormats: SpvCapability = SpvCapability(49);
1496}
1497impl SpvCapability {
1498    pub const ImageQuery: SpvCapability = SpvCapability(50);
1499}
1500impl SpvCapability {
1501    pub const DerivativeControl: SpvCapability = SpvCapability(51);
1502}
1503impl SpvCapability {
1504    pub const InterpolationFunction: SpvCapability = SpvCapability(52);
1505}
1506impl SpvCapability {
1507    pub const TransformFeedback: SpvCapability = SpvCapability(53);
1508}
1509impl SpvCapability {
1510    pub const GeometryStreams: SpvCapability = SpvCapability(54);
1511}
1512impl SpvCapability {
1513    pub const StorageImageReadWithoutFormat: SpvCapability = SpvCapability(55);
1514}
1515impl SpvCapability {
1516    pub const StorageImageWriteWithoutFormat: SpvCapability = SpvCapability(56);
1517}
1518impl SpvCapability {
1519    pub const MultiViewport: SpvCapability = SpvCapability(57);
1520}
1521impl SpvCapability {
1522    pub const SubgroupDispatch: SpvCapability = SpvCapability(58);
1523}
1524impl SpvCapability {
1525    pub const NamedBarrier: SpvCapability = SpvCapability(59);
1526}
1527impl SpvCapability {
1528    pub const PipeStorage: SpvCapability = SpvCapability(60);
1529}
1530impl SpvCapability {
1531    pub const GroupNonUniform: SpvCapability = SpvCapability(61);
1532}
1533impl SpvCapability {
1534    pub const GroupNonUniformVote: SpvCapability = SpvCapability(62);
1535}
1536impl SpvCapability {
1537    pub const GroupNonUniformArithmetic: SpvCapability = SpvCapability(63);
1538}
1539impl SpvCapability {
1540    pub const GroupNonUniformBallot: SpvCapability = SpvCapability(64);
1541}
1542impl SpvCapability {
1543    pub const GroupNonUniformShuffle: SpvCapability = SpvCapability(65);
1544}
1545impl SpvCapability {
1546    pub const GroupNonUniformShuffleRelative: SpvCapability = SpvCapability(66);
1547}
1548impl SpvCapability {
1549    pub const GroupNonUniformClustered: SpvCapability = SpvCapability(67);
1550}
1551impl SpvCapability {
1552    pub const GroupNonUniformQuad: SpvCapability = SpvCapability(68);
1553}
1554impl SpvCapability {
1555    pub const ShaderLayer: SpvCapability = SpvCapability(69);
1556}
1557impl SpvCapability {
1558    pub const ShaderViewportIndex: SpvCapability = SpvCapability(70);
1559}
1560impl SpvCapability {
1561    pub const UniformDecoration: SpvCapability = SpvCapability(71);
1562}
1563impl SpvCapability {
1564    pub const FragmentShadingRateKHR: SpvCapability = SpvCapability(4422);
1565}
1566impl SpvCapability {
1567    pub const SubgroupBallotKHR: SpvCapability = SpvCapability(4423);
1568}
1569impl SpvCapability {
1570    pub const DrawParameters: SpvCapability = SpvCapability(4427);
1571}
1572impl SpvCapability {
1573    pub const WorkgroupMemoryExplicitLayoutKHR: SpvCapability = SpvCapability(4428);
1574}
1575impl SpvCapability {
1576    pub const WorkgroupMemoryExplicitLayout8BitAccessKHR: SpvCapability = SpvCapability(4429);
1577}
1578impl SpvCapability {
1579    pub const WorkgroupMemoryExplicitLayout16BitAccessKHR: SpvCapability = SpvCapability(4430);
1580}
1581impl SpvCapability {
1582    pub const SubgroupVoteKHR: SpvCapability = SpvCapability(4431);
1583}
1584impl SpvCapability {
1585    pub const StorageBuffer16BitAccess: SpvCapability = SpvCapability(4433);
1586}
1587impl SpvCapability {
1588    pub const StorageUniformBufferBlock16: SpvCapability = SpvCapability(4433);
1589}
1590impl SpvCapability {
1591    pub const StorageUniform16: SpvCapability = SpvCapability(4434);
1592}
1593impl SpvCapability {
1594    pub const UniformAndStorageBuffer16BitAccess: SpvCapability = SpvCapability(4434);
1595}
1596impl SpvCapability {
1597    pub const StoragePushConstant16: SpvCapability = SpvCapability(4435);
1598}
1599impl SpvCapability {
1600    pub const StorageInputOutput16: SpvCapability = SpvCapability(4436);
1601}
1602impl SpvCapability {
1603    pub const DeviceGroup: SpvCapability = SpvCapability(4437);
1604}
1605impl SpvCapability {
1606    pub const MultiView: SpvCapability = SpvCapability(4439);
1607}
1608impl SpvCapability {
1609    pub const VariablePointersStorageBuffer: SpvCapability = SpvCapability(4441);
1610}
1611impl SpvCapability {
1612    pub const VariablePointers: SpvCapability = SpvCapability(4442);
1613}
1614impl SpvCapability {
1615    pub const AtomicStorageOps: SpvCapability = SpvCapability(4445);
1616}
1617impl SpvCapability {
1618    pub const SampleMaskPostDepthCoverage: SpvCapability = SpvCapability(4447);
1619}
1620impl SpvCapability {
1621    pub const StorageBuffer8BitAccess: SpvCapability = SpvCapability(4448);
1622}
1623impl SpvCapability {
1624    pub const UniformAndStorageBuffer8BitAccess: SpvCapability = SpvCapability(4449);
1625}
1626impl SpvCapability {
1627    pub const StoragePushConstant8: SpvCapability = SpvCapability(4450);
1628}
1629impl SpvCapability {
1630    pub const DenormPreserve: SpvCapability = SpvCapability(4464);
1631}
1632impl SpvCapability {
1633    pub const DenormFlushToZero: SpvCapability = SpvCapability(4465);
1634}
1635impl SpvCapability {
1636    pub const SignedZeroInfNanPreserve: SpvCapability = SpvCapability(4466);
1637}
1638impl SpvCapability {
1639    pub const RoundingModeRTE: SpvCapability = SpvCapability(4467);
1640}
1641impl SpvCapability {
1642    pub const RoundingModeRTZ: SpvCapability = SpvCapability(4468);
1643}
1644impl SpvCapability {
1645    pub const RayQueryProvisionalKHR: SpvCapability = SpvCapability(4471);
1646}
1647impl SpvCapability {
1648    pub const RayQueryKHR: SpvCapability = SpvCapability(4472);
1649}
1650impl SpvCapability {
1651    pub const RayTraversalPrimitiveCullingKHR: SpvCapability = SpvCapability(4478);
1652}
1653impl SpvCapability {
1654    pub const RayTracingKHR: SpvCapability = SpvCapability(4479);
1655}
1656impl SpvCapability {
1657    pub const TextureSampleWeightedQCOM: SpvCapability = SpvCapability(4484);
1658}
1659impl SpvCapability {
1660    pub const TextureBoxFilterQCOM: SpvCapability = SpvCapability(4485);
1661}
1662impl SpvCapability {
1663    pub const TextureBlockMatchQCOM: SpvCapability = SpvCapability(4486);
1664}
1665impl SpvCapability {
1666    pub const TextureBlockMatch2QCOM: SpvCapability = SpvCapability(4498);
1667}
1668impl SpvCapability {
1669    pub const Float16ImageAMD: SpvCapability = SpvCapability(5008);
1670}
1671impl SpvCapability {
1672    pub const ImageGatherBiasLodAMD: SpvCapability = SpvCapability(5009);
1673}
1674impl SpvCapability {
1675    pub const FragmentMaskAMD: SpvCapability = SpvCapability(5010);
1676}
1677impl SpvCapability {
1678    pub const StencilExportEXT: SpvCapability = SpvCapability(5013);
1679}
1680impl SpvCapability {
1681    pub const ImageReadWriteLodAMD: SpvCapability = SpvCapability(5015);
1682}
1683impl SpvCapability {
1684    pub const Int64ImageEXT: SpvCapability = SpvCapability(5016);
1685}
1686impl SpvCapability {
1687    pub const ShaderClockKHR: SpvCapability = SpvCapability(5055);
1688}
1689impl SpvCapability {
1690    pub const SampleMaskOverrideCoverageNV: SpvCapability = SpvCapability(5249);
1691}
1692impl SpvCapability {
1693    pub const GeometryShaderPassthroughNV: SpvCapability = SpvCapability(5251);
1694}
1695impl SpvCapability {
1696    pub const ShaderViewportIndexLayerEXT: SpvCapability = SpvCapability(5254);
1697}
1698impl SpvCapability {
1699    pub const ShaderViewportIndexLayerNV: SpvCapability = SpvCapability(5254);
1700}
1701impl SpvCapability {
1702    pub const ShaderViewportMaskNV: SpvCapability = SpvCapability(5255);
1703}
1704impl SpvCapability {
1705    pub const ShaderStereoViewNV: SpvCapability = SpvCapability(5259);
1706}
1707impl SpvCapability {
1708    pub const PerViewAttributesNV: SpvCapability = SpvCapability(5260);
1709}
1710impl SpvCapability {
1711    pub const FragmentFullyCoveredEXT: SpvCapability = SpvCapability(5265);
1712}
1713impl SpvCapability {
1714    pub const MeshShadingNV: SpvCapability = SpvCapability(5266);
1715}
1716impl SpvCapability {
1717    pub const ImageFootprintNV: SpvCapability = SpvCapability(5282);
1718}
1719impl SpvCapability {
1720    pub const MeshShadingEXT: SpvCapability = SpvCapability(5283);
1721}
1722impl SpvCapability {
1723    pub const FragmentBarycentricKHR: SpvCapability = SpvCapability(5284);
1724}
1725impl SpvCapability {
1726    pub const FragmentBarycentricNV: SpvCapability = SpvCapability(5284);
1727}
1728impl SpvCapability {
1729    pub const ComputeDerivativeGroupQuadsNV: SpvCapability = SpvCapability(5288);
1730}
1731impl SpvCapability {
1732    pub const FragmentDensityEXT: SpvCapability = SpvCapability(5291);
1733}
1734impl SpvCapability {
1735    pub const ShadingRateNV: SpvCapability = SpvCapability(5291);
1736}
1737impl SpvCapability {
1738    pub const GroupNonUniformPartitionedNV: SpvCapability = SpvCapability(5297);
1739}
1740impl SpvCapability {
1741    pub const ShaderNonUniform: SpvCapability = SpvCapability(5301);
1742}
1743impl SpvCapability {
1744    pub const ShaderNonUniformEXT: SpvCapability = SpvCapability(5301);
1745}
1746impl SpvCapability {
1747    pub const RuntimeDescriptorArray: SpvCapability = SpvCapability(5302);
1748}
1749impl SpvCapability {
1750    pub const RuntimeDescriptorArrayEXT: SpvCapability = SpvCapability(5302);
1751}
1752impl SpvCapability {
1753    pub const InputAttachmentArrayDynamicIndexing: SpvCapability = SpvCapability(5303);
1754}
1755impl SpvCapability {
1756    pub const InputAttachmentArrayDynamicIndexingEXT: SpvCapability = SpvCapability(5303);
1757}
1758impl SpvCapability {
1759    pub const UniformTexelBufferArrayDynamicIndexing: SpvCapability = SpvCapability(5304);
1760}
1761impl SpvCapability {
1762    pub const UniformTexelBufferArrayDynamicIndexingEXT: SpvCapability = SpvCapability(5304);
1763}
1764impl SpvCapability {
1765    pub const StorageTexelBufferArrayDynamicIndexing: SpvCapability = SpvCapability(5305);
1766}
1767impl SpvCapability {
1768    pub const StorageTexelBufferArrayDynamicIndexingEXT: SpvCapability = SpvCapability(5305);
1769}
1770impl SpvCapability {
1771    pub const UniformBufferArrayNonUniformIndexing: SpvCapability = SpvCapability(5306);
1772}
1773impl SpvCapability {
1774    pub const UniformBufferArrayNonUniformIndexingEXT: SpvCapability = SpvCapability(5306);
1775}
1776impl SpvCapability {
1777    pub const SampledImageArrayNonUniformIndexing: SpvCapability = SpvCapability(5307);
1778}
1779impl SpvCapability {
1780    pub const SampledImageArrayNonUniformIndexingEXT: SpvCapability = SpvCapability(5307);
1781}
1782impl SpvCapability {
1783    pub const StorageBufferArrayNonUniformIndexing: SpvCapability = SpvCapability(5308);
1784}
1785impl SpvCapability {
1786    pub const StorageBufferArrayNonUniformIndexingEXT: SpvCapability = SpvCapability(5308);
1787}
1788impl SpvCapability {
1789    pub const StorageImageArrayNonUniformIndexing: SpvCapability = SpvCapability(5309);
1790}
1791impl SpvCapability {
1792    pub const StorageImageArrayNonUniformIndexingEXT: SpvCapability = SpvCapability(5309);
1793}
1794impl SpvCapability {
1795    pub const InputAttachmentArrayNonUniformIndexing: SpvCapability = SpvCapability(5310);
1796}
1797impl SpvCapability {
1798    pub const InputAttachmentArrayNonUniformIndexingEXT: SpvCapability = SpvCapability(5310);
1799}
1800impl SpvCapability {
1801    pub const UniformTexelBufferArrayNonUniformIndexing: SpvCapability = SpvCapability(5311);
1802}
1803impl SpvCapability {
1804    pub const UniformTexelBufferArrayNonUniformIndexingEXT: SpvCapability = SpvCapability(5311);
1805}
1806impl SpvCapability {
1807    pub const StorageTexelBufferArrayNonUniformIndexing: SpvCapability = SpvCapability(5312);
1808}
1809impl SpvCapability {
1810    pub const StorageTexelBufferArrayNonUniformIndexingEXT: SpvCapability = SpvCapability(5312);
1811}
1812impl SpvCapability {
1813    pub const RayTracingNV: SpvCapability = SpvCapability(5340);
1814}
1815impl SpvCapability {
1816    pub const RayTracingMotionBlurNV: SpvCapability = SpvCapability(5341);
1817}
1818impl SpvCapability {
1819    pub const VulkanMemoryModel: SpvCapability = SpvCapability(5345);
1820}
1821impl SpvCapability {
1822    pub const VulkanMemoryModelKHR: SpvCapability = SpvCapability(5345);
1823}
1824impl SpvCapability {
1825    pub const VulkanMemoryModelDeviceScope: SpvCapability = SpvCapability(5346);
1826}
1827impl SpvCapability {
1828    pub const VulkanMemoryModelDeviceScopeKHR: SpvCapability = SpvCapability(5346);
1829}
1830impl SpvCapability {
1831    pub const PhysicalStorageBufferAddresses: SpvCapability = SpvCapability(5347);
1832}
1833impl SpvCapability {
1834    pub const PhysicalStorageBufferAddressesEXT: SpvCapability = SpvCapability(5347);
1835}
1836impl SpvCapability {
1837    pub const ComputeDerivativeGroupLinearNV: SpvCapability = SpvCapability(5350);
1838}
1839impl SpvCapability {
1840    pub const RayTracingProvisionalKHR: SpvCapability = SpvCapability(5353);
1841}
1842impl SpvCapability {
1843    pub const CooperativeMatrixNV: SpvCapability = SpvCapability(5357);
1844}
1845impl SpvCapability {
1846    pub const FragmentShaderSampleInterlockEXT: SpvCapability = SpvCapability(5363);
1847}
1848impl SpvCapability {
1849    pub const FragmentShaderShadingRateInterlockEXT: SpvCapability = SpvCapability(5372);
1850}
1851impl SpvCapability {
1852    pub const ShaderSMBuiltinsNV: SpvCapability = SpvCapability(5373);
1853}
1854impl SpvCapability {
1855    pub const FragmentShaderPixelInterlockEXT: SpvCapability = SpvCapability(5378);
1856}
1857impl SpvCapability {
1858    pub const DemoteToHelperInvocation: SpvCapability = SpvCapability(5379);
1859}
1860impl SpvCapability {
1861    pub const DemoteToHelperInvocationEXT: SpvCapability = SpvCapability(5379);
1862}
1863impl SpvCapability {
1864    pub const BindlessTextureNV: SpvCapability = SpvCapability(5390);
1865}
1866impl SpvCapability {
1867    pub const SubgroupShuffleINTEL: SpvCapability = SpvCapability(5568);
1868}
1869impl SpvCapability {
1870    pub const SubgroupBufferBlockIOINTEL: SpvCapability = SpvCapability(5569);
1871}
1872impl SpvCapability {
1873    pub const SubgroupImageBlockIOINTEL: SpvCapability = SpvCapability(5570);
1874}
1875impl SpvCapability {
1876    pub const SubgroupImageMediaBlockIOINTEL: SpvCapability = SpvCapability(5579);
1877}
1878impl SpvCapability {
1879    pub const RoundToInfinityINTEL: SpvCapability = SpvCapability(5582);
1880}
1881impl SpvCapability {
1882    pub const FloatingPointModeINTEL: SpvCapability = SpvCapability(5583);
1883}
1884impl SpvCapability {
1885    pub const IntegerFunctions2INTEL: SpvCapability = SpvCapability(5584);
1886}
1887impl SpvCapability {
1888    pub const FunctionPointersINTEL: SpvCapability = SpvCapability(5603);
1889}
1890impl SpvCapability {
1891    pub const IndirectReferencesINTEL: SpvCapability = SpvCapability(5604);
1892}
1893impl SpvCapability {
1894    pub const AsmINTEL: SpvCapability = SpvCapability(5606);
1895}
1896impl SpvCapability {
1897    pub const AtomicFloat32MinMaxEXT: SpvCapability = SpvCapability(5612);
1898}
1899impl SpvCapability {
1900    pub const AtomicFloat64MinMaxEXT: SpvCapability = SpvCapability(5613);
1901}
1902impl SpvCapability {
1903    pub const AtomicFloat16MinMaxEXT: SpvCapability = SpvCapability(5616);
1904}
1905impl SpvCapability {
1906    pub const VectorComputeINTEL: SpvCapability = SpvCapability(5617);
1907}
1908impl SpvCapability {
1909    pub const VectorAnyINTEL: SpvCapability = SpvCapability(5619);
1910}
1911impl SpvCapability {
1912    pub const ExpectAssumeKHR: SpvCapability = SpvCapability(5629);
1913}
1914impl SpvCapability {
1915    pub const SubgroupAvcMotionEstimationINTEL: SpvCapability = SpvCapability(5696);
1916}
1917impl SpvCapability {
1918    pub const SubgroupAvcMotionEstimationIntraINTEL: SpvCapability = SpvCapability(5697);
1919}
1920impl SpvCapability {
1921    pub const SubgroupAvcMotionEstimationChromaINTEL: SpvCapability = SpvCapability(5698);
1922}
1923impl SpvCapability {
1924    pub const VariableLengthArrayINTEL: SpvCapability = SpvCapability(5817);
1925}
1926impl SpvCapability {
1927    pub const FunctionFloatControlINTEL: SpvCapability = SpvCapability(5821);
1928}
1929impl SpvCapability {
1930    pub const FPGAMemoryAttributesINTEL: SpvCapability = SpvCapability(5824);
1931}
1932impl SpvCapability {
1933    pub const FPFastMathModeINTEL: SpvCapability = SpvCapability(5837);
1934}
1935impl SpvCapability {
1936    pub const ArbitraryPrecisionIntegersINTEL: SpvCapability = SpvCapability(5844);
1937}
1938impl SpvCapability {
1939    pub const ArbitraryPrecisionFloatingPointINTEL: SpvCapability = SpvCapability(5845);
1940}
1941impl SpvCapability {
1942    pub const UnstructuredLoopControlsINTEL: SpvCapability = SpvCapability(5886);
1943}
1944impl SpvCapability {
1945    pub const FPGALoopControlsINTEL: SpvCapability = SpvCapability(5888);
1946}
1947impl SpvCapability {
1948    pub const KernelAttributesINTEL: SpvCapability = SpvCapability(5892);
1949}
1950impl SpvCapability {
1951    pub const FPGAKernelAttributesINTEL: SpvCapability = SpvCapability(5897);
1952}
1953impl SpvCapability {
1954    pub const FPGAMemoryAccessesINTEL: SpvCapability = SpvCapability(5898);
1955}
1956impl SpvCapability {
1957    pub const FPGAClusterAttributesINTEL: SpvCapability = SpvCapability(5904);
1958}
1959impl SpvCapability {
1960    pub const LoopFuseINTEL: SpvCapability = SpvCapability(5906);
1961}
1962impl SpvCapability {
1963    pub const MemoryAccessAliasingINTEL: SpvCapability = SpvCapability(5910);
1964}
1965impl SpvCapability {
1966    pub const FPGABufferLocationINTEL: SpvCapability = SpvCapability(5920);
1967}
1968impl SpvCapability {
1969    pub const ArbitraryPrecisionFixedPointINTEL: SpvCapability = SpvCapability(5922);
1970}
1971impl SpvCapability {
1972    pub const USMStorageClassesINTEL: SpvCapability = SpvCapability(5935);
1973}
1974impl SpvCapability {
1975    pub const IOPipesINTEL: SpvCapability = SpvCapability(5943);
1976}
1977impl SpvCapability {
1978    pub const BlockingPipesINTEL: SpvCapability = SpvCapability(5945);
1979}
1980impl SpvCapability {
1981    pub const FPGARegINTEL: SpvCapability = SpvCapability(5948);
1982}
1983impl SpvCapability {
1984    pub const DotProductInputAll: SpvCapability = SpvCapability(6016);
1985}
1986impl SpvCapability {
1987    pub const DotProductInputAllKHR: SpvCapability = SpvCapability(6016);
1988}
1989impl SpvCapability {
1990    pub const DotProductInput4x8Bit: SpvCapability = SpvCapability(6017);
1991}
1992impl SpvCapability {
1993    pub const DotProductInput4x8BitKHR: SpvCapability = SpvCapability(6017);
1994}
1995impl SpvCapability {
1996    pub const DotProductInput4x8BitPacked: SpvCapability = SpvCapability(6018);
1997}
1998impl SpvCapability {
1999    pub const DotProductInput4x8BitPackedKHR: SpvCapability = SpvCapability(6018);
2000}
2001impl SpvCapability {
2002    pub const DotProduct: SpvCapability = SpvCapability(6019);
2003}
2004impl SpvCapability {
2005    pub const DotProductKHR: SpvCapability = SpvCapability(6019);
2006}
2007impl SpvCapability {
2008    pub const RayCullMaskKHR: SpvCapability = SpvCapability(6020);
2009}
2010impl SpvCapability {
2011    pub const BitInstructions: SpvCapability = SpvCapability(6025);
2012}
2013impl SpvCapability {
2014    pub const GroupNonUniformRotateKHR: SpvCapability = SpvCapability(6026);
2015}
2016impl SpvCapability {
2017    pub const AtomicFloat32AddEXT: SpvCapability = SpvCapability(6033);
2018}
2019impl SpvCapability {
2020    pub const AtomicFloat64AddEXT: SpvCapability = SpvCapability(6034);
2021}
2022impl SpvCapability {
2023    pub const LongConstantCompositeINTEL: SpvCapability = SpvCapability(6089);
2024}
2025impl SpvCapability {
2026    pub const OptNoneINTEL: SpvCapability = SpvCapability(6094);
2027}
2028impl SpvCapability {
2029    pub const AtomicFloat16AddEXT: SpvCapability = SpvCapability(6095);
2030}
2031impl SpvCapability {
2032    pub const DebugInfoModuleINTEL: SpvCapability = SpvCapability(6114);
2033}
2034impl SpvCapability {
2035    pub const SplitBarrierINTEL: SpvCapability = SpvCapability(6141);
2036}
2037impl SpvCapability {
2038    pub const GroupUniformArithmeticKHR: SpvCapability = SpvCapability(6400);
2039}
2040impl SpvCapability {
2041    pub const Max: SpvCapability = SpvCapability(2147483647);
2042}
2043#[repr(transparent)]
2044#[derive(
2045    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2046)]
2047pub struct SpvCapability(pub i32);
2048extern "C" {
2049    pub fn spvc_get_version(
2050        major: *mut crate::ctypes::c_uint,
2051        minor: *mut crate::ctypes::c_uint,
2052        patch: *mut crate::ctypes::c_uint,
2053    );
2054}
2055extern "C" {
2056    pub fn spvc_get_commit_revision_and_timestamp() -> *const crate::ctypes::c_char;
2057}
2058#[repr(C)]
2059#[derive(Debug, Copy, Clone)]
2060pub struct spvc_context_s {
2061    _unused: [u8; 0],
2062}
2063pub type spvc_context = *mut spvc_context_s;
2064#[repr(C)]
2065#[derive(Debug, Copy, Clone)]
2066pub struct spvc_parsed_ir_s {
2067    _unused: [u8; 0],
2068}
2069pub type spvc_parsed_ir = *mut spvc_parsed_ir_s;
2070#[repr(C)]
2071#[derive(Debug, Copy, Clone)]
2072pub struct spvc_compiler_s {
2073    _unused: [u8; 0],
2074}
2075pub type spvc_compiler = *mut spvc_compiler_s;
2076#[repr(C)]
2077#[derive(Debug, Copy, Clone)]
2078pub struct spvc_compiler_options_s {
2079    _unused: [u8; 0],
2080}
2081pub type spvc_compiler_options = *mut spvc_compiler_options_s;
2082#[repr(C)]
2083#[derive(Debug, Copy, Clone)]
2084pub struct spvc_resources_s {
2085    _unused: [u8; 0],
2086}
2087pub type spvc_resources = *mut spvc_resources_s;
2088#[repr(C)]
2089#[derive(Debug, Copy, Clone)]
2090pub struct spvc_type_s {
2091    _unused: [u8; 0],
2092}
2093pub type spvc_type = *const spvc_type_s;
2094#[repr(C)]
2095#[derive(Debug, Copy, Clone)]
2096pub struct spvc_constant_s {
2097    _unused: [u8; 0],
2098}
2099pub type spvc_constant = *mut spvc_constant_s;
2100#[repr(C)]
2101#[derive(Debug, Copy, Clone)]
2102pub struct spvc_set_s {
2103    _unused: [u8; 0],
2104}
2105pub type spvc_set = *const spvc_set_s;
2106#[repr(transparent)]
2107#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2108pub struct TypeId(pub SpvId);
2109#[repr(transparent)]
2110#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2111pub struct VariableId(pub SpvId);
2112#[repr(transparent)]
2113#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2114pub struct ConstantId(pub SpvId);
2115#[repr(C)]
2116#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2117pub struct spvc_reflected_resource {
2118    pub id: VariableId,
2119    pub base_type_id: TypeId,
2120    pub type_id: TypeId,
2121    pub name: *const crate::ctypes::c_char,
2122}
2123#[repr(C)]
2124#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2125pub struct spvc_reflected_builtin_resource {
2126    pub builtin: SpvBuiltIn,
2127    pub value_type_id: TypeId,
2128    pub resource: spvc_reflected_resource,
2129}
2130#[repr(C)]
2131#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2132pub struct spvc_entry_point {
2133    pub execution_model: SpvExecutionModel,
2134    pub name: *const crate::ctypes::c_char,
2135}
2136#[repr(C)]
2137#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2138pub struct spvc_combined_image_sampler {
2139    pub combined_id: VariableId,
2140    pub image_id: VariableId,
2141    pub sampler_id: VariableId,
2142}
2143#[repr(C)]
2144#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2145pub struct spvc_specialization_constant {
2146    pub id: ConstantId,
2147    pub constant_id: crate::ctypes::c_uint,
2148}
2149#[repr(C)]
2150#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2151pub struct BufferRange {
2152    pub index: crate::ctypes::c_uint,
2153    pub offset: usize,
2154    pub range: usize,
2155}
2156#[repr(C)]
2157#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2158pub struct HlslRootConstants {
2159    pub start: crate::ctypes::c_uint,
2160    pub end: crate::ctypes::c_uint,
2161    pub binding: crate::ctypes::c_uint,
2162    pub space: crate::ctypes::c_uint,
2163}
2164#[repr(C)]
2165#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2166pub struct HlslVertexAttributeRemap {
2167    pub location: crate::ctypes::c_uint,
2168    pub semantic: *const crate::ctypes::c_char,
2169}
2170#[repr(i32)]
2171#[must_use]
2172#[derive(
2173    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2174)]
2175pub enum spvc_result {
2176    SPVC_SUCCESS = 0,
2177    SPVC_ERROR_INVALID_SPIRV = -1,
2178    SPVC_ERROR_UNSUPPORTED_SPIRV = -2,
2179    SPVC_ERROR_OUT_OF_MEMORY = -3,
2180    SPVC_ERROR_INVALID_ARGUMENT = -4,
2181}
2182#[repr(i32)]
2183#[derive(
2184    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2185)]
2186pub enum spvc_capture_mode {
2187    Copy = 0,
2188    TakeOwnership = 1,
2189}
2190#[repr(i32)]
2191#[derive(
2192    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2193)]
2194pub enum CompilerBackend {
2195    None = 0,
2196    Glsl = 1,
2197    Hlsl = 2,
2198    Msl = 3,
2199    Cpp = 4,
2200    Json = 5,
2201}
2202#[repr(i32)]
2203#[derive(
2204    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2205)]
2206pub enum ResourceType {
2207    Unknown = 0,
2208    UniformBuffer = 1,
2209    StorageBuffer = 2,
2210    StageInput = 3,
2211    StageOutput = 4,
2212    SubpassInput = 5,
2213    StorageImage = 6,
2214    SampledImage = 7,
2215    AtomicCounter = 8,
2216    PushConstant = 9,
2217    SeparateImage = 10,
2218    SeparateSamplers = 11,
2219    AccelerationStructure = 12,
2220    RayQuery = 13,
2221    ShaderRecordBuffer = 14,
2222    GlPlainUniform = 15,
2223}
2224#[repr(i32)]
2225#[derive(
2226    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2227)]
2228pub enum BuiltinResourceType {
2229    Unknown = 0,
2230    StageInput = 1,
2231    StageOutput = 2,
2232}
2233#[repr(i32)]
2234#[derive(
2235    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2236)]
2237pub enum BaseType {
2238    Unknown = 0,
2239    Void = 1,
2240    Boolean = 2,
2241    Int8 = 3,
2242    Uint8 = 4,
2243    Int16 = 5,
2244    Uint16 = 6,
2245    Int32 = 7,
2246    Uint32 = 8,
2247    Int64 = 9,
2248    Uint64 = 10,
2249    AtomicCounter = 11,
2250    Fp16 = 12,
2251    Fp32 = 13,
2252    Fp64 = 14,
2253    Struct = 15,
2254    Image = 16,
2255    SampledImage = 17,
2256    Sampler = 18,
2257    AccelerationStructure = 19,
2258}
2259#[repr(i32)]
2260#[derive(
2261    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2262)]
2263pub enum MslPlatform {
2264    Ios = 0,
2265    Macos = 1,
2266}
2267#[repr(i32)]
2268#[derive(
2269    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2270)]
2271pub enum MslIndexType {
2272    None = 0,
2273    Uint16 = 1,
2274    Uint32 = 2,
2275}
2276impl MslShaderVariableFormat {
2277    pub const SPVC_MSL_VERTEX_FORMAT_OTHER: MslShaderVariableFormat =
2278        MslShaderVariableFormat::Other;
2279}
2280impl MslShaderVariableFormat {
2281    pub const SPVC_MSL_VERTEX_FORMAT_UINT8: MslShaderVariableFormat =
2282        MslShaderVariableFormat::Uint8;
2283}
2284impl MslShaderVariableFormat {
2285    pub const SPVC_MSL_VERTEX_FORMAT_UINT16: MslShaderVariableFormat =
2286        MslShaderVariableFormat::Uint16;
2287}
2288impl MslShaderVariableFormat {
2289    pub const SPVC_MSL_SHADER_INPUT_FORMAT_OTHER: MslShaderVariableFormat =
2290        MslShaderVariableFormat::Other;
2291}
2292impl MslShaderVariableFormat {
2293    pub const SPVC_MSL_SHADER_INPUT_FORMAT_UINT8: MslShaderVariableFormat =
2294        MslShaderVariableFormat::Uint8;
2295}
2296impl MslShaderVariableFormat {
2297    pub const SPVC_MSL_SHADER_INPUT_FORMAT_UINT16: MslShaderVariableFormat =
2298        MslShaderVariableFormat::Uint16;
2299}
2300impl MslShaderVariableFormat {
2301    pub const SPVC_MSL_SHADER_INPUT_FORMAT_ANY16: MslShaderVariableFormat =
2302        MslShaderVariableFormat::Any16;
2303}
2304impl MslShaderVariableFormat {
2305    pub const SPVC_MSL_SHADER_INPUT_FORMAT_ANY32: MslShaderVariableFormat =
2306        MslShaderVariableFormat::Any32;
2307}
2308#[repr(i32)]
2309#[non_exhaustive]
2310#[derive(
2311    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2312)]
2313pub enum MslShaderVariableFormat {
2314    Other = 0,
2315    Uint8 = 1,
2316    Uint16 = 2,
2317    Any16 = 3,
2318    Any32 = 4,
2319}
2320pub use self::MslShaderVariableFormat as MslShaderInputFormat;
2321pub use self::MslShaderVariableFormat as MslVertexFormat;
2322#[repr(C)]
2323pub struct MslVertexAttribute {
2324    pub location: crate::ctypes::c_uint,
2325    pub msl_buffer: crate::ctypes::c_uint,
2326    pub msl_offset: crate::ctypes::c_uint,
2327    pub msl_stride: crate::ctypes::c_uint,
2328    pub per_instance: crate::ctypes::spvc_bool,
2329    pub format: MslVertexFormat,
2330    pub builtin: SpvBuiltIn,
2331}
2332extern "C" {
2333    pub fn spvc_msl_vertex_attribute_init(attr: *mut MslVertexAttribute);
2334}
2335#[repr(C)]
2336#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2337pub struct MslShaderInterfaceVar {
2338    pub location: crate::ctypes::c_uint,
2339    pub format: MslVertexFormat,
2340    pub builtin: SpvBuiltIn,
2341    pub vecsize: crate::ctypes::c_uint,
2342}
2343pub type MslShaderInput = MslShaderInterfaceVar;
2344extern "C" {
2345    pub fn spvc_msl_shader_interface_var_init(var: *mut MslShaderInterfaceVar);
2346}
2347extern "C" {
2348    pub fn spvc_msl_shader_input_init(input: *mut MslShaderInput);
2349}
2350#[repr(i32)]
2351#[derive(
2352    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2353)]
2354pub enum MslShaderVariableRate {
2355    PerVertex = 0,
2356    PerPrimitive = 1,
2357    PerPatch = 2,
2358}
2359#[repr(C)]
2360#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2361pub struct MslShaderInterfaceVar2 {
2362    pub location: crate::ctypes::c_uint,
2363    pub format: MslShaderVariableFormat,
2364    pub builtin: SpvBuiltIn,
2365    pub vecsize: crate::ctypes::c_uint,
2366    pub rate: MslShaderVariableRate,
2367}
2368extern "C" {
2369    pub fn spvc_msl_shader_interface_var_init_2(var: *mut MslShaderInterfaceVar2);
2370}
2371#[repr(C)]
2372#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2373pub struct MslResourceBinding {
2374    pub stage: SpvExecutionModel,
2375    pub desc_set: crate::ctypes::c_uint,
2376    pub binding: crate::ctypes::c_uint,
2377    pub msl_buffer: crate::ctypes::c_uint,
2378    pub msl_texture: crate::ctypes::c_uint,
2379    pub msl_sampler: crate::ctypes::c_uint,
2380}
2381#[repr(C)]
2382#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2383pub struct MslResourceBinding2 {
2384    pub stage: SpvExecutionModel,
2385    pub desc_set: crate::ctypes::c_uint,
2386    pub binding: crate::ctypes::c_uint,
2387    pub count: crate::ctypes::c_uint,
2388    pub msl_buffer: crate::ctypes::c_uint,
2389    pub msl_texture: crate::ctypes::c_uint,
2390    pub msl_sampler: crate::ctypes::c_uint,
2391}
2392extern "C" {
2393    pub fn spvc_msl_resource_binding_init(binding: *mut MslResourceBinding);
2394}
2395extern "C" {
2396    pub fn spvc_msl_resource_binding_init_2(binding: *mut MslResourceBinding2);
2397}
2398extern "C" {
2399    pub fn spvc_msl_get_aux_buffer_struct_version() -> crate::ctypes::c_uint;
2400}
2401#[repr(i32)]
2402#[derive(
2403    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2404)]
2405pub enum MslSamplerCoord {
2406    Normalized = 0,
2407    Pixel = 1,
2408}
2409#[repr(i32)]
2410#[derive(
2411    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2412)]
2413pub enum MslSamplerFilter {
2414    Nearest = 0,
2415    Linear = 1,
2416}
2417#[repr(i32)]
2418#[derive(
2419    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2420)]
2421pub enum MslSamplerMipFilter {
2422    None = 0,
2423    Nearest = 1,
2424    Linear = 2,
2425}
2426#[repr(i32)]
2427#[derive(
2428    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2429)]
2430pub enum MslSamplerAddress {
2431    ClampToZero = 0,
2432    ClampToEdge = 1,
2433    ClampToBorder = 2,
2434    Repeat = 3,
2435    MirroredRepeat = 4,
2436}
2437#[repr(i32)]
2438#[derive(
2439    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2440)]
2441pub enum MslSamplerCompareFunc {
2442    Never = 0,
2443    Less = 1,
2444    LessEqual = 2,
2445    Greater = 3,
2446    GreaterEqual = 4,
2447    Equal = 5,
2448    NotEqual = 6,
2449    Always = 7,
2450}
2451#[repr(i32)]
2452#[derive(
2453    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2454)]
2455pub enum MslSamplerBorderColor {
2456    TransparentBlack = 0,
2457    OpaqueBlack = 1,
2458    OpaqueWhite = 2,
2459}
2460#[repr(i32)]
2461#[derive(
2462    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2463)]
2464pub enum MslFormatResolution {
2465    FormatResolution444 = 0,
2466    FormatResolution422 = 1,
2467    FormatResolution420 = 2,
2468}
2469#[repr(i32)]
2470#[derive(
2471    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2472)]
2473pub enum MslChromaLocation {
2474    CositedEven = 0,
2475    Midpoint = 1,
2476}
2477#[repr(i32)]
2478#[derive(
2479    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2480)]
2481pub enum MslComponentSwizzle {
2482    Identity = 0,
2483    Zero = 1,
2484    One = 2,
2485    R = 3,
2486    G = 4,
2487    B = 5,
2488    A = 6,
2489}
2490#[repr(i32)]
2491#[derive(
2492    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2493)]
2494pub enum MslSamplerYcbcrModelConversion {
2495    RgbIdentity = 0,
2496    YcbcrIdentity = 1,
2497    YcbcrBt709 = 2,
2498    YcbcrBt601 = 3,
2499    YcbcrBt2020 = 4,
2500}
2501#[repr(i32)]
2502#[derive(
2503    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2504)]
2505pub enum MslSamplerYcbcrRange {
2506    ItuFull = 0,
2507    ItuNarrow = 1,
2508}
2509#[repr(C)]
2510pub struct MslConstexprSampler {
2511    pub coord: MslSamplerCoord,
2512    pub min_filter: MslSamplerFilter,
2513    pub mag_filter: MslSamplerFilter,
2514    pub mip_filter: MslSamplerMipFilter,
2515    pub s_address: MslSamplerAddress,
2516    pub t_address: MslSamplerAddress,
2517    pub r_address: MslSamplerAddress,
2518    pub compare_func: MslSamplerCompareFunc,
2519    pub border_color: MslSamplerBorderColor,
2520    pub lod_clamp_min: f32,
2521    pub lod_clamp_max: f32,
2522    pub max_anisotropy: crate::ctypes::c_int,
2523    pub compare_enable: crate::ctypes::spvc_bool,
2524    pub lod_clamp_enable: crate::ctypes::spvc_bool,
2525    pub anisotropy_enable: crate::ctypes::spvc_bool,
2526}
2527extern "C" {
2528    pub fn spvc_msl_constexpr_sampler_init(sampler: *mut MslConstexprSampler);
2529}
2530#[repr(C)]
2531#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2532pub struct MslSamplerYcbcrConversion {
2533    pub planes: crate::ctypes::c_uint,
2534    pub resolution: MslFormatResolution,
2535    pub chroma_filter: MslSamplerFilter,
2536    pub x_chroma_offset: MslChromaLocation,
2537    pub y_chroma_offset: MslChromaLocation,
2538    pub swizzle: [MslComponentSwizzle; 4usize],
2539    pub ycbcr_model: MslSamplerYcbcrModelConversion,
2540    pub ycbcr_range: MslSamplerYcbcrRange,
2541    pub bpc: crate::ctypes::c_uint,
2542}
2543extern "C" {
2544    pub fn spvc_msl_sampler_ycbcr_conversion_init(conv: *mut MslSamplerYcbcrConversion);
2545}
2546impl HlslBindingFlagBits {
2547    pub const SPVC_HLSL_BINDING_AUTO_NONE_BIT: HlslBindingFlagBits = HlslBindingFlagBits(0);
2548}
2549impl HlslBindingFlagBits {
2550    pub const SPVC_HLSL_BINDING_AUTO_PUSH_CONSTANT_BIT: HlslBindingFlagBits =
2551        HlslBindingFlagBits(1);
2552}
2553impl HlslBindingFlagBits {
2554    pub const SPVC_HLSL_BINDING_AUTO_CBV_BIT: HlslBindingFlagBits = HlslBindingFlagBits(2);
2555}
2556impl HlslBindingFlagBits {
2557    pub const SPVC_HLSL_BINDING_AUTO_SRV_BIT: HlslBindingFlagBits = HlslBindingFlagBits(4);
2558}
2559impl HlslBindingFlagBits {
2560    pub const SPVC_HLSL_BINDING_AUTO_UAV_BIT: HlslBindingFlagBits = HlslBindingFlagBits(8);
2561}
2562impl HlslBindingFlagBits {
2563    pub const SPVC_HLSL_BINDING_AUTO_SAMPLER_BIT: HlslBindingFlagBits = HlslBindingFlagBits(16);
2564}
2565impl HlslBindingFlagBits {
2566    pub const SPVC_HLSL_BINDING_AUTO_ALL: HlslBindingFlagBits = HlslBindingFlagBits(2147483647);
2567}
2568impl ::std::ops::BitOr<HlslBindingFlagBits> for HlslBindingFlagBits {
2569    type Output = Self;
2570    #[inline]
2571    fn bitor(self, other: Self) -> Self {
2572        HlslBindingFlagBits(self.0 | other.0)
2573    }
2574}
2575impl ::std::ops::BitOrAssign for HlslBindingFlagBits {
2576    #[inline]
2577    fn bitor_assign(&mut self, rhs: HlslBindingFlagBits) {
2578        self.0 |= rhs.0;
2579    }
2580}
2581impl ::std::ops::BitAnd<HlslBindingFlagBits> for HlslBindingFlagBits {
2582    type Output = Self;
2583    #[inline]
2584    fn bitand(self, other: Self) -> Self {
2585        HlslBindingFlagBits(self.0 & other.0)
2586    }
2587}
2588impl ::std::ops::BitAndAssign for HlslBindingFlagBits {
2589    #[inline]
2590    fn bitand_assign(&mut self, rhs: HlslBindingFlagBits) {
2591        self.0 &= rhs.0;
2592    }
2593}
2594#[repr(transparent)]
2595#[derive(
2596    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
2597)]
2598pub struct HlslBindingFlagBits(pub i32);
2599#[repr(transparent)]
2600#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2601pub struct HlslBindingFlags(pub crate::ctypes::c_uint);
2602#[repr(C)]
2603#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2604pub struct HlslResourceBindingMapping {
2605    pub register_space: crate::ctypes::c_uint,
2606    pub register_binding: crate::ctypes::c_uint,
2607}
2608#[repr(C)]
2609#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2610pub struct HlslResourceBinding {
2611    pub stage: SpvExecutionModel,
2612    pub desc_set: crate::ctypes::c_uint,
2613    pub binding: crate::ctypes::c_uint,
2614    pub cbv: HlslResourceBindingMapping,
2615    pub uav: HlslResourceBindingMapping,
2616    pub srv: HlslResourceBindingMapping,
2617    pub sampler: HlslResourceBindingMapping,
2618}
2619extern "C" {
2620    pub fn spvc_hlsl_resource_binding_init(binding: *mut HlslResourceBinding);
2621}
2622impl spvc_compiler_option {
2623    pub const SPVC_COMPILER_OPTION_UNKNOWN: spvc_compiler_option = spvc_compiler_option(0);
2624}
2625impl spvc_compiler_option {
2626    pub const SPVC_COMPILER_OPTION_FORCE_TEMPORARY: spvc_compiler_option =
2627        spvc_compiler_option(16777217);
2628}
2629impl spvc_compiler_option {
2630    pub const SPVC_COMPILER_OPTION_FLATTEN_MULTIDIMENSIONAL_ARRAYS: spvc_compiler_option =
2631        spvc_compiler_option(16777218);
2632}
2633impl spvc_compiler_option {
2634    pub const SPVC_COMPILER_OPTION_FIXUP_DEPTH_CONVENTION: spvc_compiler_option =
2635        spvc_compiler_option(16777219);
2636}
2637impl spvc_compiler_option {
2638    pub const SPVC_COMPILER_OPTION_FLIP_VERTEX_Y: spvc_compiler_option =
2639        spvc_compiler_option(16777220);
2640}
2641impl spvc_compiler_option {
2642    pub const SPVC_COMPILER_OPTION_GLSL_SUPPORT_NONZERO_BASE_INSTANCE: spvc_compiler_option =
2643        spvc_compiler_option(33554437);
2644}
2645impl spvc_compiler_option {
2646    pub const SPVC_COMPILER_OPTION_GLSL_SEPARATE_SHADER_OBJECTS: spvc_compiler_option =
2647        spvc_compiler_option(33554438);
2648}
2649impl spvc_compiler_option {
2650    pub const SPVC_COMPILER_OPTION_GLSL_ENABLE_420PACK_EXTENSION: spvc_compiler_option =
2651        spvc_compiler_option(33554439);
2652}
2653impl spvc_compiler_option {
2654    pub const SPVC_COMPILER_OPTION_GLSL_VERSION: spvc_compiler_option =
2655        spvc_compiler_option(33554440);
2656}
2657impl spvc_compiler_option {
2658    pub const SPVC_COMPILER_OPTION_GLSL_ES: spvc_compiler_option = spvc_compiler_option(33554441);
2659}
2660impl spvc_compiler_option {
2661    pub const SPVC_COMPILER_OPTION_GLSL_VULKAN_SEMANTICS: spvc_compiler_option =
2662        spvc_compiler_option(33554442);
2663}
2664impl spvc_compiler_option {
2665    pub const SPVC_COMPILER_OPTION_GLSL_ES_DEFAULT_FLOAT_PRECISION_HIGHP: spvc_compiler_option =
2666        spvc_compiler_option(33554443);
2667}
2668impl spvc_compiler_option {
2669    pub const SPVC_COMPILER_OPTION_GLSL_ES_DEFAULT_INT_PRECISION_HIGHP: spvc_compiler_option =
2670        spvc_compiler_option(33554444);
2671}
2672impl spvc_compiler_option {
2673    pub const SPVC_COMPILER_OPTION_HLSL_SHADER_MODEL: spvc_compiler_option =
2674        spvc_compiler_option(67108877);
2675}
2676impl spvc_compiler_option {
2677    pub const SPVC_COMPILER_OPTION_HLSL_POINT_SIZE_COMPAT: spvc_compiler_option =
2678        spvc_compiler_option(67108878);
2679}
2680impl spvc_compiler_option {
2681    pub const SPVC_COMPILER_OPTION_HLSL_POINT_COORD_COMPAT: spvc_compiler_option =
2682        spvc_compiler_option(67108879);
2683}
2684impl spvc_compiler_option {
2685    pub const SPVC_COMPILER_OPTION_HLSL_SUPPORT_NONZERO_BASE_VERTEX_BASE_INSTANCE:
2686        spvc_compiler_option = spvc_compiler_option(67108880);
2687}
2688impl spvc_compiler_option {
2689    pub const SPVC_COMPILER_OPTION_MSL_VERSION: spvc_compiler_option =
2690        spvc_compiler_option(134217745);
2691}
2692impl spvc_compiler_option {
2693    pub const SPVC_COMPILER_OPTION_MSL_TEXEL_BUFFER_TEXTURE_WIDTH: spvc_compiler_option =
2694        spvc_compiler_option(134217746);
2695}
2696impl spvc_compiler_option {
2697    pub const SPVC_COMPILER_OPTION_MSL_AUX_BUFFER_INDEX: spvc_compiler_option =
2698        spvc_compiler_option(134217747);
2699}
2700impl spvc_compiler_option {
2701    pub const SPVC_COMPILER_OPTION_MSL_SWIZZLE_BUFFER_INDEX: spvc_compiler_option =
2702        spvc_compiler_option(134217747);
2703}
2704impl spvc_compiler_option {
2705    pub const SPVC_COMPILER_OPTION_MSL_INDIRECT_PARAMS_BUFFER_INDEX: spvc_compiler_option =
2706        spvc_compiler_option(134217748);
2707}
2708impl spvc_compiler_option {
2709    pub const SPVC_COMPILER_OPTION_MSL_SHADER_OUTPUT_BUFFER_INDEX: spvc_compiler_option =
2710        spvc_compiler_option(134217749);
2711}
2712impl spvc_compiler_option {
2713    pub const SPVC_COMPILER_OPTION_MSL_SHADER_PATCH_OUTPUT_BUFFER_INDEX: spvc_compiler_option =
2714        spvc_compiler_option(134217750);
2715}
2716impl spvc_compiler_option {
2717    pub const SPVC_COMPILER_OPTION_MSL_SHADER_TESS_FACTOR_OUTPUT_BUFFER_INDEX:
2718        spvc_compiler_option = spvc_compiler_option(134217751);
2719}
2720impl spvc_compiler_option {
2721    pub const SPVC_COMPILER_OPTION_MSL_SHADER_INPUT_WORKGROUP_INDEX: spvc_compiler_option =
2722        spvc_compiler_option(134217752);
2723}
2724impl spvc_compiler_option {
2725    pub const SPVC_COMPILER_OPTION_MSL_ENABLE_POINT_SIZE_BUILTIN: spvc_compiler_option =
2726        spvc_compiler_option(134217753);
2727}
2728impl spvc_compiler_option {
2729    pub const SPVC_COMPILER_OPTION_MSL_DISABLE_RASTERIZATION: spvc_compiler_option =
2730        spvc_compiler_option(134217754);
2731}
2732impl spvc_compiler_option {
2733    pub const SPVC_COMPILER_OPTION_MSL_CAPTURE_OUTPUT_TO_BUFFER: spvc_compiler_option =
2734        spvc_compiler_option(134217755);
2735}
2736impl spvc_compiler_option {
2737    pub const SPVC_COMPILER_OPTION_MSL_SWIZZLE_TEXTURE_SAMPLES: spvc_compiler_option =
2738        spvc_compiler_option(134217756);
2739}
2740impl spvc_compiler_option {
2741    pub const SPVC_COMPILER_OPTION_MSL_PAD_FRAGMENT_OUTPUT_COMPONENTS: spvc_compiler_option =
2742        spvc_compiler_option(134217757);
2743}
2744impl spvc_compiler_option {
2745    pub const SPVC_COMPILER_OPTION_MSL_TESS_DOMAIN_ORIGIN_LOWER_LEFT: spvc_compiler_option =
2746        spvc_compiler_option(134217758);
2747}
2748impl spvc_compiler_option {
2749    pub const SPVC_COMPILER_OPTION_MSL_PLATFORM: spvc_compiler_option =
2750        spvc_compiler_option(134217759);
2751}
2752impl spvc_compiler_option {
2753    pub const SPVC_COMPILER_OPTION_MSL_ARGUMENT_BUFFERS: spvc_compiler_option =
2754        spvc_compiler_option(134217760);
2755}
2756impl spvc_compiler_option {
2757    pub const SPVC_COMPILER_OPTION_GLSL_EMIT_PUSH_CONSTANT_AS_UNIFORM_BUFFER: spvc_compiler_option =
2758        spvc_compiler_option(33554465);
2759}
2760impl spvc_compiler_option {
2761    pub const SPVC_COMPILER_OPTION_MSL_TEXTURE_BUFFER_NATIVE: spvc_compiler_option =
2762        spvc_compiler_option(134217762);
2763}
2764impl spvc_compiler_option {
2765    pub const SPVC_COMPILER_OPTION_GLSL_EMIT_UNIFORM_BUFFER_AS_PLAIN_UNIFORMS:
2766        spvc_compiler_option = spvc_compiler_option(33554467);
2767}
2768impl spvc_compiler_option {
2769    pub const SPVC_COMPILER_OPTION_MSL_BUFFER_SIZE_BUFFER_INDEX: spvc_compiler_option =
2770        spvc_compiler_option(134217764);
2771}
2772impl spvc_compiler_option {
2773    pub const SPVC_COMPILER_OPTION_EMIT_LINE_DIRECTIVES: spvc_compiler_option =
2774        spvc_compiler_option(16777253);
2775}
2776impl spvc_compiler_option {
2777    pub const SPVC_COMPILER_OPTION_MSL_MULTIVIEW: spvc_compiler_option =
2778        spvc_compiler_option(134217766);
2779}
2780impl spvc_compiler_option {
2781    pub const SPVC_COMPILER_OPTION_MSL_VIEW_MASK_BUFFER_INDEX: spvc_compiler_option =
2782        spvc_compiler_option(134217767);
2783}
2784impl spvc_compiler_option {
2785    pub const SPVC_COMPILER_OPTION_MSL_DEVICE_INDEX: spvc_compiler_option =
2786        spvc_compiler_option(134217768);
2787}
2788impl spvc_compiler_option {
2789    pub const SPVC_COMPILER_OPTION_MSL_VIEW_INDEX_FROM_DEVICE_INDEX: spvc_compiler_option =
2790        spvc_compiler_option(134217769);
2791}
2792impl spvc_compiler_option {
2793    pub const SPVC_COMPILER_OPTION_MSL_DISPATCH_BASE: spvc_compiler_option =
2794        spvc_compiler_option(134217770);
2795}
2796impl spvc_compiler_option {
2797    pub const SPVC_COMPILER_OPTION_MSL_DYNAMIC_OFFSETS_BUFFER_INDEX: spvc_compiler_option =
2798        spvc_compiler_option(134217771);
2799}
2800impl spvc_compiler_option {
2801    pub const SPVC_COMPILER_OPTION_MSL_TEXTURE_1D_AS_2D: spvc_compiler_option =
2802        spvc_compiler_option(134217772);
2803}
2804impl spvc_compiler_option {
2805    pub const SPVC_COMPILER_OPTION_MSL_ENABLE_BASE_INDEX_ZERO: spvc_compiler_option =
2806        spvc_compiler_option(134217773);
2807}
2808impl spvc_compiler_option {
2809    pub const SPVC_COMPILER_OPTION_MSL_IOS_FRAMEBUFFER_FETCH_SUBPASS: spvc_compiler_option =
2810        spvc_compiler_option(134217774);
2811}
2812impl spvc_compiler_option {
2813    pub const SPVC_COMPILER_OPTION_MSL_FRAMEBUFFER_FETCH_SUBPASS: spvc_compiler_option =
2814        spvc_compiler_option(134217774);
2815}
2816impl spvc_compiler_option {
2817    pub const SPVC_COMPILER_OPTION_MSL_INVARIANT_FP_MATH: spvc_compiler_option =
2818        spvc_compiler_option(134217775);
2819}
2820impl spvc_compiler_option {
2821    pub const SPVC_COMPILER_OPTION_MSL_EMULATE_CUBEMAP_ARRAY: spvc_compiler_option =
2822        spvc_compiler_option(134217776);
2823}
2824impl spvc_compiler_option {
2825    pub const SPVC_COMPILER_OPTION_MSL_ENABLE_DECORATION_BINDING: spvc_compiler_option =
2826        spvc_compiler_option(134217777);
2827}
2828impl spvc_compiler_option {
2829    pub const SPVC_COMPILER_OPTION_MSL_FORCE_ACTIVE_ARGUMENT_BUFFER_RESOURCES:
2830        spvc_compiler_option = spvc_compiler_option(134217778);
2831}
2832impl spvc_compiler_option {
2833    pub const SPVC_COMPILER_OPTION_MSL_FORCE_NATIVE_ARRAYS: spvc_compiler_option =
2834        spvc_compiler_option(134217779);
2835}
2836impl spvc_compiler_option {
2837    pub const SPVC_COMPILER_OPTION_ENABLE_STORAGE_IMAGE_QUALIFIER_DEDUCTION: spvc_compiler_option =
2838        spvc_compiler_option(16777268);
2839}
2840impl spvc_compiler_option {
2841    pub const SPVC_COMPILER_OPTION_HLSL_FORCE_STORAGE_BUFFER_AS_UAV: spvc_compiler_option =
2842        spvc_compiler_option(67108917);
2843}
2844impl spvc_compiler_option {
2845    pub const SPVC_COMPILER_OPTION_FORCE_ZERO_INITIALIZED_VARIABLES: spvc_compiler_option =
2846        spvc_compiler_option(16777270);
2847}
2848impl spvc_compiler_option {
2849    pub const SPVC_COMPILER_OPTION_HLSL_NONWRITABLE_UAV_TEXTURE_AS_SRV: spvc_compiler_option =
2850        spvc_compiler_option(67108919);
2851}
2852impl spvc_compiler_option {
2853    pub const SPVC_COMPILER_OPTION_MSL_ENABLE_FRAG_OUTPUT_MASK: spvc_compiler_option =
2854        spvc_compiler_option(134217784);
2855}
2856impl spvc_compiler_option {
2857    pub const SPVC_COMPILER_OPTION_MSL_ENABLE_FRAG_DEPTH_BUILTIN: spvc_compiler_option =
2858        spvc_compiler_option(134217785);
2859}
2860impl spvc_compiler_option {
2861    pub const SPVC_COMPILER_OPTION_MSL_ENABLE_FRAG_STENCIL_REF_BUILTIN: spvc_compiler_option =
2862        spvc_compiler_option(134217786);
2863}
2864impl spvc_compiler_option {
2865    pub const SPVC_COMPILER_OPTION_MSL_ENABLE_CLIP_DISTANCE_USER_VARYING: spvc_compiler_option =
2866        spvc_compiler_option(134217787);
2867}
2868impl spvc_compiler_option {
2869    pub const SPVC_COMPILER_OPTION_HLSL_ENABLE_16BIT_TYPES: spvc_compiler_option =
2870        spvc_compiler_option(67108924);
2871}
2872impl spvc_compiler_option {
2873    pub const SPVC_COMPILER_OPTION_MSL_MULTI_PATCH_WORKGROUP: spvc_compiler_option =
2874        spvc_compiler_option(134217789);
2875}
2876impl spvc_compiler_option {
2877    pub const SPVC_COMPILER_OPTION_MSL_SHADER_INPUT_BUFFER_INDEX: spvc_compiler_option =
2878        spvc_compiler_option(134217790);
2879}
2880impl spvc_compiler_option {
2881    pub const SPVC_COMPILER_OPTION_MSL_SHADER_INDEX_BUFFER_INDEX: spvc_compiler_option =
2882        spvc_compiler_option(134217791);
2883}
2884impl spvc_compiler_option {
2885    pub const SPVC_COMPILER_OPTION_MSL_VERTEX_FOR_TESSELLATION: spvc_compiler_option =
2886        spvc_compiler_option(134217792);
2887}
2888impl spvc_compiler_option {
2889    pub const SPVC_COMPILER_OPTION_MSL_VERTEX_INDEX_TYPE: spvc_compiler_option =
2890        spvc_compiler_option(134217793);
2891}
2892impl spvc_compiler_option {
2893    pub const SPVC_COMPILER_OPTION_GLSL_FORCE_FLATTENED_IO_BLOCKS: spvc_compiler_option =
2894        spvc_compiler_option(33554498);
2895}
2896impl spvc_compiler_option {
2897    pub const SPVC_COMPILER_OPTION_MSL_MULTIVIEW_LAYERED_RENDERING: spvc_compiler_option =
2898        spvc_compiler_option(134217795);
2899}
2900impl spvc_compiler_option {
2901    pub const SPVC_COMPILER_OPTION_MSL_ARRAYED_SUBPASS_INPUT: spvc_compiler_option =
2902        spvc_compiler_option(134217796);
2903}
2904impl spvc_compiler_option {
2905    pub const SPVC_COMPILER_OPTION_MSL_R32UI_LINEAR_TEXTURE_ALIGNMENT: spvc_compiler_option =
2906        spvc_compiler_option(134217797);
2907}
2908impl spvc_compiler_option {
2909    pub const SPVC_COMPILER_OPTION_MSL_R32UI_ALIGNMENT_CONSTANT_ID: spvc_compiler_option =
2910        spvc_compiler_option(134217798);
2911}
2912impl spvc_compiler_option {
2913    pub const SPVC_COMPILER_OPTION_HLSL_FLATTEN_MATRIX_VERTEX_INPUT_SEMANTICS:
2914        spvc_compiler_option = spvc_compiler_option(67108935);
2915}
2916impl spvc_compiler_option {
2917    pub const SPVC_COMPILER_OPTION_MSL_IOS_USE_SIMDGROUP_FUNCTIONS: spvc_compiler_option =
2918        spvc_compiler_option(134217800);
2919}
2920impl spvc_compiler_option {
2921    pub const SPVC_COMPILER_OPTION_MSL_EMULATE_SUBGROUPS: spvc_compiler_option =
2922        spvc_compiler_option(134217801);
2923}
2924impl spvc_compiler_option {
2925    pub const SPVC_COMPILER_OPTION_MSL_FIXED_SUBGROUP_SIZE: spvc_compiler_option =
2926        spvc_compiler_option(134217802);
2927}
2928impl spvc_compiler_option {
2929    pub const SPVC_COMPILER_OPTION_MSL_FORCE_SAMPLE_RATE_SHADING: spvc_compiler_option =
2930        spvc_compiler_option(134217803);
2931}
2932impl spvc_compiler_option {
2933    pub const SPVC_COMPILER_OPTION_MSL_IOS_SUPPORT_BASE_VERTEX_INSTANCE: spvc_compiler_option =
2934        spvc_compiler_option(134217804);
2935}
2936impl spvc_compiler_option {
2937    pub const SPVC_COMPILER_OPTION_GLSL_OVR_MULTIVIEW_VIEW_COUNT: spvc_compiler_option =
2938        spvc_compiler_option(33554509);
2939}
2940impl spvc_compiler_option {
2941    pub const SPVC_COMPILER_OPTION_RELAX_NAN_CHECKS: spvc_compiler_option =
2942        spvc_compiler_option(16777294);
2943}
2944impl spvc_compiler_option {
2945    pub const SPVC_COMPILER_OPTION_MSL_RAW_BUFFER_TESE_INPUT: spvc_compiler_option =
2946        spvc_compiler_option(134217807);
2947}
2948impl spvc_compiler_option {
2949    pub const SPVC_COMPILER_OPTION_MSL_SHADER_PATCH_INPUT_BUFFER_INDEX: spvc_compiler_option =
2950        spvc_compiler_option(134217808);
2951}
2952impl spvc_compiler_option {
2953    pub const SPVC_COMPILER_OPTION_MSL_MANUAL_HELPER_INVOCATION_UPDATES: spvc_compiler_option =
2954        spvc_compiler_option(134217809);
2955}
2956impl spvc_compiler_option {
2957    pub const SPVC_COMPILER_OPTION_MSL_CHECK_DISCARDED_FRAG_STORES: spvc_compiler_option =
2958        spvc_compiler_option(134217810);
2959}
2960impl spvc_compiler_option {
2961    pub const SPVC_COMPILER_OPTION_GLSL_ENABLE_ROW_MAJOR_LOAD_WORKAROUND: spvc_compiler_option =
2962        spvc_compiler_option(33554515);
2963}
2964impl spvc_compiler_option {
2965    pub const SPVC_COMPILER_OPTION_MSL_ARGUMENT_BUFFERS_TIER: spvc_compiler_option =
2966        spvc_compiler_option(134217812);
2967}
2968impl spvc_compiler_option {
2969    pub const SPVC_COMPILER_OPTION_MSL_SAMPLE_DREF_LOD_ARRAY_AS_GRAD: spvc_compiler_option =
2970        spvc_compiler_option(134217813);
2971}
2972impl spvc_compiler_option {
2973    pub const SPVC_COMPILER_OPTION_MSL_READWRITE_TEXTURE_FENCES: spvc_compiler_option =
2974        spvc_compiler_option(134217814);
2975}
2976impl spvc_compiler_option {
2977    pub const SPVC_COMPILER_OPTION_MSL_REPLACE_RECURSIVE_INPUTS: spvc_compiler_option =
2978        spvc_compiler_option(134217815);
2979}
2980impl spvc_compiler_option {
2981    pub const SPVC_COMPILER_OPTION_MSL_AGX_MANUAL_CUBE_GRAD_FIXUP: spvc_compiler_option =
2982        spvc_compiler_option(134217816);
2983}
2984impl spvc_compiler_option {
2985    pub const SPVC_COMPILER_OPTION_MSL_FORCE_FRAGMENT_WITH_SIDE_EFFECTS_EXECUTION:
2986        spvc_compiler_option = spvc_compiler_option(134217817);
2987}
2988impl spvc_compiler_option {
2989    pub const SPVC_COMPILER_OPTION_HLSL_USE_ENTRY_POINT_NAME: spvc_compiler_option =
2990        spvc_compiler_option(67108954);
2991}
2992impl spvc_compiler_option {
2993    pub const SPVC_COMPILER_OPTION_HLSL_PRESERVE_STRUCTURED_BUFFERS: spvc_compiler_option =
2994        spvc_compiler_option(67108955);
2995}
2996impl ::std::ops::BitOr<spvc_compiler_option> for spvc_compiler_option {
2997    type Output = Self;
2998    #[inline]
2999    fn bitor(self, other: Self) -> Self {
3000        spvc_compiler_option(self.0 | other.0)
3001    }
3002}
3003impl ::std::ops::BitOrAssign for spvc_compiler_option {
3004    #[inline]
3005    fn bitor_assign(&mut self, rhs: spvc_compiler_option) {
3006        self.0 |= rhs.0;
3007    }
3008}
3009impl ::std::ops::BitAnd<spvc_compiler_option> for spvc_compiler_option {
3010    type Output = Self;
3011    #[inline]
3012    fn bitand(self, other: Self) -> Self {
3013        spvc_compiler_option(self.0 & other.0)
3014    }
3015}
3016impl ::std::ops::BitAndAssign for spvc_compiler_option {
3017    #[inline]
3018    fn bitand_assign(&mut self, rhs: spvc_compiler_option) {
3019        self.0 &= rhs.0;
3020    }
3021}
3022#[repr(transparent)]
3023#[derive(
3024    Debug, Copy, Clone, Hash, PartialEq, Eq, num_derive :: FromPrimitive, num_derive :: ToPrimitive,
3025)]
3026pub struct spvc_compiler_option(pub i32);
3027extern "C" {
3028    #[must_use]
3029    pub fn spvc_context_create(context: *mut spvc_context) -> spvc_result;
3030}
3031extern "C" {
3032    pub fn spvc_context_destroy(context: spvc_context);
3033}
3034extern "C" {
3035    pub fn spvc_context_release_allocations(context: spvc_context);
3036}
3037extern "C" {
3038    pub fn spvc_context_get_last_error_string(
3039        context: spvc_context,
3040    ) -> *const crate::ctypes::c_char;
3041}
3042pub type spvc_error_callback = ::std::option::Option<
3043    unsafe extern "C" fn(userdata: *mut crate::ctypes::c_void, error: *const crate::ctypes::c_char),
3044>;
3045extern "C" {
3046    pub fn spvc_context_set_error_callback(
3047        context: spvc_context,
3048        cb: spvc_error_callback,
3049        userdata: *mut crate::ctypes::c_void,
3050    );
3051}
3052extern "C" {
3053    #[must_use]
3054    pub fn spvc_context_parse_spirv(
3055        context: spvc_context,
3056        spirv: *const SpvId,
3057        word_count: usize,
3058        parsed_ir: *mut spvc_parsed_ir,
3059    ) -> spvc_result;
3060}
3061extern "C" {
3062    #[must_use]
3063    pub fn spvc_context_create_compiler(
3064        context: spvc_context,
3065        backend: CompilerBackend,
3066        parsed_ir: spvc_parsed_ir,
3067        mode: spvc_capture_mode,
3068        compiler: *mut spvc_compiler,
3069    ) -> spvc_result;
3070}
3071extern "C" {
3072    pub fn spvc_compiler_get_current_id_bound(compiler: spvc_compiler) -> crate::ctypes::c_uint;
3073}
3074extern "C" {
3075    #[must_use]
3076    pub fn spvc_compiler_create_compiler_options(
3077        compiler: spvc_compiler,
3078        options: *mut spvc_compiler_options,
3079    ) -> spvc_result;
3080}
3081extern "C" {
3082    #[must_use]
3083    pub fn spvc_compiler_options_set_bool(
3084        options: spvc_compiler_options,
3085        option: spvc_compiler_option,
3086        value: crate::ctypes::spvc_bool,
3087    ) -> spvc_result;
3088}
3089extern "C" {
3090    #[must_use]
3091    pub fn spvc_compiler_options_set_uint(
3092        options: spvc_compiler_options,
3093        option: spvc_compiler_option,
3094        value: crate::ctypes::c_uint,
3095    ) -> spvc_result;
3096}
3097extern "C" {
3098    #[must_use]
3099    pub fn spvc_compiler_install_compiler_options(
3100        compiler: spvc_compiler,
3101        options: spvc_compiler_options,
3102    ) -> spvc_result;
3103}
3104extern "C" {
3105    #[must_use]
3106    pub fn spvc_compiler_compile(
3107        compiler: spvc_compiler,
3108        source: *mut *const crate::ctypes::c_char,
3109    ) -> spvc_result;
3110}
3111extern "C" {
3112    #[must_use]
3113    pub fn spvc_compiler_add_header_line(
3114        compiler: spvc_compiler,
3115        line: *const crate::ctypes::c_char,
3116    ) -> spvc_result;
3117}
3118extern "C" {
3119    #[must_use]
3120    pub fn spvc_compiler_require_extension(
3121        compiler: spvc_compiler,
3122        ext: *const crate::ctypes::c_char,
3123    ) -> spvc_result;
3124}
3125extern "C" {
3126    pub fn spvc_compiler_get_num_required_extensions(compiler: spvc_compiler) -> usize;
3127}
3128extern "C" {
3129    pub fn spvc_compiler_get_required_extension(
3130        compiler: spvc_compiler,
3131        index: usize,
3132    ) -> *const crate::ctypes::c_char;
3133}
3134extern "C" {
3135    #[must_use]
3136    pub fn spvc_compiler_flatten_buffer_block(
3137        compiler: spvc_compiler,
3138        id: VariableId,
3139    ) -> spvc_result;
3140}
3141extern "C" {
3142    pub fn spvc_compiler_variable_is_depth_or_compare(
3143        compiler: spvc_compiler,
3144        id: VariableId,
3145    ) -> crate::ctypes::spvc_bool;
3146}
3147extern "C" {
3148    #[must_use]
3149    pub fn spvc_compiler_mask_stage_output_by_location(
3150        compiler: spvc_compiler,
3151        location: crate::ctypes::c_uint,
3152        component: crate::ctypes::c_uint,
3153    ) -> spvc_result;
3154}
3155extern "C" {
3156    #[must_use]
3157    pub fn spvc_compiler_mask_stage_output_by_builtin(
3158        compiler: spvc_compiler,
3159        builtin: SpvBuiltIn,
3160    ) -> spvc_result;
3161}
3162extern "C" {
3163    #[must_use]
3164    pub fn spvc_compiler_hlsl_set_root_constants_layout(
3165        compiler: spvc_compiler,
3166        constant_info: *const HlslRootConstants,
3167        count: usize,
3168    ) -> spvc_result;
3169}
3170extern "C" {
3171    #[must_use]
3172    pub fn spvc_compiler_hlsl_add_vertex_attribute_remap(
3173        compiler: spvc_compiler,
3174        remap: *const HlslVertexAttributeRemap,
3175        remaps: usize,
3176    ) -> spvc_result;
3177}
3178extern "C" {
3179    pub fn spvc_compiler_hlsl_remap_num_workgroups_builtin(compiler: spvc_compiler) -> VariableId;
3180}
3181extern "C" {
3182    #[must_use]
3183    pub fn spvc_compiler_hlsl_set_resource_binding_flags(
3184        compiler: spvc_compiler,
3185        flags: HlslBindingFlags,
3186    ) -> spvc_result;
3187}
3188extern "C" {
3189    #[must_use]
3190    pub fn spvc_compiler_hlsl_add_resource_binding(
3191        compiler: spvc_compiler,
3192        binding: *const HlslResourceBinding,
3193    ) -> spvc_result;
3194}
3195extern "C" {
3196    pub fn spvc_compiler_hlsl_is_resource_used(
3197        compiler: spvc_compiler,
3198        model: SpvExecutionModel,
3199        set: crate::ctypes::c_uint,
3200        binding: crate::ctypes::c_uint,
3201    ) -> crate::ctypes::spvc_bool;
3202}
3203extern "C" {
3204    pub fn spvc_compiler_msl_is_rasterization_disabled(
3205        compiler: spvc_compiler,
3206    ) -> crate::ctypes::spvc_bool;
3207}
3208extern "C" {
3209    pub fn spvc_compiler_msl_needs_aux_buffer(compiler: spvc_compiler) -> crate::ctypes::spvc_bool;
3210}
3211extern "C" {
3212    pub fn spvc_compiler_msl_needs_swizzle_buffer(
3213        compiler: spvc_compiler,
3214    ) -> crate::ctypes::spvc_bool;
3215}
3216extern "C" {
3217    pub fn spvc_compiler_msl_needs_buffer_size_buffer(
3218        compiler: spvc_compiler,
3219    ) -> crate::ctypes::spvc_bool;
3220}
3221extern "C" {
3222    pub fn spvc_compiler_msl_needs_output_buffer(
3223        compiler: spvc_compiler,
3224    ) -> crate::ctypes::spvc_bool;
3225}
3226extern "C" {
3227    pub fn spvc_compiler_msl_needs_patch_output_buffer(
3228        compiler: spvc_compiler,
3229    ) -> crate::ctypes::spvc_bool;
3230}
3231extern "C" {
3232    pub fn spvc_compiler_msl_needs_input_threadgroup_mem(
3233        compiler: spvc_compiler,
3234    ) -> crate::ctypes::spvc_bool;
3235}
3236extern "C" {
3237    #[must_use]
3238    pub fn spvc_compiler_msl_add_vertex_attribute(
3239        compiler: spvc_compiler,
3240        attrs: *const MslVertexAttribute,
3241    ) -> spvc_result;
3242}
3243extern "C" {
3244    #[must_use]
3245    pub fn spvc_compiler_msl_add_resource_binding(
3246        compiler: spvc_compiler,
3247        binding: *const MslResourceBinding,
3248    ) -> spvc_result;
3249}
3250extern "C" {
3251    #[must_use]
3252    pub fn spvc_compiler_msl_add_resource_binding_2(
3253        compiler: spvc_compiler,
3254        binding: *const MslResourceBinding2,
3255    ) -> spvc_result;
3256}
3257extern "C" {
3258    #[must_use]
3259    pub fn spvc_compiler_msl_add_shader_input(
3260        compiler: spvc_compiler,
3261        input: *const MslShaderInterfaceVar,
3262    ) -> spvc_result;
3263}
3264extern "C" {
3265    #[must_use]
3266    pub fn spvc_compiler_msl_add_shader_input_2(
3267        compiler: spvc_compiler,
3268        input: *const MslShaderInterfaceVar2,
3269    ) -> spvc_result;
3270}
3271extern "C" {
3272    #[must_use]
3273    pub fn spvc_compiler_msl_add_shader_output(
3274        compiler: spvc_compiler,
3275        output: *const MslShaderInterfaceVar,
3276    ) -> spvc_result;
3277}
3278extern "C" {
3279    #[must_use]
3280    pub fn spvc_compiler_msl_add_shader_output_2(
3281        compiler: spvc_compiler,
3282        output: *const MslShaderInterfaceVar2,
3283    ) -> spvc_result;
3284}
3285extern "C" {
3286    #[must_use]
3287    pub fn spvc_compiler_msl_add_discrete_descriptor_set(
3288        compiler: spvc_compiler,
3289        desc_set: crate::ctypes::c_uint,
3290    ) -> spvc_result;
3291}
3292extern "C" {
3293    #[must_use]
3294    pub fn spvc_compiler_msl_set_argument_buffer_device_address_space(
3295        compiler: spvc_compiler,
3296        desc_set: crate::ctypes::c_uint,
3297        device_address: crate::ctypes::spvc_bool,
3298    ) -> spvc_result;
3299}
3300extern "C" {
3301    pub fn spvc_compiler_msl_is_vertex_attribute_used(
3302        compiler: spvc_compiler,
3303        location: crate::ctypes::c_uint,
3304    ) -> crate::ctypes::spvc_bool;
3305}
3306extern "C" {
3307    pub fn spvc_compiler_msl_is_shader_input_used(
3308        compiler: spvc_compiler,
3309        location: crate::ctypes::c_uint,
3310    ) -> crate::ctypes::spvc_bool;
3311}
3312extern "C" {
3313    pub fn spvc_compiler_msl_is_shader_output_used(
3314        compiler: spvc_compiler,
3315        location: crate::ctypes::c_uint,
3316    ) -> crate::ctypes::spvc_bool;
3317}
3318extern "C" {
3319    pub fn spvc_compiler_msl_is_resource_used(
3320        compiler: spvc_compiler,
3321        model: SpvExecutionModel,
3322        set: crate::ctypes::c_uint,
3323        binding: crate::ctypes::c_uint,
3324    ) -> crate::ctypes::spvc_bool;
3325}
3326extern "C" {
3327    #[must_use]
3328    pub fn spvc_compiler_msl_remap_constexpr_sampler(
3329        compiler: spvc_compiler,
3330        id: VariableId,
3331        sampler: *const MslConstexprSampler,
3332    ) -> spvc_result;
3333}
3334extern "C" {
3335    #[must_use]
3336    pub fn spvc_compiler_msl_remap_constexpr_sampler_by_binding(
3337        compiler: spvc_compiler,
3338        desc_set: crate::ctypes::c_uint,
3339        binding: crate::ctypes::c_uint,
3340        sampler: *const MslConstexprSampler,
3341    ) -> spvc_result;
3342}
3343extern "C" {
3344    #[must_use]
3345    pub fn spvc_compiler_msl_remap_constexpr_sampler_ycbcr(
3346        compiler: spvc_compiler,
3347        id: VariableId,
3348        sampler: *const MslConstexprSampler,
3349        conv: *const MslSamplerYcbcrConversion,
3350    ) -> spvc_result;
3351}
3352extern "C" {
3353    #[must_use]
3354    pub fn spvc_compiler_msl_remap_constexpr_sampler_by_binding_ycbcr(
3355        compiler: spvc_compiler,
3356        desc_set: crate::ctypes::c_uint,
3357        binding: crate::ctypes::c_uint,
3358        sampler: *const MslConstexprSampler,
3359        conv: *const MslSamplerYcbcrConversion,
3360    ) -> spvc_result;
3361}
3362extern "C" {
3363    #[must_use]
3364    pub fn spvc_compiler_msl_set_fragment_output_components(
3365        compiler: spvc_compiler,
3366        location: crate::ctypes::c_uint,
3367        components: crate::ctypes::c_uint,
3368    ) -> spvc_result;
3369}
3370extern "C" {
3371    pub fn spvc_compiler_msl_get_automatic_resource_binding(
3372        compiler: spvc_compiler,
3373        id: VariableId,
3374    ) -> crate::ctypes::c_uint;
3375}
3376extern "C" {
3377    pub fn spvc_compiler_msl_get_automatic_resource_binding_secondary(
3378        compiler: spvc_compiler,
3379        id: VariableId,
3380    ) -> crate::ctypes::c_uint;
3381}
3382extern "C" {
3383    #[must_use]
3384    pub fn spvc_compiler_msl_add_dynamic_buffer(
3385        compiler: spvc_compiler,
3386        desc_set: crate::ctypes::c_uint,
3387        binding: crate::ctypes::c_uint,
3388        index: crate::ctypes::c_uint,
3389    ) -> spvc_result;
3390}
3391extern "C" {
3392    #[must_use]
3393    pub fn spvc_compiler_msl_add_inline_uniform_block(
3394        compiler: spvc_compiler,
3395        desc_set: crate::ctypes::c_uint,
3396        binding: crate::ctypes::c_uint,
3397    ) -> spvc_result;
3398}
3399extern "C" {
3400    #[must_use]
3401    pub fn spvc_compiler_msl_set_combined_sampler_suffix(
3402        compiler: spvc_compiler,
3403        suffix: *const crate::ctypes::c_char,
3404    ) -> spvc_result;
3405}
3406extern "C" {
3407    pub fn spvc_compiler_msl_get_combined_sampler_suffix(
3408        compiler: spvc_compiler,
3409    ) -> *const crate::ctypes::c_char;
3410}
3411extern "C" {
3412    #[must_use]
3413    pub fn spvc_compiler_get_active_interface_variables(
3414        compiler: spvc_compiler,
3415        set: *mut spvc_set,
3416    ) -> spvc_result;
3417}
3418extern "C" {
3419    #[must_use]
3420    pub fn spvc_compiler_set_enabled_interface_variables(
3421        compiler: spvc_compiler,
3422        set: spvc_set,
3423    ) -> spvc_result;
3424}
3425extern "C" {
3426    #[must_use]
3427    pub fn spvc_compiler_create_shader_resources(
3428        compiler: spvc_compiler,
3429        resources: *mut spvc_resources,
3430    ) -> spvc_result;
3431}
3432extern "C" {
3433    #[must_use]
3434    pub fn spvc_compiler_create_shader_resources_for_active_variables(
3435        compiler: spvc_compiler,
3436        resources: *mut spvc_resources,
3437        active: spvc_set,
3438    ) -> spvc_result;
3439}
3440extern "C" {
3441    #[must_use]
3442    pub fn spvc_resources_get_resource_list_for_type(
3443        resources: spvc_resources,
3444        type_: ResourceType,
3445        resource_list: *mut *const spvc_reflected_resource,
3446        resource_size: *mut usize,
3447    ) -> spvc_result;
3448}
3449extern "C" {
3450    #[must_use]
3451    pub fn spvc_resources_get_builtin_resource_list_for_type(
3452        resources: spvc_resources,
3453        type_: BuiltinResourceType,
3454        resource_list: *mut *const spvc_reflected_builtin_resource,
3455        resource_size: *mut usize,
3456    ) -> spvc_result;
3457}
3458extern "C" {
3459    pub fn spvc_compiler_set_decoration(
3460        compiler: spvc_compiler,
3461        id: SpvId,
3462        decoration: SpvDecoration,
3463        argument: crate::ctypes::c_uint,
3464    );
3465}
3466extern "C" {
3467    pub fn spvc_compiler_set_decoration_string(
3468        compiler: spvc_compiler,
3469        id: SpvId,
3470        decoration: SpvDecoration,
3471        argument: *const crate::ctypes::c_char,
3472    );
3473}
3474extern "C" {
3475    pub fn spvc_compiler_set_name(
3476        compiler: spvc_compiler,
3477        id: SpvId,
3478        argument: *const crate::ctypes::c_char,
3479    );
3480}
3481extern "C" {
3482    pub fn spvc_compiler_set_member_decoration(
3483        compiler: spvc_compiler,
3484        id: TypeId,
3485        member_index: crate::ctypes::c_uint,
3486        decoration: SpvDecoration,
3487        argument: crate::ctypes::c_uint,
3488    );
3489}
3490extern "C" {
3491    pub fn spvc_compiler_set_member_decoration_string(
3492        compiler: spvc_compiler,
3493        id: TypeId,
3494        member_index: crate::ctypes::c_uint,
3495        decoration: SpvDecoration,
3496        argument: *const crate::ctypes::c_char,
3497    );
3498}
3499extern "C" {
3500    pub fn spvc_compiler_set_member_name(
3501        compiler: spvc_compiler,
3502        id: TypeId,
3503        member_index: crate::ctypes::c_uint,
3504        argument: *const crate::ctypes::c_char,
3505    );
3506}
3507extern "C" {
3508    pub fn spvc_compiler_unset_decoration(
3509        compiler: spvc_compiler,
3510        id: SpvId,
3511        decoration: SpvDecoration,
3512    );
3513}
3514extern "C" {
3515    pub fn spvc_compiler_unset_member_decoration(
3516        compiler: spvc_compiler,
3517        id: TypeId,
3518        member_index: crate::ctypes::c_uint,
3519        decoration: SpvDecoration,
3520    );
3521}
3522extern "C" {
3523    pub fn spvc_compiler_has_decoration(
3524        compiler: spvc_compiler,
3525        id: SpvId,
3526        decoration: SpvDecoration,
3527    ) -> crate::ctypes::spvc_bool;
3528}
3529extern "C" {
3530    pub fn spvc_compiler_has_member_decoration(
3531        compiler: spvc_compiler,
3532        id: TypeId,
3533        member_index: crate::ctypes::c_uint,
3534        decoration: SpvDecoration,
3535    ) -> crate::ctypes::spvc_bool;
3536}
3537extern "C" {
3538    pub fn spvc_compiler_get_name(
3539        compiler: spvc_compiler,
3540        id: SpvId,
3541    ) -> *const crate::ctypes::c_char;
3542}
3543extern "C" {
3544    pub fn spvc_compiler_get_decoration(
3545        compiler: spvc_compiler,
3546        id: SpvId,
3547        decoration: SpvDecoration,
3548    ) -> crate::ctypes::c_uint;
3549}
3550extern "C" {
3551    pub fn spvc_compiler_get_decoration_string(
3552        compiler: spvc_compiler,
3553        id: SpvId,
3554        decoration: SpvDecoration,
3555    ) -> *const crate::ctypes::c_char;
3556}
3557extern "C" {
3558    pub fn spvc_compiler_get_member_decoration(
3559        compiler: spvc_compiler,
3560        id: TypeId,
3561        member_index: crate::ctypes::c_uint,
3562        decoration: SpvDecoration,
3563    ) -> crate::ctypes::c_uint;
3564}
3565extern "C" {
3566    pub fn spvc_compiler_get_member_decoration_string(
3567        compiler: spvc_compiler,
3568        id: TypeId,
3569        member_index: crate::ctypes::c_uint,
3570        decoration: SpvDecoration,
3571    ) -> *const crate::ctypes::c_char;
3572}
3573extern "C" {
3574    pub fn spvc_compiler_get_member_name(
3575        compiler: spvc_compiler,
3576        id: TypeId,
3577        member_index: crate::ctypes::c_uint,
3578    ) -> *const crate::ctypes::c_char;
3579}
3580extern "C" {
3581    #[must_use]
3582    pub fn spvc_compiler_get_entry_points(
3583        compiler: spvc_compiler,
3584        entry_points: *mut *const spvc_entry_point,
3585        num_entry_points: *mut usize,
3586    ) -> spvc_result;
3587}
3588extern "C" {
3589    #[must_use]
3590    pub fn spvc_compiler_set_entry_point(
3591        compiler: spvc_compiler,
3592        name: *const crate::ctypes::c_char,
3593        model: SpvExecutionModel,
3594    ) -> spvc_result;
3595}
3596extern "C" {
3597    #[must_use]
3598    pub fn spvc_compiler_rename_entry_point(
3599        compiler: spvc_compiler,
3600        old_name: *const crate::ctypes::c_char,
3601        new_name: *const crate::ctypes::c_char,
3602        model: SpvExecutionModel,
3603    ) -> spvc_result;
3604}
3605extern "C" {
3606    pub fn spvc_compiler_get_cleansed_entry_point_name(
3607        compiler: spvc_compiler,
3608        name: *const crate::ctypes::c_char,
3609        model: SpvExecutionModel,
3610    ) -> *const crate::ctypes::c_char;
3611}
3612extern "C" {
3613    pub fn spvc_compiler_set_execution_mode(compiler: spvc_compiler, mode: SpvExecutionMode);
3614}
3615extern "C" {
3616    pub fn spvc_compiler_unset_execution_mode(compiler: spvc_compiler, mode: SpvExecutionMode);
3617}
3618extern "C" {
3619    pub fn spvc_compiler_set_execution_mode_with_arguments(
3620        compiler: spvc_compiler,
3621        mode: SpvExecutionMode,
3622        arg0: crate::ctypes::c_uint,
3623        arg1: crate::ctypes::c_uint,
3624        arg2: crate::ctypes::c_uint,
3625    );
3626}
3627extern "C" {
3628    #[must_use]
3629    pub fn spvc_compiler_get_execution_modes(
3630        compiler: spvc_compiler,
3631        modes: *mut *const SpvExecutionMode,
3632        num_modes: *mut usize,
3633    ) -> spvc_result;
3634}
3635extern "C" {
3636    pub fn spvc_compiler_get_execution_mode_argument(
3637        compiler: spvc_compiler,
3638        mode: SpvExecutionMode,
3639    ) -> crate::ctypes::c_uint;
3640}
3641extern "C" {
3642    pub fn spvc_compiler_get_execution_mode_argument_by_index(
3643        compiler: spvc_compiler,
3644        mode: SpvExecutionMode,
3645        index: crate::ctypes::c_uint,
3646    ) -> crate::ctypes::c_uint;
3647}
3648extern "C" {
3649    pub fn spvc_compiler_get_execution_model(compiler: spvc_compiler) -> SpvExecutionModel;
3650}
3651extern "C" {
3652    pub fn spvc_compiler_update_active_builtins(compiler: spvc_compiler);
3653}
3654extern "C" {
3655    pub fn spvc_compiler_has_active_builtin(
3656        compiler: spvc_compiler,
3657        builtin: SpvBuiltIn,
3658        storage: SpvStorageClass,
3659    ) -> crate::ctypes::spvc_bool;
3660}
3661extern "C" {
3662    pub fn spvc_compiler_get_type_handle(compiler: spvc_compiler, id: TypeId) -> spvc_type;
3663}
3664extern "C" {
3665    pub fn spvc_type_get_base_type_id(type_: spvc_type) -> TypeId;
3666}
3667extern "C" {
3668    pub fn spvc_type_get_basetype(type_: spvc_type) -> BaseType;
3669}
3670extern "C" {
3671    pub fn spvc_type_get_bit_width(type_: spvc_type) -> crate::ctypes::c_uint;
3672}
3673extern "C" {
3674    pub fn spvc_type_get_vector_size(type_: spvc_type) -> crate::ctypes::c_uint;
3675}
3676extern "C" {
3677    pub fn spvc_type_get_columns(type_: spvc_type) -> crate::ctypes::c_uint;
3678}
3679extern "C" {
3680    pub fn spvc_type_get_num_array_dimensions(type_: spvc_type) -> crate::ctypes::c_uint;
3681}
3682extern "C" {
3683    pub fn spvc_type_array_dimension_is_literal(
3684        type_: spvc_type,
3685        dimension: crate::ctypes::c_uint,
3686    ) -> crate::ctypes::spvc_bool;
3687}
3688extern "C" {
3689    pub fn spvc_type_get_array_dimension(
3690        type_: spvc_type,
3691        dimension: crate::ctypes::c_uint,
3692    ) -> SpvId;
3693}
3694extern "C" {
3695    pub fn spvc_type_get_num_member_types(type_: spvc_type) -> crate::ctypes::c_uint;
3696}
3697extern "C" {
3698    pub fn spvc_type_get_member_type(type_: spvc_type, index: crate::ctypes::c_uint) -> TypeId;
3699}
3700extern "C" {
3701    pub fn spvc_type_get_storage_class(type_: spvc_type) -> SpvStorageClass;
3702}
3703extern "C" {
3704    pub fn spvc_type_get_image_sampled_type(type_: spvc_type) -> TypeId;
3705}
3706extern "C" {
3707    pub fn spvc_type_get_image_dimension(type_: spvc_type) -> SpvDim;
3708}
3709extern "C" {
3710    pub fn spvc_type_get_image_is_depth(type_: spvc_type) -> crate::ctypes::spvc_bool;
3711}
3712extern "C" {
3713    pub fn spvc_type_get_image_arrayed(type_: spvc_type) -> crate::ctypes::spvc_bool;
3714}
3715extern "C" {
3716    pub fn spvc_type_get_image_multisampled(type_: spvc_type) -> crate::ctypes::spvc_bool;
3717}
3718extern "C" {
3719    pub fn spvc_type_get_image_is_storage(type_: spvc_type) -> crate::ctypes::spvc_bool;
3720}
3721extern "C" {
3722    pub fn spvc_type_get_image_storage_format(type_: spvc_type) -> SpvImageFormat;
3723}
3724extern "C" {
3725    pub fn spvc_type_get_image_access_qualifier(type_: spvc_type) -> SpvAccessQualifier;
3726}
3727extern "C" {
3728    #[must_use]
3729    pub fn spvc_compiler_get_declared_struct_size(
3730        compiler: spvc_compiler,
3731        struct_type: spvc_type,
3732        size: *mut usize,
3733    ) -> spvc_result;
3734}
3735extern "C" {
3736    #[must_use]
3737    pub fn spvc_compiler_get_declared_struct_size_runtime_array(
3738        compiler: spvc_compiler,
3739        struct_type: spvc_type,
3740        array_size: usize,
3741        size: *mut usize,
3742    ) -> spvc_result;
3743}
3744extern "C" {
3745    #[must_use]
3746    pub fn spvc_compiler_get_declared_struct_member_size(
3747        compiler: spvc_compiler,
3748        type_: spvc_type,
3749        index: crate::ctypes::c_uint,
3750        size: *mut usize,
3751    ) -> spvc_result;
3752}
3753extern "C" {
3754    #[must_use]
3755    pub fn spvc_compiler_type_struct_member_offset(
3756        compiler: spvc_compiler,
3757        type_: spvc_type,
3758        index: crate::ctypes::c_uint,
3759        offset: *mut crate::ctypes::c_uint,
3760    ) -> spvc_result;
3761}
3762extern "C" {
3763    #[must_use]
3764    pub fn spvc_compiler_type_struct_member_array_stride(
3765        compiler: spvc_compiler,
3766        type_: spvc_type,
3767        index: crate::ctypes::c_uint,
3768        stride: *mut crate::ctypes::c_uint,
3769    ) -> spvc_result;
3770}
3771extern "C" {
3772    #[must_use]
3773    pub fn spvc_compiler_type_struct_member_matrix_stride(
3774        compiler: spvc_compiler,
3775        type_: spvc_type,
3776        index: crate::ctypes::c_uint,
3777        stride: *mut crate::ctypes::c_uint,
3778    ) -> spvc_result;
3779}
3780extern "C" {
3781    #[must_use]
3782    pub fn spvc_compiler_build_dummy_sampler_for_combined_images(
3783        compiler: spvc_compiler,
3784        id: *mut VariableId,
3785    ) -> spvc_result;
3786}
3787extern "C" {
3788    #[must_use]
3789    pub fn spvc_compiler_build_combined_image_samplers(compiler: spvc_compiler) -> spvc_result;
3790}
3791extern "C" {
3792    #[must_use]
3793    pub fn spvc_compiler_get_combined_image_samplers(
3794        compiler: spvc_compiler,
3795        samplers: *mut *const spvc_combined_image_sampler,
3796        num_samplers: *mut usize,
3797    ) -> spvc_result;
3798}
3799extern "C" {
3800    #[must_use]
3801    pub fn spvc_compiler_get_specialization_constants(
3802        compiler: spvc_compiler,
3803        constants: *mut *const spvc_specialization_constant,
3804        num_constants: *mut usize,
3805    ) -> spvc_result;
3806}
3807extern "C" {
3808    pub fn spvc_compiler_get_constant_handle(
3809        compiler: spvc_compiler,
3810        id: ConstantId,
3811    ) -> spvc_constant;
3812}
3813extern "C" {
3814    pub fn spvc_compiler_get_work_group_size_specialization_constants(
3815        compiler: spvc_compiler,
3816        x: *mut spvc_specialization_constant,
3817        y: *mut spvc_specialization_constant,
3818        z: *mut spvc_specialization_constant,
3819    ) -> ConstantId;
3820}
3821extern "C" {
3822    #[must_use]
3823    pub fn spvc_compiler_get_active_buffer_ranges(
3824        compiler: spvc_compiler,
3825        id: VariableId,
3826        ranges: *mut *const BufferRange,
3827        num_ranges: *mut usize,
3828    ) -> spvc_result;
3829}
3830extern "C" {
3831    pub fn spvc_constant_get_scalar_fp16(
3832        constant: spvc_constant,
3833        column: crate::ctypes::c_uint,
3834        row: crate::ctypes::c_uint,
3835    ) -> f32;
3836}
3837extern "C" {
3838    pub fn spvc_constant_get_scalar_fp32(
3839        constant: spvc_constant,
3840        column: crate::ctypes::c_uint,
3841        row: crate::ctypes::c_uint,
3842    ) -> f32;
3843}
3844extern "C" {
3845    pub fn spvc_constant_get_scalar_fp64(
3846        constant: spvc_constant,
3847        column: crate::ctypes::c_uint,
3848        row: crate::ctypes::c_uint,
3849    ) -> f64;
3850}
3851extern "C" {
3852    pub fn spvc_constant_get_scalar_u32(
3853        constant: spvc_constant,
3854        column: crate::ctypes::c_uint,
3855        row: crate::ctypes::c_uint,
3856    ) -> crate::ctypes::c_uint;
3857}
3858extern "C" {
3859    pub fn spvc_constant_get_scalar_i32(
3860        constant: spvc_constant,
3861        column: crate::ctypes::c_uint,
3862        row: crate::ctypes::c_uint,
3863    ) -> crate::ctypes::c_int;
3864}
3865extern "C" {
3866    pub fn spvc_constant_get_scalar_u16(
3867        constant: spvc_constant,
3868        column: crate::ctypes::c_uint,
3869        row: crate::ctypes::c_uint,
3870    ) -> crate::ctypes::c_uint;
3871}
3872extern "C" {
3873    pub fn spvc_constant_get_scalar_i16(
3874        constant: spvc_constant,
3875        column: crate::ctypes::c_uint,
3876        row: crate::ctypes::c_uint,
3877    ) -> crate::ctypes::c_int;
3878}
3879extern "C" {
3880    pub fn spvc_constant_get_scalar_u8(
3881        constant: spvc_constant,
3882        column: crate::ctypes::c_uint,
3883        row: crate::ctypes::c_uint,
3884    ) -> crate::ctypes::c_uint;
3885}
3886extern "C" {
3887    pub fn spvc_constant_get_scalar_i8(
3888        constant: spvc_constant,
3889        column: crate::ctypes::c_uint,
3890        row: crate::ctypes::c_uint,
3891    ) -> crate::ctypes::c_int;
3892}
3893extern "C" {
3894    pub fn spvc_constant_get_subconstants(
3895        constant: spvc_constant,
3896        constituents: *mut *const ConstantId,
3897        count: *mut usize,
3898    );
3899}
3900extern "C" {
3901    pub fn spvc_constant_get_scalar_u64(
3902        constant: spvc_constant,
3903        column: crate::ctypes::c_uint,
3904        row: crate::ctypes::c_uint,
3905    ) -> crate::ctypes::c_ulonglong;
3906}
3907extern "C" {
3908    pub fn spvc_constant_get_scalar_i64(
3909        constant: spvc_constant,
3910        column: crate::ctypes::c_uint,
3911        row: crate::ctypes::c_uint,
3912    ) -> crate::ctypes::c_longlong;
3913}
3914extern "C" {
3915    pub fn spvc_constant_get_type(constant: spvc_constant) -> TypeId;
3916}
3917extern "C" {
3918    pub fn spvc_constant_set_scalar_fp16(
3919        constant: spvc_constant,
3920        column: crate::ctypes::c_uint,
3921        row: crate::ctypes::c_uint,
3922        value: crate::ctypes::c_ushort,
3923    );
3924}
3925extern "C" {
3926    pub fn spvc_constant_set_scalar_fp32(
3927        constant: spvc_constant,
3928        column: crate::ctypes::c_uint,
3929        row: crate::ctypes::c_uint,
3930        value: f32,
3931    );
3932}
3933extern "C" {
3934    pub fn spvc_constant_set_scalar_fp64(
3935        constant: spvc_constant,
3936        column: crate::ctypes::c_uint,
3937        row: crate::ctypes::c_uint,
3938        value: f64,
3939    );
3940}
3941extern "C" {
3942    pub fn spvc_constant_set_scalar_u32(
3943        constant: spvc_constant,
3944        column: crate::ctypes::c_uint,
3945        row: crate::ctypes::c_uint,
3946        value: crate::ctypes::c_uint,
3947    );
3948}
3949extern "C" {
3950    pub fn spvc_constant_set_scalar_i32(
3951        constant: spvc_constant,
3952        column: crate::ctypes::c_uint,
3953        row: crate::ctypes::c_uint,
3954        value: crate::ctypes::c_int,
3955    );
3956}
3957extern "C" {
3958    pub fn spvc_constant_set_scalar_u64(
3959        constant: spvc_constant,
3960        column: crate::ctypes::c_uint,
3961        row: crate::ctypes::c_uint,
3962        value: crate::ctypes::c_ulonglong,
3963    );
3964}
3965extern "C" {
3966    pub fn spvc_constant_set_scalar_i64(
3967        constant: spvc_constant,
3968        column: crate::ctypes::c_uint,
3969        row: crate::ctypes::c_uint,
3970        value: crate::ctypes::c_longlong,
3971    );
3972}
3973extern "C" {
3974    pub fn spvc_constant_set_scalar_u16(
3975        constant: spvc_constant,
3976        column: crate::ctypes::c_uint,
3977        row: crate::ctypes::c_uint,
3978        value: crate::ctypes::c_ushort,
3979    );
3980}
3981extern "C" {
3982    pub fn spvc_constant_set_scalar_i16(
3983        constant: spvc_constant,
3984        column: crate::ctypes::c_uint,
3985        row: crate::ctypes::c_uint,
3986        value: crate::ctypes::c_short,
3987    );
3988}
3989extern "C" {
3990    pub fn spvc_constant_set_scalar_u8(
3991        constant: spvc_constant,
3992        column: crate::ctypes::c_uint,
3993        row: crate::ctypes::c_uint,
3994        value: crate::ctypes::c_uchar,
3995    );
3996}
3997extern "C" {
3998    pub fn spvc_constant_set_scalar_i8(
3999        constant: spvc_constant,
4000        column: crate::ctypes::c_uint,
4001        row: crate::ctypes::c_uint,
4002        value: crate::ctypes::c_schar,
4003    );
4004}
4005extern "C" {
4006    pub fn spvc_compiler_get_binary_offset_for_decoration(
4007        compiler: spvc_compiler,
4008        id: VariableId,
4009        decoration: SpvDecoration,
4010        word_offset: *mut crate::ctypes::c_uint,
4011    ) -> crate::ctypes::spvc_bool;
4012}
4013extern "C" {
4014    pub fn spvc_compiler_buffer_is_hlsl_counter_buffer(
4015        compiler: spvc_compiler,
4016        id: VariableId,
4017    ) -> crate::ctypes::spvc_bool;
4018}
4019extern "C" {
4020    pub fn spvc_compiler_buffer_get_hlsl_counter_buffer(
4021        compiler: spvc_compiler,
4022        id: VariableId,
4023        counter_id: *mut VariableId,
4024    ) -> crate::ctypes::spvc_bool;
4025}
4026extern "C" {
4027    #[must_use]
4028    pub fn spvc_compiler_get_declared_capabilities(
4029        compiler: spvc_compiler,
4030        capabilities: *mut *const SpvCapability,
4031        num_capabilities: *mut usize,
4032    ) -> spvc_result;
4033}
4034extern "C" {
4035    #[must_use]
4036    pub fn spvc_compiler_get_declared_extensions(
4037        compiler: spvc_compiler,
4038        extensions: *mut *mut *const crate::ctypes::c_char,
4039        num_extensions: *mut usize,
4040    ) -> spvc_result;
4041}
4042extern "C" {
4043    pub fn spvc_compiler_get_remapped_declared_block_name(
4044        compiler: spvc_compiler,
4045        id: VariableId,
4046    ) -> *const crate::ctypes::c_char;
4047}
4048extern "C" {
4049    #[must_use]
4050    pub fn spvc_compiler_get_buffer_block_decorations(
4051        compiler: spvc_compiler,
4052        id: VariableId,
4053        decorations: *mut *const SpvDecoration,
4054        num_decorations: *mut usize,
4055    ) -> spvc_result;
4056}
4057extern "C" {
4058    pub fn spvc_rs_expose_set(set: spvc_set, out: *mut u32, length: *mut usize);
4059}
4060extern "C" {
4061    pub fn spvc_rs_constant_is_scalar(constant: spvc_constant) -> crate::ctypes::spvc_bool;
4062}
4063extern "C" {
4064    pub fn spvc_rs_constant_get_vecsize(constant: spvc_constant) -> u32;
4065}
4066extern "C" {
4067    pub fn spvc_rs_constant_get_matrix_colsize(constant: spvc_constant) -> u32;
4068}
4069extern "C" {
4070    #[must_use]
4071    pub fn spvc_rs_compiler_variable_get_type(
4072        compiler: spvc_compiler,
4073        variable_id: VariableId,
4074        out: *mut TypeId,
4075    ) -> spvc_result;
4076}
4077extern "C" {
4078    pub fn spvc_rs_type_is_pointer(type_: spvc_type) -> crate::ctypes::spvc_bool;
4079}
4080extern "C" {
4081    pub fn spvc_rs_type_is_forward_pointer(type_: spvc_type) -> crate::ctypes::spvc_bool;
4082}
4083extern "C" {
4084    pub fn spvc_rs_compiler_get_execution_model_indirect(
4085        compiler: spvc_compiler,
4086        out: *mut SpvExecutionModel,
4087    );
4088}