3 votes

Déchirure d'écran sur les cartes graphiques Intel avec une configuration à deux moniteurs Nvidia et Intel

Je sais qu'il y a beaucoup de réponses concernant le screen tearing des cartes graphiques intel ou nvidia mais j'ai parcouru toutes les discussions que j'ai pu trouver et voici ce que j'ai trouvé (j'utilise ubuntu 20.04)

Ma configuration Nvidia Gtx 1050 ti avec le dernier pilote stable nvidia 470 avec un moniteur 1080p

Un autre moniteur est connecté par VGA à une carte graphique intel et fonctionne en 1366x1768 à 60 hertz.

Au départ, les deux moniteurs présentaient des déchirures d'écran, mais j'ai corrigé les déchirures d'écran pour le moniteur nvidia avec

nvidia-settings --assign CurrentMetaMode="nvidia-auto-select @1920x1080 +0+0 {ViewPortIn=1920x1080, ViewPortOut=1920x1080+0+0, ForceCompositionPipeline=On, ForceFullCompositionPipeline=On, ForceCompositionPipeline = On}"

et l'ajouter aux applications de démarrage, car l'enregistrement nvidia-settings a /etc/X11/xorg.conf désactive le moniteur graphique intel

Donc maintenant que le tearing nvidia est corrigé, le tearing intel est toujours présent, les réponses que j'ai trouvées pour corriger le tearing d'écran sont les suivantes

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

et en l'ajoutant à /etc/X11/xorg.conf.d/20-intel.conf ce qui ne fonctionne pas dans mon cas.

Je n'ai aucune suggestion à faire. Cette question a déjà été posée plusieurs fois sur askubuntu, mais il semble qu'il n'y ait pas de réponse. voir ceci , et ceci aussi ils ont le même problème que le mien

c'est aussi mon Sortie xrandr

Screen 0: minimum 8 x 8, current 3286 x 1080, maximum 32767 x 32767
DVI-D-0 disconnected (normal left inverted right x axis y axis)
HDMI-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 480mm x 270mm
   1920x1080     74.97 +  60.00    60.00*   59.94    50.00    60.05    60.00    50.04  
   1680x1050     59.95  
   1600x900      60.00  
   1440x900      59.89  
   1400x1050     59.98  
   1280x1024     75.02    60.02  
   1280x800      59.81  
   1280x720      60.00    59.94    50.00  
   1152x864      75.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    59.94    59.93  
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-1-1 disconnected (normal left inverted right x axis y axis)
HDMI-1-2 disconnected (normal left inverted right x axis y axis)
DP-1-1 disconnected (normal left inverted right x axis y axis)
HDMI-1-3 disconnected (normal left inverted right x axis y axis)
DP-1-2 connected 1366x768+1920+142 (normal left inverted right x axis y axis) 410mm x 230mm
   1366x768      59.79*+
   1280x720      60.00  
   1024x768      75.03    70.07    60.00  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   640x480       75.00    72.81    66.67    59.94  
   720x400       70.08  
  1280x720 (0x1ce) 74.250MHz +HSync +VSync
        h: width  1280 start 1390 end 1430 total 1650 skew    0 clock  45.00KHz
        v: height  720 start  725 end  730 total  750           clock  60.00Hz
  1024x768 (0x1d2) 78.750MHz +HSync +VSync
        h: width  1024 start 1040 end 1136 total 1312 skew    0 clock  60.02KHz
        v: height  768 start  769 end  772 total  800           clock  75.03Hz
  1024x768 (0x1d3) 65.000MHz -HSync -VSync
        h: width  1024 start 1048 end 1184 total 1344 skew    0 clock  48.36KHz
        v: height  768 start  771 end  777 total  806           clock  60.00Hz
  800x600 (0x1d4) 49.500MHz +HSync +VSync
        h: width   800 start  816 end  896 total 1056 skew    0 clock  46.88KHz
        v: height  600 start  601 end  604 total  625           clock  75.00Hz
  800x600 (0x1d5) 40.000MHz +HSync +VSync
        h: width   800 start  840 end  968 total 1056 skew    0 clock  37.88KHz
        v: height  600 start  601 end  605 total  628           clock  60.32Hz
  640x480 (0x1d8) 31.500MHz -HSync -VSync
        h: width   640 start  656 end  720 total  840 skew    0 clock  37.50KHz
        v: height  480 start  481 end  484 total  500           clock  75.00Hz
  640x480 (0x1d9) 25.175MHz -HSync -VSync
        h: width   640 start  656 end  752 total  800 skew    0 clock  31.47KHz
        v: height  480 start  490 end  492 total  525           clock  59.94Hz

S'agit-il d'un bogue ? toute suggestion serait très utile, merci !

EDIT 1 : informations suggérées pour sancho.s RéintégrerMonicaCellio Réponse de la Commission

shantanu@shantanu-pc:~$ inxi -F
    System:    Host: shantanu-pc Kernel: 5.11.0-37-generic x86_64 bits: 64 Desktop: Gnome 3.36.9 
               Distro: Ubuntu 20.04.3 LTS (Focal Fossa) 
    Machine:   Type: Desktop System: Gigabyte product: H310M H v: N/A serial: <superuser/root required> 
               Mobo: Gigabyte model: B250M H v: x.x serial: <superuser/root required> 
    CPU:       Topology: Quad Core model: Intel Core i5-7400 bits: 64 type: MCP L2 cache: 6144 KiB 
               Speed: 800 MHz min/max: 800/3500 MHz Core speeds (MHz): 1: 1318 2: 1513 3: 2666 4: 1741 
    Graphics:  Device-1: Intel HD Graphics 630 driver: i915 v: kernel 
               Device-2: NVIDIA GP107 [GeForce GTX 1050 Ti] driver: nvidia v: 470.63.01 
               Display: x11 server: X.Org 1.20.11 driver: modesetting,nvidia unloaded: fbdev,nouveau,vesa 
               resolution: 1920x1080~75Hz, 1366x768~60Hz 
               OpenGL: renderer: NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2 v: 4.6.0 NVIDIA 470.63.01 
    Audio:     Device-1: Intel 200 Series PCH HD Audio driver: snd_hda_intel 
               Device-2: NVIDIA GP107GL High Definition Audio driver: snd_hda_intel 
               Sound Server: ALSA v: k5.11.0-37-generic 
    Sensors:   System Temperatures: cpu: 32.8 C mobo: 29.8 C gpu: nvidia temp: 38 C 
               Fan Speeds (RPM): N/A gpu: nvidia fan: 48%

Sortie 2 :

shantanu@shantanu-pc:~$ lspci -knn | grep -EA3 'VGA|3D|Display'
00:02.0 Display controller : Intel Corporation HD Graphics 630 
    DeviceName:  Onboard IGD
    Subsystem: Gigabyte Technology Co., Ltd HD Graphics 630
    Kernel driver in use: i915
--
01:00.0 VGA compatible controller: NVIDIA Corporation GP107 [GeForce GTX 1050 Ti] 
    Subsystem: ZOTAC International (MCO) Ltd. GP107 [GeForce GTX 1050 Ti] 
    Kernel driver in use: nvidia
    Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia 

Sortie 3 :

shantanu@shantanu-pc:~$ grep "LoadModule" /var/log/Xorg.0.log
[     6.323] (II) LoadModule: "glx"
[     6.557] (II) LoadModule: "nvidia"
[     6.560] (II) LoadModule: "nouveau"
[     6.561] (II) LoadModule: "modesetting"
[     6.562] (II) LoadModule: "fbdev"
[     6.562] (II) LoadModule: "vesa"
[     6.577] (II) LoadModule: "fb"
[     6.578] (II) LoadModule: "wfb"
[     6.579] (II) LoadModule: "ramdac"
[     6.580] (II) LoadModule: "fbdevhw"
[     6.581] (II) LoadModule: "glxserver_nvidia"
[     7.510] (II) LoadModule: "glamoregl"
[     7.683] (II) LoadModule: "fb"
[     7.770] (II) LoadModule: "dri2"
[     7.977] (II) LoadModule: "libinput"

Sortie 4 :

    22: None 00.0: 10002 LCD Monitor                                
  [Created at monitor.125]
  Unique ID: UNIQUE ID
  Parent ID: PARENT ID
  Hardware Class: monitor
  Model: "SAMSUNG S19B150"
  Vendor: SAM "SAMSUNG"
  Device: eisa "S19B150"
  Serial ID: "SERIAL ID"
  Resolution: 720x400@70Hz
  Resolution: 640x480@60Hz
  Resolution: 640x480@67Hz
  Resolution: 640x480@72Hz
  Resolution: 640x480@75Hz
  Resolution: 800x600@56Hz
  Resolution: 800x600@60Hz
  Resolution: 800x600@72Hz
  Resolution: 800x600@75Hz
  Resolution: 832x624@75Hz
  Resolution: 1024x768@60Hz
  Resolution: 1024x768@70Hz
  Resolution: 1024x768@75Hz
  Resolution: 1280x720@60Hz
  Resolution: 1366x768@60Hz
  Size: 410x230 mm
  Year of Manufacture: 2012
  Week of Manufacture: 38
  Detailed Timings #0:
     Resolution: 1366x768
     Horizontal: 1366 1436 1579 1792 (+70 +213 +426) +hsync
       Vertical:  768  771  774  798 (+3 +6 +30) +vsync
    Frequencies: 85.50 MHz, 47.71 kHz, 59.79 Hz
  Driver Info #0:
    Max. Resolution: 1366x768
    Vert. Sync Range: 56-75 Hz
    Hor. Sync Range: 30-81 kHz
    Bandwidth: 85 MHz
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #19 (Display controller)

2voto

Il se peut que ce que vous avez utilisé en /etc/X11/xorg.conf.d/20-intel.conf ne suffit pas. Sans avoir de détails sur votre système, je vais d'abord vous suggérer quelques trucs à essayer. Ensuite, quelques informations à afficher sur votre système.

Solutions possibles

Poste dans le corps de la question le résultat des options suivantes (veuillez copier+coller) verbatim le cas échéant) :

  1. Conducteur . Peut-être que le pilote que vous utilisez dans

    Driver      "intel"

    devrait être modifié. Essayez plutôt modesetting ou i915 (redémarrer après chaque modification). Fuente .

  2. Autres options . Inclure une ou plusieurs options supplémentaires (remplacer XXXX avec votre chauffeur)

     Section "Device"
         Identifier "Intel Graphics"
         Driver "XXXX"
         Option "TearFree"    "true"
         Option "TripleBuffer" "true"
         Option "AccelMod"    "uxa"
         Option "DRI"         "3"
     EndSection
  3. Section du module . Ajouter

     Section "Module"
         Load "dri3"
     EndSection

    ci-dessus Section "Device" . Fuente .

  4. Supprimez la mise à l'échelle fractionnelle pour vérifier si elle s'ajoute à la combinaison de facteurs conduisant au déchirement de l'écran. Fuente .

  5. Suppression du pilote intel a été suggéré avec un retour d'information positif. Je considérerais cela comme un dernier recours à essayer.

