Skip to content

Commit

Permalink
Remove unused code in game of life shader (#5349)
Browse files Browse the repository at this point in the history
# Objective

- Make `game_of_life.wgsl` easier to read and understand

## Solution

- Remove unused code in the shader
    - `location_f32` was unused in `init`
    - `color` was unused in `update`
  • Loading branch information
NiklasEi committed Jul 17, 2022
1 parent 71368d4 commit 2b93ab5
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions assets/shaders/game_of_life.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ fn hash(value: u32) -> u32 {
state = state * 2654435769u;
return state;
}

fn randomFloat(value: u32) -> f32 {
return f32(hash(value)) / 4294967295.0;
}

@compute @workgroup_size(8, 8, 1)
fn init(@builtin(global_invocation_id) invocation_id: vec3<u32>, @builtin(num_workgroups) num_workgroups: vec3<u32>) {
let location = vec2<i32>(i32(invocation_id.x), i32(invocation_id.y));
let location_f32 = vec2<f32>(f32(invocation_id.x), f32(invocation_id.y));

let randomNumber = randomFloat(invocation_id.y * num_workgroups.x + invocation_id.x);
let alive = randomNumber > 0.9;
Expand All @@ -27,7 +27,6 @@ fn init(@builtin(global_invocation_id) invocation_id: vec3<u32>, @builtin(num_wo
textureStore(texture, location, color);
}


fn is_alive(location: vec2<i32>, offset_x: i32, offset_y: i32) -> i32 {
let value: vec4<f32> = textureLoad(texture, location + vec2<i32>(offset_x, offset_y));
return i32(value.x);
Expand All @@ -49,7 +48,6 @@ fn update(@builtin(global_invocation_id) invocation_id: vec3<u32>) {
let location = vec2<i32>(i32(invocation_id.x), i32(invocation_id.y));

let n_alive = count_alive(location);
let color = vec4<f32>(f32(n_alive) / 8.0);

var alive: bool;
if (n_alive == 3) {
Expand All @@ -60,8 +58,9 @@ fn update(@builtin(global_invocation_id) invocation_id: vec3<u32>) {
} else {
alive = false;
}
let color = vec4<f32>(f32(alive));

storageBarrier();

textureStore(texture, location, vec4<f32>(f32(alive)));
textureStore(texture, location, color);
}

0 comments on commit 2b93ab5

Please sign in to comment.