[Bug 9810] wined3d calls GDI and USER functions inside ENTER_GL/LEAVE_GL

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Sep 29 08:24:41 CDT 2007


http://bugs.winehq.org/show_bug.cgi?id=9810


Roderick Colenbrander <thunderbird2k at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |stefandoesinger at gmx.at,
                   |                            |thunderbird2k at gmx.net




--- Comment #1 from Roderick Colenbrander <thunderbird2k at 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


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list