1

Bonjour,

Je ne comprends pas très précisément comment fonctionnent toutes les couches graphiques (X, OpenGL, etc.), et j'aimerais que l'affichage de mon bureau graphique soit réalisé par la carte graphique ?
C'est facile à faire ? Il y a des choses particulières à mettre dans le xorg.conf ?
J'ai une nVidia (avec le driver proprio).
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

2

je crois que c'est ce que font Compix/Xgl/Aiglx etc, c'est de l'opengl donc géré directement en hard par la carte graphique
Tekken Punch !!! beuh Love Hina déjà fini ... :'(
Japan-A-Radio
Vertyos@| les modos sont des enculés
Vertyos@| y'a des queues partout, un vrai bonheur'

3

Quelles sont les différences entre tous les trucs que tu as cités ? Quelle est la meilleure solution ? (j'utilise KDE 4)
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

4

kwin4 ne gère pas tout ça directement?

5

fabetal_ (./2) :
je crois que c'est ce que font Compix/Xgl/Aiglx etc, c'est de l'opengl donc géré directement en hard par la carte graphique

Compiz Oui, Xgl Non Aiglx Non, ça n'a rien à voir. tongue
AIGLX c'est l'extension du pauvre pour gérer plusieurs contextes OpenGL accélérés par le matériel en même temps, comme les driver Nvidia bien avant, mais en moins bien.
Xgl c'est un serveur X qui fonctionne par dessus un serveur X, mais qui émule AIGLX (entre autres, ça fait un peu mieux en fait) en se basant sur le serveur X précédent.
A noter que "bizarrement" AIGLX est moins rapide et moins puisant que XGL pour pas mal de choses... Par contre il a un (très léger) avantage: il est moins buggué.

Après si tu as une carte NVidia tu n'as besoin ni de Aiglx ni de Xgl et tu auras une meilleure accélération qu'avec tous les autres types de carte (sisi...)

Compiz (+ Aquamarine pour les bordures de fenêtre compatibles kde) supporte en tout cas le mode d'affichage "nvidia", mais il est possible que KWin4 se limite simplement à AIGLX/Composite... (Donc si c'est le cas c'est moins bien)

Si tu as des soucis avec Xorg tu auras peut-être 2-3 trucs à modifier (surtout spécifique au fabricant de ta carte graphique), mais en principe il devrait fonctionner bien "par défaut", et le seul truc que tu as à faire c'est ou bien installer compiz et le faire fonctionner comme il faut (peut-être le plus difficile), ou bien cocher la bonne case dans la config de kwin (faut aller chercher sur google si tu veux un peu mieux que juste composite je crois)
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

6

Pourquoi je n'ai pas besoin de Xgl avec une carte nVidia ?

Sinon, j'ai activé ce qu'il faut dans KWin pour avoir des « effets de bureau », donc oui les décorations sont affichées avec OpenGL (donc utilisent le matériel, j'ai bien compris ?). Mais qu'en est-il pour le contenu même des fenêtre. C'est X qui dessine, il sait utiliser ma carte graphique ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

7

je crois que les derniers drivers proprio nvidia intègrent déjà la couche Xgl (ou un truc dans le genre grin)
Tekken Punch !!! beuh Love Hina déjà fini ... :'(
Japan-A-Radio
Vertyos@| les modos sont des enculés
Vertyos@| y'a des queues partout, un vrai bonheur'

8

Sasume (./6) :
Pourquoi je n'ai pas besoin de Xgl avec une carte nVidia ?

Car les driver nVidia supportent nativement AIGLX. (En fait il n'y a que les anciens driver ATI qui ne supportaient pas AIGLX... Ceci dit Xgl te permet de rediriger les overlay (XVideo) vers des textures ce qui offre un confort non négligeable au détriment d'un support OpenGL correct)
Sinon, j'ai activé ce qu'il faut dans KWin pour avoir des « effets de bureau », donc oui les décorations sont affichées avec OpenGL (donc utilisent le matériel, j'ai bien compris ?). Mais qu'en est-il pour le contenu même des fenêtre. C'est X qui dessine, il sait utiliser ma carte graphique ?
A priori si les bordures sont dessinées avec OpenGL, la fenêtre entière est dessinée en OpenGL... Enfin c'est la théorie de base...
Avec AIGLX: il faut d'abord dessiner la fenêtre dans un "pixmap", ce qui ce fait (sauf erreur de ma part) plus ou moins normalement grâce à X, et ensuite il faut transférer ta fenêtre vers la mémoire vidéo (c'est ici que ça coince au niveau fluidité). En fait AIGLX ne sert en réalité "à rien" dans le principe du "bureau 3d", tout est fait grâce à l'extension OpenGL "TextureFromPixmap" et le reste c'est des détails glauques...
Après je ne sais pas vraiment quel niveau d'accélération réel offre X pour la 2D (vu que c'est un gros bordel), et je ne sais pas dans quels conditions ils s'appliquent (enfin il faut au moins que le driver les supporte wink) mais tu dois en bénéficier au moins en partie tongue
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

9

Bon, ça doit être bon alors.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

10

AIGLX, c'est l'implémentation de Texture From Pixmap des pilotes libres. Ce que propose nVidia n'est strictement parlant pas AIGLX, mais quelque chose d'équivalent (leur propre implémentation de la fonctionnalité Texture From Pixmap).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

11

AIGLX != texture from pixmap...
J'irai même jusqu'à dire que ça n'a aucun rapport... Et puis si, nVidia supporte AIGLX puisque leur driver fonctionne avec un Xorg par défaut (AIGLX est par défaut activé, et les driver ne le supportant pas (ancien modèle du DRI) ne peuvent pas accélérer la 3D quand c'est le cas)...
La seule différence c'est que pour que texture from pixmap (implémentation pourrie) fonctionne sur les driver, dont les driver libres, il faut avoir recours à AIGLX... Tandis qu'avec nvidia texture from pixmap (implémentation efficace) fonctionnera aussi sans AIGLX... (Direct rendering).
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

