User Tools

Site Tools


fourier:vb2_dma_resv_rfc

This is an old revision of the document!


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

  1. vb2 helper API for vb2_buffer_attach_release_fence()
  2. hantro opt-in
  3. 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.
fourier/vb2_dma_resv_rfc.1777436203.txt.gz · Last modified: by markus_fritsche