From: <ph...@bo...> - 2000-08-31 06:54:54
|
Howdy folks, Probably noone except Brian here even vaguely knows my name. :-) But I'm the guy who originally gave the GLX hack code to Brian, because I thought it would be a really cool thing if Mesa broadened its horizons. I'd like to do the same thing again. But this time, for hardware support. I see a whole bunch of hardware acceleration support in Mesa right now... And 99% of it is only for Linux. I think that's pretty far from the original goals of Mesa, which was to be a more crossplatform project. I haven't dug deep down into the code. So I dont know the grungy details on the "Glide" stuff, and the Xfree86 "DRI" stuff. But I know its pretty much all linux-only I DO know that when you get down to the very basic level of things, there are only a few basic operations you can do with a piece of hardware. Read/Write registers. Map memory. So it boggles my mind to see all this Linux-only stuff. It would seem to me that there isn't a basic API that encapsulates that level. Something that just sticks to the core hardware neccessities, to keep porting easy. Because if there were, it would be almost trivial to port Mesa hardware acceleration across platforms, and it would have been used already. If there is one, and I missed it, please point me in the right direction. If there isn't one: let's make one! And then I'll write a solaris driver or two to match it. |
From: Brian P. <br...@va...> - 2000-08-31 14:12:11
|
Philip Brown wrote: > > Howdy folks, > > Probably noone except Brian here even vaguely knows my name. :-) > But I'm the guy who originally gave the GLX hack code to Brian, because > I thought it would be a really cool thing if Mesa broadened its horizons. > > I'd like to do the same thing again. But this time, for hardware support. > > I see a whole bunch of hardware acceleration support in Mesa right now... > And 99% of it is only for Linux. > > I think that's pretty far from the original goals of Mesa, which was to be > a more crossplatform project. > > I haven't dug deep down into the code. So I dont know the grungy details > on the "Glide" stuff, and the Xfree86 "DRI" stuff. But I know its pretty > much all linux-only Not especially. Just the DRI kernel modules. More of the DRI is XFree86-centric, rather than Linux-centric. > I DO know that when you get down to the very basic level of things, > there are only a few basic operations you can do with a piece of hardware. > Read/Write registers. Map memory. > > So it boggles my mind to see all this Linux-only stuff. > It would seem to me that there isn't a basic API that encapsulates that > level. Something that just sticks to the core hardware neccessities, to > keep porting easy. > Because if there were, it would be almost trivial to port Mesa hardware > acceleration across platforms, and it would have been used already. > > If there is one, and I missed it, please point me in the right direction. > > If there isn't one: let's make one! > > And then I'll write a solaris driver or two to match it. The DRI architecture was originally targetted for Linux but was designed with portability in mind. It's been ported to FreeBSD now, for example. Porting to other flavors of Unix should be feasible. One thing people tend to overlook when talking about adding hardware 3D acceleration to a system is window system integration. It's actually rather complicated. Since the DRI was designed for XFree86, if you want hardware 3D for another window system you'll likely have to start from scratch. A short-cut to hardware 3D is to run without a window system (like the original Glide for Voodoo1/2 did). But then you're limited to full-screen apps and need some sort of replacement for GLX (thus requiring customized application code). -Brian |
From: Howard <ho...@me...> - 2000-08-31 15:45:56
|
Brian Paul wrote: > The DRI architecture was originally targetted for Linux but was designed > with portability in mind. It's been ported to FreeBSD now, for example. > Porting to other flavors of Unix should be feasible. > > One thing people tend to overlook when talking about adding hardware > 3D acceleration to a system is window system integration. It's > actually rather complicated. Since the DRI was designed for XFree86, > if you want hardware 3D for another window system you'll likely have > to start from scratch. > > A short-cut to hardware 3D is to run without a window system > (like the original Glide for Voodoo1/2 did). But then you're limited > to full-screen apps and need some sort of replacement for GLX (thus > requiring customized application code). > Speaking of this, what is the status of the OSMesalib that you broke out a couple of months ago? That is a major portability issue to us. If we are able to bind that to the XFree86 libGL, and other board specific libGL's. we get the best of both worlds. Has that been tar'd up anywhere or is it only in CVS? Thanks, -- Howard Luby ho...@me..., Ph:(248)540-2251, Fax:(248)540-3138 Mediascape Corporation http://www.mediascape.com |
From: Brian P. <br...@va...> - 2000-08-31 15:58:34
|
Howard wrote: > > Brian Paul wrote: > > > The DRI architecture was originally targetted for Linux but was designed > > with portability in mind. It's been ported to FreeBSD now, for example. > > Porting to other flavors of Unix should be feasible. > > > > One thing people tend to overlook when talking about adding hardware > > 3D acceleration to a system is window system integration. It's > > actually rather complicated. Since the DRI was designed for XFree86, > > if you want hardware 3D for another window system you'll likely have > > to start from scratch. > > > > A short-cut to hardware 3D is to run without a window system > > (like the original Glide for Voodoo1/2 did). But then you're limited > > to full-screen apps and need some sort of replacement for GLX (thus > > requiring customized application code). > > > > Speaking of this, what is the status of the OSMesalib that you broke out a couple of > months ago? That is a major portability issue to us. If we are able to bind that to the > XFree86 libGL, and other board specific libGL's. we get the best of both worlds. Has > that been tar'd up anywhere or is it only in CVS? For those of you who haven't heard of this... The libGL included with XFree86/DRI is different from the libGL you have been using from the normal Mesa distribution. It's strictly a GLX-based libGL whereas the Mesa libGL can also have built-in interfaces of OSMesa, fxMesa, GGIMesa, SVGAMesa, etc. By popular demand I added the OSMesa feature into XFree86/DRI 4.0.1. It's a separate library named libOSMesa.so. An application can link with both -lGL and -lOSMesa and have both the GLX and OSMesa programming APIs. They share common dispatch code and coexist as expected (i.e. an app can use both interfaces at once). The outstanding problem is that one needs separate versions of the application to work with both stand-alone Mesa and XFree86/DRI since the later needs to be linked with the special libOSMesa.so library. I suppose dlopen() and dlsym() could be used to hide this problem but that's not ideal. Comments are welcome. libOSMesa.so is in XFree86 4.0.1 and the current DRI and XFree86 CVS trees. -Brian |
From: Marcelo E. M. <mar...@bi...> - 2000-09-01 06:36:55
|
>> Brian Paul <br...@va...> writes: > By popular demand I added the OSMesa feature into XFree86/DRI > 4.0.1. [...] They share common dispatch code and coexist as > expected (i.e. an app can use both interfaces at once). A naive question. OSMesa does off-screen *software-only* rendering, right? Marcelo |
From: Brian P. <br...@va...> - 2000-09-01 14:19:57
|
"Marcelo E. Magallon" wrote: > > >> Brian Paul <br...@va...> writes: > > > By popular demand I added the OSMesa feature into XFree86/DRI > > 4.0.1. [...] They share common dispatch code and coexist as > > expected (i.e. an app can use both interfaces at once). > > A naive question. OSMesa does off-screen *software-only* rendering, > right? Right. -Brian |
From: Andreas E. <eh...@ly...> - 2000-08-31 15:49:09
|
On Thu, Aug 31, 2000 at 07:16:51AM -0600, Brian Paul wrote: > One thing people tend to overlook when talking about adding hardware > 3D acceleration to a system is window system integration. It's > actually rather complicated. Since the DRI was designed for XFree86, > if you want hardware 3D for another window system you'll likely have > to start from scratch. Documentation and/or source code could be missing as well. Is it possible as a mere mortal[1] to get information about 2d/3d driver writing in windows 95/98/NT for example? Someone would need to be motivated enough to actually write the support as well. regards Andreas Ehliar |