From 754ebf34cbb6280ef77421e1ca54d35d727dc6f7 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 18 Nov 2023 17:37:57 +0100 Subject: debug and better search --- flowy/src/motion/enc.wgsl | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) (limited to 'flowy/src/motion/enc.wgsl') diff --git a/flowy/src/motion/enc.wgsl b/flowy/src/motion/enc.wgsl index 6ba3081..80618b7 100644 --- a/flowy/src/motion/enc.wgsl +++ b/flowy/src/motion/enc.wgsl @@ -24,19 +24,28 @@ var best_tint: vec3 = vec3(0.); @compute @workgroup_size(1)fn main(@builtin(global_invocation_id) global_id: vec3) { let uv = vec2(global_id.xy) * params.block_size; - test_offset(uv, vec2(0, 0)); - - do_dist(uv, 32); - do_dist(uv, 16); - do_dist(uv, 10); - do_dist(uv, 8); - do_dist(uv, 6); - do_dist(uv, 3); - do_dist(uv, 4); - do_dist(uv, 2); - do_dist(uv, 1); - - apply_tint(uv); + loop { + test_offset(uv, vec2(0, 0)); + if best_error < params.skip_threshold { break; } + apply_tint(uv); + if best_error < params.skip_threshold { break; } + best_tint = vec3(0.); + + do_dist(uv, 32); + do_dist(uv, 16); + do_dist(uv, 10); + do_dist(uv, 8); + if best_error < params.skip_threshold { break; } + do_dist(uv, 6); + do_dist(uv, 3); + do_dist(uv, 4); + do_dist(uv, 2); + do_dist(uv, 1); + if best_error < params.skip_threshold { break; } + + apply_tint(uv); + break; + } offsets[global_id.x + global_id.y * params.offsets_stride] = BlockOffset(best_error, best_offset, best_tint); } -- cgit v1.2.3-70-g09d2