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

35

J'ai ce problème qui touche apparemment beaucoup d'utilisateurs du pilote propriétaire Nvidia:

Déchirure vidéo : fines lignes horizontales (généralement près du haut de mon écran) lorsqu'il y a beaucoup de panoramique ou d'action dans la vidéo.

(Remarque: le retour au pilote nouveau par défaut 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 outputdans 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 pour déchirer avec les pilotes de prop 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ù le compositing est désactivé.

  2. Activer la synchronisation avec VBlank. Pour l'activer, je mets l'option dans nvidia-settingset le lance automatiquement comme nvidia-settings -lavec mes autres programmes à démarrage automatique. Cela semble fonctionner, car lorsque je cours 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 en utilisant 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ée. 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 de recevoir quelque chose qui ressemble glxgearsà la sortie des informations correctes. Je ne comprends pas pourquoi ça ne marche pas pour moi.

xorg.conf : http://paste.ubuntu.com/992056/

Exemple de larmoiement observé :déchirure vidéo

Chan-Ho Suh
la source
pouvez-vous coller votre fichier xorg.conf s'il vous plaît? Avez-vous essayé avec Option "TripleBuffer" "1"votre fichier xorg.conf?
fossfreedom
J'ai essayé TripleBuffer; cela semble aider un peu, mais pas beaucoup. Je vais coller mon xorg.conf.
Chan-Ho Suh
Utilisez-vous deux moniteurs?
Alistair Buxton
Même problème dans 12.10 avec Flash dans le navigateur, mais pas de déchirement dans VLC que je puisse voir, ni en faisant glisser des fenêtres. Avez-vous trouvé une solution depuis?
Bleep Bloop

Réponses:

18

Une chose à essayer peut 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 powermizer atteindre la vitesse la plus rapide.

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

Dans 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 de powermizer.

mjnichol
la source
Merci! Cela a fonctionné pour moi en utilisant le pilote propriétaire nvidia (310.19) sur Arch Linux. J'essaie de résoudre ce problème depuis un certain temps maintenant. Un tel problème étrange.
Reid
Est-il possible de contrôler ce paramètre à partir de la ligne de commande? Pour que je puisse l'activer au démarrage d'un lecteur vidéo (et le désactiver après la fermeture du lecteur)?
Panzi
1
Ah nvidia-settings -a GPUPowerMizerMode=1le met à la performance et nvidia-settings -a GPUPowerMizerMode=2à l'auto.
Panzi
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:

Lors de l'utilisation de __GL_SYNC_TO_VBLANK avec TwinView, OpenGL ne peut se synchroniser qu'avec l'un des périphériques d'affichage. cela peut entraîner une corruption par déchirement sur le périphérique d'affichage sur lequel OpenGL n'est pas synchronisé. Vous pouvez utiliser la variable d'environnement __GL_SYNC_DISPLAY_DEVICE pour spécifier le périphérique d'affichage avec lequel OpenGL doit se synchroniser. Vous devez définir cette variable d’environnement sur le nom d’un périphérique d’affichage; par exemple "CRT-1". Recherchez la ligne "Périphérique d'affichage connecté:" dans votre fichier journal X pour obtenir une liste des périphériques d'affichage présents et leurs noms.

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

__GL_SYNC_DISPLAY_DEVICE="DFP-0"

Alistair Buxton
la source
Salut Alistair. Merci pour la suggestion, mais je n'utilise qu'un seul écran.
Chan-Ho Suh
7

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

CLUTTER_PAINT = désactiver-rediriger-redessiner: désactiver-
supprimer 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

BRKsays
la source
2
Merci pour la suggestion, mais ce sont des variables d’environnement Gnome3 (telles que celles utilisées par Gnome Shell). J'utilise un gestionnaire de fenêtres très minimal, donc cela ne s'applique pas à moi. De plus, je n'ai pas de processeur Sandy Bridge.
Chan-Ho Suh
Cette solution corrige le problème de déchirure que je rencontrais sur le bureau Cinnamon (gestionnaire de fenêtres Mutter) et les pilotes nvidia 313 le 13.04. Désolé d'avoir remplacé un ancien post, mais merci.
askuhn
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 car les cartes sont différentes, mais vous pouvez l'essayer ... Le truc 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 le taux de rafraîchissement et entrez le moniteur actuel de votre moniteur manuellement.
    • J'ai activé l'option «Copier dans la texture», sans savoir si cela m'a aidé ou non.
    • Sous OpenGL: Filtre Tex. - Meilleur
    • La synchronisation avec VBlank est activée
    • Unity Plugin: (ne sait pas si cela a aidé, mais cela aurait amélioré la vitesse) Opacité du panneau - 1.0000, idem pour l'opacité du lanceur. Dash Blur - Statique
  2. Faites la magie habituelle de nvidia-settings:

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

    • Paquets: mplayer libvdpau1 vdpau-va-driver
  4. Configurer MPlayer (j'ai aussi essayé gnome-mplayer, mais le résultat n'est pas aussi difficile 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-le 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.

Amir Dizdarević
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 composition vidéo. il ne semble pas vsnc par défaut.

Il pourrait également être intéressant d’essayer différents logiciels (par exemple, vlc) pour la lecture de vidéos.

Mark Williams
la source
1
Comme je l'ai mentionné dans mon post, le passage au pilote par défaut n'est pas une option.
Chan-Ho Suh
1

Je ne sais pas si cela va vous aider, mais cela a fonctionné pour moi. Ouvrez nvidia-settings et modifiez la fréquence de Auto à 60. Appuyez ensuite sur Appliquer. 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.

Vicentec
la source
1
Comme je l'ai expliqué dans mon article, mon taux de rafraîchissement de l'affichage est de 60 Hz. En ce qui concerne votre problème, suivez cette réponse .
Chan-Ho Suh
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 d'image de la vidéo à 16: 9, la lecture s'est déroulée sans heurts.

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

Focknvidia
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 jusqu'à ce que je trouve une solution.

Ouvrez les paramètres du serveur nvidia x -> PowerMizer -> Paramètres de PowerMizer (près du bas), et où il est dit "Mode préféré", modifiez le paramètre de Adaptive à Prefer Maximum Performance.

utilisateur144925
la source
1

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

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

BrozzSama
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 plugin de sortie utilisé.

Alistair Buxton
la source
VLC a des options pour ces deux sorties et je les ai essayées toutes les deux.
Chan-Ho Suh
0

Je ne suis pas sûr de votre description si vous voyez réellement des larmoiements; Normalement, la déchirure donne l'impression que l'image est divisé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 bon exemple simulé de déchirure d'écran . Les lignes horizontales fines semblent différentes, ressemblant davantage à la combinaison d' artefacts provenant d'un mauvais désentrelacement, bien que ce 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 intéressant de vérifier si le traitement vidéo est en train d'être déchargé sur le GPU ou si le processeur fait tout le travail. Avez-vous confirmé que vous pouvez visualiser avec succès la même vidéo sur différents matériels ou sur le MacBook sous 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 pour vous en assurer. En outre, une autre suggestion non mentionnée jusqu'ici consiste à ajouter:

Option "UseEvents" "True"

aux 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 à décoder la vidéo (c'est-à-dire, pas de ralentissement saccadé, juste de la déchirure), le décodage n'a probablement aucune 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-le topdans 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:

Xorg.conf ne me semble pas anormal, mais vous pouvez vérifier que les paramètres de synchronisation vblank (sur les paramètres X Server XVideo et OpenGL) sont correctement stocké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 courez:

nvidia-settings -q=XVideoTextureSyncToVBlank -q=SyncToVBlank

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

L'autre chose que vous pourriez essayer serait 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:

https://launchpad.net/~ubuntu-x-swat/+archive/x-updates

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

https://launchpad.net/ubuntu/precise/amd64/nvidia-current ou https://launchpad.net/ubuntu/precise/i386/nvidia-current

Selon que vous avez amd64 ou i386 installé. Cliquez sur le numéro de version à droite que vous souhaitez 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:

http://launchpadlibrarian.net/90395807/nvidia-current_290.10-0ubuntu2_amd64.deb

de

https://launchpad.net/ubuntu/precise/amd64/nvidia-current/290.10-0ubuntu2

et l'a installé en utilisant:

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

Un autre point minuscule: 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, votre définition de 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 fichier xorg.conf, puis de relancer nvidia-xconfig et nvidia-settings pour voir si vous obtenez une configuration différente.

David Edwards
la source
Salut David. J'ai téléchargé une image de ma supposée déchirure :-) S'il vous plaît, dites-moi si cela correspond à "déchirer". Cela se produit à peu près dans toutes les vidéos que je regarde, alors je ne pensais pas que cela valait la peine d'entrer dans les détails. Avez-vous des suggestions sur quoi tester spécifiquement? J'ai essayé ces options (et les ai ensuite supprimées), mais peut-être qu'il y a une combinaison que je devrais essayer? Si vous pouvez regarder mon xorg.conf collé, laissez-moi savoir s'il semble y avoir quelque chose qui cloche. Comment vérifier si le GPU ne fait pas le travail? Enfin, oui, les mêmes vidéos n’ont jamais de problème sous OS X sur le même ordinateur.
Chan-Ho Suh
Le nouveau pilote ne semble pas avoir le même problème. La seule chose que j’ai pu diagnostiquer et qui semble différente est que, avec nouveau, le FPS est d’environ 600, sans aucune configuration supplémentaire nécessaire.
Chan-Ho Suh
Oui, cela ressemble à une déchirure. Désolé de douter :-)
David Edwards
J'ai ajouté d'autres suggestions en fonction de vos commentaires.
David Edwards
Malheureusement, pas de chance. Je pense que la seule chose à faire est d’attendre que Nvidia améliore le support de la GeForce 320M, bien que je me demande pourquoi Nouveau n’a aucun problème.
Chan-Ho Suh
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

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

Yanok
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 "Video" 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 cela compte.
  • Définissez les paramètres de PowerMizer sur performance, 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.

gatoatigrado
la source
0

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

utilisateur279078
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 inclut évidemment la solution "Paramètres du Powermizer en Performance", 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 SUIVRE LES INSTRUCTIONS CI-DESSOUS, C’EST TELLEMENT SIMPLE:

http://ubuntu.aspcode.net/view/635400140124705175636416/nvidia-settings-powermizer-performance-mode-on-12044-64-bit

Comme le dit l'article, créez une application de démarrage et vous êtes 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.

Spyros P.
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:

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

ab
la source
-2

Il semble que vous exécutiez 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. HD (qui nécessitent 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.

Usemos Linux
la source
Il ne semble pas que vous lisiez mon message très attentivement. Incidemment, vous ne devriez pas avoir à tuer xcompmgr. Juste ne commence pas en premier lieu.
Chan-Ho Suh