web-dev-qa-db-fra.com

UBUNTU 19.04 Screen Tearing PC

J'ai installé Ubuntu 19.04 sur mon PC:

  • INTEL i7 8700k
  • NVIDIA Gigabyte GeForce GTX 1080 Ti AORUS Waterforce @ NVIDIA-driver-418
  • Moniteur ASUS PB287Q @ 3840x2160 Pixel

Au tout début de l'utilisation d'Ubuntu, j'ai remarqué ce déchirement d'écran gênant. Je pensais que c'était uniquement dans Firefox, mais quand j'ai secoué la fenêtre, j'ai vu une ligne horizontale qui a cassé la fenêtre en deux parties (le déchirement). Cela se produit dans tous les types de fenêtres ou d'applications. J'ai beaucoup lu et c'est ce que j'ai fait jusqu'à présent:

  • Activer mise à l'échelle fractionnaire , car je ne pouvais pas lire à 100% et cela m'a tué à 200%.
    Je l'ai réglé à 150%: gsettings set org.gnome.mutter experimental-features "['x11-randr-fractional-scaling']"
  • ForceFullCompositionPipeline sur On. D'abord dans nvidia-settings, plus tard dans /usr/share/X11/xorg.conf.d/10-nvidia.conf, car j'ai remarqué qu'un redémarrage ou un arrêt réinitialise le paramètre.

Sortie de nvidia-settings -q CurrentMetaMode:

Attribute 'CurrentMetaMode' (EST:1.0): id=50, switchable=yes, source=RandR ::
  DPY-7: nvidia-auto-select @5120x2880 +0+0
  {Transform=(1.333328,0.000000,0.000000,0.000000,1.333328,0.000000,0.000000,0.
  000000,1.000000), ViewPortIn=5120x2880, ViewPortOut=3840x2160+0+0,
  ResamplingMethod=Bilinear, ForceCompositionPipeline=On,
  ForceFullCompositionPipeline=On}

J'ai joint mon 10-nvidia.conf . Il est très étrange que si je déclenche cela, le déchirement soit immédiatement réparé, mais je dois le réappliquer de temps en temps même si je configure mon 10-nvidia.conf:

Sudo nvidia-settings --assign CurrentMetaMode="nvidia-auto-select
  @5120x2880 +0+0 { ViewPortIn=5120x2880, ViewPortOut=3840x2160+0+0,
  ResamplingMethod=Bilinear, ForceCompositionPipeline=On,
  ForceFullCompositionPipeline=On }"
4
Erik Steiner

Je suppose que j'ai finalement trouvé une solution pour moi. Avec les étapes ci-dessous, j'ai pu obtenir une expérience sans déchirure et configurer mon écran HiDPI pour obtenir un contenu lisible. Je voulais éviter le mode de mise à l'échelle GNOME sous les paramètres et les périphériques d'affichage (voir les problèmes ci-dessous entre GNOME et NVIDIA) et résoudre la mise à l'échelle en configurant correctement le DPI. Cela n'a pas fonctionné comme je l'avais imaginé (la mise à l'échelle DPI, le déchirement est fixe), mais je cherche vos commentaires. Peut-être que cela peut fonctionner après tout.