Plus d'informations sur votre système

Poste dans le corps de la question la sortie des commandes suivantes :

$ inxi -F
$ lspci -knn | grep -EA4 'VGA|3D|Display'
$ grep "LoadModule" /var/log/Xorg.0.log
$ hwinfo --monitor

Vous pourriez avoir besoin

$ sudo apt install inxi hwinfo

Notes :

  1. Considérez ces suggestions comme un guide et non comme un manuel d'instructions étape par étape.
  2. Prenez le temps de lire les articles liés, de bricoler un peu et de publier ce que vous obtenez.
  3. Essayez de lire les messages de sortie et d'interpréter ce qu'ils vous disent. Faites même quelques recherches sur le web. Surtout en ce qui concerne les avertissements et les erreurs.
  4. Évitez de "raconter" ce que vous avez obtenu ; copiez-collez le résultat. Incluez une capture d'écran lorsque vous utilisez une interface graphique.
  5. Inclure également dans le copier-coller la commande exacte que vous avez saisie.
  6. Si la sortie d'une commande spécifique est très longue à poster, utilisez pastebin.

1voto

Shantanu Bedajna Points 978

Après des semaines de bricolage et d'efforts pour comprendre ce qui ne va pas et après sancho.s RéintégrerMonicaCellio Je me suis dit que deux moniteurs connectés avec deux cartes graphiques différentes étaient peut-être condamnés à cause du screen tearing du côté d'intel.

