• [^] # Re: Zarb

    Posté par (site web personnel) . En réponse au journal GTK+ et OpenGL pour bientot ??. Évalué à 2.


    Désolé d'être désagréable, mais tu fumes quoi ?

    Ho lui il prend des opiacés de temps à autre, mais là il est normal.


    Ce n'est pas Compiz qui fait la transparence, c'est le serveur X11. Compiz "configure" le serveur X11 (lui dit quel est la transparence de telle ou telle fenêtre, etc).

    La drogue c'est mal ©. Compiz communique un peu niveau affichage avec le serveur X pour obtenir un contexte OpenGL, après à supposer qu'on soit en DRI ou équivalent, compiz n'envoie plus rien au serveur X si ce n'est peut être les entrées utilisateurs.


    Effectivement on n'est pas obligé d'utiliser OpenGL pour faire de la transparence. On n'est pas obligé non plus d'utiliser OpenGL pour faire de la 3D. Mais sans OpenGL les performances sont lamentables.
    Juste un petit exemple. 4 fenêtres en transparence de 1600x1200 en (A)RGB32 : presque 30 Mo !
    La transparence est appliquée en cascade.
    Lecture des deux premières fenêtre => 15 Mo.
    Résultat temporaire => 7 Mo.
    Lecture du résultat temporaire et lecture de la troisième fenêtre => 15 Mo
    ....

    Lecture = 15 *3 = 45 Mo
    Ecriture = 7 * 3 = 21 Mo
    Soit pour une image = 66 Mo !
    Si une fenêtre est une vidéo à 25 fps et qu'elle est au fond on a au minimum => 66*25 = 1,6 Go/s !

    Certes les derniers CPU peuvent peut-être supporter ça. Mais c'est très très limite.

    Les cartes graphique savent bouffer ça à une vitesse "terrifiante".
    Sans parler de 3D, l'autre chose que font les cartes graphiques à une vitesse "terrifiante", c'est le redimensionnement d'image et l'antialiasing (qui peut être très très coûteux si fait avec le cpu de la carte mère).

    Donc OK, OpenGL n'est pas nécessaire pour la transparence. Mais il faut être con pour s'en passer.

    Très belle démonstration... Dommage que y a un "petit" détail, tu considère que la seule manière d'utiliser un GPU sous Linux c'est OpenGL. Pas de pot c'est strictement faux.

    NB : Je connais bien Direct3D (je développe avec) et je ne suis pas naïf dans ce domaine.

    Et moi je connais les bus assez bien (je les utilise tous les jours).