Skip to content

Commit 84fc253

Browse files
author
Mike Solomon
committed
Fixes overzealous workgroups
Workgroups will repeat the whole shebang multiple times! So only do it once unless somehow you need iteration over a compute pipeline.
1 parent 58a209d commit 84fc253

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

sandbox/Sandbox.purs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -930,7 +930,7 @@ fn main(@location(0) inColor: vec3<f32>) -> @location(0) vec4<f32> {
930930
GPUComputePassEncoder.setPipeline scalePassEncoder initialScalePipeline
931931
GPUComputePassEncoder.setBindGroup scalePassEncoder 0
932932
scaleBindGroup
933-
GPUComputePassEncoder.dispatchWorkgroupsX scalePassEncoder 4
933+
GPUComputePassEncoder.dispatchWorkgroups scalePassEncoder 1
934934
GPUComputePassEncoder.end scalePassEncoder
935935
---------------------
936936
rotateZPassEncoder <- beginComputePass commandEncoder (x {})
@@ -940,15 +940,15 @@ fn main(@location(0) inColor: vec3<f32>) -> @location(0) vec4<f32> {
940940
rotateZComputeBindGroup
941941
GPUComputePassEncoder.setBindGroup rotateZPassEncoder 1
942942
timeComputeBindGroup
943-
GPUComputePassEncoder.dispatchWorkgroupsXY rotateZPassEncoder 2 2
943+
GPUComputePassEncoder.dispatchWorkgroups rotateZPassEncoder 1
944944
GPUComputePassEncoder.end rotateZPassEncoder
945945
---------------------
946946
rotateZMulPassEncoder <- beginComputePass commandEncoder (x {})
947947
GPUComputePassEncoder.setPipeline rotateZMulPassEncoder
948948
matrixMultiplicationPipeline
949949
GPUComputePassEncoder.setBindGroup rotateZMulPassEncoder 0
950950
rotateZResultIOComputeBindGroup
951-
GPUComputePassEncoder.dispatchWorkgroupsXY rotateZMulPassEncoder 4 4
951+
GPUComputePassEncoder.dispatchWorkgroups rotateZMulPassEncoder 1
952952
GPUComputePassEncoder.end rotateZMulPassEncoder
953953
---------------------
954954
rotateXPassEncoder <- beginComputePass commandEncoder (x {})
@@ -958,15 +958,15 @@ fn main(@location(0) inColor: vec3<f32>) -> @location(0) vec4<f32> {
958958
rotateXComputeBindGroup
959959
GPUComputePassEncoder.setBindGroup rotateXPassEncoder 1
960960
timeComputeBindGroup
961-
GPUComputePassEncoder.dispatchWorkgroupsXY rotateXPassEncoder 2 2
961+
GPUComputePassEncoder.dispatchWorkgroups rotateXPassEncoder 1
962962
GPUComputePassEncoder.end rotateXPassEncoder
963963
---------------------
964964
rotateXMulPassEncoder <- beginComputePass commandEncoder (x {})
965965
GPUComputePassEncoder.setPipeline rotateXMulPassEncoder
966966
matrixMultiplicationPipeline
967967
GPUComputePassEncoder.setBindGroup rotateXMulPassEncoder 0
968968
rotateXResultIOComputeBindGroup
969-
GPUComputePassEncoder.dispatchWorkgroupsXY rotateXMulPassEncoder 4 4
969+
GPUComputePassEncoder.dispatchWorkgroups rotateXMulPassEncoder 1
970970
GPUComputePassEncoder.end rotateXMulPassEncoder
971971
---------------------
972972
rotateYPassEncoder <- beginComputePass commandEncoder (x {})
@@ -976,31 +976,31 @@ fn main(@location(0) inColor: vec3<f32>) -> @location(0) vec4<f32> {
976976
rotateYComputeBindGroup
977977
GPUComputePassEncoder.setBindGroup rotateYPassEncoder 1
978978
timeComputeBindGroup
979-
GPUComputePassEncoder.dispatchWorkgroupsXY rotateYPassEncoder 2 2
979+
GPUComputePassEncoder.dispatchWorkgroups rotateYPassEncoder 1
980980
GPUComputePassEncoder.end rotateYPassEncoder
981981
---------------------
982982
rotateYMulPassEncoder <- beginComputePass commandEncoder (x {})
983983
GPUComputePassEncoder.setPipeline rotateYMulPassEncoder
984984
matrixMultiplicationPipeline
985985
GPUComputePassEncoder.setBindGroup rotateYMulPassEncoder 0
986986
rotateYResultIOComputeBindGroup
987-
GPUComputePassEncoder.dispatchWorkgroupsXY rotateYMulPassEncoder 4 4
987+
GPUComputePassEncoder.dispatchWorkgroups rotateYMulPassEncoder 1
988988
GPUComputePassEncoder.end rotateYMulPassEncoder
989989
---------------------
990990
translateZMulPassEncoder <- beginComputePass commandEncoder (x {})
991991
GPUComputePassEncoder.setPipeline translateZMulPassEncoder
992992
matrixMultiplicationPipeline
993993
GPUComputePassEncoder.setBindGroup translateZMulPassEncoder 0
994994
translateZResultIOComputeBindGroup
995-
GPUComputePassEncoder.dispatchWorkgroupsXY translateZMulPassEncoder 4 4
995+
GPUComputePassEncoder.dispatchWorkgroups translateZMulPassEncoder 1
996996
GPUComputePassEncoder.end translateZMulPassEncoder
997997
---------------------
998998
perspectiveMulPassEncoder <- beginComputePass commandEncoder (x {})
999999
GPUComputePassEncoder.setPipeline perspectiveMulPassEncoder
10001000
matrixMultiplicationPipeline
10011001
GPUComputePassEncoder.setBindGroup perspectiveMulPassEncoder 0
10021002
perspectiveResultIOComputeBindGroup
1003-
GPUComputePassEncoder.dispatchWorkgroupsXY perspectiveMulPassEncoder 4 4
1003+
GPUComputePassEncoder.dispatchWorkgroups perspectiveMulPassEncoder 1
10041004
GPUComputePassEncoder.end perspectiveMulPassEncoder
10051005

10061006
copyBufferToBuffer commandEncoder perspectiveResultBuffer 0
@@ -1045,7 +1045,7 @@ fn main(@location(0) inColor: vec3<f32>) -> @location(0) vec4<f32> {
10451045
-- reset the main storage
10461046
GPUComputePassEncoder.setBindGroup resetPassEncoder 0
10471047
scaleBindGroup
1048-
GPUComputePassEncoder.dispatchWorkgroupsXY resetPassEncoder 4 4
1048+
GPUComputePassEncoder.dispatchWorkgroups resetPassEncoder 1
10491049
GPUComputePassEncoder.end resetPassEncoder
10501050
-- 🙌 finish commandEncoder
10511051
toSubmit <- finish commandEncoder

0 commit comments

Comments
 (0)