diff options
author | metamuffin <metamuffin@disroot.org> | 2025-05-05 15:09:54 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-05-05 15:09:54 +0200 |
commit | 306f96164784a8cbf405e72fa4364d6523366e95 (patch) | |
tree | 51717fc139871baa438aad806f4923669ae0896c /old/vgcodec/src/diff.wgsl | |
parent | 9cc089e2d6e841879e430b01d2f3d92c8820523e (diff) | |
download | video-codec-experiments-306f96164784a8cbf405e72fa4364d6523366e95.tar video-codec-experiments-306f96164784a8cbf405e72fa4364d6523366e95.tar.bz2 video-codec-experiments-306f96164784a8cbf405e72fa4364d6523366e95.tar.zst |
old dir
Diffstat (limited to 'old/vgcodec/src/diff.wgsl')
-rw-r--r-- | old/vgcodec/src/diff.wgsl | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/old/vgcodec/src/diff.wgsl b/old/vgcodec/src/diff.wgsl new file mode 100644 index 0000000..82e169b --- /dev/null +++ b/old/vgcodec/src/diff.wgsl @@ -0,0 +1,16 @@ +@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 = length(col_a - col_b); + atomicAdd(&exp, u32(diff * 1000.0)); +} + |