1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
mod layout; mod writer; pub use writer::Writer; use spirv::*; bitflags::bitflags! { pub struct WriterFlags: u32 { const NONE = 0x0; const DEBUG = 0x1; } } struct PhysicalLayout { magic_number: Word, version: Word, generator: Word, bound: Word, instruction_schema: Word, } #[derive(Default)] pub(crate) struct LogicalLayout { capabilities: Vec<Word>, extensions: Vec<Word>, ext_inst_imports: Vec<Word>, memory_model: Vec<Word>, entry_points: Vec<Word>, execution_modes: Vec<Word>, debugs: Vec<Word>, annotations: Vec<Word>, declarations: Vec<Word>, function_declarations: Vec<Word>, function_definitions: Vec<Word>, } struct Instruction { op: Op, wc: u32, type_id: Option<Word>, result_id: Option<Word>, operands: Vec<Word>, }