Skip to content

Display

All topics

Note Type Scope Confidence
With the display/decode stack clean, the remaining jank is app-shaped – GJS GC in Maps, main-thread layout in WebKit 2.48, init CPU in browser launches finding device:google-taimen proven
The panel corruption and degraded phosh were one GPU reset’s wreckage – not display tearing, and not the rd_ptr patch finding device:google-taimen proven
There may be no 30 fps lock at all – the panel runs at 60 and ph-framprobe reports ~31 whether the screen is on or OFF finding device:google-taimen proven
The whole session is back to 30 fps on 7.2 – the commit pipelining IS present, and the missing CTL_START patch is NOT why (msm8998 has no such interrupt) finding device:google-taimen proven
The blank/unblank corruption is BELOW the compositor – grim captures a clean frame while the glass shows garbage finding device:google-taimen proven
The waylandsink 5 fps cap was two upstream policies colliding – wlroots hides LINEAR from v3 clients, GStreamer refuses INVALID finding device:google-taimen proven
waylandsink delivers 5 fps where glimagesink and gtk4paintablesink do 60 – and WebKit’s compositor is the browser’s ceiling, not venus finding device:google-taimen proven
wlroots does DRM output layers only through libliftoff finding generic proven
Playbook: display technique generic proven
With the phosh app grid open, a launched app goes straight to recents – and every measurement of it is void trap generic proven
An injected touch does not wake a blanked screen, and every gesture arm then measures a still image trap generic proven
On, unlocked and showing your app are three different things – an injected gesture drives whatever is actually on top, and every frame statistic then describes that trap generic proven
WAYLAND_DEBUG=1 grows a multi-hundred-MB tmpfs log inside the process you are measuring trap generic proven