a4e7d8ab90
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>
2.9 KiB
2.9 KiB
Phase 0 — substrate for iter7
Opened 2026-05-19 after iter6 close GREEN.
Locked research question — iter7
Run stock
vkcube --c 120 --wsi wayland(Vulkan reference rotating-cube demo) on ohm against the live Plasma/Wayland session, withPAN_I_WANT_A_BROKEN_VULKAN_DRIVER=1. Verify:
- Process exits 0
- 120 frames rendered (vkcube reports if --c was honored)
- No GPU faults in dmesg during the run
- No kernel-side panfrost errors
- Operator may visually confirm correct cube rendering (PineTab2 has its own display)
Why this shape
iter1–6 closed all the synthetic-probe paths. iter7 is the first real off-the-shelf application. New surface area:
- WSI / swapchain (
VK_KHR_swapchain) — first time we use the swapchain path. VK_KHR_wayland_surface— first time we connect to a live Wayland compositor.- Continuous frame submission — many
vkQueueSubmitcalls in sequence, with synchronization across frames. - Acquire/present cycle — vkAcquireNextImageKHR + vkQueuePresentKHR per frame.
- vkcube's own state — rotation matrix per frame, textured cube vertices, depth buffer, all bundled together.
If vkcube works end-to-end, that's massive validation toward TuxRacer-via-Zink. If it crashes, we have a known-reference reproducer + a real bug to characterize.
Session info (gathered)
- Active user:
mfritsche(UID 1001) ontty1 XDG_RUNTIME_DIR=/run/user/1001WAYLAND_DISPLAY=wayland-0(socket present at/run/user/1001/wayland-0)- vkcube version: from
vulkan-tools 1.4.350.0-1package
Hypothesis space
VK_KHR_wayland_surfaceplumbing. First-ever PanVk-Bifrost test of Wayland surface creation.- Swapchain creation. PanVk's swapchain path may have stale or untested code on v6/v7 — particularly modifier-aware swapchain images.
- Present queue — vulkaninfo's "present support = false" on the only queue family (no-surface query) may turn into a runtime issue when a real surface exists.
- Continuous frame submission — sync2 / timeline semaphore plumbing across frames.
- vkcube's specific draw shape — textured cube uses MVP UBO, vertex buffer with positions, normals, texcoords; texture upload; depth test. All things proven in isolation, but combined here.
In-scope (LOCKED 2026-05-19 for iter7)
- 120 frames of vkcube via Wayland WSI on ohm.
- Stock binary (no modifications).
- Whatever GPU PanVk picks (single Mali on ohm).
Out-of-scope (LOCKED 2026-05-19 for iter7)
- VK_KHR_xcb_surface / VK_KHR_xlib_surface paths.
- VK_KHR_display direct-mode (would conflict with Plasma session).
- VK_EXT_headless_surface (not strictly needed if Wayland works).
- vkmark / Zink (iter8+).
- vkcube subtests (--use_staging variations).