Comment puis-je arrêter le déchirement vidéo? (Pilote de prop Nvidia, gestionnaire de fenêtres non composites)

35

J'ai ce problème qui touche apparemment beaucoup de personnes utilisant le pilote propriétaire Nvidia:

Video tearing: fine horizontal lines (usually near the top of my display) when there is a lot of panning or action in the video.

(Remarque: le retour au pilote par défaut nouveau n'est pas une option, car sa gestion de l'alimentation, apparemment inexistante, draine ma batterie plusieurs fois plus rapidement).

J'ai essayé Totem, Parole et VLC, et tous se déchirent. Le meilleur résultat a été d'utiliser X11 output dans VLC, mais il se déchire toujours avec une action relativement modérée.

Matériel: MacBook Air 3,2 - équipé d'un Nvidia GeForce 320M.

Il existe deux correctifs courants permettant de déchirer avec les pilotes prop de Nvidia:

  1. Désactivez la composition , car les pilotes propriétaires de Nvidia ne fonctionnent généralement pas bien avec les gestionnaires de fenêtres de composition sous Linux (Compiz est une exception à ma connaissance). Mais j'utilise un gestionnaire de fenêtres extrêmement léger (gestionnaire de fenêtres impressionnant) qui n'est même pas capable de composer (ni d'effets sympas). J'ai également ce problème dans Xfce, où la composition est désactivée.

  2. Activation de la synchronisation avec VBlank. Pour l'activer, je définis l'option dans nvidia-settings , puis je la lance automatiquement sous la forme nvidia-settings -l avec mes autres programmes de démarrage automatique. Cela semble fonctionner, car lorsque je lance glxgears , je reçois:

    $ glxgears
     Running synchronized to the vertical refresh.  The framerate should be
    approximately the same as the monitor refresh rate.
    303 frames in 5.0 seconds = 60.500 FPS
    300 frames in 5.0 seconds = 59.992 FPS
    

    Et quand je vérifie le taux de rafraîchissement à l'aide de nvidia-settings :

    $ nvidia-settings -q RefreshRate
    Attribute 'RefreshRate' (wampum:0.0; display device: DFP-2): 60.00 Hz.
    

    Tout cela suggère que la synchronisation avec VBlank est activé. Si je comprends bien, cela est précisément conçu pour arrêter de se déchirer, et le problème de beaucoup de gens est même d'obtenir quelque chose comme glxgears pour afficher les informations correctes. Je ne comprends pas pourquoi ça ne marche pas pour moi.

xorg.conf : lien

Exemple de déchirement observé: :

    
posée Chan-Ho Suh 26.04.2012 - 07:37
la source

17 réponses

18

Une chose à essayer pour que puisse fonctionner. Ouvrez nvidia-settings et allez à la section powermizer. Choisissez "Performances maximales" dans la liste déroulante, et vous devriez voir votre niveau de puissance de l’énergie électrique augmenter à la vitesse la plus rapide.

Une fois que vous avez fait cela, essayez la vidéo.

Par le passé, j’avais constaté que vsync ne fonctionnait pas lorsque la carte nvidia était réglée sur le paramètre le plus lent du powermizer.

    
réponse donnée mjnichol 12.09.2012 - 08:00
la source
11

Si vous utilisez deux moniteurs, le pilote nvidia ne peut être synchronisé qu'avec le vblank de l'un des écrans, à moins qu'ils utilisent exactement le même taux de rafraîchissement. Et je veux dire exactement . Ceci est effectivement impossible si les deux moniteurs ne sont pas du même type. Si le pilote nvidia se synchronise sur le mauvais affichage (par exemple, la synchronisation sur l'affichage intégré lorsque vous souhaitez regarder un film sur le téléviseur externe), vous pouvez annuler son choix. A partir de la documentation du pilote nvidia:

When using __GL_SYNC_TO_VBLANK with TwinView, OpenGL can only sync to one of the display devices; this may cause tearing corruption on the display device to which OpenGL is not syncing. You can use the environment variable __GL_SYNC_DISPLAY_DEVICE to specify to which display device OpenGL should sync. You should set this environment variable to the name of a display device; for example "CRT-1". Look for the line "Connected display device(s):" in your X log file for a list of the display devices present and their names.

