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