web-dev-qa-db-fra.com

Écran déchirant sous Ubuntu 18.04

Je suis récemment passé à Ubuntu 18.04 et j'ai eu beaucoup de problèmes, mais j'ai réussi à résoudre la plupart des problèmes. J'utilise un ordinateur portable avec un i5-7200U et un NVidia GTX950M. J'ai installé les derniers pilotes, les jeux de vin fonctionnent très bien.

Le problème est le suivant: je ne sais pas quelle carte graphique est utilisée dans le système, que ce soit la carte intégrée ou la carte dédiée, et j’ai BEAUCOUP de déchirer l’écran en déplaçant des objets, en faisant défiler le navigateur, etc.

Existe-t-il un moyen de forcer l'activation de vsync ou de réparer la déchirure autrement?

EDIT: Comme demandé par David, voici le résultat de la première commande: https://paste.ubuntu.com/p/JXZXcBn56T/

Et comme pour le journal: https://paste.ubuntu.com/p/rtMyC88sRg/

3
Eris

Pour optimiser nvidia, vous devez utiliser la synchronisation principale. Dans un terminal, créez ce fichier.

Sudo nano /etc/modprobe.d/zz-nvidia-modeset.conf

Insérer ceci

options nvidia_drm modeset=1

Ensuite, ctrl+o appuyez sur la touche enterctrl+x pour enregistrer le fichier et quitter.

Puis lancez cette commande

Sudo update-initramfs -u

Redémarrer

Pour vérifier après le redémarrage, exécutez ceci,

xrandr --verbose

Faites défiler vers le haut et regardez la zone de résultat en haut, vous devriez voir

PRIME Synchronization: 1 supported: 0, 1

Exemple ici

xrandr results

