GNU/Linux >> Linux Esercitazione >  >> Linux

Come correggere il tearing video in Linux (con grafica Intel)

Ora, non essere irriverente. Il titolo di questo articolo non implica che tu risolva il tearing con la grafica Intel, ma piuttosto, se ti capita di avere un computer con grafica Intel e usi Linux, allora potresti aver riscontrato tearing del video, di solito linee orizzontali nel terzo superiore di un fotogramma video. Questo di solito accade nei desktop Gnome, Xfce o MATE, meno in Plasma, indipendentemente dalla scelta di distribuzione sottostante. Coerenza fw.

Ad ogni modo, ho visto questo problema molte volte prima, ma sembra che sia riemerso con una frequenza leggermente maggiore di recente. Quindi diamo un piccolo tutorial che, si spera, risolverà tutti i tuoi problemi, o almeno, ti consentirà di goderti una riproduzione video fluida e chiara. Dopo di me.

Grafica Intel

Prima di risolvere il problema, dobbiamo capirlo. Nella sezione Soluzione di seguito, scriverò tutti i tipi di technobabble e, se fai solo un copia incolla cieca, risolverai il problema, ma non saprai perché. Quindi iniziamo con la panoramica dello stack grafico Intel. Questo si riferisce al driver di transizione chiamato "intel", che copre una vasta gamma di chipset diversi.

Ora, si noti che la pagina man collegata si riferisce all'implementazione del server di visualizzazione X.Org (Xorg). In effetti, questa guida si concentra su Xorg per due motivi. Uno, lo uso principalmente, piuttosto che Wayland. Due, in parte perché, vedi il punto precedente, ho riscontrato principalmente tearing sotto Xorg. Tuttavia, ricordo di aver anche visto il video tearing sotto Wayland e prenderò in considerazione la possibilità di scrivere un tutorial separato anche per quello. Ora, continuiamo con la nostra mini istruzione.

Lo strappo del video di solito deriva da una mancata corrispondenza tra il display e il driver, quindi finisci per vedere l'aggiornamento dei fotogrammi. Puoi creare configurazioni Xorg personalizzate che sovrascrivono il comportamento predefinito, in modo da utilizzare funzionalità specifiche nello stack grafico che non sono abilitate (o disabilitate) per impostazione predefinita.

Ora, tutto ciò che è elencato nella panoramica collegata può influenzare in qualche modo il rendering del video e il lavoro di indagine qui non è affatto banale. Dopo molte letture (e alcune congetture), ho ristretto l'elenco a un potenziale colpevole principale. Quindi vediamo cosa dà.

  • Opzione "TearFree" "boolean" - Disabilita o abilita gli aggiornamenti TearFree. Questa opzione forza X a eseguire tutto il rendering su un backbuffer prima di aggiornare la visualizzazione effettiva... Questa opzione è disabilitata per impostazione predefinita, ma potresti voler abilitarla. Ciò significa più memoria video utilizzata, ma dovresti anche avere una riproduzione più fluida.

OK, ora che conosciamo il potenziale ritocco, possiamo implementarlo. Infatti, per risolvere il problema, creeremo un file di configurazione di Xorg che sovrascrive le impostazioni predefinite.

Soluzione

Dobbiamo creare un file di configurazione personalizzato:

sudo mkdir -p /etc/X11/xorg.conf.d
sudo touch /etc/X11/xorg.conf.d/20-intel.conf

Apri questo file in un editor di testo (con sudo o come root) e aggiungi il seguente testo:

Sezione "Dispositivo"
Identificatore "Intel Graphics"
Driver "XXXX"
Opzione "TearFree" "true"
EndSection

Sostituisci XXXX con il nome del driver corretto per il tuo hardware specifico. È possibile utilizzare le informazioni generiche o l'esatta versione del driver. Ad esempio, su uno dei miei laptop, il driver è i915, quindi la sezione diventa:

Sezione "Dispositivo"
Identificatore "Intel Graphics"
Driver "i915"
Opzione "TearFree" "true"
EndSection

Esistono molti modi per verificare quale driver è in uso sul tuo sistema:

sudo lspci -k | grep -EA3 'VGA|3D|Display'

grep "LoadModule" /var/log/Xorg.0.log

