Mentre diversi driver X.Org DDX in passato hanno implementato un’opzione del driver xorg.conf”TearFree”per cercare di eliminare lo screen tearing durante l’esecuzione di un server X.Org senza un ambiente composito, il DDX generico xf86-video-modesetting che è ampiamente utilizzato ha mancato tale opzione. Questo fino a quando uno sviluppatore non si è finalmente fatto avanti e ha il supporto in sospeso per l’opzione”TearFree”.
I driver DDX specifici per l’hardware come xf86-video-amdgpu e i driver xf86-video-intel da tempo non mantenuti offrono da tempo un’opzione”TearFree”nel tentativo di fornire un rendering dello schermo senza strappi coinvolgendo il capovolgimento di pagina specifico dell’hardware meccanismi. Ma in questi giorni il DDX xf86-video-modesetting viene sempre più utilizzato per coloro che fanno ancora affidamento su un server X.Org e, in particolare, se non si utilizza un gestore di finestre composito, lo screen tearing può ancora essere un problema sul desktop Linux mentre ci avviciniamo al 2023.
Lo sviluppatore indipendente Sultan Alsawaf è riuscito a scrivere un’implementazione TearFree generica per il driver xf86-vide-modesetting che può essere facoltativamente abilitato. Sultan ha riassunto il lavoro come:
Questo aggiunge il supporto per i capovolgimenti di pagina TearFree per eliminare lo strappo senza l’uso di un compositore. Alloca due shadow buffer per ogni CRTC, un back buffer e un front buffer, e utilizza il tracciamento dei danni per ridurre al minimo l’eccessiva copia tra i buffer e saltare i flip non necessari quando i contenuti dello schermo rimangono invariati. Funziona anche su schermi trasformati, come CRTC ruotati e ridimensionati.
TearFree non consente ai client DRI di eseguire i capovolgimenti di pagina poiché TearFree esegue già i capovolgimenti di pagina da solo e i capovolgimenti di TearFree sono preferibili poiché utilizzano il tracciamento dei danni, mentre i capovolgimenti di DRI no.
TearFree è disabilitato per impostazione predefinita.
Il supporto TearFree per questo driver DDX è di circa 300 righe di nuovo codice ed è attualmente in attesa di revisione tramite questa richiesta di unione del server X.Org.