• [^] # Re: Petite erreur

    Posté par . En réponse au journal Une idée à prendre : un nouveau type de serveur d’affichage (remplaçant X ou Wayland). Évalué à 4.

    Bien sur, il faut finir par dessiner un framebuffer. Je dis simplement qu'on peut ne dessiner que ce framebuffer final, directement a partir de command buffers fournis par les fenetres, plutot que de le dessiner a partir de framebuffers intermediaires fournis par les fenetres. Comme tu le dis,

    On est bien d'accord que dans le cas de la fenetre ayant le focus ou dans le cas d'une application plein ecran, le compositeur ne dessine rien. Il ne fait que dire a l'entite de scanout d'afficher le dit buffer directement a l'ecran. Exactement la meme operation que ferait une application qui a directement acces a l'ecran. Il n'y a pas de surcout dans ce cas.

    Maintenant en quoi le probleme change si tu as un compositeur dans l'histoire, tu as juste deux etapes supplementaire.

    Et ces etapes supplementaires rajoutent une dose de latence, non-constante, entre le moment ou les fenetres dessinent leur propre framebuffer en positionnant leurs objets animes, et le moment ou ces pixels atteignent l'ecran. C'est ca qui limite la fluidite des animations dans les fenetres, independamment des performances.

    La latence dont on parle ici est de deux context switch. Dans le pire cas, cela represente, sur une machine de moins de 5 ans, moins de 1% des 16ms que ton application va utiliser pour dessiner une frame. Les chances de manquer la deadline a cause de ces deux context switch est franchement tres tres tres basse. La variabilite reste sur juste quelques choses >1%, donc j'ai du mal a voir en quoi tu peux imaginer que c'est la que ce trouve le probleme. Est-ce que tu as des mesures qui montre des problemes de ce cote la ?

    Je pense que ton probleme pour l'instant, c'est que tu n'as pas de benchmark qui montre ton probleme. Si tu essayes de convaincre qui que ce soit qui connait le sujet et bosse dans le domaine, ils auront beaucoup de mal a te croire voir meme a faire l'effort de faire un benchmark eux-meme pour verifier tes dires. Essaye d'en construire un et d'analyser le comportement du systeme. Je serais interresse de voir des traces de latence ou l'on voit le probleme de stabilite d'une animation dont tu parles. Je te conseille de le construire au dessus de Weston. Cela te donnera aussi une bonne idee de comment marche la stack graphique.

    ceci ne garantit en rien la fluidite reelle des animations, qui depend du positionnement de la geometrie dessinee dans la fenetre en fonction du temps reel d'affichage a l'ecran.

    Alors la, je ne te suis pas du tout du tout ! En quoi le positionnement d'une fenetre va avoir le moindre impact sur les performances !?! Relis mes postes plus haut sur l'utilisation des plan hardware.