mirror of
https://github.com/gfx-rs/wgpu.git
synced 2026-04-22 03:02:01 -04:00
Add spv::write_vec helper.
This commit is contained in:
committed by
Dzmitry Malyshau
parent
181d8721cc
commit
d190c6441f
@@ -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()
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user