Alcuni utenti KDE dotati di schede video nVidia (ma in alcuni casi il bug si verifica anche su schede video Intel) avranno certamente notato un piccolo bug durante la riproduzione dei video che fa formare delle striscioline orizzontali. Il bug è il cosiddetto problema del tearing (o del v-sync), problema noto anche su Xfce con alcune schede video Ati (io li becco sempre).
Per diagnosticare il problema potete ricorrere questo video di test e verificare se il video è o meno fluido.
Se la risposta è affermativa ecco una delle possibili soluzioni. Ho detto possibili perché in queste settimane ho sperimentato diversi metodi e fra quelli trovati l'unico che ha funzionato è quello che fra poco vi andrò a descrivere.
Vediamo dunque come fare. Aprite il terminale con il vostro editor di testo preferito e ed editate il file /etc/profile
Visto che siamo su KDE possiamo utilizzare Kate. Diamo
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)
Ho notato lo stesso bug anche su GNOME (nella fattispecie su Ubuntu GNOME) durante la riproduzione di video da Youtube in modalità a finestra (e dunque non a tutto screen). Ecco come potete fare per risolvere (nel mio caso ha funzionato).
Aprite il terminale e digitate
sudo gedit /etc/environment
andate ora ad aggiungere la riga
CLUTTER_PAINT=disable-clipped-redraws:disable-culling
CLUTTER_VBLANK=True
CLUTTER_VBLANK=True
Salvate, riavviate il sistema e il tearing dovrebbe esser sparito. La guida è stata presa da [How-To] Remove Video Tearing In Nvidia Graphic Cards (Works With GTX Series) scritta sul forum di Manjaro e funziona anche su Cinnamon e Pantheon.
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
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 1920x1080+0+0 (normal left inverted right x
axis y axis) 640mm x 360mm
1920x1080 59.93*+
1360x765 60.00
1280x1024 60.02
1280x768 59.87
1280x720 60.00
1024x768 60.00
800x600 60.32 56.25
640x480 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 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
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
Option "NoLogo" "true"
Option "TripleBuffer" "True"
Option "metamodes" "VGA-0: nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }
EndSection
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 1920x1080+0+0 (normal left inverted right x
axis y axis) 640mm x 360mm
1920x1080 59.93*+
1360x765 60.00
1280x1024 60.02
1280x768 59.87
1280x720 60.00
1024x768 60.00
800x600 60.32 56.25
640x480 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