On Fri, 2010-01-01 at 10:13 -0800, José Fonseca wrote: > On Tue, 2009-12-29 at 15:41 -0800, Luca Barbieri wrote: > > > The reason why I didn't implement the glX*Gallium*Mesa functions is > > > because the glx* extensions are implemented by libGL, and a driver > > > driver never has chance to export those extensions. And libGL is used > > > for non-gallium drivers. > > I solved this by adding a DRI driver extension for Gallium. > > Non-Gallium drivers don't expose the extension and GLX returns null > > for the calls. > > Also, EGL support is either through egl_glx (based on the GLX > > extension) or through the > > OK. Looks good to me. > > > > Furthermore, both on WGL and GLX the hardware specific driver is loaded > > > quite late -- when the first GL context is created --, so the idea of > > > having GL context independent extensions to create Gallium pipe_screens > > > and pipe_contexts sounds good in theory but it's not how things work in > > > practice. > > My tests based on egl_glx worked without creating an EGL context. > > It seems it's not necessary, even though it may need some other GLX > > call (which you need anyway for fbconfig/visual setup). > > I think it can be easily fixed though. > > > > > So both things considered, using gl* extensions names instead of > > > wgl*/glx* would make more sense: > > > - libGL could remain untouched > > > - same extensions names for all OSes > > It has however the disadvantage of requiring Mesa and the OpenGL state > > tracker even for Gallium-only applications. With the current interface > > you could in principle remove both and still run Gallium code, while > > using EGL/GLX only for window system setup. > > > > In particular, an EGL application using the Gallium EGL state tracker > > could run without libmesa.a with little adjustments and without > > libmesagallium.a with some more adjustments. > > > > Maybe a "direct Gallium state tracker" could be added, but it would > > require duplicating the X11/DRM setup logic in EGL and GLX. > > In my view Gallium isn't an interface meant for applications and direct > accessing Gallium interface is exclusively for development/testings > purposes. Whatever works is good. > > > > Just to be clear -- names is not the big issue here, but keeping > > > libGL.so Gallium agnostic is an important thing in the current > > > circumstances -- libGL.so shouldn't be tied to any particular driver > > > architecture in any way. > > My patch doesn't add a Gallium dependency to libGL since all the work > > happens behind the DRI Gallium extension. > > The only Gallium specific code is "struct pipe_screen; struct > > pipe_context; struct pipe_surface;" to declare the opaque structures > > which are exposed to the users. > > The patches look good to me. I'm not familiar with EGL though, and I > haven't touched DRI in quite some time. Please allow a bit more time for > people to come back from vacations.
I think that there was enough time for everybody interested to voice their opinion. I'm going to start committing Luca's patches. Jose ------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev