http://bugs.winehq.org/show_bug.cgi?id=24276
Summary: Max Payne 2 - early crash when running with mesa driver Product: Wine Version: 1.3.2 Platform: x86-64 URL: http://www.rockstargames.com/maxpayne2/mp2_downloads.h tml OS/Version: Linux Status: UNCONFIRMED Severity: major Priority: P2 Component: directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: liquid.acid@gmx.net CC: hverbeet@gmail.com
Created an attachment (id=30574) --> (http://bugs.winehq.org/attachment.cgi?id=30574) i965 classic crash
Hi there,
like I already feared in bug #12051 the game 'Max Payne 2' never worked when wined3d runs on a mesa driver.
I somehow knew this problem, because back then when I still had my Intel i915 it wouldn't run as well. However I always blamed it on limited hardware support of the integrated Intel GPU. I'm now back with a i965-based GPU (Arrandale, IGP in a Core i5 M450) and this problem still occurs. The Arrandale has DX10 features, so something can't be right here.
Testing the game with swrast (both classic and gallium, powered by LLVM) yields exactly the same results.
What to do? Fetch the MP2 demo and launch it. Finish config (it shouldn't matter what gfx settings you select) and let the launcher start the game. After the short intro movie a loading screen appears. Shortly after the progress bar advances for the first time, the game crashes.
I'm going to attach some logs from the crashes: (i) i965 with classic driver (gallium doesn't work, crashes somewhere else but in mesa code) (ii) swrast gallium (iii) swrast classic
All segfault at the exact same position: Backtrace: 0x00370265: movl 0x8(%esi),%eax
Using winedbg and disasm yields this: 0x00370250: movl %ecx,0x00000000 0x00370256: addl $0xc8,%esp 0x0037025c: ret $0x24 0x0037025f: int $3 0x00370260 ??4P_TextureFormat@@QAEAAV0@ABV0@@Z in e2mfc: pushl %esi 0x00370261: movl 0x8(%esp),%esi 0x00370265: movl 0x8(%esi),%eax 0x00370268: movl %eax,0x8(%ecx) 0x0037026b: movl 0xc(%esi),%edx 0x0037026e: movl %edx,0xc(%ecx)
So there is some sort of texture format (checking?) function in e2mfc that freaks out when mesa is used. I suspect that wine doesn't advertise certain texture formats (that are _always_ available on native Windows) when running on a mesa driver, or the mesa driver doesn't advertise them - no idea?
Any idea how to procede with the debugging? I still have to check the game on my r700 card, also with mesa drivers (no fglrx installed, does this even work with the latest xserver?)
Adding Henri and Stefan because they likely know what to do next (especially Henri, since he's also working on mesa - great job anyway!)
Greets, Tobias
EDIT:
uname -a: Linux leena 2.6.35.4 #3 SMP PREEMPT Mon Aug 30 22:55:57 CEST 2010 x86_64 Intel(R) Core(TM) i5 CPU M 450 @ 2.40GHz GenuineIntel GNU/Linux
i965 and swrast gallium are built from git master, swrast classic is older. And yes, these are the 32bit compiles :)