aboutsummaryrefslogtreecommitdiff
path: root/vgcodec/src/diff.wgsl
diff options
context:
space:
mode:
Diffstat (limited to 'vgcodec/src/diff.wgsl')
-rw-r--r--vgcodec/src/diff.wgsl17
1 files changed, 17 insertions, 0 deletions
diff --git a/vgcodec/src/diff.wgsl b/vgcodec/src/diff.wgsl
new file mode 100644
index 0000000..bb5a3e1
--- /dev/null
+++ b/vgcodec/src/diff.wgsl
@@ -0,0 +1,17 @@
+@group(0) @binding(0)
+var tex_a: texture_2d<f32>;
+@group(0) @binding(1)
+var tex_b: texture_2d<f32>;
+
+@group(0) @binding(2)
+var<storage, read_write> exp: atomic<u32>;
+
+@compute @workgroup_size(1)
+fn main(@builtin(global_invocation_id) global_id: vec3<u32>) {
+ var col_a = textureLoad(tex_a, vec2(i32(global_id.x), i32(global_id.y)), 0);
+ var col_b = textureLoad(tex_b, vec2(i32(global_id.x), i32(global_id.y)), 0);
+ var diff = col_a - col_b;
+ var diffsum = diff.r + diff.g + diff.b;
+ atomicAdd(&exp, u32(diffsum));
+}
+