Cite moi des cas pratiques où la négociation apporte des avantages et on verra si ça a vraiment un sens (je suis vraiment sceptique).
L'exemple le plus simple, c'est une application qui n'a plus le focus et donc n'a plus d'activiter. En forcant l'utilisation permanente de buffer, tu augmentes la consomation de memoire de tes applications en tache de fond. Certe on pourrait juste eviter la negociation et se dire que des qu'une application est en tache de fond, alors on peut juste droper les buffers et faire un rendu flat.
Autre exemple, ou on aurait un benefice, tu as une application avec deux listes qui necessites donc normalement 2+3*2 plans. Or ton systeme ne les fournit pas. Hors une seule des deux listes est activement anime. Si tu as une negociation dynamique, l'application va utiliser des buffers pour une seule des listes et droper les buffers asap pour l'autre liste. Par contre, sans negociation, le compositeur doit determiner quel sont les buffers qu'il vaut mieux mettre dans un plan et ceux qu'il vaut mieux "compositer". Or il va avoir du mal a le faire en avance, car il ne sait pas quel buffer va etre bouge lors de la prochaine frame. Il se retrouve a prendre une decision au hazard et peut etre faire un compositing de trop. Alternativement, le toolkit peut en permanence minimiser le nombre de plan qu'il utilise. Mais auquel cas, meme lorsque tu as un hardware capable de gerer le nombre maximum, tu te retrouves a avoir un risque de frame drop lors du debut de l'animation de la seconde liste.
[^] # Re: Gestionnaire de fenêtres léger
Posté par cedric . En réponse à la dépêche Wayland et Weston 1.4. Évalué à 2.
L'exemple le plus simple, c'est une application qui n'a plus le focus et donc n'a plus d'activiter. En forcant l'utilisation permanente de buffer, tu augmentes la consomation de memoire de tes applications en tache de fond. Certe on pourrait juste eviter la negociation et se dire que des qu'une application est en tache de fond, alors on peut juste droper les buffers et faire un rendu flat.
Autre exemple, ou on aurait un benefice, tu as une application avec deux listes qui necessites donc normalement 2+3*2 plans. Or ton systeme ne les fournit pas. Hors une seule des deux listes est activement anime. Si tu as une negociation dynamique, l'application va utiliser des buffers pour une seule des listes et droper les buffers asap pour l'autre liste. Par contre, sans negociation, le compositeur doit determiner quel sont les buffers qu'il vaut mieux mettre dans un plan et ceux qu'il vaut mieux "compositer". Or il va avoir du mal a le faire en avance, car il ne sait pas quel buffer va etre bouge lors de la prochaine frame. Il se retrouve a prendre une decision au hazard et peut etre faire un compositing de trop. Alternativement, le toolkit peut en permanence minimiser le nombre de plan qu'il utilise. Mais auquel cas, meme lorsque tu as un hardware capable de gerer le nombre maximum, tu te retrouves a avoir un risque de frame drop lors du debut de l'animation de la seconde liste.