PDA

View Full Version : Display list driver bug !?! (1.0-3123)


kermuli
10-19-02, 07:07 AM
Hi,

I have a very interesting problem: The display lists do not work with my own application.

The problem seems to be that random vertices from the object get corrupted and when rendering objects with filled polygons I get very weird graphics errors. What is even more interesting is that if I change the drawmode into wireframe, the problem does not exist. I'm using linux driver 3123.

How can it be that when rendering the same displaylist in wireframe and in filled mode, the filled one is corrupted but the wireframe is not????

Example screenshots of my application can be found from below liks. There are two corrupted samples and a two correct renderings. Any help would be appreciated.

www.ee.oulu.fi/~jvatjus/pic1.png
www.ee.oulu.fi/~jvatjus/pic2.png
www.ee.oulu.fi/~jvatjus/pic3.png
www.ee.oulu.fi/~jvatjus/pic4.png

bwkaz
10-19-02, 09:12 AM
We weren't using display lists, but I have seen stuff like this before.

I was trying to write a bridge builder program. The ground was a couple of filled polygons, and it was doing stuff like this. So we went to wireframe instead, and that worked. I don't know what the problem was.

We were using 3dfx video cards, though, and Mesa. I believe direct rendering had been actually disabled, though, so maybe that's the problem? Which libGL is your program linking against? It should be the one in /usr/lib, and you'll want to make sure that whichever file it's using is symlinked to libGL.so.1.0.3123.

ldd your-program-name will print out which libraries it's loading, and running ls -l on the libGL that gets printed will tell you where it's symlinked to.

kermuli
10-19-02, 10:50 AM
ldd [program name] shows that program uses GL libraries in /usr/lib like it should be. And libGL.so points to libGL.so.1.0.3123. Drivers are installed correctly.

I have to change my program to use vertex arrays instead of display lists. I'm curious if the problem goes away by doing this.

I think it's worth noting that I have three games installed in myu machine. Warcraft III, unreal tournament and deus ex. All of the games work 100% fine without rendering clitches. I just thought that if the problem is related to display lists, then why is no other 3d sw suffering from the same problems. Do modern 3d games use display lists at all??

One other thing I noticed was that glxgears test program suffers randomly from this feature too!

bwkaz
10-19-02, 02:24 PM
Hmm.

I don't know if games use display lists or not, but I must say I haven't ever heard of glxgears doing anything like this...

I really don't know... are you sure it isn't something strange like a floating-point accuracy problem or something? Maybe the GL implementation is dividing some quantity by something like the distance between two points you give it, except for when the points are exactly the same, it does nothing? And maybe you have points that you think are in the same place, but they actually are just slightly different?

I really don't, know, I'm just thinking here...

kermuli
10-20-02, 02:06 AM
I don't think this is a floating point accuracy problem. It might be possible that when I give doubles when defining vertices, the opengl state machine converts them to floats or something similar. However, as the example pictures show, I was dealing with a cube object, and all vertices were between -1 and 1. This should not cause any conversion failures.

I don't actually know what opengl state machine does when I call glPolygonMode(GL_FRONT, GL_LINE) but I think if the vertex data is incorrect, the wireframe model should be broken too.

Btw, I took a screenshot from the glxgears too. Take a look at www.ee.oulu.fi/~/jvatjus/glxgears.png

kermuli
10-20-02, 02:06 AM
Oops, link was broken: www.ee.oulu.fi/~jvatjus/glxgears.png

bwkaz
10-20-02, 08:31 AM
That's very odd...

No, that kind of thing (glxgears) isn't an FP accuracy problem, at least probably not.

Hmm. I wish I knew what it was... have you sent an email to linux-bugs@nvidia.com describing the problem? If not, try it, maybe they know what it might be.

kermuli
10-20-02, 12:36 PM
Ok, I dropped a note to linux-bugs@nvidia.com. Hopefully they answer something.

In the meantime I'll try the vertex arrays...