| type RTArr = array<i32>; |
| |
| struct doesNotMatter { |
| global_seed : i32, |
| data : RTArr, |
| } |
| |
| struct buf1 { |
| injectionSwitch : vec2<f32>, |
| } |
| |
| var<private> gl_LocalInvocationID : vec3<u32>; |
| |
| @group(0) @binding(0) var<storage, read_write> x_7 : doesNotMatter; |
| |
| @group(0) @binding(1) var<uniform> x_10 : buf1; |
| |
| fn main_1() { |
| var lid : i32; |
| var val : i32; |
| var i : i32; |
| let x_40 : u32 = gl_LocalInvocationID.x; |
| lid = bitcast<i32>(x_40); |
| let x_43 : i32 = x_7.global_seed; |
| val = x_43; |
| i = 0; |
| loop { |
| let x_48 : i32 = i; |
| if ((x_48 < 2)) { |
| } else { |
| break; |
| } |
| let x_51 : i32 = lid; |
| if ((x_51 > 0)) { |
| let x_55 : i32 = lid; |
| let x_58 : i32 = x_7.data[(x_55 - 1)]; |
| let x_59 : i32 = val; |
| val = (x_59 + x_58); |
| let x_62 : f32 = x_10.injectionSwitch.x; |
| if ((x_62 > 100.0)) { |
| break; |
| } |
| } |
| workgroupBarrier(); |
| |
| continuing { |
| let x_66 : i32 = i; |
| i = (x_66 + 1); |
| } |
| } |
| let x_68 : i32 = lid; |
| if ((x_68 == 0)) { |
| x_7.data[0] = 42; |
| } |
| return; |
| } |
| |
| @stage(compute) @workgroup_size(16, 1, 1) |
| fn main(@builtin(local_invocation_id) gl_LocalInvocationID_param : vec3<u32>) { |
| gl_LocalInvocationID = gl_LocalInvocationID_param; |
| main_1(); |
| } |