struct ComputeInputs {
  @builtin(local_invocation_id) local_invocation_id : vec3<u32>,
  @builtin(local_invocation_index) local_invocation_index : u32,
  @builtin(global_invocation_id) global_invocation_id : vec3<u32>,
  @builtin(workgroup_id) workgroup_id : vec3<u32>,
  @builtin(num_workgroups) num_workgroups : vec3<u32>,
};

@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;
}