http://bugs.winehq.org/show_bug.cgi?id=10758
--- Comment #1 from Stephen J. Smith sjs@khadrin.com 2007-12-12 18:35:58 --- So here is a patch that makes Myst4 not crash for me:
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 7cd60c1..7e506b4 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -6045,7 +6045,8 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetFrontBackBuffers(IWineD3DDevice *ifa
static HRESULT WINAPI IWineD3DDeviceImpl_GetDepthStencilSurface(IWineD3DDevice* iface, IWineD3DSurface **ppZStencilSurface) { IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface; - *ppZStencilSurface = This->stencilBufferTarget; + /* *ppZStencilSurface = This->stencilBufferTarget; */ + *ppZStencilSurface = This->auto_depth_stencil_buffer; TRACE("(%p) : zStencilSurface returning %p\n", This, *ppZStencilSurface);
if(*ppZStencilSurface != NULL) {
No clue if that is the right fix. I thought of it because much of e4f8a2da2b601964aa4261cb1617ba41f58b5a69 is about renaming depthStencilBuffer to auto_depth_stencil_buffer, and because the last few things happening before a crash are
0009:trace:d3d9:IDirect3DDevice9Impl_GetRenderTarget (0x1375b8) Relay 0009:trace:d3d:IWineD3DDeviceImpl_GetRenderTarget (0x157ad8) : RenderTarget 0 Index returning 0x1381e0 0009:trace:d3d_surface:IWineD3DBaseSurfaceImpl_AddRef (0x1381e0) : AddRef increasing from 2 0009:trace:d3d_surface:IWineD3DBaseSurfaceImpl_GetParent (0x1381e0) : calling resourceimpl_GetParent 0009:trace:d3d9:IDirect3DSurface9Impl_AddRef (0x1381b8) 0009:trace:d3d9:IDirect3DDevice9Impl_AddRef (0x1375b8) : AddRef from 1 0009:trace:d3d9:IDirect3DSurface9Impl_AddRef (0x1381b8) : AddRef from 0 0009:trace:d3d_surface:IWineD3DSurfaceImpl_Release (0x1381e0) : Releasing from 3 0009:trace:d3d9:IDirect3DDevice9Impl_GetDepthStencilSurface (0x1375b8) Relay 0009:trace:d3d:IWineD3DDeviceImpl_GetDepthStencilSurface (0x157ad8) : zStencilSurface returning 0x138360 0009:trace:d3d_surface:IWineD3DBaseSurfaceImpl_AddRef (0x138360) : AddRef increasing from 1 0009:trace:d3d_surface:IWineD3DBaseSurfaceImpl_GetParent (0x138360) : calling resourceimpl_GetParent 0009:trace:seh:raise_exception code=c0000005 flags=0 addr=0x138354
whereas the log from the version that doesn't crash looks like:
0009:trace:d3d9:IDirect3DDevice9Impl_GetRenderTarget (0x1375b8) Relay 0009:trace:d3d:IWineD3DDeviceImpl_GetRenderTarget (0x157ad8) : RenderTarget 0 Index returning 0x1381e0 0009:trace:d3d_surface:IWineD3DBaseSurfaceImpl_AddRef (0x1381e0) : AddRef increasing from 2 0009:trace:d3d_surface:IWineD3DBaseSurfaceImpl_GetParent (0x1381e0) : calling resourceimpl_GetParent 0009:trace:d3d9:IDirect3DSurface9Impl_AddRef (0x1381b8) 0009:trace:d3d9:IDirect3DDevice9Impl_AddRef (0x1375b8) : AddRef from 1 0009:trace:d3d9:IDirect3DSurface9Impl_AddRef (0x1381b8) : AddRef from 0 0009:trace:d3d_surface:IWineD3DSurfaceImpl_Release (0x1381e0) : Releasing from 3 0009:trace:d3d9:IDirect3DDevice9Impl_GetDepthStencilSurface (0x1375b8) Relay 0009:trace:d3d:IWineD3DDeviceImpl_GetDepthStencilSurface (0x157ad8) : zStencilSurface returning (nil) 0009:warn:d3d9:IDirect3DDevice9Impl_GetDepthStencilSurface Call to IWineD3DDevice_GetDepthStencilSurface failed
Let me know what logs would be helpful. The +all log from a crash is 53M.