J'ai dû faire face aux problèmes suivants:

  • Après l'installation d'Ubuntu, je n'ai rien pu lire sur mon écran. L'utilisation d'un écran 4K à 28 "nécessitait une configuration HiDPI sans utiliser de jumelles.
  • Configurer une mise à l'échelle dans le menu Paramètres Gnome à 200 était trop et 100 pas acceptable. Mise à l'échelle fractionnelle était OK.
  • La prochaine chose était le déchirement. Tout semblait saccadé et toutes les fenêtres avaient cette ligne horizontale de Doom. J'ai donc mis en place un 10-nvidia.conf.
  • 10-nvidia.conf Ne l'a corrigé qu'en partie de temps en temps après un redémarrage ou un arrêt, le déchirement était de retour.
  • Gnome Scaling et le pilote NVIDIA se sont interférés.
    • J'ai remarqué que mon écran est devenu noir pendant quelques secondes lorsque j'ai ouvert les paramètres nvidia.
    • Flameshot (l'application de capture d'écran) ne fonctionnait pas car l'écran est devenu noir lorsque j'ai essayé de prendre une capture d'écran. Appuyez sur Echap pour mettre fin à l'action "prendre une capture d'écran" et l'écran a réapparu.
    • Je voulais utiliser un profil icc-color-profile pour mon moniteur et parfois il était appliqué et parfois non. J'ai remarqué le léger changement de couleur.
  • Lorsque j'ai appliqué une mise à l'échelle dans les paramètres Gnome, j'ai remarqué que ViewPortIn dans les paramètres nvidia a changé en 5120x2880 même si j'ai 3840x2160. Cela est lié à la façon dont la mise à l'échelle DPI est effectuée dans Gnome (corrigez-moi si je me trompe). Fait intéressant, si j'ai changé ViewPortIn en 3840x2160 (égal à une mise à l'échelle de 100%), Flameshot fonctionnait à nouveau.
  • Nightmode ne fonctionnait pas, dès qu'il a été activé, il a été désactivé en lançant simplement le gestionnaire de fichiers ou cela s'est produit pour d'autres raisons aléatoires.

Cependant, avec tous ces problèmes à l'esprit, je voulais tout remettre à la valeur par défaut et recommencer.

  • J'ai tout supprimé dans 10-nvidia.conf Sauf le Section "OutputClass" Initial
  • J'ai exécuté Sudo nvidia-settings, Accédé à "Configuration d'affichage du serveur X", sélectionné "Configuration" et choisi "Désactivé". J'ai confirmé la boîte de dialogue et j'ai choisi d'appliquer autant que possible. J'ai fait la même chose avec nvidia-settings Par la suite (exécuté sans root après avoir fermé les paramètres NVIDIA), pour être sûr.
  • De retour dans les paramètres de Gnome, j'ai sélectionné une mise à l'échelle de 100% et exécuté gsettings reset org.gnome.mutter experimental-features Pour désactiver la mise à l'échelle fractionnaire.

Un redémarrage et plusieurs demandes Google plus tard, je voulais avoir une configuration qui éviterait la mise à l'échelle de Gnome et ferait tout ce travail DPI dans le pilote NVIDIA.


Configuration de 10-nvidia.conf :
J'ai obtenu les bases de ce fichier en ouvrant nvidia-settings -> "X Server Display Configuration" -> "Save to X Configuration File" -> "Show preview ..." et en copiant tout cela des trucs.
Avec Sudo gedit /usr/share/X11/xorg.conf.d/10-nvidia.conf, J'ai collé les sections de "Afficher l'aperçu ..." au contenu existant. NE PAS REMPLACER .

J'ai ensuite ajouté/modifié le contenu suivant (ne copiez pas et ne collez pas mon fichier :):

  • Pour réparer les déchirures, c'est la magie [référence] :
    Option "metamodes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On}"
  • J'ai ensuite voulu configurer la mise à l'échelle DPI:
    Option "DPI" "161 x 158"
    Je pensais que si je le configurais correctement, j'obtiendrais une mise à l'échelle DPI correcte en faisant ceci:
    • Il est très probable que xdpyinfo | grep -B2 resolution Produira resolution: 96x96 dots per inch, Mais ce n'est pas réellement le DPI correct. Avec whtyger's post j'ai calculé mon DPI:
      randr | grep -w connected DP-4 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 621mm x 341mm
    • Le calcul:
      x = 62,1 cm
      y = 34,1 cm

      x = 62,1 cm/2,54 = 24,4488 taille en pouces
      y = 34,1 cm/2,54 = 13,4252 taille en pouces

      x = 3860 px/24,4 pouces = 1581972 DPI
      y = 2160 px/13,4 pouces = 161,1940 DPI
    • Malheureusement, j'ai oublié quelque chose ou ma façon d'appliquer une mise à l'échelle DPI correcte ne fonctionne pas. Cependant, je devais encore me pincer les yeux (petite taille de police).
    • J'ai exécuté xrandr --dpi 144 Pour définir la mise à l'échelle DPI à 144%. Le PC n'a pas réagi après la commande. Strg + Alt + F1 m'a amené à l'écran de connexion et j'ai pu me reconnecter où j'ai obtenu mon 144 DPI. Cependant, cela n'a pas changé le facteur d'échelle des éléments d'interface utilisateur.
    • Je ne voulais toujours pas utiliser la mise à l'échelle GNOME et j'ai donc utilisé GNOME Tweak Tool pour augmenter la mise à l'échelle de la police. Avec la formuledesired_DPI / 96 J'ai obtenu mon facteur de mise à l'échelle 1,50 (144 DPI/96). La plupart des éléments de bureau et d'application sont lisibles maintenant et j'évite d'utiliser le mode de mise à l'échelle GNOME sous les périphériques d'affichage.
    • J'ai ajouté Option "Composite" "Enable" Et espérais obtenir une meilleure performance sans déchirure. Avec la correction magique en place, je n'ai pas remarqué de meilleures performances car le déchirement est déjà corrigé avec ForceCompositionPipeline
    • avec Sudo nvidia-settings J'ai navigué vers "Paramètres OpenGL" et désactivé "Sync to VBlank" et activé "Autoriser le retournement".


Réflexions finales:

La sensation générale est bien meilleure et la déchirure est morte. Cependant, je ne peux toujours pas croire qu'un 60 Hz soit aussi lent. Donc, quand je secoue les fenêtres comme un enfer fou, je vois toujours beaucoup de fantômes de la fenêtre. Je peux à nouveau utiliser Flameshot! Si j'utilise le mode nuit et que je démarre les paramètres nvidia, le mode nuit se termine lorsque quelque chose interfère avec ce mode. Heureusement, Windows mène la même bataille.
J'espère que je n'ai pas trop écrit et que je pourrais aider l'un ou l'autre avec son problème. J'ai hâte de recevoir vos commentaires.


Références:
Comment activer la mise à l'échelle fractionnaire dans Ubuntu 19.04
Comment gérer un écran Hi-Dpi sous Linux
Comment trouver et changer le DPI de l'écran?
GNOME Tweak Tool
HiDPI
Paramètres DPI du pilote propriétaire Nvidia
Xorg
déchirement d'écran avec un GPU nVidia plus récent


10-nvidia.conf - NE PAS COPIER/COLLER:

Section "OutputClass"
    Identifier "nvidia"
    MatchDriver "nvidia-drm"
    Driver "nvidia"
    Option "AllowEmptyInitialConfiguration"
    ModulePath "/usr/lib/x86_64-linux-gnu/nvidia-418/xorg"
EndSection

Section "Module"
    Load           "dbe"
    Load           "extmod"
    Load           "type1"
    Load           "freetype"
    Load           "glx"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Ancor Communications Inc ASUS PB287Q"
    HorizSync       24.0 - 160.0
    VertRefresh     30.0 - 80.0
    Option         "DPMS"
    Option         "DPI" "161 x 158"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 1080 Ti"
    Option         "UseEdidDpi" "False"
    Option         "DPI" "161 x 158"
    EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-7"
    Option         "metamodes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On}"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
        Modes       "3840x2160"
    EndSubSection
EndSection

Section "Extensions"
    Option         "Composite" "Enable"
EndSection
2
Erik Steiner