[prev in list] [next in list] [prev in thread] [next in thread] 

List:       dri-users
Subject:    Re: [Dri-users] Fixed, but can anyone explain why?
From:       Roland Scheidegger <rscheidegger_lists () hispeed ! ch>
Date:       2003-09-25 23:34:03
[Download RAW message or body]

Elias Holman wrote:
> After getting the version problems resolved after upgrading to the
> latest snapshot, I was still having a problem running Neverwinter
> Nights: when I ran the program I would simply get the useless 'Error'
> message, which should be well known to those in the NWN Linux community.
> Since a previous DRI snapshot had worked, I knew that the issue must be
> in my GL or GL+DRI configuration.
> 
> I mucked with every possible setting, checked log files, link paths,
> everything, and I couldn't find anything wrong.  Every other program ran
> perfectly, with direct rendering.  Eventually, I noticed that even when
> I turned direct rending off, I got the same problem, so I came to the
> conclusion that there was something wrong with my libGL.  As a
> last-ditch attempt, I downloaded the latest X binaries (Xbin.tgz) from
> the Xfree86 website, and copied libGL* and libGLU* over my existing
> libraries, ran ldconfig and voila, Neverwinter Nights ran flawlessly,
> with some the best frame rates that I have seen thus far.
> 
> Here's my question: there is a libGL and libGLU that are included with
> every DRI snapshot; How do those differ from the libraries distributed
> with a vanilla X (4.3.x)?  Can anyone explain why the Xfree86 binaries
> would work, but not the ones included with the snapshot?  I am running
> the latest X on a Sony VAIO GRX with Mandrake 9.1 and a Radeon 7500
> Mobile.

NWN did not work because it requests (since the beta4 client or so) a 
32bit buffer size (though for no good reason, since it doesn't request 
an alpha size, so 24bit would be enough, which would avoid all the 
trouble...). However, up until very recently (last week in the cvs) the 
X Server wrongly reported all true-color visuals with the root-depth 
(which is only 24bit). This change is somewhere in the server side glx 
code, and ends up afaik in libglx.a (btw if the snapshots don't contain 
libglx.a then that will probably continue to be a problem - never tried 
the snapshots myself, always using cvs). (You can easily check if you 
have the fixed version with glxinfo - the "bf sz" is the value in question.)
The reason it works with older XFree versions is in old releases the 
client side code (I believe this all ends up in libGL.so?) (also 
errornously) simply ignores minimal buffer sizes asked by an application 
- thus the app could ask for a minimum buffer size of 32bit and just get 
back a 24bit buffer instead if no buffers with 32bit were available. 
This was fixed some month ago and the client now gets back the error it 
should receive, which broke NWN.

So, if you happen to have a libGL version with the glx visual matching 
code changes but not an X server which reports the buffer size correctly 
you have a problem. If this is still a problem today with the snapshots, 
then probably libglx.a (at least I think that's the correct file) is not 
included in the snapshots.

Roland




-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Dri-users mailing list
Dri-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-users
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic