Bug#385945: [UFO-devel] Bug#385945: boson: crashes on singleplayer game start

Johannes Schmidt schmidtjf at users.sourceforge.net
Sat Sep 16 08:58:22 UTC 2006


Le Samedi 16 Septembre 2006 02:06, Andreas Beckermann a écrit :
[...]
> I have done some additional research and have been able to reproduce the
> bug on one of my own machines. It happens with mesa based drivers only. It
> appears to me that this is a bug in mesa, in particular I believe it is
> http://www.mail-archive.com/mesa3d-dev%40lists.sourceforge.net/msg00772.htm
>l The fact that this problem goes away with libgl1-mesa-dri
> 6.5.0.cvs.20060524-1 seems to confirm that, as current mesa versions don't
> include the fix yet, cvs does.

Hmm, I'm using here libgl1-mesa-dri 6.4.1-0ubuntu8 and can't reproduce the 
problem.
If you can create a minimal example, please send it to the libufo mailing 
list.

> However I have no idea how to write around this problem so that it works
> for broken mesa versions, too. The only way I can see atm is not to use
> vertex arrays, but this solution _really_ sucks and would require quite
> some changes to libufo.

IIRC, the only place where we are using vertex arrays in libufo is in 
GL_Graphics::drawVertexArray.
You could replace the vertex array with plain glBegin, glVertex, glEnd calls.
But using immediate mode is a performance penalty ...
(though it shouldn't be too slow, as there are usually only a few vertices 
drawn. Compared to a RTS, it's really "low-poly" rendering)

The VertexArray object returns interleaved arrays. Looping over all vertices 
with glVertex and glColor should work (but getting OpenGL vertex arrays to 
work would certainly be better).
Send me an email if you need help with that ...

> CC'ing libufo-devel for this problem, maybe some good idea comes up.
> Additional information for libufo developers:
> It stems from usage of vertex arrays in libufo, however I have not yet
> managed to narrow it down to the exact combination of circumstances
> (meaning I haven't had time to write a few test cases yet).
> From what I have found by now, I think it happens only when using
> ufo::UVertexArray with triangles (i.e. not with lines). IIRC it was
> PE_IndicatorRadioButton in UBasicStyle::paintPrimitive() that triggered the
> bug for me.

It's strange that this occurs only with triangles ...


Best,
Johannes




More information about the Pkg-mesa-devel mailing list