nVidia: Soluzione bug del tearing durante la riproduzione dei video
sudo kate /etc/profile
Al suddetto file andiamo ad aggiungere la riga
export __GL_YIELD=”USLEEP”
Salviamo, riavviamo il sistema e verifichiamo se la suddetta procedura ha funzionato anche nel vostro caso.
Alcune guide suggeriscono anche di aggiungere la riga
export KWIN_TRIPLE_BUFFER=1
Via Archlinux Forum
Potrebbe anche interessarvi il post KDE: fix tearing delle finestre di pop-up
AGGIUNTA del 5 Settembre 2014 per GNOME Shell, Cinnamon e Pantheon (elementaryOS Freya)
sudo gedit /etc/environment
CLUTTER_VBLANK=True
AGGIUNTA del 2 Agosto 2015 per KDE 5
Mi è stato linkato questo post su Reddit che propone una soluzione diversa per Plasma 5 specifico per le GeForce 500/600/700/900
Ecco il link https://wiki.archlinux.org/index.php/NVIDIA#Avoid_tearing_with_GeForce_500.2F600.2F700.2F900_series_cards
AGGIUNTA del 30 Settembre 2016 per KDE (da testare con altri DE)
Dopo vario peregrinare per il web sono riuscito a trovare una nuova soluzione per risolvere il problema del tearing che consiste nel modificare il file /etc/X11/xorg.conf (per Ubuntu e derivate) o /etc/X11/xorg.conf.d/20-nvidia.conf (per altre distro come Arch) o /etc/X11/mhwd.d/nvidia.conf (per Manjaro) aggiungendo due righe alla sezione device
Le due righe sono quelle evidenziate in grassetto. Come potete vedere nel mio caso la riga metamodes riporta la scritta VGA-0 segno che il mio monitor è connesso tramite porta VGA, questo però non è uguale per tutti. Per sapere la stringa da inserire vi basterà dare da terminale
xrandr
Il risultato sarà simile a questo
marco@neon:~$ xrandr
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 16384 x 16384
DVI-I-0 disconnected (normal left inverted right x axis y axis)
VGA-0 connected primary 1920×1080+0+0 (normal left inverted right x
axis y axis) 640mm x 360mm
1920×1080 59.93*+
1360×765 60.00
1280×1024 60.02
1280×768 59.87
1280×720 60.00
1024×768 60.00
800×600 60.32 56.25
640×480 59.94
DVI-I-1 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)
Non ci resta che copiare le info della porta che risulta connessa (nel mio caso VGA-0) e riportarle nella stringa metamodes.
In caso di più monitor potete seguire le istruzioni riportate nel video
AGGIUNTA del 9 Settembre 2017 per risolvere il tearing su GNOME Shell
A seguito di alcuni test compiuti ho notato un leggero miglioramento rispetto alla soluzione precedente modificando alcuni parametri.
Section “Device”
Identifier “Device0”
Driver “nvidia”
VendorName “NVIDIA Corporation”
Option “NoLogo” “true”
Option “TripleBuffer” “True”
Option “metamodes” “VGA-0: nvidia-auto-select +0+0+120 { ForceCompositionPipeline = On }
EndSection
AGGIUNTA del 5 Gennaio 2019 per risolvere il tearing su Debian
Per quanto riguarda Debian vi consiglio di aggiungere i parametri al file 20-nvidia.conf da creare in /etc/X11/xorg.conf.d/ (vedi Debian Wiki)
Section “Device”
Identifier “Device0”
Driver “nvidia”
VendorName “NVIDIA Corporation”
Option “NoLogo” “true”
Option “TripleBuffer” “True”
Option “metamodes” “nvidia-auto-select +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}”
EndSection
AGGIORNAMENTO DEL 20 febbraio 2019 per risolvere il problema del tearing su Manjaro KDE
A quanto pare, l’ultima release di Manjaro KDE, ha problemi con il tearing anche se si modifica la stringa che vi ho su elencato. Per risolvere il problema dobbiamo modificare due file diversi come spiegato nel Wiki di Arch Linux.
La prima cosa da fare è quella di esportare il valore __GL_YIELD=”USLEEP” a kwin_x11.
Questo lo possiamo fare creando uno script auto avviante in ~/.config/autostart-scripts/kwin.sh
Tramite il nostro editor di testi preferito creiamo un file kwin.sh in ~/.config/autostart-scripts/ con dentro quanto segue:
#!/bin/bash (sleep 2s && __GL_YIELD="USLEEP" kwin_x11 --replace)
Salviamo ora il tutto. Attiviamo ora il TripleBuffering. Aprite il terminale e date
sudo nano /etc/profile.d/kwin.sh
e nel file incollate quanto segue
export KWIN_TRIPLE_BUFFER=1
Salviamo il tutto e riavviamo il sistema. Ora tutto sarà risolto. L’unico programma che molto probabilmente vi continuerà a creare tearing è Firefox ma per quello possiamo risolvere attivandone l’accelerazione hardware come spiegato nel mio articolo Firefox: attivare l’accelerazione hardware OpenGL e migliorare le prestazioni