docs(x265): PROBE-GPU-LUT wave-3 verdict — wgpu decode-tier harness proven#249
Conversation
…roven
The sprite-replay wgpu/wasm decode tiers were gated on a shared PROBE-GPU-LUT
harness. This session pinned that harness to a2ui-paint's real wgpu seam and
ran the probe:
- Probe-queue row (§5) gets the wave-3 verdict pointer.
- New Wave-3 results sub-table: HARNESS-REAL / CPU-primitive GREEN (65536/65536
gather bit-exact, 128 KiB) / GPU-exec COMPILED+SHIPPED (wgpu 22, WebGPU+WebGL2)
execution-parity adapter-deferred (measured: libvulkan loader, 0 ICDs here).
- Plan §Results (2026-07-18): the same verdict + the honest caveat that the
GPU-exec execution was not run on silicon here (CPU-reference is the leg that
ran); §Decode tiers (b/c) structurally un-gated.
Knowledge-doc guard test 117/117 green. KILL ("GPU lane abandoned for LUTs")
did not fire.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K3RyLEbuNSHxxB3NTTrGki
|
Warning Review limit reached
Next review available in: 49 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_71294b80-68c3-4ab8-a94b-151594ff04f7) |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6ad3b36caf
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
|
||
| | Probe | Verdict | Numbers | Consequence | | ||
| |---|---|---|---| | ||
| | 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 (WebGPU + WebGL2 via glow) 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, and does so wherever a WebGPU/WebGL2 adapter exists (lavapipe CI / browser). 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) | |
There was a problem hiding this comment.
Reconcile the GPU verdict with the substrate row
When readers use this file as the graded source of truth, this new verdict conflicts with §1 of the same document, which still says the verified a2ui-paint wgpu substrate has no textures/bind groups, the webgl feature is not enabled, and the path is untested. Marking a R16Uint→R32Uint texture/readback path as compiled/shipped with WebGL2 and using it to un-gate a2ui N2 leaves two incompatible gate states in the same doc; update the substrate receipt to the new a2ui-paint state or scope this verdict to the external/proposed branch.
Useful? React with 👍 / 👎.
| **Consequence:** §Decode tiers (c) wgpu + the wasm tier (b, same code) are | ||
| **structurally un-gated** — the shared harness they waited on is real and the | ||
| LUT-gather compiles + CPU-proves. The remaining deferral is narrow: run the |
There was a problem hiding this comment.
Keep the wasm tier deferred until its parity gate runs
In the plan context I inspected, tier (b)'s gate is CPU-native vs wasm replay determinism, but the added PROBE-GPU-LUT result records only a CPU reference run plus a GPU path that skipped because no adapter was present. Marking the wasm tier as structurally un-gated here can cause the wasm parity check to be skipped even though no wasm result is recorded in this wave; limit the consequence to the wgpu harness or add the missing wasm parity result.
Useful? React with 👍 / 👎.
Two corrections from codex review on ndarray #249, both on doc consistency: - §1 "wgpu in the workspace" receipt reconciled with the wave-3 verdict: the `#[cfg(test)]` PROBE-GPU-LUT probe now adds a compiled texture + bind-group + R16Uint→R32Uint textureLoad path (so "no textures/bind groups" no longer holds for the TEST surface), while the still-true negatives are kept explicit — the `webgl` cargo feature is still OFF (WebGL2 is a shader-SURFACE property, not a wired wasm backend), the path is adapter-untested, and the PRODUCTION render tier is unchanged. No two incompatible gate states remain in the doc. - Plan §Results consequence scoped to §Decode tiers (c) the wgpu harness ONLY. Tier (b) the wasm tier is a SEPARATE gate (CPU-native vs wasm32 replay determinism); this wave recorded no wasm result, so (b) stays gated until its own parity run. The earlier "(b/c) un-gated" was an overreach. Knowledge-doc guard test 117/117 green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K3RyLEbuNSHxxB3NTTrGki
Mirrors the a2ui-rs code fix: the probe is HEADLESS (surface-less adapter), so its GPU execution validates on WebGPU + native/software GL (lavapipe); 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. §1 receipt + Wave-3 table both scoped. Guard test 117/117 green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K3RyLEbuNSHxxB3NTTrGki
Plan §Results (2026-07-18 — HEVC external anchor): the §5 optional context is run + visual. x265 3.5 (medium, --psnr) over the 8-sprite φ-spiral scene (320×240 × 240): 578× vs raw Y4M, 1594.5 bits/frame, Global PSNR 60.79 dB, real I/P/B GOP. Reproducer: lance-graph crates/helix/examples/hevc_moving_scene.rs. Honest: x265's numbers on easy synthetic content (external anchor, not a gate); our-motion-vs-x265-MV bitrate study is the named follow-up. Guard test 117/117. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K3RyLEbuNSHxxB3NTTrGki
…gpu 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
Lands the PROBE-GPU-LUT wave-3 verdict in the ndarray probe-queue companion + the sprite-replay plan. The wgpu/wasm decode tiers were gated on a "shared PROBE-GPU-LUT harness"; this session pinned that harness to a2ui-paint's real
wgpuseam and ran the probe (a2ui-rs PR).pr-x12-h268-morton-wgpu-synergies.md§5: PROBE-GPU-LUT queue-row verdict pointer + new Wave-3 results sub-table.x265-sprite-replay-probe-v1.md§Results (2026-07-18) + §Decode tiers (b/c) structurally un-gated.Verdict: HARNESS-REAL / CPU-primitive GREEN (65536/65536 gather bit-exact, 128 KiB) / GPU-exec COMPILED+SHIPPED (wgpu 22, WebGPU+WebGL2) execution-parity adapter-deferred (measured: libvulkan loader, 0 ICDs here). KILL ("GPU lane abandoned for LUTs") did not fire. Honest caveat carried: the GPU-exec execution was not run on silicon here — the CPU-reference is the leg that ran.
Knowledge-doc guard test 117/117 green.
🤖 Generated with Claude Code
Generated by Claude Code