• [^] # Re: Et GNOME?

    Posté par . En réponse au journal En finir avec la lourdeur de KDE. Évalué à 7.

    De base, compiz utilise la VSYNC pour éviter tout effet de tearing.
    Cependant, utiliser la VSYNC limite le framerate à un diviseur entier de la fréquence de rafraichissement de l'écran.
    Par exemple, pour un écran 60Hz, le temps entre 2 images avec la VSYNC activée est de 1/60s, 1/30s, 1/15s, etc...
    Si jamais l'affichage d'une image "rate" le VSYNC, il va falloir attendre le prochain. Donc typiquement, si le FPS de compiz est un tout petit peut inférieur à 60fps, on va tout de suite descendre à 30, ce qui se voit.

    Le deuxième point, c'est la détection de la vitesse de rafraichissement. Compiz utilise xrandr pour détecter la fréquence de rafraichissement de l'écran. Sur certains drivers nvidia, la fréquence de xrandr n'est pas la fréquence réelle de l'écran, mais est une clé utilisée pour pouvoir faire la disctinction entre les modes quand on utilise twinview.
    (à savoir, 2 écran en 1280x1024, une config avec l'écran A à gauche et le B à droite et une config avec l'inverse auront la même résolution dans xrandr mais une fréquence de rafraichissement différente pour permettre au driver de choisir la bonne configuration).
    Du coup, Compiz n'obtient pas la bonne fréquence de rafraichissement (typiquement, ça commence à 60 et décroit), donc utiliser un framerate inférieur à 60 FPS, donc tombe à 30 FPS avec la VSYNC activée.

    Au final, la chose la plus simple est de désactiver la VSYNC dans compiz, on peut alors voir parfois des effets de tearing, mais au moins ça va vite.
    Sinon la solution compliquée c'est de vérifier que la carte graphique arrive sans problème à afficher plus que ce qu'il y a besoin avec la VSYNC activée, avec le mode benchmark de Compiz et de vérifier que la VSYNC est bien détectée, et la forcer à la main si besoin.