User Tools

Site Tools


fourier:start

This is an old revision of the document!


fourier — multi-layer V4L2 hardware-decode unlock for mainline ARM Wayland

A patch campaign that started as a single Chromium V4L2 dispatch unlock and expanded — every time a layer was patched, the next layer's bug surfaced — into 4 sibling patch series + 1 kernel RFC + 3 upstream submission drafts that together make hardware video decode actually work on mainline-Linux Wayland on Rockchip + Mali-class ARM hardware.

  • Public face: github.com/marfrit/fourier — sibling subdirs chromium-fourier/, qt6-base-fourier/, kwin-fourier/, docs/, tools/
  • Local Arch packaging + investigation notes: gitea/marfrit-packages under arch/{chromium,qt6-base,kwin,firefox}-fourier/, kernel/vb2-dma-resv-rfc/, upstream-submissions/
  • Reference target: ohm (PineTab2 / RK3566 / Mali-G52 / panfrost / mainline 6.19.10 / KDE Plasma 6.6.4 Wayland)

Status snapshot — 2026-04-28 evening

Series Patches State Validated where Notes
chromium-fourier 4 end-to-end smooth playback ohm bbb_1080p30_h264.mp4: ~81 % chrome CPU vs ~131 % pre-patch baseline (~3.8× reduction)
qt6-base-fourier 3 shipped + upstream-targetable ohm + fresnel pure spec-correctness GLES3 fix; zero GL_INVALID_VALUE in journal post-relogin
kwin-fourier 2 (1 shipped + 1 upstream-shape) upstream-bound ohm side-effect: every wp_linux_dmabuf-v1 client snappier on Mali-class HW
vb2-dma-resv RFC 3-patch kernel RFC drafted, ready for send-email the fix that makes the kwin-fourier wait premise actually true
firefox-fourier 150.0.1 4 partial — gates 1+4 verified, 2+3 corrected today, rebuild pending fresnel root cause identified via MOZ_LOG: must probe by h264_v4l2request codec name first
upstream submission drafts 3 written, awaiting validation gates bugreports.qt.io, invent.kde.org MR, linux-media RFC

Sub-pages

Sources

Public

    • chromium-fourier/ — 4 patches
    • qt6-base-fourier/ — 3 patches
    • kwin-fourier/ — 2 patches
    • docs/dmabuf-zero-copy.md — panfrost external_only finding + cascade
    • tools/ — capture / measurement helpers

Local (gitea/marfrit-packages)

  • arch/chromium-fourier/ — PKGBUILD + patches + NEXT.md campaign chronology + KWIN_PIVOT.md discovery story
  • arch/qt6-base-fourier/
  • arch/kwin-fourier/
  • arch/firefox-fourier/
  • kernel/vb2-dma-resv-rfc/ — 3-patch kernel RFC
  • upstream-submissions/qt6-base-fourier/qt-bug-report.md
  • upstream-submissions/kwin-fourier/kde-mr-body.md
  • upstream-submissions/vb2-dma-resv/lkml-submission-notes.md

Page index created 2026-04-28 from a fourier-campaign sync. The chromium-fourier sub-page predates the end-to-end win and reflects the state on 2026-04-26; the patch_series page carries the current 4-patch shape.

fourier/start.1777436201.txt.gz · Last modified: by markus_fritsche