Here's another piece of info that might be useful: When the game started being slow during the game menus, there was more output. The interesting line was the "Unhandled page fault" one. Code: fixme:d3d:IWineD3DImpl_FillGLCaps OpenGL implementation supports 32 vertex samplers and 32 total samplers fixme:d3d:IWineD3DImpl_FillGLCaps Expected vertex samplers + MAX_TEXTURES(=8) > combined_samplers fixme:win:EnumDisplayDevicesW ((null),0,0x32ef54,0x00000000), stub! err:wgl:internal_SetPixelFormat Invalid operation on root_window err:d3d:CreateContext SetPixelFormat failed on HDC=0x370 for iPixelFormat=3 err:d3d:IWineD3DDeviceImpl_CreateSwapChain Failed to create a new context fixme:d3d:IWineD3DDeviceImpl_CreateSwapChain (0x13c520) Something's still holding the front buffer fixme:d3d9:IDirect3DDevice9Impl_CreateAdditionalSwapChain (0x138168) call to IWineD3DDevice_CreateSwapChain failed fixme:d3d9:IDirect3D9Impl_CreateDevice (0x137708) D3D Initialization failed for WineD3DDevice 0x13c520 fixme:d3d:IWineD3DDeviceImpl_SetSoftwareVertexProcessing (0x154220) : stub fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glBindTexture @ surface.c / 2382 fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexParameteri(dimension, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE) @ surface.c / 2384 fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexParameteri(dimension, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE) @ surface.c / 2386 fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexParameteri(dimension, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE) @ surface.c / 2388 fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexParameteri(dimension, GL_TEXTURE_MIN_FILTER, GL_NEAREST) @ surface.c / 2390 fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexParameteri(dimension, GL_TEXTURE_MAG_FILTER, GL_NEAREST) @ surface.c / 2392 fixme:d3d_surface:IWineD3DSurfaceImpl_BindTexture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glBindTexture @ surface.c / 2401 fixme:d3d_surface:surface_allocate_surface >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexImage2D @ surface.c / 404 fixme:d3d_surface:read_from_framebuffer_texture >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glCopyTexSubImage2D @ surface.c / 968 wine: Unhandled page fault on read access to 0xaac52884 at address 0x601de41f (thread 0009), starting debugger... fixme:ntdll:FILE_GetNtStatus Converting errno 12 to STATUS_UNSUCCESSFUL fixme:ntdll:FILE_GetNtStatus Converting errno 12 to STATUS_UNSUCCESSFUL fixme:ntdll:FILE_GetNtStatus Converting errno 12 to STATUS_UNSUCCESSFUL fixme:ntdll:FILE_GetNtStatus Converting errno 12 to STATUS_UNSUCCESSFUL fixme:ntdll:FILE_GetNtStatus Converting errno 12 to STATUS_UNSUCCESSFUL fixme:ntdll:FILE_GetNtStatus Converting errno 12 to STATUS_UNSUCCESSFUL fixme:ntdll:FILE_GetNtStatus Converting errno 12 to STATUS_UNSUCCESSFUL fixme:ntdll:FILE_GetNtStatus Converting errno 12 to STATUS_UNSUCCESSFUL