Pas forcément, non, il y a aussi des systèmes qui attaquent directement le hardware en fenêtré. On le voit avec des artefacts comme des rectangles noires ou l'impossiblité de bouger la "fénètre" de l'application.
Oh, bien sur, on peut toujours avoir des systemes qui poussent le court-circuitage jusqu'a introduire des bugs visibles comme ce que tu decris. Je pensais que l'avenement des compositeurs de bureau avait porte le coup de grace a ces systemes, car les bugs graphiques deviennent particulierement evidents, mais je veux bien croire qu'ils existent encore. Ce que je voulais dire, c'est que l'idee que je propose ici permet pour la premiere fois d'avoir tous les avantage du court-circuitage, en toute generalite meme dans une fenetre, sans aucun cout-circuitage, et donc sans bug.
De toute façon, pour une application opengl, les commandes sont transmises directement au driver, aucun serveur graphique ne traduit les commandes.
Le pilote OpenGL est un serveur graphique. Il en faut bien un, pour permettre a plusieurs applications (les clients) d'utiliser OpenGL (le serveur) en meme temps. C'est pourquoi OpenGL se positionne comme un systeme client-serveur. Concretement, quand une application fait un appel OpenGL, ca ne ressemble pas a ceci:
Application -> appel bibli client OpenGL (libGL.so.1) -> construction d'un command-buffer -> plus tard, envoi du command buffer au pilote graphique cote noyau -> mmio
[^] # Re: Lien rapide avant une réponse plus complete!
Posté par Benoit Jacob . En réponse au journal Une idée à prendre : un nouveau type de serveur d’affichage (remplaçant X ou Wayland). Évalué à 3.
Oh, bien sur, on peut toujours avoir des systemes qui poussent le court-circuitage jusqu'a introduire des bugs visibles comme ce que tu decris. Je pensais que l'avenement des compositeurs de bureau avait porte le coup de grace a ces systemes, car les bugs graphiques deviennent particulierement evidents, mais je veux bien croire qu'ils existent encore. Ce que je voulais dire, c'est que l'idee que je propose ici permet pour la premiere fois d'avoir tous les avantage du court-circuitage, en toute generalite meme dans une fenetre, sans aucun cout-circuitage, et donc sans bug.
Le pilote OpenGL est un serveur graphique. Il en faut bien un, pour permettre a plusieurs applications (les clients) d'utiliser OpenGL (le serveur) en meme temps. C'est pourquoi OpenGL se positionne comme un systeme client-serveur. Concretement, quand une application fait un appel OpenGL, ca ne ressemble pas a ceci:
Application -> appel bibli client OpenGL (libGL.so.1) -> syscall ou mmio
mais plutot a ca:
Application -> appel bibli client OpenGL (libGL.so.1) -> construction d'un command-buffer -> plus tard, envoi du command buffer au pilote graphique cote noyau -> mmio