12

GoldenCrystal (./11) :
La seule différence c'est que pour que texture from pixmap (implémentation pourrie) fonctionne sur les driver, dont les driver libres, il faut avoir recours à AIGLX...

Selon http://en.wikipedia.org/wiki/AIGLX, c'est le contraire, c'est AIGLX qui est implémenté par dessus Texture From Pixmap, pas l'inverse.
AIGLX est par défaut activé, et les driver ne le supportant pas (ancien modèle du DRI) ne peuvent pas accélérer la 3D quand c'est le cas

C'est faux, le pilote fglrx n'a longtemps pas supporté AIGLX et pourtant il marchait avec les mêmes binaires de X.Org X11 que les pilotes AIGLX.

Bref, une fois de plus tu racontes n'importe quoi sur un sujet que tu ne comprends pas, retourne dans ton monde DirectX.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

13

Kevin Kofler (./12) :
GoldenCrystal (./11) :
La seule différence c'est que pour que texture from pixmap (implémentation pourrie) fonctionne sur les driver, dont les driver libres, il faut avoir recours à AIGLX...

Selon http://en.wikipedia.org/wiki/AIGLX, c'est le contraire, c'est AIGLX qui est implémenté par dessus Texture From Pixmap, pas l'inverse.

N'importe quoi, AIGLX permet de faire fonctionner l'extension, et pas l'inverse, trouve toi de meilleures sources que wikipedia.
AIGLX est par défaut activé, et les driver ne le supportant pas (ancien modèle du DRI) ne peuvent pas accélérer la 3D quand c'est le cas

C'est faux, le pilote fglrx n'a longtemps pas supporté AIGLX et pourtant il marchait avec les mêmes binaires de X.Org X11 que les pilotes AIGLX.

Bref, une fois de plus tu racontes n'importe quoi sur un sujet que tu ne comprends pas, retourne dans ton monde DirectX.
Je pense avoir un peu plus touché à ça que toi, ayant possédé une carte graphique ATI, alors si tu sais rien, ne dis rien, merci.
Mais je le répète: NON, le format des DRI de fglrx < 8.42.3 n'est PAS compatible AIGLX et ne donne AUCUNE d'accélération 3D lorsque celui-ci est activé.

