From 95bb2a31e44e179df860dec9f3fe0416bc3e5639 Mon Sep 17 00:00:00 2001
From: Kalle <38327916+Sendouc@users.noreply.github.com>
Date: Thu, 24 Sep 2026 17:32:36 +0300
Subject: [PATCH] WebGPU
---
app/features/scanner/README.md | 78 +-
.../scanner/components/SettingsPopover.tsx | 13 +-
app/features/scanner/components/VodView.tsx | 3 +
.../scanner/components/live-session.ts | 1 +
app/features/scanner/components/settings.ts | 11 +-
app/features/scanner/components/vod-scan.ts | 2 +-
app/features/scanner/core/cross-sums.c | 46 +
app/features/scanner/core/cross-sums.ts | 88 ++
.../scanner/core/detectors/death/index.ts | 404 ++++----
.../scanner/core/detectors/frame-pass.ts | 117 +++
.../scanner/core/detectors/kill/index.ts | 171 +++-
.../scanner/core/detectors/map-start/index.ts | 204 ++--
.../scanner/core/detectors/minimap/index.ts | 510 ++++++----
.../scanner/core/detectors/minimap/stage.ts | 28 +-
.../scanner/core/detectors/objective/index.ts | 128 ++-
.../core/detectors/objective/strip-weapons.ts | 30 +-
.../scanner/core/detectors/objective/timer.ts | 31 +-
.../scoreboard-battle-log-replay/code.ts | 24 +-
.../scoreboard-battle-log-replay/header.ts | 84 +-
.../scoreboard-battle-log-replay/index.ts | 198 ++--
.../scoreboard-battle-log/detector.ts | 223 +++--
.../core/detectors/scoreboard-own/index.ts | 152 +--
.../core/detectors/scoreboard/banner.ts | 45 +-
.../core/detectors/scoreboard/digits.ts | 23 +-
.../core/detectors/scoreboard/header.ts | 34 +-
.../core/detectors/scoreboard/index.ts | 144 +--
.../core/detectors/scoreboard/names.ts | 25 +-
.../scanner/core/detectors/scoreboard/row.ts | 186 ++--
.../core/detectors/scoreboard/specials.ts | 30 +-
.../core/detectors/scoreboard/weapons.ts | 78 +-
.../scanner/core/detectors/telemetry.ts | 7 +
app/features/scanner/core/detectors/types.ts | 11 +
app/features/scanner/core/glyphs.ts | 443 ++++++---
app/features/scanner/core/image.ts | 52 +
app/features/scanner/core/match-steps.ts | 341 +++++++
app/features/scanner/node/webgpu.ts | 30 +
.../scanner/worker/analyzer.worker.ts | 80 +-
app/features/scanner/worker/client.ts | 3 +
.../scanner/worker/gpu-frame-scaler.ts | 246 +++++
app/features/scanner/worker/gpu-matcher.ts | 908 ++++++++++++++++++
app/features/scanner/worker/protocol.ts | 2 +
package.json | 2 +
scripts/scanner/gpu-parity.ts | 142 +++
scripts/scanner/gpu-replay.ts | 268 ++++++
scripts/scanner/match-corpus.ts | 137 +++
scripts/scanner/scan-vod.ts | 110 ++-
46 files changed, 4640 insertions(+), 1253 deletions(-)
create mode 100644 app/features/scanner/core/cross-sums.c
create mode 100644 app/features/scanner/core/cross-sums.ts
create mode 100644 app/features/scanner/core/detectors/frame-pass.ts
create mode 100644 app/features/scanner/core/match-steps.ts
create mode 100644 app/features/scanner/node/webgpu.ts
create mode 100644 app/features/scanner/worker/gpu-frame-scaler.ts
create mode 100644 app/features/scanner/worker/gpu-matcher.ts
create mode 100644 scripts/scanner/gpu-parity.ts
create mode 100644 scripts/scanner/gpu-replay.ts
create mode 100644 scripts/scanner/match-corpus.ts
diff --git a/app/features/scanner/README.md b/app/features/scanner/README.md
index 040bb9bc5..8708eaff8 100644
--- a/app/features/scanner/README.md
+++ b/app/features/scanner/README.md
@@ -141,12 +141,14 @@ pnpm test:unit:browser # includes tests/logic/ — the fixture-
pnpm scanner:report # accuracy table + name character error rate across fixtures
pnpm scanner:fixtures [name-substring] # run detectors over matching fixtures, verbose
pnpm scanner:replay
# replay ffmpeg-extracted frames through the scheduler+detectors
-pnpm scanner:scan-vod