-----Original Message----- From: Stefan Dösinger stefan@codeweavers.com To: celticht32@aol.com Cc: 'Ivan Gyurdiev' ivg231@gmail.com; 'James Hawkins' truiken@gmail.com; wine-devel@winehq.org Sent: Wed, 23 Jul 2008 12:10 pm Subject: RE: EverQuest2.exe and context.c
Ok I did a clean install.. rebuilt wine from the base 1.1.1 code put the above patch into the context.c and reran EverQuest2.exe I put export WINEDEBUG=+d3d,+sed before running and am attaching the trace. (If you need more just send me a message and I will retry it. I still get the card does not have pixel shader error (and yes the card has pixel shaders (its an ATI FIREGL5200)). I am attaching the log and the screenshot.
Don't let yourself be fooled by the pixelshader error message. It most likely has nothing to do with pixel shaders at all. Most likely the game does something like this:
try { do_init_1(); do_init_2(); do_init_3(); } catch(all_stuff_that_can_go_wrong) { /* Initialization fails. This usually means that the card doesn't have the features * we need */ MessageBox("NO PIXEL SHADERS!!!!! GO BUY A BETTER CARD!!11!1!!\n"); }
Of course the app isn't prepared for other things to go wrong, e.g. a Wine bug or a driver bug, and fails to write as much details about the problem as it can. Writing proper error paths is a pain in the ass, and so on.
wine: Unhandled page fault on read access to 0x016c6580 at addr
ess 0xa3502f
(thread 0021), starting debugger..
This line is much more suspicious. The app seems to crash somewhere, and as far as I can see in the log long after initializing the opengl context. It does a reset call, but the Reset call succeeds. If changing the pixel format loading changes the behavior, it's most likely because it avoids triggering some crash in the graphics driver(doesn't mean it is a driver bug though).
Agree'ed, so suggestions on what to turn on to get a better idea on whats causing the page fault.. the +relay dump isn't really helping per'se I did parse it and get somewhat of a list of calls but I don't know if that would help here that is :
advapi32.RegCloseKey,advapi32.RegCreateKeyW,advapi32.RegSetValueExA,Comctl32.386,comctl32.ImageList_Destroy,devenum.DllCanUnloadNow,dsound.DllCanUnloadNow ,dxdiagn.DllCanUnloadNow fixme:dsound:DllCanUnloadNow,gdi32.DeleteDC,gdi32.DeleteObject,KERNEL32.__wine_dll_unregister_16,KERNEL32.CloseHandle,KERNEL32.CreateFileA,KERNEL32.ExitProcess,KERNEL32.FlsGetValue, KERNEL32.FlushFileBuffers,KERNEL32.FreeLibrary60b4a693,KERNEL32.GetLastError,KERNEL32.GetProcAddress,KERNEL32.GetProcessHeap,KERNEL32.GetSystemTimeAsFileTime,KERNEL32.GlobalDeleteAtom KERNEL32.GlobalFree,,KERNEL32.GlobalUnlock,KERNEL32.HeapDestroy,KERNEL32.InterlockedDecrement,KERNEL32.InterlockedExchange,KERNEL32.LocalFree,KERNEL32.OutputDebugStringA KERNEL32.QueryPerformanceCounter,KERNEL32.QueryPerformanceFrequency,KERNEL32.RaiseException,KERNEL32.ReleaseMutex,KERNEL32.SetConsoleCtrlHandler,KERNEL32.SetEvent KERNEL32.SetLastError,KERNEL32.SetStdHandle,KERNEL32.SetUnhandledExceptionFilter,KERNEL32.Sleep,KERNEL32.TlsFree,KERNEL32.TlsGetValue,KERNEL32.VirtualQuery,KERNEL32.WaitForSingleObject KERNEL32.WaitForSing leObjectEx,KERNEL32.WriteFile,midimap.DriverProc,midimap.modMessage,msacm32.drv.DriverProc,msacm32.drv.widMessage,msacm32.drv.wodMessage,ntdll.RtlAllocateHeap ntdll.RtlDecodePointer,ntdll.RtlDeleteCriticalSection,ntdll.RtlEncodePointer,ntdll.RtlFreeHeap,ole32.CoTaskMemFree,ole32.OleUninitialize,PE:DLL,quartz.DllCanUnloadNow,rpcrt4.NDRCContextBinding rpcrt4.NdrClientContextMarshall,rpcrt4.NdrClientInitializeNew,rpcrt4.NdrGetBuffer,rpcrt4.NdrSendReceive,sensapi.IsNetworkAlive,user32.CharLowerW,user32.DefWindowProcW,user32.DestroyIcon user32.DestroyWindow,user32.DispatchMessageW,user32.GetMessageW,user32.PostQuitMessage,user32.UnregisterClassW,window:proc,winealsa.drv.DriverProc,winealsa.drv.DriverProc,winealsa.drv.midMessage winealsa.drv.modMessage,winealsa.drv.mxdMessage,winealsa.drv.widMessage,winealsa.drv.wodMessage,winex11.drv.ImeDestroy
I am wondering if the winex11.drv is having issues with the ATI driver when it does the destroy? The above btw is not in any particular order or such as well... Any hints where to look next? I just found the alert log in the EverQuest2.directory so I attached that as well.. maybe that will give some idea of what might be going on?
Chris
P.s. yes I know this reply is in html I am having to use the web to post this from work as they have smtp traffic blocked where I am and havent connected to my 3g modem to get around it =D