Une fois encore, tu montres que tu n'y connais rien à la partie graphique du système, ce qui n'a rien d'étonnant pour quelqu'un qui pense que 11fps est un fps suffisant pour n'importe quel jeu...
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

14

(on peut accélérer la 3D sans AIGLX, on ne peut pas par contre accélérer Compiz & co sans un equivalent de AIGLX)
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

15

GoldenCrystal (./13) :
N'importe quoi, AIGLX permet de faire fonctionner l'extension, et pas l'inverse, trouve toi de meilleures sources que wikipedia.

Source? Moi j'en ai cité une, alors j'attends la tienne...
Mais je le répète: NON, le format des DRI de fglrx < 8.42.3 n'est PAS compatible AIGLX et ne donne AUCUNE d'accélération 3D lorsque celui-ci est activé.

roll

Ce que tu dis là est une évidence, mais ça ne contredit en rien ce que j'ai dit: les mêmes versions de X.Org X11 (les mêmes binaires, sans aucune recompilation) qui gèrent l'AIGLX permettent aussi d'utiliser le 3D (sans AIGLX évidemment roll) avec les pilotes qui ne gèrent pas l'AIGLX.

Et donc "Et puis si, nVidia supporte AIGLX puisque leur driver fonctionne avec un Xorg par défaut" est incorrect comme logique.

Et puis de toute façon, on se bat sur de la nomenclature, on est bien d'accord que nVidia propose les fonctionnalités de AIGLX, avec une implémentation différente de celle des pilotes libres. Que tu appelles cette implémentation "AIGLX" ou autrement n'a au final aucune importance.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

16

[cite]
Kevin Kofler (./15) :
GoldenCrystal (./13) :
N'importe quoi, AIGLX permet de faire fonctionner l'extension, et pas l'inverse, trouve toi de meilleures sources que wikipedia.
Source? Moi j'en ai cité une, alors j'attends la tienne...

http://www.freesoftwaremagazine.com/articles/accelerated_x?page=0%2C0 C'est à la fois la plus complète et la plus superficielle que j'ai trouvé je pense pas qu'il y ait beaucoup mieux, surtout pour quelqu'un qui n'y connait rien au fonctionnement de l'OpenGL sous Linux...
Mais je le répète: NON, le format des DRI de fglrx < 8.42.3 n'est PAS compatible AIGLX et ne donne AUCUNE d'accélération 3D lorsque celui-ci est activé.

roll

Ce que tu dis là est une évidence, mais ça ne contredit en rien ce que j'ai dit: les mêmes versions de X.Org X11 (les mêmes binaires, sans aucune recompilation) qui gèrent l'AIGLX permettent aussi d'utiliser le 3D (sans AIGLX évidemment roll) avec les pilotes qui ne gèrent pas l'AIGLX.
Oui ce que je dis est une évidence, alors pourquoi tu viens me contredire quand je dis la me^me chose dans mon post précédent ? roll
Et donc "Et puis si, nVidia supporte AIGLX puisque leur driver fonctionne avec un Xorg par défaut" est incorrect comme logique.
Les driver de NVIDIA supportent AIGLX puisque leur interface DRI ets compatible avec le DRI "AIGLX-compatible" que veux tu que je te dise de plus. Si ils ne le supportaient pas on aurait le même résultat qu'avec les anciens driver ATI... "(EE) AIGLX: Screen 0 is not DRI capable"
Et puis de toute façon, on se bat sur de la nomenclature, on est bien d'accord que nVidia propose les fonctionnalités de AIGLX, avec une implémentation différente de celle des pilotes libres. Que tu appelles cette implémentation "AIGLX" ou autrement n'a au final aucune importance.
Non car celà n'a rien à voir. Tout le monde tend à mélanger AIGLX et GLX_EXT_texture_from_pixmap... Parce que tout ça tourne autour de compiz et que les gens n'ont que ça en tête... Pourtant même si les deux choses sont liés à leur origine elles n'ont pratiquement rien à voir.

