Lo scorso anno, l’ingegnere desktop di Canonical, Daniel van Vugt, noto anche per i suoi contributi upstream a GNOME, ha lavorato sul suo set di patch per implementare il supporto alla “dynamic deadline evasion“. Adesso, lo sviluppatore ha finalmente rilasciato la terza versione delle patch. Questa mira a eliminare lo stuttering del cursore dal thread KMS del compositore Mutter.
Oltre a continuare a lavorare sul supporto al triplo buffering per GNOME, sui lavori relativi all’HDR e su altri miglioramenti di GNOME per il desktop di Ubuntu Linux, Daniel van Vugt ha trovato il tempo di aggiornare il codice proposto per la “dynamic deadline evasion”. Questo codice sposta la gestione della deadline evasion all’interno del dispositivo, in modo che possa essere regolata dinamicamente ogni volta che si perde un frame. Il codice è stato testato con successo con i moderni driver grafici KMS con supporto atomico nel kernel. Il codice mira a risolvere i problemi segnalati con GNOME. Un esempio di ciò sono i pesanti rallentamenti del cursore in alcune condizioni, come quando non vi sono animazioni sul desktop in quel momento.
GNOME: l’approccio alternativo per risolvere il problema di stuttering
La scorsa settimana è stata aperta una bozza di merge request contenente il codice più recente per la “dynamic deadline evasion”. Tuttavia, lo sviluppatore Michel Dänzer ha proposto un approccio alternativo per tracciare la durata dell’aggiornamento KMS all’interno del codice crtc_frame_deadline_dispatch. Ciò in modo che venga considerata all’interno della funzione di deadline evasion già esistente. Questa implementazione alternativa di Dänzer è stata testata e sembra risolvere i problemi di rallentamento del cursore che ha riscontrato. Resta da vedere quale implementazione verrà adottata. Tuttavia, la versione più recente della merge request non funzionerà con il driver NVIDIA a causa della mancanza dei necessari timestamp KMS. Con GNOME 47 in uscita a metà settembre e già in fase di freeze, bisognerà capire se qualche correzione per lo stuttering cursore verrà inclusa come “fix” in questa versione o se verrà rimandata a GNOME 48, in arrivo il prossimo anno.