aboutsummaryrefslogtreecommitdiff
path: root/vgcodec/src/diff.wgsl
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2022-11-21 16:59:50 +0100
committermetamuffin <metamuffin@disroot.org>2022-11-21 16:59:50 +0100
commit5248831232fa22a1f3d6515f7f6c7bee8994faf2 (patch)
treefdbff884248948d124ab864e21d65fe49c6ca0e2 /vgcodec/src/diff.wgsl
downloadvideo-codec-experiments-5248831232fa22a1f3d6515f7f6c7bee8994faf2.tar
video-codec-experiments-5248831232fa22a1f3d6515f7f6c7bee8994faf2.tar.bz2
video-codec-experiments-5248831232fa22a1f3d6515f7f6c7bee8994faf2.tar.zst
unify repos
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));
+}
+