Announcement
Collapse
No announcement yet.
Galium3d, mesa, mesa 3d, state trackers and drivers... help!
Collapse
X
-
I'm beginning to understand how the layers are organized now. Thanks to all for clearing it up.
-
Originally posted by nanonyme View PostThis is nothing new, I recall seeing Tungsten comparing Direct3D to Gallium3D before and noting the similarities in their slides year or more ago. This was counted as a good thing.
Leave a comment:
-
I've put together some info too, so here it is.
Gallium=Gallium3D, Mesa=Mesa3D
The classic Mesa scheme:
Code:Mesa core --> classic OpenGL driver
Code:Mesa core --> [Mesa state tracker/generic OpenGL driver --> Gallium driver]
Code:Mesa core --> Mesa state tracker/generic OpenGL driver --+ | Xorg state tracker/generic DDX driver -------------------+ +--> Gallium driver OpenVG state tracker ------------------------------------+ | Other state tracker -------------------------------------+
Leave a comment:
-
One more thing - state trackers sit above the Gallium3D drivers and translate a specific API into a series of Gallium3D calls, ie they implement the API. In the case of GL, Mesa (aka mesa3d) would be the state tracker. There are also state trackers in various stages of development for OpenVG, OpenCL, the acceleration portion of an X driver etc...
If you want to see how all this fits together, start at :
This is the source tree for the mesa project. The src/mesa folder contains all of mesa itself, including the "classic" HW drivers and the code required to let mesa run over Gallium3D (but it does not contain Gallium3D itself). The src/mesa/drivers/dri folder contains the "classic mesa" HW drivers, while src/gallium contains the Gallium3D framework including Gallium3D drivers.
Leave a comment:
-
Mesa provides an OpenGL API to programs that need OpenGL to run.
Mesa also provides hardware drivers for different chips that implement parts of OpenGL in hardware.
The idea behind Gallium3d is to separate the two. There is a layer which deals with the OpenGL API, and which connects to an abstraction layer, and then there are the hardware-dependent drivers which connect this layer to the hardware.
The main benefit is that you don't have to reimplement everything every time you write a new driver. You only need to implement the hardware-specific part. The parts that are the same for all hardware can then be used by all hardware.
So Gallium3d is not replacing Mesa, it is replacing a part of Mesa -- the 3d drivers. The OpenGL API will still be provided by Mesa, running on top of the Gallium3D infrastructure.
Leave a comment:
-
Originally posted by whizse View PostDoes this clear things up? (The thread right above yours )
http://www.phoronix.com/forums/showthread.php?t=7221
Leave a comment:
-
Galium3d, mesa, mesa 3d, state trackers and drivers... help!
Hey,
I've been curious about this for some time now and i still don't fully get it.
Here on phoronix sometimes i see mesa and mesa 3d in combination with galium3d ... and i'm getting confused by it.
What exactly is Galium3d?
How do the state trackers work in Galium3d?
Where does mesa fit in this picture..? isn't galium3d replacing mesa/mesa 3d?
What is meas 3d or is it just mesa..?
Enough confusion as you can see.
Could someone please explain to me in clear understandable language what the new Galium3d is exactly and how state trackers and mesa fir within this?
(a diagram would be nice as well)
Regards,
MarkTags: None
Leave a comment: