Empire Earth continued

Oliver Stieber oliver_stieber at yahoo.co.uk
Thu Sep 8 11:24:24 CDT 2005

--- Stefan Dösinger <stefandoesinger at gmx.at> wrote:

> Hi,
> I think I've found the cause of the Empire Earth crash. This is not a 
> reference counting problem at all, Empire Earth releases the DirectDraw and 
> Surface objects on purpose. This is what happens:
> 1) EE creates a DDraw object
> 2) It attaches a Complex Surface
> 3) It sets up a D3D device for this Surface
> 4) EE performs a Flip(NULL, 0x20) on the surface
> 5) It Releases the DirectDraw object
> 6) It Releases the surface
> Wine releases the surface in 5), Windows doesn't. It appears to me, that 
> Windows doesn't release Surfaces which have a D3D object attached when the 
> DDraw instance they belong to is freed.
> I have written a small test app, which reproduces EEs behaviour. It crashes in 
> Wine, but worksin Windows 2000. I'll do some more tests and submit a patch.
by the sound of things an internal reference is missing, up until 6 a reference should be kept,
preventing the surface from being released at 5.

> Stefan

Yahoo! Messenger - NEW crystal clear PC to PC calling worldwide with voicemail http://uk.messenger.yahoo.com

More information about the wine-devel mailing list