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