Mais je suis tombé par hasard sur nvidia-prime J'ai commencé à lire sur le sujet, et ce que j'ai compris, c'est qu'il permet à l'un ou l'autre gpu de rendre l'écran de l'autre gpu. Il est donc possible pour nvidia d'utiliser son traitement pour rendre tout ce qui est connecté du côté d'intel.

Les étapes que j'ai suivies sont donc les suivantes

Étape 1 : permettre pipeline de composition de force nvidia

vous devez le faire en utilisant les scripts de démarrage, les autres méthodes ne fonctionnent pas, et n'essayez pas de le sauvegarder dans xorg.conf, si vous l'activez à partir de nvidia-settings cela désactivera l'affichage intel au prochain redémarrage.

NE PAS FAIRE CELA enter image description here

J'ai trouvé ce script qui détecte automatiquement la configuration de votre écran et active pipeline de composition de force nvidia

nvidia-settings --assign CurrentMetaMode="$(nvidia-settings -q CurrentMetaMode -t|tr '\n' ' '|sed -e 's/.*:: \(.*\)/\1\n/g' -e 's/}/, ForceCompositionPipeline = On}/g')" > /dev/null

Mais il a nécessité quelques modifications de ma part, copiez cette partie et exécutez-la

"$(nvidia-settings -q CurrentMetaMode -t|tr '\n' ' '|sed -e 's/.*:: \(.*\)/\1\n/g' -e 's/}/, ForceCompositionPipeline = On}/g')"

