On Wed, Dec 10, 2025 at 06:57:41AM +0000, Hogander, Jouni wrote: > On Wed, 2025-12-10 at 08:42 +0200, Ville Syrjälä wrote: > > On Wed, Dec 10, 2025 at 06:23:34AM +0000, Hogander, Jouni wrote: > > > On Tue, 2025-12-09 at 20:26 +0200, Ville Syrjälä wrote: > > > > On Thu, Dec 04, 2025 at 09:07:15AM +0200, Jouni Högander wrote: > > > > > This patch set contains fixes for Selective Fetch async flip > > > > > sequences. On async flip selective fetch is choosing full frame > > > > > update. Also subsequent flip/update is still using full frame > > > > > update > > > > > to ensure plane with pending async flip is not taken in to > > > > > selective > > > > > fetch/update. > > > > > > > > > > v4: > > > > > - rework if-else if to if-if > > > > > - added comment updated > > > > > - check crtc_state->async_flip_planes in > > > > > psr2_sel_fetch_pipe_state_supported > > > > > v3: > > > > > - rebase > > > > > - fix old_crtc_state->pipe_srcsz_early_tpt > > > > > - fix using intel_atomic_get_new_crtc_state > > > > > v2: > > > > > - check also crtc_state->async_flip_planes in > > > > > psr2_sel_fetch_plane_state_supported > > > > > > > > > > Jouni Högander (3): > > > > > drm/i915/psr: Set plane id bit in crtc_state- > > > > > >async_flip_planes > > > > > for > > > > > PSR > > > > > drm/i915/psr: Perform full frame update on async flip > > > > > drm/i915/psr: Allow async flip when Selective Fetch enabled > > > > > > > > Series is > > > > Reviewed-by: Ville Syrjälä <[email protected]> > > > > > > > > When testing this I saw that we get stuck into full frame mode > > > > all the time. But that seems to be a pre-existing issues caused > > > > by the broken selective fetch area calculation code. I suppose > > > > now that I have a laptop with a PSR2 panel I might have to dig > > > > out > > > > that branch of mine where I attempted to rewrite the whoile thing > > > > and figure out what was wrong with it... > > > > > > > > > > What is the SW setup you are using and what kind of testing you are > > > doing? Could it be related to frontbuffer tracking? > > > > I just have Xorg running w/o a compositor and then running > > 'vblank_mode=0 glxgears -fullscreen'. The last tests were done > > using mate/marco as the window manager, but I suppose it might be > > reproducible w/o any window manager as well. > > > > I was monitoring the full vs. partial update state by just polling > > the PSR_MAN_TRACK_CTL (or whatever it's called) register. Might > > actually be a decent idea to add something into the debufs status > > file for that, given that the register layout is rather platform > > specific. > > > > I sprinkled a few debugs in the driver and it generally seemed to end > > up in the 'if (crtc_state->psr2_su_area.y1 == -1) -> full_update' > > case, which doesn't really surprise given that the code is very > > confused about coordinate spaces. > > Thank you for the description. I will try to reproduce. What does that > vblank_mode=0?
It forces vsync off regardless of what the application asks for. I was going to point you at the Mesa environment variable docs, but surprisingly vblank_mode doesn't appear to be documented there. -- Ville Syrjälä Intel
