Multiple EGL implementations

Adam Jackson ajax at nwnk.net
Mon Jul 4 09:16:24 PDT 2005


On Monday 04 July 2005 08:57, Dave Airlie wrote:
> This is partly "our" fault the current libGL suffers from a lack of
> vendor extensibility ... Ian has been doing some serious work on
> making sure this doesn't happen for 6.9/7.0, and I believe ATI have
> been in contact with him to avoid their having to ship a separate
> libGL in the future..
>
> Then we'll just have to convince nvidia that they are being silly
> using their own one :-)

There's four issues, in my count.

Within the GL part of the interface, the dispatch table into the driver is 
probably not consistent.  The DRI-based drivers all use the Mesa dispatch 
table, but nVidia and Matrox appear not to (iirc).  Ian's work has been on 
making the Mesa dispatch more amenable to vendor extension.  That should make 
it general enough for the other vendors too.  The GL API is stable enough 
that there's really only a few ways to do this, and most of the issues would 
have to do with structure ordering.

Within the GLX part, some functions have different dispatch paths depending on 
whether it's a direct or indirect current context.   The DRI drivers have a 
fairly consistent interface for this (with a few vendor extensions to get 
features that aren't in the base libGL yet); the nVidia and Matrox interfaces 
here are a bit of a mystery.  We'd either need to standardize how we do GLX 
dispatch into the drivers, or have multiple paths for loading various types.

Implicit in the above is that all drivers have to agree what a GLX context 
structure looks like, and probably for drawables and one or two other types 
too.  Again, the DRI drivers have this pretty uniform, but who the hell knows 
what's going on with the other two.

And finally, all the code needs to be moved to the new design, which takes 
time and requires some buy-in from the vendors that we've gotten it right.

This is nothing new or hard, as a code matter it's just defining a driver 
interface with sufficient extensibility, and exposing the versioning 
properly.  It's work that needs to happen, because right now the situation 
with libGL is exactly the situation the X server was in in the 3.x days.

- ajax
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/dri-egl/attachments/20050704/8786bdab/attachment.pgp


More information about the dri-egl mailing list