README: refresh dmabuf-wayland green known-issue with current state
Two prior root-cause hypotheses were posted then overturned during iter1 of dmabuf-modifier-triage: 1. kwin-fourier 0001 watchDmaBuf bypass — exonerated by stock-kwin A/B (both compositor variants produce green). 2. mpv vo_dmabuf_wayland.c plane-semantics — exonerated by Phase 2 source-read of mpv 0.41.0 + Kwiboo b57fbbe (both pieces of code read straight; the WAYLAND_DEBUG fd-mismatch trace is most likely libwayland's wl_closure_marshal dup_cloexec'ing the fd at marshal time and printing the post-dup value). Real layer back open. Four candidates filed in dmabuf-modifier-triage#1 comment 252. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -58,7 +58,7 @@ The iter8 close (`65969da3`) was packaged as `libva-v4l2-request-fourier-1.0.0.r
|
||||
|
||||
1. **libva cap_pool / REQBUFS / iter6-REINIT lifecycle cascade** — filed at [marfrit/libva-v4l2-request-fourier#1](https://git.reauktion.de/marfrit/libva-v4l2-request-fourier/issues/1). Under `mpv --hwdec=vaapi` interactive playback, `cap_pool_init` runs twice for slots 0..23 (probe-context + decode-context, no teardown between), `VIDIOC_REQBUFS` returns EBUSY (queue still STREAMON'd), iter6's per-OUTPUT-slot REINIT (commit `a09c03c`) chokes on a Bad fd, OUTPUT queue (`type=9`) hits ENOMEM after a few REQBUFS retries, decode aborts with `Failed to create surface: 2 (resource allocation failed)`. The Phase-5-sonnet-C4 caveat from iter5 (`cap_pool resolution-change race latent under untested consumer probe patterns`) was prescient — this is exactly that race, made hard-failing by iter6/7's additions. iter9 input.
|
||||
|
||||
2. **dmabuf-wayland↔KWin presentation handoff produces solid green** — independent of libva. Filed at [marfrit/libva-multiplanar#1](https://git.reauktion.de/marfrit/libva-multiplanar/issues/1); triage moved to dedicated peer campaign [`~/src/dmabuf-modifier-triage/`](../dmabuf-modifier-triage/) (Gitea: [marfrit/dmabuf-modifier-triage](https://git.reauktion.de/marfrit/dmabuf-modifier-triage)) opened 2026-05-08. Smoking gun identified at scaffold time: kwin-fourier currently ships `0001-transaction-bypass-watchDmaBuf-fence-wait.patch` active, which bypasses KWin's implicit-sync fence wait on dmabufs — a runtime-observable race that fits the symptom. Triage Phase 0 item 1 is the stock-kwin A/B that decides it. Doesn't gate libva-multiplanar iter9.
|
||||
2. **dmabuf-wayland↔KWin presentation handoff produces solid green** — independent of libva. Filed at [marfrit/libva-multiplanar#1](https://git.reauktion.de/marfrit/libva-multiplanar/issues/1); triage in dedicated peer campaign [`~/src/dmabuf-modifier-triage/`](../dmabuf-modifier-triage/) (Gitea: [marfrit/dmabuf-modifier-triage](https://git.reauktion.de/marfrit/dmabuf-modifier-triage)). **Two prior root-cause hypotheses overturned during iter1**: (a) kwin-fourier 0001 watchDmaBuf fence-wait bypass — exonerated by stock-kwin A/B, both produce green; (b) mpv `vo_dmabuf_wayland.c` plane-semantics translation — exonerated by Phase 2 source-read of mpv 0.41.0 + Kwiboo's ffmpeg `b57fbbe` (both pieces of code do the right thing; the WAYLAND_DEBUG "different fds per plane" trace is most likely libwayland's `wl_closure_marshal` `dup_cloexec`'ing the fd at marshal time and printing the post-dup value, not actual semantic mismatch). Real layer is back open; four candidates filed in [dmabuf-modifier-triage#1 comment 252](https://git.reauktion.de/marfrit/dmabuf-modifier-triage/issues/1#issuecomment-252) (Mali-G52 panfrost EGL_dma_buf_import / KWin import deduplication / hantro kernel `dma_buf` size capping / kwin-fourier A/B environment-reset incompleteness). Cheapest decisive next probe: `lseek(EXPBUF_fd, SEEK_END)` on ohm to test hypothesis 3. Doesn't gate libva-multiplanar iter9.
|
||||
|
||||
**Working ohm HW-decode path right now (workaround):**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user