zust-vm-spirv 0.9.3

SPIR-V code generation backend for the Zust scripting language.
Documentation
1
2
3
4
5
6
7
8
9
10
11
use anyhow::Result;

fn main() -> Result<()> {
    let source = std::fs::read("zusts/gpu/poly.zs")?;
    let kernel = vm_spirv::compile_source_with_workgroup_size(source, "poly", "main", [32, 32, 1])?;
    let bytes = kernel.spirv.words().iter().flat_map(|word| word.to_le_bytes()).collect::<Vec<_>>();
    std::fs::write("poly.spv", bytes)?;
    std::fs::write("poly.spvasm", kernel.spirv.disassemble())?;
    println!("wrote poly.spv ({} words)", kernel.spirv.words().len());
    Ok(())
}