Skip to main content

spirv_cross_sys/
bindings.rs

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