Galium3D last I looked is a VMWare project with them supporting the vast majority of the dev's working on it. Maybe if nVidia, AMD and Intel would donate some developer time it could move along quicker.
Posted Sep 24, 2013 19:28 UTC (Tue) by Cyberax (✭ supporter ✭, #52523)
[Link]
No. Gallium3D is also used by AMD's drivers and other projects are also looking at it (mostly ARM reverse engineering projects).
NVIDIA to provide documentation for Nouveau
Posted Sep 24, 2013 20:21 UTC (Tue) by rahvin (subscriber, #16953)
[Link]
No.
What a well thought out and comprehensive reply. Galium3d is:
Gallium3D is a framework intended to ease the programming of device drivers for 3D graphics chipsets by splitting the graphics device driver into three parts. This is accomplished by the introduction of two interfaces: Gallium3D State Tracker Interface and the Gallium3D WinSys Interface. The three components are called
Gallium3D State Tracker – each graphical API by which a device driver is being addressed has its own State Tracker, e.g. there is a Gallium3D State Tracker for OpenGL and a different ones for Direct3D or GLX. Each State Tracker contains an implementation of the Gallium3D State Tracker Interface, and is unique, this means is shared by all existent Gallium3D device drivers.
Gallium3D hardware device driver – this is the actual code, that is specific to the underlying 3D graphic accelerator chip, but only as far as the Gallium3D WinSys Interface allows. There is a unique Gallium3D hardware device driver for each available graphics chip and each implements the Gallium3D State Tracker Interface as well as the Gallium3D WinSys Interface.
Gallium3D WinSys – is specific to the underlying kernel of the operating system and each one implements the Gallium3D WinSys Interface to interface with all available Gallium3D hardware device drivers.
Whether or not AMD is assisting in the development of the hardware device driver for AMD hardware of Galium3D has little bearing on the entirety of Galium3D. This hardware driver has almost no code reuse with other hardware. This is because the device driver portion is a relatively small part of the entirety of Galium3D though it is a very important part. As I said, the last I saw the bulk of the Galium3D development is being funded by VmWare (I believe to advance their goal of desktop virtualization, though I could never find official company statements acknowledging it). Though hardware vendors have provided some assistance to development of the small graphics driver portion there is far more to G3D than just the hardware driver.
The whole point of the G3D setup is to abstract the hardware. This is where the bulk of the work in G3D is. Yes you still need hardware drivers that talk the hardware's language but the abstraction allows you to build the pipeline and interface with hardware independence. It is my understanding that the state tracker and winsys portion of the driver compose the vast majority of G3D with the hardware driver composing essentially just shim between the hardware and G3D. Last I saw none of the graphics OEMs except for intel had paid for development time on the state tracker or winsys. I haven't looked for a year so maybe that's changed (and google wasn't helpful, probably because my google-fu is week) but I would be surprised if much has changed on the G3D development front.
NVIDIA to provide documentation for Nouveau
Posted Sep 24, 2013 21:09 UTC (Tue) by Cyberax (✭ supporter ✭, #52523)
[Link]
AMD _does_ support Gallium3D development. Just look at the mesa3d-devel mailing list.
And it's also well-known that Intel does NOT use Gallium3D infrastructure at all. They prefer to use their own completely custom infrastructure.
NVIDIA to provide documentation for Nouveau
Posted Sep 24, 2013 22:13 UTC (Tue) by SEJeff (subscriber, #51588)
[Link]
Yup GEM aka Graphics Execution Manager. Intel didn't like Gallium3D and decided to NIH.
NVIDIA to provide documentation for Nouveau
Posted Sep 24, 2013 22:16 UTC (Tue) by Cyberax (✭ supporter ✭, #52523)
[Link]
Nope.
GEM is the kernel-level interface. And in fact, other drivers _also_ use it. Except Intel implements GEM directly and other drivers use TTM (Translation Tables Mapping) instead.
There's a similar story with Mesa - there's a 'classic mesa' (drivers directly implement OpenGL spec) and Gallium3D (common infrastructure is used for OpenGL and drivers simply translate the resulting TGSI stream). And Intel is the only major remaining 'classic' Mesa user.
NVIDIA to provide documentation for Nouveau
Posted Sep 24, 2013 23:42 UTC (Tue) by airlied (subscriber, #9104)
[Link]
The Gallium 3D OpenGL state tracker is developed my lots of companies and non-companies alike.
Tungsten Graphics wrote the original, consumed into the VMware, I think since the initial import the biggest contribution to it was an independent who wrote the GLSL to TGSI translator.
Other contributors are Marek who worked on radeon in his spare time and is now employed my AMD, and myself at Red Hat.
That layer is under constant development, a lot of it isn't done by VMware anymore, VMware are currently focused on the llvmpipe sw renderer pipe driver code and their closed direct3d implementations from what I can see.
Also a lot of work is required to write a gallium 3D driver its not trivial code to map to hw as you think,
Apart from all that there is also a gallium video decoding layer using vdpau that AMD has contributed a lot of, a gallium compute interface for OpenCL that AMD and VMware (initially) along with independents put a lot of work into.
NVIDIA to provide documentation for Nouveau
Posted Sep 25, 2013 7:28 UTC (Wed) by gioele (subscriber, #61675)
[Link]
> Also a lot of work is required to write a gallium 3D driver its not trivial code to map to hw as you think,
Is the amount of functionality brought by the independent state trackers enough to justify the investment in writing Gallium 3D drivers instead of classic Mesa drivers?
Once you write a Gallium 3D driver for your HW, what do you get "for free" from the rest of the Gallium 3D infrastructure?
NVIDIA to provide documentation for Nouveau
Posted Sep 25, 2013 7:57 UTC (Wed) by Cyberax (✭ supporter ✭, #52523)
[Link]
Not having to write complicated OpenGL state trackers, for one thing. And OpenCL in near future.
NVIDIA to provide documentation for Nouveau
Posted Sep 25, 2013 9:25 UTC (Wed) by airlied (subscriber, #9104)
[Link]
Not having to rewrite DRI interface code, having to worry about OpenGL state tracking semantics (GL does things different for rendering to windows and FBOs, and every driver has to repeat the mistake in classic), abstracted a bit from the OpenGL GLSL compiler. Free mipmap generation, lots of utility helpers.
Just a lot less boilerplate and cut-n-pasting all over the place.