`

3
doug

Essayez les instructions ici. La solution rapide a bien fonctionné. C'était la nuit et le jour. Tout ce que je devais faire était de copier et coller une commande dans le terminal, mais le permanent ne fonctionnait pas. Je ne pouvais pas créer un fichier xorg.conf.

https://www.cmscritic.com/how-to-fix-nvidia-screen-tearing-in-xfce-mate-kde-lxde-and-others/#/

Si vous utilisez Xrce, LXDE, MATE ou d’autres environnements de bureau n’exécutant pas de compositeur tel que Compton et que vous avez une carte NVIDIA raisonnablement nouvelle, vous risquez de vous arracher les cheveux en essayant de vous en débarrasser. écran terrible déchirure que vous rencontrez. Cette déchirure d'écran se produit généralement lorsque vous exécutez un pilote NVIDIA propriétaire sous Linux et que vous utilisez l'un des environnements de bureau susmentionnés (ou tout environnement non composé). Heureusement pour nous tous, il existe un correctif, et je vais vous expliquer comment faire en sorte que le vilain écran de NVIDIA disparaisse.

Je ne vais pas entrer dans les détails de la raison pour laquelle cela se produit parce que franchement, je n'ai aucune idée et je suis plus intéressé par la façon de le faire disparaître.

Pour moi, la déchirure est très évidente lors du déplacement des fenêtres ou du défilement dans Firefox… au point que cela me rend fou (et je suis sûr que vous aussi, sinon vous ne seriez pas ici). Alors pourquoi souffrir plus longtemps? Débarrassons-nous, d'accord?

Pour tester et voir si le correctif fonctionne correctement pour vous, ouvrez un terminal et exécutez la commande suivante (copiez-le et copiez-le ici):

nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceCompositionPipeline = On }"

Votre écran peut clignoter pendant une seconde et vous devriez alors voir une amélioration radicale. Testez Firefox et les fenêtres en mouvement. Le correctif a-t-il fonctionné pour vous? Si c'est le cas, nous devrons le rendre permanent car il ne s'agit que d'une solution temporaire pour le moment, mais ne vous inquiétez pas, je vais vous montrer comment. Si cela ne fonctionne pas pour vous, vous pouvez essayer de modifier légèrement la ligne comme suit:

nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"

Notez que dans la ligne ci-dessus, nous venons de changer le ForceCompositionPipeline en ForeFullCompositionPipeline.

Une fois que vous avez déterminé que cela résout effectivement votre problème, nous devons nous assurer qu'il est permanent. Si cela ne fonctionne pas ou cause un problème, redémarrez simplement et vous serez de retour sur votre bureau normal.

Maintenant que nous avons déterminé que notre solution fonctionne, pour résoudre le problème du déchirement d’écran une fois pour toutes, il est temps de faire en sorte que les modifications tiennent. Premièrement, nous devons nous assurer que vous avez un xorg.conf présent dans le répertoire /etc/X11. Pour le savoir, tapez la commande suivante dans un terminal et appuyez sur Enter:

ls /etc/X11

Si vous voyez un fichier xorg.conf listé comme ci-dessous, continuez.

$ ls/etc/X11 
 app-defaults xinit Xreset Xsession.d 
 gestionnaire_configuration xkb Xreset.d Xsession.options 
 polices xorg.conf Xresources xsm 
 rgb.txt xorg.conf.backup Xsession

Sinon, passez cette partie suivante, mais continuez à lire; Je vous ai couvert plus bas dans Que faire si vous ne trouvez pas un fichier /etc/X11/xorg.conf.

Pour ceux dont le fichier xorg.conf est répertorié, dans la même fenêtre de terminal, effectuez une sauvegarde du fichier en tapant la commande suivante et en appuyant sur Enter:

cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup

Ouvrez maintenant le fichier avec votre éditeur de texte préféré (je suis moi-même un fan de l'éditeur de texte nano) en tant que root et entrez la commande suivante:

Sudo nano /etc/X11/xorg.conf

Cela ouvrira votre éditeur, vous voudrez alors ajouter une ligne ci-dessous en fonction de celle qui a fonctionné pour vous dans la section Écran , de sorte qu'il se termine ressemblant à ceci:

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option "metamodes" "nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Ainsi, si des deux lignes nvidia-settings ci-dessus que nous avons testées, celle avec ForceFullCompositionPipeline, utilisez l'exemple ci-dessus. Si ForceCompositionPipeline fonctionne, utilisez-le plutôt dans l'exemple ci-dessus.

Certains d'entre vous ont peut-être déjà une option "métamodes" dans votre /etc/X11/xorg.conf, comme dans l'exemple ci-dessous pour la configuration à double moniteur:

Option "metamodes" "VGA-0: 1152x864_60 +0+0, DVI-D-0: 1680x1050_60 +0+864"

Si tel est le cas, changez simplement la ligne pour qu'elle ressemble à ceci:

Option "metamodes" "VGA-0: 1152x864_60 +0+0, DVI-D-0: 1680x1050_60 +0+864 { ForceCompositionPipeline = On }"

Redémarrez et votre larmoiement devrait être parti!

Que faire si vous ne trouvez pas de /etc/X11/xorg.conf

Maintenant, pour ceux d’entre vous qui, comme moi, n’ont pas de /etc/X11/xorg.conf (la plupart des utilisateurs d’Ubuntu, par exemple), vous pouvez être pris de panique en pensant que vous ne pourrez pas appliquer ce correctif. Ne vous inquiétez pas, j'ai eu le même problème et je ne vous laisserai pas traîner.

Sur ma machine principale, je suis sous Linux Mint 18, mais cela devrait fonctionner avec n’importe quelle distribution, je suppose. Je ne possédais pas de fichier xorg.conf; par conséquent, j’ai lancé l’outil nvidia-settings et en a généré un nouveau en accédant à la section Configuration du serveur X. Sous nom de fichier, entrez /etc/X11/xorg.conf (décochez fusionner avec exist si elle est cochée car elle n’est utile que dans l’instance où vous en avez une) puis cliquez sur Enregistrer dans le fichier de configuration X .

enter image description here
Enregistrer dans le fichier de configuration X

Cela devrait en générer un que vous pouvez ensuite modifier en suivant les étapes ci-dessus.

2
Dale Burrell

J'ai eu la déchirure de l'écran dans les deux GPU et la création du fichier 20-intel.conf dans /etc/X11/xorg.conf.d comme indiqué ici a résolu le problème de la carte Intel, mais ne m'a pas laissé passer à celui de NVIDIA.

Déchirer l’écran dans NVIDIA

Suivez ceci guide

Déchirer l'écran INTEL

Ici, j'ai implémenté le guide je viens de mentionner ci-dessus, avec le script prime-select. En reprenant le code suivant, le prime-select modifié, rend 20-intel.conf et écrit

Section "Device"
    Identifier "Intel Graphics"
    Driver "intel"
    Option "TearFree" "true"
EndSection

au fichier dans /etc/X11/xorg.conf.d lorsque Intel est choisi et supprime le répertoire /etc/X11/xorg.conf.d lorsque NVIDIA est choisi.

Editez (faites d'abord un fichier de sauvegarde en copiant et en renommant le script en prime-select.bak), le script prime-select en /usr/bin à la ligne 100 où il devrait être écrit:

def enable_profile(self, profile):
        current_profile = self._get_profile()

        if profile == current_profile:
            # No need to do anything if we're already using the desired
            # profile
            sys.stdout.write('Info: the %s profile is already set\n' % (profile))
            return True

        sys.stdout.write('Info: selecting the %s profile\n' % (profile))

        self._backup_grub_config()

        if profile == 'nvidia':
            # Always allow enabling nvidia
            # (No need to check if nvidia is available)
            self._enable_nvidia()
        else:
            # Make sure that the installed packages support PRIME
            #if not self._supports_prime():
            #    sys.stderr.write('Error: the installed packages do not support PRIME\n')
            #    return False
            self._disable_nvidia()

        # Write the settings to the config file
        self._write_profile(profile)

        return True

Et changez-le avec le code suivant (faites attention à l'indentation, c'est très important en python):

def enable_profile(self, profile):
        current_profile = self._get_profile()

        if profile == current_profile:
            # No need to do anything if we're already using the desired
            # profile
            sys.stdout.write('Info: the %s profile is already set\n' % (profile))
            return True

        sys.stdout.write('Info: selecting the %s profile\n' % (profile))

        self._backup_grub_config()

        if profile == 'nvidia':
            # Always allow enabling nvidia
            # (No need to check if nvidia is available)
            # Here starts the edited part
            try:
                os.remove("/etc/X11/xorg.conf.d/20-intel.conf")
                os.rmdir("/etc/X11/xorg.conf.d/")
            except:
                sys.stderr.write("Error removing the config files\n") 
           # Here ends the edited part
            self._enable_nvidia()


        else:
            # Make sure that the installed packages support PRIME
            #if not self._supports_prime():
            #    sys.stderr.write('Error: the installed packages do not support PRIME\n')
            #    return False
            # Here starts the edited part
            try:
                os.mkdir("/etc/X11/xorg.conf.d/")
                f=open("/etc/X11/xorg.conf.d/20-intel.conf", "w+")
         # If you want to add more options to the intel config file just edit the following line:
                f.write('Section "Device"\n\tIdentifier  "Intel Graphics"\n\tDriver\t"intel"\n\tOption\t"TearFree"\t"true"\n\tOption\t"DRI"\t"3"\nEndSection')
            except:
                sys.stderr.write("Error making conf files\n")
            # Here ends the edited part          
            self._disable_nvidia()

        # Write the settings to the config file
        self._write_profile(profile)

        return True

Maintenant, si vous êtes dans le processeur graphique Intel, passez à NVIDIA et revenez en utilisant

Sudo prime-select nvidia

déconnectez-vous, connectez-vous et tapez à nouveau

Sudo prime-select intel

et connectez-vous et déconnectez-vous.

Si vous êtes dans NVIDIA, tapez simplement:

Sudo prime-select intel

Si vous ne savez pas quel type de processeur graphique est en cours d'utilisation:

Sudo prime-select query

Vous pouvez même changer de GPU à partir de l'interface graphique offrant NVIDIA, cela n'affecte rien.

Bonne chance!

1
Enaut