Je fais un résumé du fonctionnement historique de l'accélération 3D avec X: (On est dans le passé, AIGLX n'existe pas)
Sur un système X disposant de drivers 3d, tu as deux modes de rendu OpenGL: Le mode indirect, et le mode direct. (Au passage, http://dri.sourceforge.net/doc/dri_control_flow.html -> joli schéma)
1 - Le mode direct (d'où DRI pour Direct Rendering Infrastructure) passe ses commandes OpenGL directement au driver (oui je ne dis pas au matériel car tu risquerait encore de ne pas comprendre...) graphique, et la surface de rendu n'est pas gérée par le serveur X. (Grossièrement, tu dessiness par dessus le rendu de X, sans qu'il soit au courant (En fait même si il l'est il ne peut rien y faire))
2 - Le mode indirect (d'où le Indirect GLX de AIGLX) passe ses commandes OpenGL au serveur X. Le rendu indirect est effectué de manière logicielle (Mesa dispose d'une implémentation 100% logicielle d'OpenGL, tout en intégrant aussi des drivers opensource qui fonctionnent avec le dri, et donc actuellement aussi avec AIGLX). Pas grand chose à dire ici si ce n'est que c'est lent tongue

Ce que t'apporte AIGLX c'est l'accélération matérielle (via un driver compatible évidemment) du rendu indirect. ça veut dire que tu pourras par exemple lancer plusieurs glxgears en même temps et les regarder tourner ensemble: les ressources sont partagées entre les applications.
Enfin bien évidemment c'est une conséquence... Car AIGLX a été créé pour GLX_EXT_texture_from_pixmap... Pourquoi ?

(Ici ça s'applique aussi bien à XGL que AIGLX: )
Pour créer un bureau graphique, il fallait un moyen de passer d'un pixmap X (contenant a priori l'intérieur d'une fenêtre tongue) à une texture OpenGL qui pourrait être affichée et transformée à souhait par le matériel. Donc il faut faire sous-traiter le rendu de la fenêtre à X (après tout c'est comme ça que fonctionnent toutes les applications linux, elles envoient leur commande à X... Enfin c'est plutôt le toolkit qui s'en charge mais bon wink), puis le récupérer dans le WM (hop un changement de contexte, plus le même processus), et le transformer en texture (et hop un peu plus de changements de contexte, on aime ça), ça implique quelque "légers" transferts de données inutiles.

La solution était donc de ne pas faire sortir les données du serveur X. Donc il faut faire rentrer dans le serveur tout ce qui ne rentrait pas auparavant: les commandes OpenGL. Malheureusement le serveur X de base ne permettait pas d'accélérer le rendu indirect. Ce qui a donné naissance à Xgl, et à AIGLX.

D'un côté tu abstrait tout ton serveur au dessus de OpenGL, ce qui permet de rediriger XVideo vers des textures de manière automatique, et également de rediriger les applications 3d vers des textures (Mais bon, cette partie là laissait encore à désirer quand je l'utilisais), donc d'intégrer le rendu 3d dans des fenêtres déformées avec Compiz (à tout hasard).

De l'autre côté tu accélérais le rendu indirect... Ce qui revient plus ou moins au même puisque dans les deux cas ton serveur X devient "opengl-aware". Avec AIGLX l'accélération matérielle est fonctionelle (ce qui demande(ait ?) plus de boulot pour Xgl ^^) pour n'importe quelle application, mais en revanche, le serveur n'a toujours aucune liaison avec les surfaces OpenGL qui ne lui appartiennent pas (c'est à dire tout ce qui n'est pas rendu par Compiz), donc tu verras bien tes bordures se déformer mais le contenu, lui restera bien carré. (Ce qui n'était pas le cas sous Xgl ^^)

Enfin bref, texture_from_pixmap a "besoin" de AIGLX pour la plupart des driver, c'est pour ça que Compiz ne fonctionne qu'en mode indirect sur les cartes ATI, Intel, etc...


Voilà je crois pas avoir dit trop de conneries (enfin y'en aura forcément vu que je vais pas me relire mais si ça t'amuse de rebondir dessus je ne répondrai pas tongue)
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

17

Super, merci GC ça m'éclaire pas mal toutes tes explications smile
(tu as fait comment pour comprendre tout ça ?)
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »