"Mike A. Harris" wrote:
> 
> On Sun, 6 May 2001, Daryll Strauss wrote:
> 
> >> >It depends on what part of the process you want to solve.
> >> >
> >> >For the DRI, the easiest solution would be to have the dri_tdfx.o
> >> >dynamically load the appropriate Glide. The X server knows what hardware
> >> >it is running on and passes that to the client (via the PCI id). If you
> >> >did this, you could also change the X tree to include the appropriate
> >> >glide.h header file and remove the dependency on Glide in X all
> >> >together. It should be relatively easy to put together.
> >>
> >> That sounds even better to me.  If done though, wouldn't it cause
> >> problems with programs directly linked with Glide3?
> >
> >The DRI glide is ONLY useful for the DRI. It won't function in stand
> >alone mode at all. In other words, there isn't just V3 and V5 versions,
> >but also V3-non-DRI, V3-DRI, V5-DRI versions. But, Glide is dead and I
> >wouldn't worry about it or support it.
> 
> Ok, that makes total sense.  I know Quake/Quake II support Glide,
> and the 3D accelerated versions do not run without Glide even if
> you have no 3dfx card and just want to use OpenGL with a r128
> per se.  I'd like to straighten out the 3dfx stuff so it is at
> least minimally sane and does its job on it's own, as well as
> adding support for Voodoo 1&2 for older games.  Just the minimal
> kludgework to let the cards survive their useful life.  ;o)
> 
> No idea where to get started at all with trying to get the Glide
> stuff to autoload the right lib...  Perused the Mesa source, as
> well as the mesa and other 3D source dirs in XFree, but I don't
> see anything obvious.  Closest I came was
> xc/lib/GL/mesa/drv/tdfx/fxdd.c or so...
> 
> Any pointers on where to go next?  Keep in mind we don't ship
> XFree86 mesa due to the need for 3D in 3.3.6 also,

What do you mean by "XFree86 mesa"?


> but a pure
> XFree86 hack could likely be easily plopped into standalone Mesa
> as well.

Stand-alone Mesa's Glide driver (for Voodoo1/2) is in the
Mesa/src/FX/ directory.

The XFree86/DRI Glide driver (for Voodoo3/4/5) is in
xc/lib/GL/mesa/src/drv/tdfx/.

In both cases, that's where we call all the Glide API functions.
I'd suggest writing a Glide dispatch interface (a struct of function
pointers) to replace the direct Glide API calls.  At some point
early in initialization you'd have to determine what kind of hardware
is installed, choose the correct libglide.so, dlopen() it, and use
dlsym() to setup all the function pointers.

-Brian

_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to