This is an old revision of the document!
Table of Contents
fourier — vb2-dma-resv kernel RFC
3-patch kernel RFC drafted as part of the fourier campaign. Targets the linux-media mailing list. Index: fourier.
Why this exists
The architectural correction that makes the kwin-fourier wait premise ("the wait will signal correctly") actually true.
vb2 currently does not propagate V4L2 producer state into the dmabuf ''dma_resv'' exclusive fence. That means a downstream consumer (e.g. the KWin compositor polling a dmabuf for completion) cannot rely on the fence to indicate "decode finished, frame ready". Without this fix, the compositor either spins on stub fences (the bug kwin-fourier 0001 identified) or has to do the wait itself the hard way (which 0002 does as a workaround).
Patches
- vb2 helper API for ''vb2_buffer_attach_release_fence()''
- hantro opt-in
- rockchip-rga opt-in
All kernel APIs verified against ''include/linux/dma-{fence,resv}.h''. Patches are drafted, regenerated via ''git format-patch'' in the shape linux-media expects.
Submission
- Target list: linux-media
- Recipe + CC list: ''upstream-submissions/vb2-dma-resv/lkml-submission-notes.md'' in ''gitea/marfrit-packages''
- Source path: ''kernel/vb2-dma-resv-rfc/'' in the same repo
Relation to the rest of the campaign
- kwin-fourier 0002 does the dmabuf-fd poll dance as a workaround at the compositor level.
- vb2-dma-resv RFC fixes it at the producer level so the workaround stops being necessary.
- Both are shippable independently — different upstreams, different review cadences. The kwin patch is useful even on kernels that never get the RFC; the RFC is useful even on compositors that never take the kwin patch.
