Files
panvk-bifrost/mesa-panvk-bifrost/phase8_iteration7_close.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

3.5 KiB
Raw Blame History

Iteration 7 close — GREEN

Closed 2026-05-19, same session as iter16. Operator-witnessed.

Locked question

(From phase0_findings_iter7.md)

Run vkcube --c 120 --wsi wayland on ohm (Plasma/Wayland) with PAN_I_WANT_A_BROKEN_VULKAN_DRIVER=1. Verify: process exits 0, frames rendered, no GPU faults, no kernel-side panfrost errors. Operator may visually confirm.

Result: GREEN

3 runs (120 frames + 120 frames + 240 frames), all RC=0. Validation layer active in run #2 — zero warnings.

Operator visual confirmation: "Ich hab' ihn gesehen." — vkcube's rotating textured cube rendered correctly on the PineTab2 screen.

Performance: 240 frames in 4.352s = ~55 FPS sustained, vsync-locked.

No GPU faults, no MMU faults, no panfrost kernel errors across any run.

Evidence: phase0_evidence/iter7_vkcube_run.txt.

What the close tells us

All five hypotheses in phase0_findings_iter7.mdnone materialized.

  • VK_KHR_wayland_surface works on PanVk-Bifrost against live Plasma compositor.
  • Swapchain path is functional (vkcube allocates a swapchain, runs through 240 frames).
  • Present queue support materializes correctly with a real surface (despite "present support = false" in headless vulkaninfo).
  • Continuous frame submission + acquire/present cycle works for hundreds of frames.
  • vkcube's combined workload (MVP UBO + textured cube + depth + present) — works.

This is the first off-the-shelf application in the campaign. It works. The PineTab2 + Mali-G52 + Mesa 26.0.6 + PanVk-Bifrost + Plasma stack can drive a rotating textured Vulkan cube at display refresh rate.

Cumulative state — seven iters, ~43 runs, zero driver failures, operator-witnessed real-app workload

PanVk-Bifrost on Mali-G52 r1 v7 has been proven for:

Surface Iter
Compute pipeline iter1
Image transfer ops iter2
Graphics pipeline + dynamic rendering iter3
Sampled textures + texelFetch iter4
Vertex buffers + UBO + varying interp iter5
Depth attachment + multi-draw iter6
Real app (vkcube) + WSI + Wayland + swapchain + continuous frames iter7

iter7 in-tree artifacts

Next iter — iter8 lock proposal

Zink-on-PanVk smoke: run a simple OpenGL ES application via Mesa's Zink driver (GL → Vulkan translation) backed by PanVk-Bifrost. This is the bridge to TuxRacer.

Approach:

  1. Verify Zink is available in Mesa 26.0.6 on ohm (MESA_LOADER_DRIVER_OVERRIDE=zink).
  2. Run something simple under Zink: glmark2-es2-wayland (already present per pacman check in iter0; verify) or es2_info to confirm bindings, or write a minimal GL probe.
  3. Verify: GL context creates, GL rendering works, no crashes during a brief workload.

iter8 question:

Verify Zink-on-PanVk works on ohm — run glmark2-es2-wayland (or equivalent stock ES2 demo) with MESA_LOADER_DRIVER_OVERRIDE=zink + PAN_I_WANT_A_BROKEN_VULKAN_DRIVER=1 against Plasma/Wayland. Verify: at least one benchmark scene completes, no GPU faults, no Zink/Mesa crashes. If glmark2 has issues unrelated to Zink, fall back to es2gears or a minimal GL probe.

If iter8 GREEN: PanVk-Bifrost is real and TuxRacer-via-Zink is on the path.

Pacing per 8-phase loop. iter8 opens immediately.