Toon posts:

relatie X, opengl, mesa, glx, glut, glide, dri?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Heeft er iemand een architectuur/blokkendozen-diagram van de relatie tussen X, opengl/mesa, glx, glut, glide, dri, NVidia drivers, kernel modules, hardware, etc. ? En wat de 'required' componenten zijn en welke libs optioneel zijn voor 2D/3D hardware (keb een NVidia) accelerated graphics.

Ik heb het e'e'n en ander geGoogled maar ik zie door de bomen het bos niet meer. Ik kwam een plaatje tegen van Precision Insight(.com) maar die site is plat en de google-cache is onleesbaar klein. Het gaat mij niet om de hoe-compile-ik-alles (dat zal nog wel lukken) maar meer om hoe alles nu precies aan elkaar hangt en wat evt. buiten een andere library om naar de hardware kan. Als al die howto's en artikelen nu e'e'n fatsoenlijk plaatje hadden gemaakt...

Thx.

Verwijderd

  • X -> Grafische server met basic window management (wordt gebruikt door oa Qt en Gtk)
  • Mesa3D -> Onofficiele implementatie van OpenGL 1.3
  • OpenGL -> 3D Render API (Application Programmers Interface) voor het renderen van 3D graphics. De huidige versie is 1.3
  • GLX -> De 'lijm' tussen X en OpenGL voor OS-specifieke onderdelen (onder windows is dit WGL)
  • GLUT -> GL Utility Toolkit, maakt het makkelijker om windows te maken, sluiten, etc. onder veel verschillende OS-en (Linux, Windows, ..)
  • Glide -> Dooie render API, lijkt op OpenGL maar is alleen te gebruiken met 3Dfx kaarten
  • DRI -> Direct Rendering Interface, een speciale manier om render commando's direct door te sturen naar de 3d kaart ipv via de normale (om)weg via de X server (laatste wordt ook wel 'indirect rendering' genoemd en is veel langzamer)
  • NVIDIA Driver -> Programma dat OpenGL commando's ontvangt van een 3D programma (bv een spel) en in een packetje doorstuurt naar de grafische kaart (bv een GeForce)
Om programma's te draaien die gebruik maken van OpenGL, en dat met hardware acceleratie heb je de NVIDIA Kernel Driver en de NVIDIA GLX implementatie nodig (en X natuurlijk).

Veel kleine 3D programmaatjes en 3D spelletjes maken gebruik van GLUT, dus dat is ook aan te raden om te installeren.

DRI hoef je niets van te weten als je een kaart met NVIDIA GPU hebt.

Mesa hoef (mag) je niet (te) installeren als je een kaart hebt met NVIDIA GPU omdat NVIDIA een eigen implementatie van OpenGL heeft.

En Glide is dood, net zoals 3Dfx (RIP)


Weet niet of dit duidelijk genoeg is.. als je nog steeds een diagram wilt dan zeg je 't maar :)

Verwijderd

Topicstarter
Dank voor de uitleg.

Ik vond een plaatje op http://www.linux-mag.com/2000-06/img2/xfree_34.jpg wat het hele verhaal iets duidelijker maakt, maar toch nog niet volledig.

- In 'bovenstaand' plaatje zie je niks van OpenGL/Mesa in de linker kolom bij Direct Rendering. OpenGL staat toch niet (perse) los van Direct Rendering?
- Is Mesa altijd software rendering en dus unaccelerated?
- In het plaatje gaat 2D data altijd via de X server. Heb je niet zoiets als accelerated 2D?

<mental_note>
...volgens mij moet ik het onderscheid maken tussen 'DRI' en 'accelerated' waarbij accelerated altijd nog via de X server kan lopen maar vandaaruit naar de hardware.
Zoiets als:
accelerated = X protocol -> X server -> drawLine() naar de hardware ipv 640 * drawPixel()
DRI = rechtstreeks naar de hardware (of driver?) -> drawLine()
accelerated = snel en DRI = nog sneller
</mental_note>

Ik heb zelf een poging gedaan om een uitgebreider plaatje te maken, specifiek voor NVidia spul, te vinden op http://www.leeuwesteijn.nl/linux3d.doc (Word2000 file, sorry, ging het snelste >:). Is er een Word2000 naar JPG convertor?).

Paar vraagjes (zie Word doc):
- Praat de X server ook rechtstreeks met de hardware? Lijkt me wel...
- Wat doet de NVidia kernel module dan precies?
- Is er een combinatie OpenGL/Direct Rendering en zo ja hoe lopen en pijlen dan?
- Heb je 2D DRI applicaties?
- Waar staat 'agpgart' voor? (nergens kunnen vinden believe it or not).
- Heb je agpgart nodig als je de NVidia kernel module hebt?
- Mesa zit standaard bij XFree right? Dus met NVidia spul moet je Mesa er weer uitslopen/libs vervangen?
- Heeft iemand een kopietje van http://www.precisioninsight.com/dr/mini_poster.jpg ? Site ligt plat. (Bestaat het bedrijf nog wel?) Zie ook Google voor mini-plaatje uit de cache.

Iemand een goeie link waar dit soort zaken wel snel en duidelijk uitgelegd worden, bij voorkeur _met_ plaatjes? :) Een hoop promising Google-hits bleken allemaal plat te liggen :?

Verwijderd

Topicstarter
zacht sch :9 pje...