Files
panvk-bifrost/README.md
T
marfrit a4e7d8ab90 initial seed: retrofit campaign lineage from local working trees
panvk-bifrost campaigns (r1..r4 Vulkan compositor + r5.video1 Vulkan
video decode) shipped before this repo existed; the deliverable
patches live in marfrit-packages, but the reasoning chain, phase docs,
and source-state evidence lived only in local working trees on the
development host.

This retrofit imports:
- mesa-panvk-bifrost/   — r1..r4 era phase docs (iter1..iter18)
                          (libmali stub blobs at iter18/blob/ excluded
                          — 109MB of RE artifacts replaced with a README
                          pointer)
- mesa-panvk-bifrost-video/ — sibling campaign phase docs + probe
- evidence/             — frozen .tgz source snapshots at each milestone
                          (basis for the 0005 patch diff generation)

Future iterations should branch off here from day one, so each iter is
a commit rather than a snapshot. See [[feedback-session-local-process-pins]]
for the process drift this retrofit closes.

Total: 1.9 MB across 124 files.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 05:25:37 +02:00

92 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# panvk-bifrost
**Claude-assisted completion of Panfrost/PanVk Vulkan support for the PineTab2 (Rockchip RK3566, Mali-G52 r1 MC1, PAN_ARCH 7) — as of 2026-05-23.**
This repository is the source-of-truth lineage for the patched-Mesa packages
[`mesa-panvk-bifrost`](https://git.reauktion.de/marfrit/marfrit-packages/src/branch/main/arch/mesa-panvk-bifrost)
and
[`mesa-panvk-bifrost-video`](https://git.reauktion.de/marfrit/marfrit-packages/src/branch/main/arch/mesa-panvk-bifrost-video)
in [marfrit-packages](https://git.reauktion.de/marfrit/marfrit-packages).
Those packages carry the deliverable `.patch` files; this repo carries the
**phase docs, design notes, evidence, and reasoning chain** that produced them.
## What the packages enable
| Package | Capability | Status |
|---|---|---|
| `mesa-panvk-bifrost` | Vulkan compositor for Chromium/Brave on Bifrost-class Mali (Robustness2 + nullDescriptor + VK1.1/1.2 + VK_EXT_transform_feedback + XFB primitive decomposition) | r1r4 shipped; brave-vulkan launcher works |
| `mesa-panvk-bifrost-video` | `VK_KHR_video_decode_h264` backed by the SoC's V4L2-stateless hantro VPU | r5.video1 shipped 2026-05-22; byte-exact validated against ffmpeg+libva-v4l2-request-fourier (48/48 unique BBB display frames) |
## Layout
```
mesa-panvk-bifrost/ — r1..r4 campaign (Vulkan compositor enablement)
iter1..iter18/ — per-iteration phase docs (Phase 0..8)
phase0_evidence/ — logs, chrome://gpu dumps, vulkaninfo snapshots
phase0_findings*.md — per-iteration substrate findings
phase[1-8]_*.md — phase docs by phase number
mesa-panvk-bifrost-video/ — sibling campaign (Vulkan video decode)
phase0_findings.md — substrate (existing v4l2 stack on hantro)
phase1_source_map.md — Mesa code regions touched
phase2_design.md — D1D10 design decisions
phase4_progress.md — commit-by-commit implementation log
probe_vkvideo.c — baseline probe (FAIL → PASS gate)
README.md — sibling campaign overview
evidence/ — frozen .tgz source snapshots at each milestone
phase5_post_review_* — POST-review source (basis for 0005 patch)
v8_commit8_* — full multi-frame state
v7f_commit7f_* — single-frame byte-exact state
DECODE_RAN_* — first end-to-end decode (still all-zero output)
FINAL_* — pre-review final state
commits_1* — incremental commit snapshots
brave_libva_trace_* — chromeos pipeline ImageProcessor wall reproduction
```
## Reading order
If you want the **end state and reasoning** quickly:
1. `mesa-panvk-bifrost-video/README.md` — what shipped + how byte-exact validation works
2. `mesa-panvk-bifrost-video/phase4_progress.md` — implementation log
3. `mesa-panvk-bifrost/iter17/` — XFB primitive decomposition (r4 close)
4. `mesa-panvk-bifrost/phase0_findings.md` — campaign substrate
If you want the **reproducibility material**:
- The `evidence/*.tgz` files are byte-pinned snapshots of `/home/mfritsche/mesa-build/mesa-26.0.6/src/panfrost/vulkan/` on the development host at each milestone. They are referenced from the marfrit-packages PKGBUILD patch-generation flow.
- The actual patches (`0001-…-bifrost.patch` etc.) live in
[`marfrit-packages/arch/mesa-panvk-bifrost{,-video}/`](https://git.reauktion.de/marfrit/marfrit-packages).
- Base substrate for diff generation: vanilla `mesa-26.0.6.tar.xz` from
[`archive.mesa3d.org`](https://archive.mesa3d.org/mesa-26.0.6.tar.xz).
## Hardware scope
- **PineTab2** (Pine64, RK3566, Mali-G52 r1 MC1) — primary development + validation target. All campaign work runs against this device.
- Other Bifrost SBCs (RK3568, RK3399 with G52 variants, etc.) may benefit
but haven't been tested.
- RK3588 / Mali-G610 is a separate stack — Valhall, not Bifrost — handled
via different campaigns.
## Process notes (retrofit, 2026-05-23)
This repository was created **after** the campaigns it documents had already
shipped. The packages, patches, and per-iteration docs all existed as either
marfrit-packages commits or local working-tree files; this repo is the
retrofit that puts the lineage under version control with a single canonical
URL the PKGBUILD `url=` field points at.
Future campaigns in the same family should be opened **here from day one**
so each iter is a branch/commit rather than a snapshot.
## License
MIT (see `LICENSE`). Same as upstream Mesa.
## Cross-references
- [marfrit-packages](https://git.reauktion.de/marfrit/marfrit-packages) — PKGBUILDs + CI
- [packages.reauktion.de](https://packages.reauktion.de/arch/aarch64/) — published .pkg.tar.xz artifacts
- [marfrit/fourier#1](https://git.reauktion.de/marfrit/fourier/issues/1) — ffmpeg-vulkan-h264 consumer wall (SYNC_FD handle-type missing; separate from this campaign)