Skip to content

docs(x265): PROBE-GPU-LUT wave-3 verdict — wgpu decode-tier harness proven#249

Merged
AdaWorldAPI merged 5 commits into
masterfrom
claude/x265-x266-plans-review-h9osnl
Jul 18, 2026
Merged

docs(x265): PROBE-GPU-LUT wave-3 verdict — wgpu decode-tier harness proven#249
AdaWorldAPI merged 5 commits into
masterfrom
claude/x265-x266-plans-review-h9osnl

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

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 wgpu seam 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

…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
@coderabbitai

coderabbitai Bot commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@AdaWorldAPI, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 49 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 2d64c423-07fb-4d86-87cc-5aecf54a8c5c

📥 Commits

Reviewing files that changed from the base of the PR and between 9fefecb and 101fee4.

📒 Files selected for processing (2)
  • .claude/knowledge/pr-x12-h268-morton-wgpu-synergies.md
  • .claude/plans/x265-sprite-replay-probe-v1.md

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cursor

cursor Bot commented Jul 18, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot 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)

@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review July 18, 2026 22:31

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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) |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Comment on lines +174 to +176
**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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

claude added 4 commits July 18, 2026 22:37
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
@AdaWorldAPI
AdaWorldAPI merged commit 5a8d817 into master Jul 18, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants