Re : [DDRAW] Only detach surfaces when releasing a non-texture surface attached to a complex root.

Elie Morisse lachienne at wanadoo.fr
Mon Aug 28 11:16:46 CDT 2006


Le 28.08.2006 18:10:37, Stefan Dösinger a écrit :
> Do you mean the game releases the texture manually until it is destroyed??? 
> Urgh. Can you verify that this doesn't come from DllMain() in 
> dlls/ddraw/main.c?
Nop I checked, and anyway can't be because this occurs also when switching resolutions.

> The msdn suggests that destroying the root destroys all sublevels, and it 
> would be sane, because you create all surfaces with one call, so you should 
> destroy them with one call.
> 
> If you are right, then every single ddraw application that works on wine now 
> would leak memory on windows.
Well I don't understand, what leaks ? Complex attached surfaces are still destroyed when we fire the root.
The new patch takes Moto Racer 2 memleak issues in hand, and Nomad Soul leaks may not be related to this — not a regression because exiting led to crash before ( and remaining surfaces are simple surfaces ). In fact i was a bit unfresh when i posted the patch :P ..

> I suspect that something else, like a bad 
> capatiblity flag, causes weird behavior by the app, so it behaves differently 
> in wine then on windows, or that the real refcouning issue is that the front 
> buffer shouldn't be destroyed when the app messes with the back buffer. The 
> other thing could be that this application has an registry hack on windows: 
> Windows XP has ddraw compatiblity regitry entries in 
> HKEY_LOCAL_MACHINE\Software\Microsoft\DirectDraw\Compatiblitity. Can you 
> check if you find Nomad Soul there? I have no idea what these entries mean, 
> can you try to remove the whole compatiblity key and try nomad soul again? 
> (well, backup first :-) )
Hmm I'll try as soon as I procure it.
But first tell me if i misunderstood something ;-)

> It is hard to prove that a surface is really destroyed or not, but you can 
> write a regression test which accesses a back buffer which belongs to a 
> complex back buffer / front buffer compound after the front buffer has been 
> destroyed?





More information about the wine-devel mailing list