struct ComputeInputs { [[builtin(local_invocation_id)]] local_invocation_id : vec3; [[builtin(local_invocation_index)]] local_invocation_index : u32; [[builtin(global_invocation_id)]] global_invocation_id : vec3; [[builtin(workgroup_id)]] workgroup_id : vec3; [[builtin(num_workgroups)]] num_workgroups : vec3; }; [[stage(compute), workgroup_size(1)]] fn main(inputs : ComputeInputs) { let foo : u32 = inputs.local_invocation_id.x + inputs.local_invocation_index + inputs.global_invocation_id.x + inputs.workgroup_id.x + inputs.num_workgroups.x; }