ambient_gpu 0.2.1

Ambient GPU functionality. Host-only.
Documentation
struct GpuIn {
    data: array<WGSL_IN>,
};

struct GpuOut {
    data: array<WGSL_OUT>,
};

@group(GPURUN_BIND_GROUP)
@binding(0)
var<storage, read>  gpu_in_buffer: GpuIn;
@group(GPURUN_BIND_GROUP)
@binding(1)
var<storage, read_write> gpu_out_buffer: GpuOut;

fn run(input: WGSL_IN) -> WGSL_OUT {
    WGSL_BODY
}

@compute
@workgroup_size(1)
fn main(@builtin(global_invocation_id) global_id: vec3<u32>) {
    gpu_out_buffer.data[global_id.x] = run(gpu_in_buffer.data[global_id.x]);
}