1#[allow(clippy::upper_case_acronyms)]
6#[derive(Clone, Debug)]
7pub enum Type {
8 Void,
9 Bool,
10 Int {
11 width: u32,
12 signedness: u32,
13 },
14 Float {
15 width: u32,
16 floating_point_encoding: Option<spirv::FPEncoding>,
17 },
18 Vector {
19 component_type: Token<Type>,
20 component_count: u32,
21 },
22 Matrix {
23 column_type: Token<Type>,
24 column_count: u32,
25 },
26 Image {
27 sampled_type: Token<Type>,
28 dim: spirv::Dim,
29 depth: u32,
30 arrayed: u32,
31 ms: u32,
32 sampled: u32,
33 image_format: spirv::ImageFormat,
34 access_qualifier: Option<spirv::AccessQualifier>,
35 },
36 Sampler,
37 SampledImage {
38 image_type: Token<Type>,
39 },
40 Array {
41 element_type: Token<Type>,
42 length: Token<Constant>,
43 },
44 RuntimeArray {
45 element_type: Token<Type>,
46 },
47 Struct {
48 member_0_type_member_1_type: Vec<StructMember>,
49 },
50 Opaque {
51 the_name_of_the_opaque_type: String,
52 },
53 Pointer {
54 storage_class: spirv::StorageClass,
55 ty: Token<Type>,
56 },
57 Function {
58 return_type: Token<Type>,
59 parameter_0_type_parameter_1_type: Vec<Token<Type>>,
60 },
61 Event,
62 DeviceEvent,
63 ReserveId,
64 Queue,
65 Pipe {
66 qualifier: spirv::AccessQualifier,
67 },
68 ForwardPointer {
69 pointer_type: Token<Type>,
70 storage_class: spirv::StorageClass,
71 },
72 PipeStorage,
73 NamedBarrier,
74 TensorARM {
75 element_type: Token<Type>,
76 rank: Option<spirv::Word>,
77 shape: Option<spirv::Word>,
78 },
79 GraphARM {
80 num_inputs: u32,
81 in_out_types: Vec<spirv::Word>,
82 },
83 UntypedPointerKHR {
84 storage_class: spirv::StorageClass,
85 },
86 CooperativeMatrixKHR {
87 component_type: Token<Type>,
88 scope: spirv::Word,
89 rows: spirv::Word,
90 columns: spirv::Word,
91 usage: spirv::Word,
92 },
93 RayQueryKHR,
94 NodePayloadArrayAMDX {
95 payload_type: spirv::Word,
96 },
97 BufferEXT {
98 storage_class: spirv::StorageClass,
99 },
100 HitObjectNV,
101 VectorIdEXT {
102 component_type: Token<Type>,
103 component_count: spirv::Word,
104 },
105 HitObjectEXT,
106 AccelerationStructureKHR,
107 CooperativeMatrixNV {
108 component_type: Token<Type>,
109 execution: spirv::Word,
110 rows: spirv::Word,
111 columns: spirv::Word,
112 },
113 TensorLayoutNV {
114 dim: spirv::Word,
115 clamp_mode: spirv::Word,
116 },
117 TensorViewNV {
118 dim: spirv::Word,
119 has_dimensions: spirv::Word,
120 p: Vec<spirv::Word>,
121 },
122 BufferSurfaceINTEL {
123 access_qualifier: spirv::AccessQualifier,
124 },
125 StructContinuedINTEL {
126 member_0_type_member_1_type: Vec<spirv::Word>,
127 },
128}