In alternativa, puoi anche controllare usando il comando inxi:

inxi -G
Grafica:
Dispositivo-1:Intel Haswell-ULT Integrated Graphics driver:i915 v:kernel
Display:server x11:driver X.Org 1.20.8:i915 risoluzione:1366x768 ~60Hz
OpenGL:renderer:Mesa DRI Intel HD Graphics 4400 (HSW GT2)
v:4.5 Mesa 20.0.4

Potrebbero esserci delle variazioni tra i sistemi, poiché alcune distribuzioni Linux manterranno i registri in /var, mentre altre potrebbero averli archiviati in /run. Inoltre, il comando inxi potrebbe non essere disponibile o installato. Il comando lspci è il migliore in assoluto e dovrebbe funzionare su tutti i sistemi.

Una volta identificato il driver, scrivi il nome del driver nel file 20-intel.conf, salva il file e riavvia la sessione. Puoi riavviare o semplicemente disconnetterti e quindi accedere nuovamente. Ora dovresti avere una riproduzione video fluida e senza strappi.

Correzioni alternative

È possibile che solo l'unica riga Option che abbiamo aggiunto sopra non funzioni. Quindi potrebbe essere necessario essere un po' più rigorosi. Ecco due opzioni aggiuntive che potresti voler includere nel file 20-intel.conf:

  • Opzione "AccelMethod" "string" - Seleziona il metodo di accelerazione. Ci sono un paio di... Questa opzione definisce il metodo di accelerazione hardware. UXA (Unified Acceleration Architecture) è un backend più vecchio ma più maturo. SNA (SandyBridge's New Acceleration) è il nuovo metodo, che sostituisce UXA, ed è l'impostazione predefinita. Se hai il tearing del video, potresti voler ricorrere al backend precedente, in quanto potrebbe offrire una compatibilità generale più ampia.
  • Opzione "DRI" "string" - Disabilita o abilita il supporto DRI... Normalmente, questo non dovrebbe essere un problema e il tuo sistema dovrebbe usare OpenGL ES 3. Tuttavia, se hai il tearing del video, potresti desidera impostare questa opzione su "3".

Il file di configurazione diventa quindi:

Sezione "Dispositivo"
Identificatore "Intel Graphics"
Driver "XXXX"
Opzione "TearFree" "true"
Opzione "AccelMod" "uxa"
Opzione "DRI " "3"
Sezione finale

Conclusione

Aggiungi ... Ho testato il primo 20-intel.conf in Ubuntu MATE, Xubuntu e Fedora, in più edizioni di queste distribuzioni. Nella maggior parte dei casi, l'opzione TearFree è sufficiente. Una delle versioni distro richiedeva anche il metodo di accelerazione. Infine, in un solo caso, un'opzione DRI autonoma (senza le altre due) ha risolto il problema dello strappo. La mia raccomandazione è, dato che c'è una vasta gamma di schede grafiche, di provare qualsiasi permutazione di queste tre opzioni. Suona un po' come una stregoneria, e forse lo è.

Almeno è stregoneria con buoni risultati. Idealmente, non dovresti mai dover affrontare alcuno strappo nei tuoi video. Ma il desktop Linux ha diversi problemi cardinali e l'approccio incentrato sull'utente e incentrato sul prodotto è il più grande di questi, motivo per cui i bug vanno e vengono e poi ritornano, e ne avrai una manifestazione irregolare e casuale attraverso le distribuzioni, versioni e piattaforme hardware. Ad ogni modo, prova, guarda cosa dà e, si spera, sarai in grado di guardare video con una riproduzione fluida e pulita. Ci vediamo in giro.


Linux
  1. Come uso Vagrant con libvirt

  2. Come crittografare i file con gocryptfs su Linux

  3. Come installare un driver di dispositivo su Linux

  4. Linux:come trovare il driver (modulo) associato a un dispositivo su Linux?

  5. Come controllare la password con Linux?

Come creare il proprio server di streaming video con OBS Studio in Linux

Come configurare un firewall con GUFW su Linux

Screen Tearing In 11.10 con Intel Graphics?

Come eseguire un alias con Sudo in Linux

Come iniziare con Arch Linux

Come proteggere GRUB con password in Linux?