Skip to content

Commit 101fee4

Browse files
committed
docs(x265): CodeRabbit #738 fixes — corrected HEVC numbers + honest wgpu scoping
- HEVC anchor re-run after the faithful-scene fix (canonical draw order + signed-z hemisphere): 641×, 1437 bits/frame, PSNR 60.94 dB (was 578×/60.79 — pre-fix scene had inert `sign`). Plan §Results + Wave-3 note updated. - Wave-3 table: "IS gatherable through a real wgpu texture" → "is representable and COMPILES through the wgpu texture path; runtime gather deferred to GPU execution". Guard test 117/117 green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K3RyLEbuNSHxxB3NTTrGki
1 parent 436101c commit 101fee4

2 files changed

Lines changed: 7 additions & 4 deletions

File tree

.claude/knowledge/pr-x12-h268-morton-wgpu-synergies.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ harness is now confirmed real and the LUT-gather is proven buildable.
143143

144144
| Probe | Verdict | Numbers | Consequence |
145145
|---|---|---|---|
146-
| PROBE-GPU-LUT | HARNESS-REAL / CPU-primitive GREEN / GPU-exec COMPILED+SHIPPED, execution-parity adapter-deferred; KILL did not fire | CPU-ref: 65536/65536 gather == row-major index, symmetric + zero-diagonal, deterministic, 256² u16 = 128 KiB (the §10(i) figure). GPU-exec: full 256×256 R16Uint→R32Uint `textureLoad` parity path compiles clean under wgpu 22 (GL backend via glow builds) and SKIPS-green here (measured: libvulkan loader present, **0 ICDs** → no adapter). `clippy --features wgpu -D warnings` clean; fmt clean | The bgz17 256²-u16 palette-distance table IS gatherable through a real in-scope wgpu texture (R16Uint sampled, `textureLoad`, integer render target — all WebGL2-core), so the GPU LUT lane is **not** abandoned. Falsifiable core (the gather arithmetic) proven bit-exact; the GPU merely executes it. **Backend scope (codex P2, headless):** the probe requests a **surface-less** adapter, so its execution validates on **WebGPU** (native/browser) + native/software GL (lavapipe CI); the WGSL is WebGL2-**compatible** (GLES3-core), but wgpu's WebGL backend needs a canvas-bound `compatible_surface`, so the wasm32 WebGL2 backend is OUT OF SCOPE for this headless probe — "WebGL2" is a shader-surface property, not a validated execution backend here. This structurally un-gates §Decode tiers (c) + the `a2ui N2` row: harness capability proven; only runtime-execution parity awaits an adapter environment. **CAVEAT (honesty):** the GPU-exec *execution* was NOT run in this sandbox (no adapter) — "GPU-exec green" means COMPILES + SKIPS-cleanly, not that 65536 texels were compared on silicon here; the CPU-reference is the leg that actually ran. No bgz17 dep (harness-capability probe; the 256² table is built deterministically with bgz17's table STRUCTURE, keeping the a2ui-paint crate boundary clean) |
146+
| PROBE-GPU-LUT | HARNESS-REAL / CPU-primitive GREEN / GPU-exec COMPILED+SHIPPED, execution-parity adapter-deferred; KILL did not fire | CPU-ref: 65536/65536 gather == row-major index, symmetric + zero-diagonal, deterministic, 256² u16 = 128 KiB (the §10(i) figure). GPU-exec: full 256×256 R16Uint→R32Uint `textureLoad` parity path compiles clean under wgpu 22 (GL backend via glow builds) and SKIPS-green here (measured: libvulkan loader present, **0 ICDs** → no adapter). `clippy --features wgpu -D warnings` clean; fmt clean | The bgz17 256²-u16 palette-distance table is **representable and COMPILES** through a real in-scope wgpu texture path (R16Uint sampled, `textureLoad`, integer render target — all WebGL2-core), so the GPU LUT lane is **not** abandoned; runtime gatherability + silicon parity stay deferred until actual GPU execution. Falsifiable core (the gather arithmetic) proven bit-exact; the GPU merely executes it. **Backend scope (codex P2, headless):** the probe requests a **surface-less** adapter, so its execution validates on **WebGPU** (native/browser) + native/software GL (lavapipe CI); the WGSL is WebGL2-**compatible** (GLES3-core), but wgpu's WebGL backend needs a canvas-bound `compatible_surface`, so the wasm32 WebGL2 backend is OUT OF SCOPE for this headless probe — "WebGL2" is a shader-surface property, not a validated execution backend here. This structurally un-gates §Decode tiers (c) + the `a2ui N2` row: harness capability proven; only runtime-execution parity awaits an adapter environment. **CAVEAT (honesty):** the GPU-exec *execution* was NOT run in this sandbox (no adapter) — "GPU-exec green" means COMPILES + SKIPS-cleanly, not that 65536 texels were compared on silicon here; the CPU-reference is the leg that actually ran. No bgz17 dep (harness-capability probe; the 256² table is built deterministically with bgz17's table STRUCTURE, keeping the a2ui-paint crate boundary clean) |
147147

148148
## 7. Comma closure — the replayable irrational (constants correction folded in)
149149

.claude/plans/x265-sprite-replay-probe-v1.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -196,9 +196,12 @@ report bits/frame + PSNR") is now RUN — and made visual.
196196
- **Encoder:** x265 3.5, preset medium, `--psnr`. x265 ran its OWN I/P/B GOP
197197
over our moving scene (the arc's "replay x265's GOP grammar" made literal):
198198
1 I, 56 P, 183 B, up to 5 consecutive B-frames.
199-
- **Numbers:** raw Y4M 27,649,483 B → HEVC 47,836 B = **578×**; **1594.5
200-
bits/frame** (199 B/frame); Global **PSNR 60.79 dB** (Y 47.3–49.2 by
201-
slice-type; chroma neutral). Encode 296 fps.
199+
- **Numbers:** raw Y4M 27,649,483 B → HEVC 43,115 B = **641×**; **1437.2
200+
bits/frame** (180 B/frame); Global **PSNR 60.94 dB** (Y 47.5–52.0 by
201+
slice-type; chroma neutral). Encode 316 fps. (Re-run after the CodeRabbit #738
202+
fix: the reproducer now uses `sprite_replay`'s canonical draw sequence +
203+
signed-z hemisphere projection; the earlier 578×/60.79 dB figures were the
204+
pre-fix scene where `sign` was inert.)
202205
- **Roundtrip visual:** frames decoded back OUT of the `.265` bitstream (ffmpeg)
203206
into a 5-frame motion montage + animated GIF — the sprites visibly at
204207
different positions/sizes across time.

0 commit comments

Comments
 (0)