Add spv::write_vec helper.

This commit is contained in:
Dzmitry Malyshau
2020-12-02 23:46:51 -05:00
committed by Dzmitry Malyshau
parent 181d8721cc
commit d190c6441f
5 changed files with 14 additions and 15 deletions

View File

@@ -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()

View File

@@ -50,3 +50,10 @@ pub(self) struct Instruction {
result_id: Option<Word>,
operands: Vec<Word>,
}
pub fn write_vec(module: &crate::Module, flags: WriterFlags) -> Vec<u32> {
let mut words = Vec::new();
let mut w = Writer::new(&module.header, flags);
w.write(module, &mut words);
words
}

View File

@@ -1720,15 +1720,12 @@ impl Writer {
}
}
pub fn write(&mut self, ir_module: &crate::Module) -> Vec<Word> {
let mut words: Vec<Word> = vec![];
pub fn write(&mut self, ir_module: &crate::Module, words: &mut Vec<Word>) {
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);
}
}

View File

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

View File

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