J'ai défini ceci de manière permanente dans / etc / environment - ajoutez simplement quelque chose comme ceci sur une nouvelle ligne:

__GL_SYNC_DISPLAY_DEVICE="DFP-0"

    
réponse donnée Alistair Buxton 21.05.2012 - 03:25
la source
7

Moi aussi, je souffrais de déchirure de la vidéo dans mon processeur Intel bridge bridge. Cela a fonctionné pour moi. Je mets les lignes suivantes dans "/ etc / environment" -

CLUTTER_PAINT = disable-clipped-redraws: désactiver-culling
CLUTTER_VBLANK = True

et cela a fonctionné. Appuyez sur Entrée à la fin et copiez-collez ces lignes. Cela peut nécessiter un redémarrage. Essayez-le.

    
réponse donnée BRKsays 26.04.2012 - 11:10
la source
4

Voici comment j'ai résolu les problèmes de vsync pour la vidéo sur mon ordinateur portable ASUS K50IN avec le NVIDIA GeForce G102M . Je suis conscient que votre kilométrage peut varier puisque les cartes sont différentes, mais vous pouvez l'essayer ... L'astuce pour moi était d'utiliser des barebones MPlayer (mais pas MPlayer2!). Cela ne fonctionne avec aucun des autres joueurs.

  1. Faites la magie de compiz habituelle dans ccsm

    • Sous Composite, désactivez Détecter la fréquence d'actualisation et entrez manuellement la fréquence actuelle de votre moniteur.
    • J'ai activé l'option "Copier vers la texture", je ne suis pas sûr que cela aide ou non.
    • Sous OpenGL: Filtre Tex. - Meilleur
    • La synchronisation avec VBlank est activée
    • Unity Plugin: (je ne sais pas si cela a aidé quelqu'un, mais cela améliorerait la vitesse) Opacité du panneau - 1.0000, identique pour l’opacité du lanceur. Dash Blur - Static
  2. Faites la magie habituelle des paramètres nvidia:

    • Activer la synchronisation avec VBlank sous les paramètres XVideo et OpenGL
    • Définissez les paramètres d'image sur Haute qualité dans les paramètres OpenGL
    • Sous Configuration de l'affichage, définissez votre résolution manuellement, puis définissez votre taux de rafraîchissement de Auto à votre taux de rafraîchissement actuel.
  3. Installez mplayer et vdpau (PAS mplayer2 !!! Ceci est nouveau et expérimental et, pour moi du moins, était lent avec VDPAU)

    • Packages: mplayer libvdpau1 vdpau-va-driver
  4. Configurez MPlayer (j'ai aussi essayé gnome-mplayer, mais le résultat n'a pas été aussi uniforme que j'ai essayé)

    • Ouvrez le fichier ~ / .mplayer / config ou créez-le si vous ne l'avez pas. Vous devrez peut-être également créer le dossier .mplayer . Il devrait contenir ceci:
[default]
ao=pulse
vo=vdpau

Changez ao en alsa si vous avez supprimé le son pulsé.

Redémarrez X en vous reconnectant / déconnectant.

Essayez, YMMV comme toujours. J'ai constaté que cela pouvait ne plus fonctionner, en particulier dans les versions non-LTS ou avec les pilotes bêta, en fonction du codec de la vidéo.

    
réponse donnée Amir Dizdarević 23.10.2012 - 21:44
la source
1

Cela a fonctionné pour moi sur un pilote ATI radeon, cela pourrait donc fonctionner pour vous:

Ajouter un fichier de configuration (par exemple, cas /etc/X11/xorg.conf.d/20-nouveau.conf)

composé de ceci:

Section "Device"
    Option      "EXAVsync"  "True"
    Option      "GLXVBlank" "True"
    Identifier  "Nvidia card"
    Driver      "nouveau"
EndSection

EXA est le cadre de la composition vidéo. il ne semble pas vsnc par défaut.

Il pourrait également valoir la peine d'essayer différents logiciels (par exemple, vlc) pour lire des vidéos.

    
réponse donnée Mark Williams 26.04.2012 - 08:03
la source
1

Je ne sais pas si cela va vous aider, mais cela a fonctionné pour moi. Ouvrez nvidia-settings et changez la fréquence de Auto à 60. Et appuyez sur Apply. Cela a résolu mes problèmes avec le déchirement de la vidéo et le scintillement du bureau en général. Malheureusement, je dois le faire chaque fois que je redémarre.

    
réponse donnée vicentec 30.04.2012 - 14:54
la source
1

Je rencontrais les mêmes problèmes de déchirure vidéo. Dans mon cas, j'ai observé que le démantèlement se produit uniquement en mode plein écran. Le problème semble être de mettre la vidéo à l'échelle en plein écran. Chaque fois que la taille originale de la vidéo lue et les taux de résolution de l'écran ne correspondent pas, la vidéo est déchirée. Régler le rapport de format dans smplayer sur le rapport de format d'affichage a résolu le problème pour moi.

par exemple. Je lisais une vidéo de taille 1280x714 en plein écran, il y avait une déchirure dans la vidéo. Lorsque j'ai forcé le format de la vidéo à 16: 9, la lecture s’est déroulée sans heurt.

Je dois noter que la cause première du problème persiste et est agaçante. Étant donné que les proportions ne sont pas conservées dans leur originalité, la vidéo présentera certaines déformations. Cependant, il vaut mieux regarder sans larmes;)

    
réponse donnée focknvidia 15.10.2012 - 23:40
la source
1

J'utilise Ubuntu 12.04LTS 64bit et j'ai un nvidia gtx 660ti.

Je souffrais de déchirure de la vidéo pendant plus d'un mois avant de trouver une solution.

Ouvrez les paramètres du serveur nvidia x - > PowerMizer - > Paramètres PowerMizer (près du bas), et où il est indiqué "Mode préféré", remplacez le paramètre Adaptatif par Préférences optimales

.     
réponse donnée user144925 28.03.2013 - 04:28
la source
1

La mise à niveau de PPA vers la version 319 a résolu le problème suivant:

Si après le démarrage, il s'exécute en mode de secours, lancez la récupération et exécutez sudo nvidia-xconfig . Bonne lecture vidéo!

    
réponse donnée BrozzSama 05.05.2013 - 22:21
la source
0

Si vous n'utilisez pas le double moniteur, il existe une autre possibilité. Il existe deux types de synchronisation avec vblank: un pour XVideo et un pour OpenGL. Dans nvidia-settings, l’un se trouve sous "Paramètres X Server XVideo" et l’autre sous "OpenGL / Paramètres". Lequel affecte réellement votre logiciel de lecture vidéo peut dépendre du plug-in de sortie utilisé.

    
réponse donnée Alistair Buxton 21.05.2012 - 03:54
la source
0

D'après votre description, je ne suis pas sûr de savoir si vous voyez réellement des déchirures; Normalement, la déchirure donne l'impression que l'image est scindée horizontalement en deux ou trois sections, les parties ne correspondant pas. Cela se produit car la partie supérieure de l'image et la partie inférieure ne proviennent pas de la même image de la vidéo. Wikipedia a un exemple bien simulé de déchirure de l'écran . Les lignes horizontales fines semblent différentes, plus comme peignant des artefacts d'un mauvais désentrelacement, bien qu'il soit peut-être difficile à décrire. .

Vous ne mentionnez aucun détail de la vidéo que vous essayez de visionner, telle que sa résolution, son encodage, si elle est entrelacée ou progressive, et si vous avez activé le désentrelacement dans VLC. Il peut également être utile de vérifier si le traitement vidéo est déchargé sur le GPU ou si la CPU effectue tout le travail. Avez-vous confirmé que vous pouvez visionner la même vidéo avec un matériel différent ou sur le MacBook avec OS X?

Vous dites que vous avez essayé avec la composition désactivée sur XFCE, mais cela ne ferait probablement pas de mal d'essayer d'ajouter:

Section "Extensions"
    Option "Composite" "Disable"
EndSection

sur votre /etc/X11/xorg.conf juste pour être sûr. En outre, une autre suggestion qui n’a pas encore été mentionnée est d’ajouter:

Option "UseEvents" "True"

dans les sections Device ou Screen de votre xorg.conf.

MISE À JOUR:

La capture d'écran ci-jointe montre clairement le déchirement! Si le lecteur continue de décoder la vidéo (c'est-à-dire, pas de ralentissement saccadé, mais uniquement de déchirement), le décodage n'a probablement pas d'importance. VLC a une option sur la page des paramètres vidéo dans les préférences pour activer et désactiver la "sortie vidéo accélérée"; s'il est allumé, il devrait utiliser le GPU pour le décoder. Si vous basculez ce paramètre dans VLC et exécutez top dans un terminal pendant la lecture de la vidéo, vous devriez constater une différence d'utilisation du processeur entre les deux paramètres. Vous pouvez également essayer de désactiver tout désentrelacement dans VLC pour voir si cela fait une différence.