il produira quelque chose comme ceci

shantanu@shantanu-pc:~$ "$(nvidia-settings -q CurrentMetaMode -t|tr '\n' ' '|sed -e 's/.*:: \(.*\)/\1\n/g' -e 's/}/, ForceCompositionPipeline = On}/g')"
DPY-1: nvidia-auto-select @1920x1080 +0+0 {ViewPortIn=1920x1080, ViewPortOut=1920x1080+0+0, ForceCompositionPipeline=On, ForceFullCompositionPipeline=On, ForceCompositionPipeline = On} : command not found

retirer le DPY-1: et le : command not found pièces

et modifiez la commande avec les valeurs générées comme suit (en remplaçant simplement la valeur éditée par la valeur précédemment "à l'intérieur de la commande de citation")

nvidia-settings --assign CurrentMetaMode="nvidia-auto-select @1920x1080 +0+0 {ViewPortIn=1920x1080, ViewPortOut=1920x1080+0+0, ForceCompositionPipeline=On, ForceFullCompositionPipeline=On, ForceCompositionPipeline = On}"

Étape 2 : l'ajouter à vos scripts de démarrage enter image description here

Étape 3 : installer nvidia-prime

sudo apt install nvidia-prime

passer à nvidia en utilisant prime pour que tout le redering soit fait par nvidia l'écran intel sera rendu par nvidia aussi

sudo prime-select nvidia

Le seul inconvénient est que l'utilisation du gpu nvidia sera plus importante car il effectue le rendu pour deux moniteurs, alors qu'intel se contente de le restituer.

Il s'agit d'un problème de longue date qui a fait l'objet de nombreuses discussions, et peut-être que cela aidera quelqu'un qui cherche de l'aide.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X