Does changing the line 575 (in device.d, dlls/d3d8) to be
if (ppBackBuffer) IDirect3DSurface8Impl_AddRef((LPDIRECT3DSURFACE8) *ppBackBuffer);
make any difference - Looks like the app is doing an odd way to work out how many back buffers there are.
Jason
Ann and Jason Edmeades wrote:
Does changing the line 575 (in device.d, dlls/d3d8) to be
if (ppBackBuffer) IDirect3DSurface8Impl_AddRef((LPDIRECT3DSURFACE8) *ppBackBuffer);
make any difference - Looks like the app is doing an odd way to work out how many back buffers there are.
Jason
Shouldn't that be if (*ppBackBuffer) ?
Here is what I get with if (*ppBackBuffer)
fixme:ddraw:Main_DirectDraw_SetCooperativeLevel (0x40361ca0)->(00000000,00000008) trace:d3d:Direct3DCreate8 SDKVersion = dc, Created Direct3D object at 0x403621e0 fixme:d3d_caps:IDirect3D8Impl_FillGLCaps found GL_VERSION ("1.5.1 NVIDIA 61.06")->(0x003d17da) fixme:d3d_caps:IDirect3D8Impl_FillGLCaps found GL_RENDERER ("GeForce FX 5200/AGP")->(0x0250) trace:d3d:IDirect3D8Impl_CreateDevice (0x403621e0)->(Adptr:0, DevType: 1, FocusHwnd: 0x20024, BehFlags: 80, PresParms: 0x41fc40b8, RetDevInt: 0x41fc409c) trace:d3d:IDirect3D8Impl_AddRef (0x403621e0) : AddRef from 1 trace:d3d:IDirect3DDeviceImpl_CreateStateBlock (0x40362460) : Type(1) trace:d3d:IDirect3D8Impl_CreateDevice (0x403621e0)->(DepthStencil:(75,D3DFMT_D24S8), BackBufferFormat:(22,D3DFMT_X8R8G8B8)) trace:d3d:IDirect3D8Impl_CreateDevice Context created (HWND=0x20024, glContext=0x43044064, Window=48234498, VisInfo=0x43043df0) fixme:d3d:IDirect3DDevice8Impl_Reset (0x40362460) : stub trace:d3d:IDirect3DDevice8Impl_GetBackBuffer (0x40362460) : BackBuf 0 Type 0 returning (nil) trace:d3d:IDirect3DDevice8Impl_GetDepthStencilSurface (0x40362460)->((nil)) default((nil)) trace:d3d:IDirect3DDevice8Impl_Release (0x40362460) : ReleaseRef to 0 trace:d3d:IDirect3D8Impl_Release (0x403621e0) : ReleaseRef to 1 X Error of failed request: GLXBadPbuffer Major opcode of failed request: 128 (GLX) Minor opcode of failed request: 28 () Serial number of failed request: 2395 Current serial number in output stream: 2396 [wine@dell Battlefield 1942 Singleplayer Demo]$ err:ntdll:RtlpWaitForCriticalSection section 0x4194f800 "x11drv_main.c: X11DRV_CritSection" wait timed out in thread 000f, blocked by 000e, retrying (60 sec)
D'oh... and yes! I'm downloading it (slowly) and I'll see if I can take a look. Did it install without problems (any windows dlls needed?)
Can you please email me a +d3d,+d3d_surface,+d3d_caps trace in the meantime.
Jason
-----Original Message----- From: Robert Reif [mailto:reif@earthlink.net] Sent: 06 September 2004 20:38 To: Ann and Jason Edmeades Cc: Wine Devel Subject: Re: Battlefield 1942 d3d8 crash
Ann and Jason Edmeades wrote:
Does changing the line 575 (in device.d, dlls/d3d8) to be
if (ppBackBuffer) IDirect3DSurface8Impl_AddRef((LPDIRECT3DSURFACE8) *ppBackBuffer);
make any difference - Looks like the app is doing an odd way to work out
how
many back buffers there are.
Jason
Shouldn't that be if (*ppBackBuffer) ?
Here is what I get with if (*ppBackBuffer)
fixme:ddraw:Main_DirectDraw_SetCooperativeLevel (0x40361ca0)->(00000000,00000008) trace:d3d:Direct3DCreate8 SDKVersion = dc, Created Direct3D object at 0x403621e0 fixme:d3d_caps:IDirect3D8Impl_FillGLCaps found GL_VERSION ("1.5.1 NVIDIA 61.06")->(0x003d17da) fixme:d3d_caps:IDirect3D8Impl_FillGLCaps found GL_RENDERER ("GeForce FX 5200/AGP")->(0x0250) trace:d3d:IDirect3D8Impl_CreateDevice (0x403621e0)->(Adptr:0, DevType: 1, FocusHwnd: 0x20024, BehFlags: 80, PresParms: 0x41fc40b8, RetDevInt: 0x41fc409c) trace:d3d:IDirect3D8Impl_AddRef (0x403621e0) : AddRef from 1 trace:d3d:IDirect3DDeviceImpl_CreateStateBlock (0x40362460) : Type(1) trace:d3d:IDirect3D8Impl_CreateDevice (0x403621e0)->(DepthStencil:(75,D3DFMT_D24S8), BackBufferFormat:(22,D3DFMT_X8R8G8B8)) trace:d3d:IDirect3D8Impl_CreateDevice Context created (HWND=0x20024, glContext=0x43044064, Window=48234498, VisInfo=0x43043df0) fixme:d3d:IDirect3DDevice8Impl_Reset (0x40362460) : stub trace:d3d:IDirect3DDevice8Impl_GetBackBuffer (0x40362460) : BackBuf 0 Type 0 returning (nil) trace:d3d:IDirect3DDevice8Impl_GetDepthStencilSurface (0x40362460)->((nil)) default((nil)) trace:d3d:IDirect3DDevice8Impl_Release (0x40362460) : ReleaseRef to 0 trace:d3d:IDirect3D8Impl_Release (0x403621e0) : ReleaseRef to 1 X Error of failed request: GLXBadPbuffer Major opcode of failed request: 128 (GLX) Minor opcode of failed request: 28 () Serial number of failed request: 2395 Current serial number in output stream: 2396 [wine@dell Battlefield 1942 Singleplayer Demo]$ err:ntdll:RtlpWaitForCriticalSection section 0x4194f800 "x11drv_main.c: X11DRV_CritSection" wait timed out in thread 000f, blocked by 000e, retrying (60 sec)