Crash on glBegin() (Was: Help with debugging needed)
stefandoesinger at gmx.at
Fri Aug 26 08:00:53 CDT 2005
> On Tue, Aug 23, 2005 at 12:35:16PM +0000, Stefan Dösinger wrote:
> > I'll try to reproduce the behaviour and write a small test for this
> > problem and the reference counting issue. However, this may take some
> > time...
> Could you do a +ddraw,+tid trace and check that all DirectX calls are done
> from the same thread ? If not, Wine is doing bad stuff that may lead to
> crashes in the GL drivers depending on the way they handle TLS and then
> your problem is a 'classical' one (for which the solution is still in the
> 'need to be done one day' phase :-) ).
As far as I can tell from a quick look, no. All ddraw calls are done from the
same thread, there are only a few imm32 calls from another thread.
Empire Earth uses at least 2 threads, one for the sound, and another one for
the rest. Perhaps there's also a third one for the DirectMusic stuff, which I
have disabled in the game's config.
I have noticed that it creates multiple DirectDraw and Direct3D devices, some
of them are freed, re-created and freed again. At the time of the crash due
to reference counting, there are at least 2 DirectDraw and 2 Direct3D
objects. Is this going to work?
I'll try to solve the reference counting problem first, because my first
"patch" only solved the symptom, but not the cause, and I'm not sure if there
are no connections between the 2 crashes.
Do you still want to see a +ddraw,+tid trace? I can upload one to my homepage.
More information about the wine-devel