trace:d3d:IWineD3DDeviceImpl_SetupFullscreenWindow Old style was 90000000,00000008, setting to 90080000,00000008 trace:ddraw:IDirectDrawImpl_FlipToGDISurface (0x19daf8)
This here seems strange. If you compare that to the good log you'll see that IWineD3DDeviceImpl_Init3D was left way to early. As there is no ERR about a possible reason for the abortion I think that somewhere an exception is thrown, caught by the game which terminates afterwards.
Doesn't seem so. See below.
You can do the following: -> Run the game in winedbg and see if it catches the execption and gives a backtrace and crash position
There is no such exception, at least winedbg doesn't catch any. Is a special action (command etc.)
-> Add some extra traces(or ERRs) to Init3D and its subfunctions to catch the last line that is exectuted successfully.
Hmm... I added some traces to device.c. We know that last known trace from Init3D in the bad case is "Creating implicit swapchain." I added a new trace here:
/* Setup the implicit swapchain */ TRACE("Creating implicit swapchain\n"); if (D3D_OK != D3DCB_CreateAdditionalSwapChain((IUnknown *) This->parent, pPresentationParameters, (IWineD3DSwapChain **)&swapchain) || swapchain == NULL) { WARN("Failed to create implicit swapchain\n"); return WINED3DERR_INVALIDCALL; } TRACE("1674\n");
(it's on line 1674) and this one was NOT reached. I'm a bit confusd because I failed to find the code for D3DCB_CreateAdditionalSwapChain(), I found only its call in device.c and its definition in wined3d_interface.h. So, what to do next ? With regards, Pavel Troller