#![no_std] #![feature(unchecked_math)] #[cfg(target_arch = "spirv")] extern crate spirv_std; //#[cfg(target_arch = "spirv")] //pub mod gpu { //use super::*; use spirv_std::spirv; use spirv_std::glam::UVec3; #[allow(unused)] #[spirv(compute(threads({{compute_threads}})))] pub fn eval ( #[spirv(global_invocation_id)] _global_index: UVec3, {% for input in inputs %} {{input}}, {% endfor %} ) { use graphene_core::Node; /* {% for input in input_nodes %} let i{{input.index}} = graphene_core::value::CopiedNode::new(i{{input.index}}); let _{{input.id}} = {{input.fqn}}::new({% for arg in input.args %}{{arg}}, {% endfor %}); let {{input.id}} = graphene_core::structural::ComposeNode::new(i{{input.index}}, _{{input.id}}); {% endfor %} */ {% for node in nodes %} let {{node.id}} = {{node.fqn}}::new({% for arg in node.args %}{{arg}}, {% endfor %}); {% endfor %} {% for output in output_nodes %} let v = {{output}}.eval(()); o{{loop.index0}}[_global_index.x as usize] = v; {% endfor %} // TODO: Write output to buffer } //}