Skip to content

Commit eb5188f

Browse files
author
Mike Solomon
committed
Gets rid of spurious bound checks
1 parent 48dab92 commit eb5188f

File tree

1 file changed

+1
-17
lines changed

1 file changed

+1
-17
lines changed

sandbox/Sandbox.purs

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -419,11 +419,6 @@ main = do
419419
420420
@compute @workgroup_size(4,4)
421421
fn main(@builtin(global_invocation_id) global_id : vec3<u32>) {
422-
// Guard against out-of-bounds work group sizes
423-
if (global_id.x >= 4u || global_id.y >= 4u) {
424-
return;
425-
}
426-
427422
resultMatrix[global_id.x][global_id.y] = select(0.0, 1.0, global_id.x == global_id.y);
428423
}"""
429424
}
@@ -437,6 +432,7 @@ fn main(@builtin(global_invocation_id) global_id : vec3<u32>) {
437432
@compute @workgroup_size(4)
438433
fn main(@builtin(global_invocation_id) global_id : vec3<u32>) {
439434
// Guard against out-of-bounds work group sizes
435+
// We use a power of 2 above but we only need 3
440436
if (global_id.x >= 3u) {
441437
return;
442438
}
@@ -460,10 +456,6 @@ fn xyt2trig(x: u32, y: u32, time: f32) -> f32 {
460456
461457
@compute @workgroup_size(2,2)
462458
fn main(@builtin(global_invocation_id) global_id : vec3<u32>) {
463-
// Guard against out-of-bounds work group sizes
464-
if (global_id.x >= 2u || global_id.y >= 2u) {
465-
return;
466-
}
467459
resultMatrix[global_id.x][global_id.y] = xyt2trig(global_id.x, global_id.y, time);
468460
}"""
469461
}
@@ -482,10 +474,6 @@ fn xyt2trig(x: u32, y: u32, time: f32) -> f32 {
482474
483475
@compute @workgroup_size(2,2)
484476
fn main(@builtin(global_invocation_id) global_id : vec3<u32>) {
485-
// Guard against out-of-bounds work group sizes
486-
if (global_id.x >= 2u || global_id.y >= 2u) {
487-
return;
488-
}
489477
resultMatrix[global_id.x * 2][global_id.y * 2] = xyt2trig(global_id.x, global_id.y, time);
490478
}"""
491479
}
@@ -521,10 +509,6 @@ fn main(@builtin(global_invocation_id) global_id : vec3<u32>) {
521509
@group(0) @binding(2) var<storage, read_write> resultMatrix : mat4x4<f32>;
522510
@compute @workgroup_size(4,4)
523511
fn main(@builtin(global_invocation_id) global_id : vec3<u32>) {
524-
// Guard against out-of-bounds work group sizes
525-
if (global_id.x >= 4u || global_id.y >= 4u) {
526-
return;
527-
}
528512
var result = 0.0;
529513
for (var i = 0u; i < 4u; i = i + 1u) {
530514
result = result + (matrixL[i][global_id.y] * matrixR[global_id.x][i]);

0 commit comments

Comments
 (0)