http://bugs.winehq.org/show_bug.cgi?id=9810
Roderick Colenbrander thunderbird2k@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |stefandoesinger@gmx.at, | |thunderbird2k@gmx.net
--- Comment #1 from Roderick Colenbrander thunderbird2k@gmx.net 2007-09-29 08:24:41 --- I have checked what functions can cause problems. I haven't included surface.c and the buffer code as Stefan is rewriting those. The main issues are in surface.c. The surface code itself is making various opengl calls for no reason and big parts of the wined3d code are calling surface code like PreLoad/LoadTexture and even from withing ENTER_GL. Both pieces of code so now and then make calls to ActivateContext.
The surface code might be using ENTER_GL correctly (I think I took care of that a while ago) but due to recursive ENTER_GL calls, ActivateContext is called within ENTER_GL/LEAVE_GL. (Because other source files are called PreLoad/LoadTexture between ENTER_GL/LEAVE_GL)
The following pieces of code are not correct: cubetexture.c: - Preload calls surface.c its LoadTexture which can call ActivateContext context.c: - CreateContext should do its own ENTER_GL/LEAVE_GL - ActivateContext should do its own ENTER_GL/LEAVE_GL (the ENTER_GL was added in m y e77da5ef8ac09dc40acf25783fd39617ff32e51c patch which prevented calling ActivateContext between ENTER_GL, ActivateContext itself wasn't updated yet) device.c: - call to CreateContext should not be made between ENTER_GL/LEAVE_GL directx.c: - CreateFakeGLContext makes GDI calls between ENTER_GL drawprim.c: - blt_to_drawable does is a helper function and perhaps shouldn't do its own ENTER_GL. Its called from another helper function but that one can't be within ENTER_GL/LEAVE_GL either as it is making a lot of other wined3d calls which can have their own ENTER_GL and which call ActivateContext and friends. swapchain.c: - Present makes lots of wined3d calls between ENTER_GL, various of the calls call ActivateContext and friends, so they are potential problems volume.c: - PreLoad calls at least surface.c its LoadTexture which can call ActivateContext