Crash in Need For Speed Hot Pursuit (2010/NFS11) in OSX

Questions about Wine on macOS.
Locked
pmaloney
Level 2
Level 2
Posts: 27
Joined: Mon Nov 25, 2013 1:25 am

Crash in Need For Speed Hot Pursuit (2010/NFS11) in OSX

Post by pmaloney »

Hi,
I just got this game from Steam and installed it in a clean win32 prefix (wine is compiled as 32-bit). All my versions of wine are built with osxwinebuilder. I am running fully patched OSX Mountain Lion on a late 2012 27" iMac, i7, 24GB, GTX680MX w/2GB.

Under wine 1.6.0, it won't even start up. Under 1.7.7, the game runs...until you start a race. The loading screen will appear for a bit, then it crashes with this in the console:

Code: Select all

fixme:d3d_surface:surface_allocate_surface No GL internal format for format WINED3DFMT_NULL.
err:d3d_surface:surface_allocate_surface >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexImage2D @ surface.c / 2135
err:d3d_surface:surface_upload_data >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glTexSubImage2D @ surface.c / 1771
fixme:d3d_surface:surface_load_location Unimplemented copy from SFLAG_INSYSMEM to SFLAG_INTEXTURE for depth/stencil buffers.
err:d3d:buffer_sync_apple >>>>>>>>>>>>>>>>> GL_OUT_OF_MEMORY (0x505) from glBufferDataARB
 @ buffer.c / 609
wine: Unhandled page fault on write access to 0x00000564 at address 0xb6c49a (thread 0053), starting debugger...
Unhandled exception: page fault on write access to 0x000005b4 in 32-bit code (0x00b6c49a).
Register dump:
 CS:001b SS:0023 DS:0023 ES:0023 FS:1027 GS:000f
 EIP:00b6c49a ESP:046ef140 EBP:046ef148 EFLAGS:00010212(  R- --  I   -A- - )
 EAX:01ae9dd0 EBX:00000000 ECX:00000154 EDX:00000000
 ESI:01ae9880 EDI:000005b4
Stack dump:
0x046ef140:  01af3180 0af524e0 01af3180 00853646
0x046ef150:  000005b4 01ae9880 00000550 01af3180
0x046ef160:  046ef1d0 000005b4 00000000 00000550
0x046ef170:  0089c54e 046ef3e8 0ac544f0 01af3180
0x046ef180:  00894cff 00000000 00000001 046ef1e4
0x046ef190:  0ac5cc81 046ef480 00000001 00000000
0204: sel=1027 base=7ff80000 limit=00000fff 32-bit rw-
Backtrace:
=>0 0x00b6c49a in nfs11 (+0x76c49a) (0x046ef148)
  1 0x00853646 in nfs11 (+0x453645) (0x01af3180)
