Una modifica unita a Qt questa settimana può consentire ai client Wayland di sopravvivere ai riavvii del compositore, ad esempio quando il compositore si arresta in modo anomalo.

Lo sviluppatore di KDE David Edmundson ha ottenuto il miglioramento Qt Wayland in modo che i client possano opzionalmente sopravvivere ai riavvii del compositore. Edmundson ha spiegato in questa unione:

Introduci percorso per i riavvii del compositore sopravvissuto

Questa patch introduce un meccanismo opzionale per consentire ai client di sopravvivere a un arresto anomalo e riconnettersi apparentemente senza problemi.

In caso di disconnessione dal socket del compositore, proviamo semplicemente a riconnetterci nuovamente e riprodurre tutti i dati necessari in modo da mantenere uno stato coerente da dove ci eravamo interrotti.

Dal punto di vista dell’applicazione qualsiasi i popup aperti verranno chiusi e potremmo potenzialmente ottenere un nuovo framecallback, ma sarà quasi del tutto trasparente. Gli utenti di QWaylandClientExtensions personalizzati verranno avvisati tramite il segnale activeChanged e ricostruiti come se il compositore avesse ritirato e annunciato nuovamente il globale.

I contesti OpenGL saranno contrassegnati come non validi e gestiti allo stesso modo di un ripristino della GPU. Nel frame successivo RHI noterà che questi non sono validi e li ricreerà, solo ora contro un nuovo wl_display e un nuovo EGLDisplay.

Gli utenti di oggetti EGL/nativi di basso livello potrebbero essere interessati, ma l’alternativa a questo punto viene comunque chiusa. L’intero codepath viene attivato solo tramite una variabile di ambiente.

La funzionalità per Qt Wayland attualmente deve essere attivata tramite la variabile di ambiente QT_WAYLAND_RECONNECT. Questa modifica verrà introdotta con Qt 6.6 nel corso dell’anno.

Categories: IT Info