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/
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 enter
ctrl+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
`
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
enForeFullCompositionPipeline
.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 XsessionSinon, 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 .
Enregistrer dans le fichier de configuration XCela devrait en générer un que vous pouvez ensuite modifier en suivant les étapes ci-dessus.
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!