CinnamoneOSGnome ShellGuideInformaticaKDEMondo LinuxnVidiaPantheontearingXfce

nVidia: Soluzione bug del tearing durante la riproduzione dei video

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
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.

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 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

Marco Giannini

Quello del pacco / fondatore di Marco’s Box