lib/choir/src/backends/gpu/spirv/emitter/spec.zig
daab053ee43316e1809a84551d573ddd1e5bf3d2
1 pub const StorageClass = struct {
2 pub const UniformConstant: u32 = 0;
3 pub const Input: u32 = 1;
4 pub const Uniform: u32 = 2;
5 pub const Output: u32 = 3;
6 pub const Workgroup: u32 = 4;
7 pub const CrossWorkgroup: u32 = 5;
8 pub const Private: u32 = 6;
9 pub const Function: u32 = 7;
10 pub const PushConstant: u32 = 9;
11 pub const StorageBuffer: u32 = 12;
12 };
13
14 pub const Scope = struct {
15 pub const CrossDevice: u32 = 0;
16 pub const Device: u32 = 1;
17 pub const Workgroup: u32 = 2;
18 pub const Subgroup: u32 = 3;
19 pub const Invocation: u32 = 4;
20 pub const QueueFamily: u32 = 5;
21 };
22
23 pub const MemorySemanticsMask = struct {
24 pub const None: u32 = 0;
25 pub const Acquire: u32 = 0x2;
26 pub const Release: u32 = 0x4;
27 pub const AcquireRelease: u32 = 0x8;
28 pub const SequentiallyConsistent: u32 = 0x10;
29 pub const UniformMemory: u32 = 0x40;
30 pub const SubgroupMemory: u32 = 0x80;
31 pub const WorkgroupMemory: u32 = 0x100;
32 pub const CrossWorkgroupMemory: u32 = 0x200;
33 pub const AtomicCounterMemory: u32 = 0x400;
34 pub const ImageMemory: u32 = 0x800;
35 pub const OutputMemory: u32 = 0x1000;
36 };
37
38 pub const Decoration = struct {
39 pub const SpecId: u32 = 1;
40 pub const Block: u32 = 2;
41 pub const ArrayStride: u32 = 6;
42 pub const BuiltIn: u32 = 11;
43 pub const Flat: u32 = 14;
44 pub const Location: u32 = 30;
45 pub const Binding: u32 = 33;
46 pub const DescriptorSet: u32 = 34;
47 pub const Offset: u32 = 35;
48 pub const NonWritable: u32 = 24;
49 pub const NoContraction: u32 = 42;
50 };
51
52 pub const Capability = struct {
53 pub const Shader: u32 = 1;
54 pub const Float16: u32 = 9;
55 pub const Float64: u32 = 10;
56 pub const Int64: u32 = 11;
57 pub const Int16: u32 = 22;
58 pub const Int8: u32 = 39;
59 pub const DerivativeControl: u32 = 51;
60 pub const StorageBuffer16BitAccess: u32 = 4433;
61 pub const UniformAndStorageBuffer16BitAccess: u32 = 4434;
62 pub const StorageBuffer8BitAccess: u32 = 4448;
63 pub const UniformAndStorageBuffer8BitAccess: u32 = 4449;
64 pub const GroupNonUniform: u32 = 61;
65 pub const GroupNonUniformVote: u32 = 62;
66 pub const GroupNonUniformArithmetic: u32 = 63;
67 pub const GroupNonUniformBallot: u32 = 64;
68 pub const GroupNonUniformShuffle: u32 = 65;
69 pub const GroupNonUniformShuffleRelative: u32 = 66;
70 pub const DenormPreserve: u32 = 4464;
71 pub const SignedZeroInfNanPreserve: u32 = 4466;
72 };
73
74 pub const AddressingModel = struct {
75 pub const Logical: u32 = 0;
76 };
77
78 pub const MemoryModel = struct {
79 pub const GLSL450: u32 = 1;
80 };
81
82 pub const ExecutionModel = struct {
83 pub const Vertex: u32 = 0;
84 pub const Fragment: u32 = 4;
85 pub const GLCompute: u32 = 5;
86 };
87
88 pub const ExecutionMode = struct {
89 pub const OriginUpperLeft: u32 = 7;
90 pub const LocalSize: u32 = 17;
91 pub const DenormPreserve: u32 = 4459;
92 pub const SignedZeroInfNanPreserve: u32 = 4461;
93 };
94
95 pub const Dim = struct {
96 pub const @"2D": u32 = 1;
97 };
98
99 pub const ImageFormat = struct {
100 pub const Unknown: u32 = 0;
101 };
102
103 pub const ImageOperands = struct {
104 pub const Lod: u32 = 0x2;
105 };