J'ai deux autres suggestions:

Je ne vois aucun problème évident avec votre xorg.conf, mais vous pouvez vérifier que les paramètres de synchronisation avec vblank (sur les paramètres X Server XVideo et les paramètres OpenGL) sont correctement enregistrés dans .nvidia-settings-rc. Certaines personnes exécutent nvidia-settings en tant que root ou utilisent gksudo (pour pouvoir mettre à jour /etc/X11/xorg.conf), mais cela peut entraîner le stockage des paramètres dans /root/.nvidia-settings-rc plutôt que ~ /. nvidia-settings-rc. Cela devrait être votre propre copie, mais pour éviter tout doute, vous devriez vérifier les deux paramètres de vblank lors de l'exécution de nvidia-settings en tant que vous; n'oubliez pas de cliquer sur "Enregistrer la configuration actuelle" dans la partie inférieure des paramètres. Si vous exécutez:

nvidia-settings -q=XVideoTextureSyncToVBlank -q=SyncToVBlank

alors vous devriez voir que les deux paramètres sont réglés sur 1. Vous devriez aussi probablement vérifier que le chargement automatique des paramètres fonctionne cependant en redémarrant et en exécutant à nouveau la commande ci-dessus.

Vous pouvez également essayer de mettre à jour / rétrograder vos pilotes nvidia. J'ai déjà eu des problèmes avec des mises à jour mineures de la version du pilote. il existe définitivement des "bonnes" et des "mauvaises" versions des pilotes nvidia et les dernières ne sont pas toujours les meilleures. Vous pouvez essayer de mettre à niveau à l’aide du PPA X-swat:

