From d190c6441faf2cfc77518a54e60bf227500ee275 Mon Sep 17 00:00:00 2001 From: Dzmitry Malyshau Date: Wed, 2 Dec 2020 23:46:51 -0500 Subject: [PATCH] Add spv::write_vec helper. --- examples/convert.rs | 2 +- src/back/spv/mod.rs | 7 +++++++ src/back/spv/writer.rs | 9 +++------ tests/convert.rs | 9 ++------- tests/rosetta.rs | 2 +- 5 files changed, 14 insertions(+), 15 deletions(-) diff --git a/examples/convert.rs b/examples/convert.rs index 69b5c37505..22ff8c6181 100644 --- a/examples/convert.rs +++ b/examples/convert.rs @@ -174,7 +174,7 @@ fn main() { } }); - let spv = spv::Writer::new(&module.header, debug_flag).write(&module); + let spv = spv::write_vec(&module, debug_flag); let bytes = spv .iter() diff --git a/src/back/spv/mod.rs b/src/back/spv/mod.rs index 15f1598357..65ae54a1b4 100644 --- a/src/back/spv/mod.rs +++ b/src/back/spv/mod.rs @@ -50,3 +50,10 @@ pub(self) struct Instruction { result_id: Option, operands: Vec, } + +pub fn write_vec(module: &crate::Module, flags: WriterFlags) -> Vec { + let mut words = Vec::new(); + let mut w = Writer::new(&module.header, flags); + w.write(module, &mut words); + words +} diff --git a/src/back/spv/writer.rs b/src/back/spv/writer.rs index f1b43f5289..fc4cdea667 100644 --- a/src/back/spv/writer.rs +++ b/src/back/spv/writer.rs @@ -1720,15 +1720,12 @@ impl Writer { } } - pub fn write(&mut self, ir_module: &crate::Module) -> Vec { - let mut words: Vec = vec![]; - + pub fn write(&mut self, ir_module: &crate::Module, words: &mut Vec) { self.write_logical_layout(ir_module); self.write_physical_layout(); - self.physical_layout.in_words(&mut words); - self.logical_layout.in_words(&mut words); - words + self.physical_layout.in_words(words); + self.logical_layout.in_words(words); } } diff --git a/tests/convert.rs b/tests/convert.rs index 238bb405f4..a05be6eea2 100644 --- a/tests/convert.rs +++ b/tests/convert.rs @@ -198,13 +198,8 @@ fn convert_phong_lighting() { #[cfg(feaure = "spv-out")] { - let header = naga::Header { - version: (1, 0, 0), - generator: 1234, - }; - let writer_flags = naga::back::spv::WriterFlags::empty(); - let mut w = naga::back::spv::Writer::new(&header, writer_flags); - w.write(&module); + let flags = naga::back::spv::WriterFlags::empty(); + let _ = naga::back::spv::write_vec(&module, flags); } } diff --git a/tests/rosetta.rs b/tests/rosetta.rs index c97da529ca..117a74da33 100644 --- a/tests/rosetta.rs +++ b/tests/rosetta.rs @@ -13,7 +13,7 @@ fn test_rosetta(dir_name: &str) { #[cfg(feature = "spv-out")] { - let spv = spv::Writer::new(&module.header, spv::WriterFlags::NONE).write(&module); + let spv = spv::write_vec(&module, spv::WriterFlags::NONE); assert!(spv.len() > 0); } }