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 };