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