0x00b6c49a: repe movsl	(%esi),%es:(%edi)
Modules:
Module	Address			Debug info	Name (47 modules)
ELF	       0-7bf03000	Stabs           <wine-loader>
PE	  340000-  356000	Deferred        xinput1_3
PE	  400000- 1665000	Deferred        nfs11
PE	10000000-101e5000	Deferred        d3dx9_42
PE	402a0000-402a4000	Deferred        msvcrt
PE	40410000-40417000	Deferred        gdi32
PE	406e0000-406e4000	Deferred        advapi32
PE	407e0000-407e4000	Deferred        dinput8
PE	40820000-40828000	Deferred        ole32
PE	40ba0000-40bdb000	Deferred        user32
PE	40f90000-40f94000	Deferred        version
PE	40fb0000-40fb4000	Deferred        rpcrt4
PE	41100000-4110e000	Deferred        setupapi
PE	411f0000-411f4000	Deferred        ws2_32
PE	41270000-412e6000	Deferred        winmm
PE	41370000-41379000	Deferred        msacm32
PE	413b0000-413b3000	Deferred        imagehlp
PE	413e0000-413e4000	Deferred        dbghelp
PE	41500000-41504000	Deferred        psapi
PE	41510000-41550000	Deferred        crypt32
PE	416d0000-416d4000	Deferred        wintrust
PE	41740000-4189e000	Deferred        shell32
PE	41b20000-41b28000	Deferred        shlwapi
PE	41c20000-41c28000	Deferred        oleaut32
PE	41f10000-41f14000	Deferred        d3d9
PE	41ff0000-41ff4000	Deferred        wined3d
PE	42830000-42834000	Deferred        opengl32
PE	42b10000-42b14000	Deferred        dsound
PE	42bd0000-42bd4000	Deferred        iphlpapi
PE	42e70000-42e73000	Deferred        winemac
PE	44330000-44334000	Deferred        imm32
PE	45da0000-45da3000	Deferred        avicap32
PE	49c90000-49c94000	Deferred        ddraw
PE	49e50000-49e5b000	Deferred        msvfw32
PE	49f60000-49f64000	Deferred        dxgi
PE	49fd0000-49fdb000	Deferred        dinput
PE	4a080000-4a0af000	Deferred        comctl32
PE	4a2c0000-4a2c4000	Deferred        uxtheme
PE	4a3b0000-4a3b9000	Deferred        quartz
PE	4a680000-4a684000	Deferred        qcap
PE	4a700000-4a706000	Deferred        devenum
PE	4a760000-4a764000	Deferred        mmdevapi
PE	4a7b0000-4a7b3000	Deferred        winecoreaudio
PE	4a900000-4a903000	Deferred        msacm32
PE	4a920000-4a923000	Deferred        midimap
PE	7b810000-7b9ad000	Deferred        kernel32
PE	7bc10000-7bc14000	Deferred        ntdll
Threads:
process  tid      prio (all id:s are in hex)
0000000e services.exe
	00000027    0
	00000026    0
	00000020    0
	00000014    0
	00000010    0
	0000000f    0
00000012 winedevice.exe
	0000001b    0
	0000001a    0
	00000017    0
	00000013    0
0000001e plugplay.exe
	00000023    0
	00000022    0
	0000001f    0
00000024 PnkBstrA.exe
	00000029    0
	00000028    0
	00000025    0
0000002a Steam.exe
	00000054    0
	00000053    0
	00000050    0
	0000004f    0
	0000004e    0
	0000004d    0
	0000004c    0
	0000004b    0
	0000004a    0
	00000049    0
	00000048    0
	0000002e    0
	0000002f    0
	00000030    0
	00000047    0
	00000037    0
	00000035    0
	00000034    0
	0000001c    0
	0000000c    0
	0000001d    0
	00000009    0
	0000000d    0
	0000000b    0
	00000046    0
	00000045    0
	00000044    0
	00000043    0
	00000042    0
	00000041    0
	00000040    0
	0000003f    0
	0000003e    0
	0000003d    0
	0000003c    0
	0000003b    0
	0000003a    0
	00000039    0
	00000036    0
	00000033    0
	00000032    0
	00000031    0
	0000002b    0
0000002c explorer.exe
	0000002d    0
0000005a (D) C:\Program Files\Steam\steamapps\common\Need for Speed Hot Pursuit\NFS11.exe
	00000038    2
	00000057   15
	00000058   15
	00000019    2
	00000018    2
	00000051  -15
	00000052    0
	00000067    0
	00000066    0
	00000065    0
	00000064   15
	00000063    1
	00000062    0
	00000061    0
	00000060    0
	0000005f    0 <==
	0000005e    0
	0000005d    0
	0000005c    0
	0000005b    0
System information:
    Wine build: wine-1.7.7
    Platform: i386
    Host system: Darwin
    Host version: 12.5.0
If I set StrictDrawOrdering to 'enabled', the race will start but the framerate makes it pretty much unplayable. This is in the console (the additional lines in the snippet above do not appear):

Code: Select all

fixme:d3d_surface:surface_allocate_surface No GL internal format for format WINED3DFMT_NULL.
err:d3d_surface:surface_allocate_surface >>>>>>>>>>>>>>>>> GL_INVALID_ENUM (0x500) from glTexImage2D @ surface.c / 2135
err:d3d_surface:surface_upload_data >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glTexSubImage2D @ surface.c / 1771
I really want to play this game as it looks fantastic. The docs for StrictDrawOrdering say it will kill performance, and it definitely does.

Anyone know why StrictDrawOrdering stops the GL_OUT_OF_MEMORY situation and how that might be resolved without StrictDrawOrdering? I've done C development, so if I could do some debugging if that would help, I could definitely do that...I just need to be pointed in the right direction to start.

Regards, Patrick
Locked