lien

Et vous pouvez essayer de passer à une version antérieure disponible pour 12.04:

lien ou lien

selon que vous avez amd64 ou i386 installé. Cliquez sur le numéro de version à droite que vous voulez essayer, téléchargez le fichier .deb puis installez-le avec:

sudo dpkg --install <name of file>.deb

Par exemple, à cause d'un bogue nvidia non lié, j'ai dû télécharger ceci:

lien

de

lien

et l'a installé à l'aide de:

sudo dpkg --install nvidia-current_290.10-0ubuntu2_amd64.deb

Un autre petit point: une autre réponse mentionne le passage du taux de rafraîchissement de Auto à 60Hz et vous dites qu'il est déjà réglé sur 60Hz. Cependant, votre xorg.conf attaché a nvidia-auto-select dans les métamodes (dans la section Screen), ce qui suggère qu'il n'est pas corrigé. Cependant, la définition de votre moniteur n’offre que la version 60.0, c’est peut-être sans importance. Il peut être intéressant de sauvegarder et de déplacer votre xorg.conf, puis de relancer nvidia-xconfig et nvidia-settings pour voir si vous obtenez une configuration différente.

    
réponse donnée David Edwards 21.05.2012 - 23:15
la source
0

En plus de l'article précédent de David: si vous souhaitez installer les derniers pilotes propriétaires de NVidia à l'aide de PPA X-swat, vous pouvez également l'ajouter à vos sources apt:

sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update
sudo apt-get install nvidia-current

Ceci installera la dernière version et vous tiendra au courant de leurs livraisons.

    
réponse donnée Yanok 07.10.2012 - 10:11
la source
0

Désolé, cette réponse est un peu pour openSuSE, pas pour Ubuntu, mais je l’ai finalement fait fonctionner avec ces modifications,

  • Désactiver temporairement les effets de composition / fenêtre (alt + shift + f12 dans openSuSE)
  • Utilisez VLC avec le paramètre "Vidéo" réglé sur "Sortie vidéo OpenGL (expérimental)". "Sortie vidéo accélérée (superposition)" est également cochée pour moi. J'utilise VLC 2.1.1 si c'est important.
  • Définissez les paramètres de PowerMizer sur performances, comme dans la réponse de mjnichol
  • Définissez les paramètres OpenGL sur High, comme dans la réponse d'Amir Dizdarević

J'espère que ça aide! J'imagine qu'il existe certains paramètres pour que cela fonctionne avec la composition, mais je recommande au moins de désactiver la composition pour les tests. Ma configuration est un moniteur 4K et une carte graphique GTX 650.

    
réponse donnée gatoatigrado 20.01.2014 - 03:39
la source
0

Vous pouvez résoudre ce problème pour VLC en modifiant la sortie vidéo en "OpenGL GLX".

    
réponse donnée user279078 14.05.2014 - 16:44
la source
0

J'utilise un système d'exploitation élémentaire Luna 64 bits (basé sur Ubuntu 12.04 LTS) et j'ai eu le même problème. En cherchant autour de moi, j'ai finalement trouvé une méthode qui fonctionne avec WORKS et qui comprend bien évidemment la solution "Paramètres du Powermizer en performances", comme beaucoup d'autres personnes l'ont déjà dit.

Le problème est que, après le redémarrage, ces paramètres sont restaurés sur le paramètre "Auto" par défaut et que, apparemment, l'application Nvidia-Settings n'enregistre pas correctement les nouveaux paramètres de Powermizer. Ne pas s'inquiéter !!!

SUIVEZ LES INSTRUCTIONS CI-DESSOUS, C’EST TELLEMENT SIMPLE:

lien

Comme le dit l'article, créez une application de démarrage et vous voilà prêt à partir !!!! CROYEZ-MOI CELA FONCTIONNE!!! Merci beaucoup à Aquablue pour cette publication et bien sûr à Mike du service clientèle de Nvidia qui a fourni la solution !!!

Pour info, j'ai un Phenom II X4, 8 Go de RAM DDR3, Corsair SSD, GTX 650, Elementary Luna 64 bits.

    
réponse donnée Spyros P. 14.12.2014 - 08:58
la source
0

Je pouvais choisir la fenêtre avec mon curseur, déplacer la fenêtre et réparer le déchirement. Cela ressemble donc à certains problèmes de rappel dans X.

Pour moi, le correctif vlc était le suivant:

vlc - > outils - > préférences - > vidéo - > dans le menu déroulant "sortie", choisissez x11 video output(XCB)

    
réponse donnée abr 13.06.2015 - 03:49
la source
-2

Il semble que vous utilisiez un gestionnaire de fenêtres léger (probablement openbox). Si tel est le cas, il est possible que vous utilisiez xcompmgr en tant que gestionnaire composite pour obtenir des effets de bureau tels que des ombres, des transparences, etc. Dans mon cas, désactiver xcompmgr a résolu le même problème: déchirer en regardant des vidéos, en particulier celles en HD (nécessitant beaucoup de ressources en processeur). Apparemment, une déchirure s’est produite à cause d’un bogue dans xcompmgr, un projet longtemps abandonné. Pour désactiver xcompmgr, vous pouvez exécuter "killall xcompmgr". Cela devrait fonctionner. J'espère que ça aide! Saludos! Pablo.

    
réponse donnée Usemos Linux 22.05.2012 - 05:17
la source

Lire d'autres questions sur les étiquettes