Reviewed-on: #6
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
and
mesa-panvk-bifrost-video
in 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) | r1–r4 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 — D1–D10 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:
mesa-panvk-bifrost-video/README.md— what shipped + how byte-exact validation worksmesa-panvk-bifrost-video/phase4_progress.md— implementation logmesa-panvk-bifrost/iter17/— XFB primitive decomposition (r4 close)mesa-panvk-bifrost/phase0_findings.md— campaign substrate
If you want the reproducibility material:
- The
evidence/*.tgzfiles 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.patchetc.) live inmarfrit-packages/arch/mesa-panvk-bifrost{,-video}/. - Base substrate for diff generation: vanilla
mesa-26.0.6.tar.xzfromarchive.mesa3d.org.
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 — PKGBUILDs + CI
- packages.reauktion.de — published .pkg.tar.xz artifacts
- marfrit/fourier#1 — ffmpeg-vulkan-h264 consumer wall (SYNC_FD handle-type missing; separate from this campaign)