dimanche 7 avril 2013

Supprimer le tearing sous Xfce avec Compton

Si vous avez activé le compositing de Xfwm/Xfce pour avoir de jolies ombres et effets de transparence appliqués à vos fenêtres (ce qui est le cas par défaut sous Xubuntu), vous avez peut-être remarqué que cela entraine un effet de tearing lors de la lecture de vidéos, ou lors d’un défilement de page dans Firefox.

Qu’est-ce que le tearing ? C’est lorsque l’image affichée par votre moniteur change alors qu’il est en train de l’afficher ; on peut à ce moment voir un bout de la nouvelle image en haut de l’écran et un bout de l’ancienne image en dessous. Cela produit un décalage horizontal visible lors des scènes où la caméra bouge beaucoup dans les films, ou dans les jeux.

Pour résoudre ce problème, j’ai désactivé le compositing de Xfwm et installé Compton à la place. En bonus, j’ai maintenant un très agréable effet de fondu lors de l’ouverture ou la fermeture des fenêtres, ainsi que lors du passage d’un workspace à un autre.

Pour désactiver le compositing de Xfwm, tapez cette commande dans un terminal :

xfconf-query -c xfwm4 -p /general/use_compositing -s false

Pour installer Compton, vous pouvez sous Arch Linux utiliser le package compton-git de l’AUR, ou sous Xubuntu taper ces lignes dans un terminal :

sudo add-apt-repository ppa:richardgv/compton
sudo apt-get update && sudo apt-get install compton

(Source : http://lubuntublog.blogspot.com.es/p/compton.html )

Ensuite il suffit de taper cette commande :

compton -c -f -o 1.0 -I 0.1 -O 0.1 -C -i 0.95 -z --vsync opengl --unredir-if-possible --shadow-exclude "! name~=''" -b

Et hop :


Explication rapide des paramètres :

-c -C -o 1.0 : active les ombres
-f -I 0.1 -O 0.1 : active l’effet de fondu lorsqu’une fenêtre s’ouvre ou se ferme
-i 0.95 -z : rend les fenêtres inactives légèrement transparentes
--vsync opengl : supprime le tearing
--unredir-if-possible : optimisation pour les fenêtres plein écran
--shadow-exclude "! name~=''" : corrige le problème de fenêtre noire lors de l’utilisation de alt-tab (ça désactive l’ombre pour toutes les fenêtres sans nom)

Pour que Compton soit lancé à chaque démarrage, il faut ajouter cette commande dans ~/.xinitrc (sous Arch), ou dans ~/.xsession sous Xubuntu (je n’ai pas testé). Vous pouvez aussi utiliser les options de session et démarrage qui sont accessibles dans le gestionnaire de préférences.

Je peux maintenant regarder des vidéos avec VLC sans avoir à désactiver le compositing auparavant, et ça c’est top.

Mise à jour du 13 avril : Il y a encore de temps en temps un léger tearing avec la méthode que j’utilise ("--vsync opengl" ou "--vsync drm"). Pour complètement le supprimer, vous pouvez essayer "--backend glx --vsync opengl-swc --paint-on-overlay" à la place ; mais personnellement je reste sur "--vsync opengl" car le backend glx (opengl) entraîne un ralentissement de l’affichage sur mon Core i3 de première génération.

Mise à jour du 14 avril : Avec "--backend glx --vsync opengl-swc --paint-on-overlay --glx-no-stencil", l’affichage se fait à nouveau en 60 fps et il ne semble y avoir qu’une seule frame de retard à l’affichage.

2 commentaires:

  1. Impec ! Ta maj du 14 avril fonctionne très bien chez moi (Fedora 19, Intel HD 4000). Merci !

    RépondreSupprimer
  2. Content que ça t’ait été utile :)

    RépondreSupprimer