Re: [UFO-devel] Bug#385945: boson: crashes on singleplayer game start
Status: Beta
Brought to you by:
schmidtjf
From: Johannes S. <sch...@us...> - 2006-09-16 08:57:43
|
Le Samedi 16 Septembre 2006 02:06, Andreas Beckermann a =C3=A9crit=C2=A0: [...] > 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.h= tm >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= =20 problem. If you can create a minimal example, please send it to the libufo mailing=20 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=20 GL_Graphics::drawVertexArray. You could replace the vertex array with plain glBegin, glVertex, glEnd call= s. But using immediate mode is a performance penalty ... (though it shouldn't be too slow, as there are usually only a few vertices= =20 drawn. Compared to a RTS, it's really "low-poly" rendering) The VertexArray object returns interleaved arrays. Looping over all vertice= s=20 with glVertex and glColor should work (but getting OpenGL vertex arrays to= =20 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 t= he > bug for me. It's strange that this occurs only with triangles ... Best, Johannes |