J'ai utilisé de nombreuses variantes de Linux (principalement des dérivés de Debian) depuis plus d'une décennie maintenant. Un problème que je n'ai pas vu résoudre de manière satisfaisante est le problème de la déchirure horizontale, ou du fait que Vsync n'est pas correctement implémenté.
Je dis cela parce que j'utilise 5 distributions différentes sur 4 ordinateurs différents avec différents moniteurs et cartes graphiques Nvidia / AMD / ATI / Intel; à chaque fois, il y a eu un problème de déchirure de la vidéo avec même un léger mouvement.
C'est un gros problème, d'autant plus que même Windows XP n'a pas ces problèmes sur du matériel moderne. Si quelqu'un souhaite utiliser Linux pour quoi que ce soit, pourquoi voudrait-il que des défauts constants apparaissent lorsque vous faites quelque chose de non-CLI?
J'imagine que peu de développeurs sont au courant de ce problème ou suffisamment attentifs pour le résoudre. J'ai essayé à peu près tous les compositeurs, et le mieux qu'ils puissent faire est généralement de minimiser le problème sans pour autant l'éliminer. Ne devrait-il pas être aussi simple que de synchroniser avec le taux de rafraîchissement du moniteur? Y a-t-il des politiques de la communauté de l'OSS qui empêchent quiconque de valider un code corrigeant cela?
Chaque fois que j’ai demandé de l’aide dans le passé, cette question est traitée comme un cas avancé (ce que j’ai du mal à croire qu’elle est donnée le nombre de fois où j’ai reproduit le problème) ou bien j’obtiens des solutions possibles. tout au plus minimiser la déchirure.
Réponses:
Tout cela est dû au fait que le serveur X est obsolète, mal adapté au matériel graphique actuel et que toute la communication directe par carte vidéo est réalisée sous forme d'extension ("patch") sur l'ancien noyau gonflé. Le serveur X ne fournit aucun moyen de synchronisation intégré entre le rendu de la fenêtre par l’utilisateur et l’écran affichant une fenêtre. Le contenu change alors en cours de rendu. C’est l’un des problèmes bien connus du serveur X (il a beaucoup, tout le modèle de ce que fait le serveur et est obsolète - gestion des événements dans les sous-fenêtres, métadonnées sur les fenêtres, primitives graphiques pour le dessin direct, etc.). Les toolkits de widgets veulent surtout passer sous silence tout cela, mais la déchirure reste un problème car il n’existe aucun mécanisme pour le gérer. Des problèmes supplémentaires surviennent lorsque vous avez plusieurs cartes qui nécessitent des pilotes différents,
Wayland, qui essaie de remplacer X avec un certain manque d'enthousiasme, prend en charge une synchronisation pédiatrique vsync en son centre, et il est annoncé que chaque image est parfaitement parfaite.
Si vous google rapidement "vidéo de wayland déchirant", vous trouverez plus d'informations sur tout.
la source
+1
car «X est le problème, jetez un coup d'œil à Wayland». Très sérieux, c'est la bonne réponse.wayland video tearing
: PLes déchirures d'écran apparaissent principalement pour deux raisons: des pilotes qui n'y sont pas encore et l'absence de vsync avec certains gestionnaires de fenêtres.
En ce qui concerne les pilotes, les pilotes libres et les pilotes propriétaires prennent en charge la composition en déchirement libre (nvidia et amd). Sachez par exemple que l'activation d'un bureau sans catalyseur dans catalyseur (
fglrx
) peut entraîner une perte de trame et des retards, elle est donc généralement désactivée par défaut. En ce qui concerne le pilote ouvert, vsync devrait être activé par défaut. Donc, le problème de déchirement d'écran peut être résolu en essayant différents pilotes et en les configurant.En ce qui concerne les gestionnaires de fenêtres, il est connu qu'Openbox, Awesome et d'autres wms légers ne prennent pas en charge sans déchirure. XFCE (xfwm, pour être spécifique) l'a corrigé dans les versions récentes, 4.11 / 12 ont maintenant Vsync. Les environnements de bureau principaux ne présentent également aucun problème de déchirement, y compris GNOME, KDE, Unity et Cinnamon.
Si vous rencontrez encore des problèmes de déchirure d'écran, vous pouvez essayer un autre gestionnaire de composition tel que Compton ou Kwin. Kwin est le gestionnaire de fenêtres pour KDE et j’ai déjà utilisé kwin dans XFCE quand il ne supportait pas vsync et que cela fonctionnait très bien.
La solution ici est donc l'expérimentation, ce qui est cassé dans une combinaison driver / wm peut fonctionner dans un autre. Je pense que la situation va bientôt s'améliorer car les drivers open-source sont de plus en plus avancés et le passage à wayland peut permettre de se débarrasser d'anciens problèmes avec Xorg.
la source
Si vous utilisez un pilote nvidia> = 365.20, activez l’option "Forcer le pipeline de composition complet" dans
nvidia-settings
.la source
TearFree
option que vous pouvez mettre dans laDevice
section correspondante . Je viens de l'essayer et les résultats obtenus sont très similaires à ceux de Full Composition Pipeline de nvidia.J'ai eu une forte déchirure ici et maintenant c'est résolu.
Après avoir lu cette explication ( merveilleuse explication ) du fonctionnement d’un serveur Xorg, j’ai réalisé que celui-ci peignait les mises à jour de fenêtre directement sur la carte mémoire à tout moment, à moins que vous n’utilisiez un gestionnaire de fenêtres activé pour la composition.
Lorsque la composition est activée, le gestionnaire de fenêtres rassemble toutes les modifications apportées par les différentes mémoires tampons de fenêtre, crée une image résultante pour tout l'écran et la dépose sur la carte d'affichage en un seul coup.
La plupart des distributions modernes ont un gestionnaire de fenêtres de composition. KWin pour KDE, Mutter pour Gnome, Muffin pour Cinnamon, Marco pour Mate, xfwm pour XFCE, etc. Toutefois, la composition peut être désactivée pour économiser des ressources.
Dans mon cas, la composition a été désactivée dans KDE4. Une fois activé, le déchirement a disparu. EDIT : Je devais également modifier les options KWin de la stratégie VSync de Automatique à Réutiliser le contenu de l'écran afin de supprimer le déchirement, comme expliqué dans ce rapport de bogue spécifique à Kwin .
Les options du pilote peuvent également être un facteur. Dans mon cas, les options par défaut fonctionnent bien. Arch Wiki possède une excellente documentation sur les options pour différentes cartes d'affichage telles que les cartes Intel ou les cartes NVIDIA .
Pour vérifier si une option est activée dans votre configuration xorg actuelle, vous pouvez consulter le journal. Par exemple, pour vérifier si DRI est activé:
la source
xfwm4-tweaks-settings
commande pour afficher l'application tweaker et sur l'onglet Compositor, vous pouvez trouver l'option ci-dessus. L'activer a fait une énorme différence et peut être vérifié ici: vsynctester.com/index.html ( active / désactive la fonctionnalité pendant l'affichage de l'animation). Ce n'est pas parfait, il y a quelques images manquées, mais beaucoup mieux que quand il est éteint.La solution est la suivante: Linux Mint 17.3 MATE vient maintenant avec Compton .
Allez juste à
Desktop Settings
->Windows
->Window Manager
et choisissezMetacity + Compton
. C'est ça.J'ai une carte vidéo AMD et ça marche comme un pilote open source.
Pour le pilote AMD propriétaire, lorsque les vidéos HTML5 sont agrandies en plein écran, il est possible que la couleur bleue remplisse tout l’écran. Pour résoudre ce problème, créez
chmod +x
le script ci-dessous:Exécutez-le chaque fois que vous redémarrez le système, mais n'essayez pas de l'ajouter à
Startup Applications
- cela risquerait d'interrompre le démarrage pour une raison quelconque.la source
Dans Peppermint Linux, accédez à Préférences> Centre de contrôle de Peppermint, sélectionnez Effets de bureau et activez les options "Activer les effets de bureau" et "Synchroniser le dessin avec le blanc vertical".
la source
J'utilise Linux Mint XFCE et ce problème m'a frustré pendant un bon bout de temps. J'ai trouvé une solution pour mon ordinateur portable avec la carte graphique intégrée Intel et cela a résolu le problème de la déchirure . Pour mon ordinateur de bureau avec la carte NVIDIA, cette astuce ne peut pas fonctionner. Mais j'ai juste trouvé le coupable.
J'ai immédiatement amélioré les performances lorsque j'ai désactivé la composition de fenêtre. Voici comment vous pouvez faire cela:
Accédez à Tous les paramètres / Réglages du gestionnaire de fenêtres / Compositeur et désactivez tout cela.
Gardez à l'esprit que ceci est spécifique à la distribution et que le mien est Mint avec XFCE et je ne sais pas comment trouver la même chose sur d'autres distributions.
la source