https://bugs.winehq.org/show_bug.cgi?id=39278
Bug ID: 39278 Summary: Multiple DirectX 10 games crash on unimplemented function d3d10_1.dll.D3D10CreateDeviceAndSwapChain1 (Assassin's Creed) Product: Wine Version: 1.7.51 Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: directx-d3dx10 Assignee: wine-bugs@winehq.org Reporter: focht@gmx.net Distribution: ---
Hello folks,
found while revisiting bug 24013
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Ubisoft/Assassin's Creed
$ wine ./AssassinsCreed_Dx10.exe ... fixme:win:EnumDisplayDevicesW ((null),0,0x386e314,0x00000000), stub! fixme:dxgi:dxgi_output_GetDisplayModeList iface 0x18e0e0, format DXGI_FORMAT_R8G8B8A8_UNORM, flags 0x1, mode_count 0x386e8d4, desc (nil) partial stub! fixme:dxgi:dxgi_output_GetDisplayModeList iface 0x18e0e0, format DXGI_FORMAT_R8G8B8A8_UNORM, flags 0x1, mode_count 0x386e8d4, desc 0x3084740 partial stub! fixme:dxgi:dxgi_output_FindClosestMatchingMode iface 0x18e0e0, mode 0x386e884, closest_match 0x386e8a0, device (nil) stub! wine: Call from 0x7b845d61 to unimplemented function d3d10_1.dll.D3D10CreateDeviceAndSwapChain1, aborting wine: Unimplemented function d3d10_1.dll.D3D10CreateDeviceAndSwapChain1 called at address 0x7b845d61 (thread 002a), starting debugger... Unhandled exception: unimplemented function d3d10_1.dll.D3D10CreateDeviceAndSwapChain1 called in 32-bit code (0x7b845d61). Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:7b845d61 ESP:0386e804 EBP:0386e868 EFLAGS:00000202( - -- I - - - ) EAX:7b832afd EBX:0002004e ECX:00000008 EDX:0386e824 ESI:0b67845c EDI:00000000 ... Backtrace: =>0 0x7b845d61 RaiseException+0x81(code=<couldn't compute location>, flags=<couldn't compute location>, nbargs=<couldn't compute location>, args=<couldn't compute location>) [/home/focht/projects/wine/wine.repo/src/dlls/kernel32/except.c:84] in kernel32 (0x0386e868) 1 0x7c4fc895 __wine_spec_unimplemented_stub+0x34(module="d3d10_1.dll", function="D3D10CreateDeviceAndSwapChain1") [/home/focht/projects/wine/wine.repo/src/dlls/winecrt0/stub.c:34] in d3d10_1 (0x0386e89c) 2 0x7c4fbb59 __wine_stub_D3D10CreateDeviceAndSwapChain1+0x28() in d3d10_1 (0x0b678450) 3 0x007d95ec in assassinscreed_dx10 (+0x3d95eb) (0x0b678450) 4 0x00000000 (0x0002004e) 0x7b845d61 RaiseException+0x81 [/home/focht/projects/wine/wine.repo/src/dlls/kernel32/except.c:84] in kernel32: subl $4,%esp 84 RtlRaiseException( &record );
Modules: Module Address Debug info Name (165 modules) PE 340000- 3ad000 Deferred d3dx10_36 PE 3b0000- 3c6000 Deferred xinput1_3 PE 400000- 2b217ab Export assassinscreed_dx10 PE 10000000-10031000 Deferred eax PE 18000000-18038000 Deferred binkw32 ... ELF 7a800000-7a939000 Deferred opengl32<elf> -PE 7a840000-7a939000 \ opengl32 ELF 7ada8000-7b800000 Deferred nouveau_dri.so ELF 7b800000-7ba71000 Dwarf kernel32<elf> -PE 7b820000-7ba71000 \ kernel32 ELF 7bc00000-7bd04000 Deferred ntdll<elf> -PE 7bc20000-7bd04000 \ ntdll ELF 7bf00000-7bf04000 Deferred <wine-loader> ELF 7c4c3000-7c4d0000 Deferred libdrm_radeon.so.1 ELF 7c4ea000-7c500000 Dwarf d3d10_1<elf> -PE 7c4f0000-7c500000 \ d3d10_1 ELF 7c802000-7c808000 Deferred libtxc_dxtn.so ELF 7c808000-7c82c000 Deferred libdrm_intel.so.1 ... ELF 7dfcd000-7e063000 Deferred d3dcompiler_43<elf> -PE 7dff0000-7e063000 \ d3dcompiler_43 ELF 7e063000-7e21f000 Deferred wined3d<elf> -PE 7e0c0000-7e21f000 \ wined3d ... ELF 7e2cf000-7e2f9000 Deferred dxgi<elf> -PE 7e2e0000-7e2f9000 \ dxgi ELF 7e2f9000-7e349000 Deferred d3d11<elf> -PE 7e310000-7e349000 \ d3d11 ELF 7e349000-7e35f000 Deferred d3d10core<elf> -PE 7e350000-7e35f000 \ d3d10core ELF 7e35f000-7e3a9000 Deferred d3d10<elf> -PE 7e370000-7e3a9000 \ d3d10 ... Threads: process tid prio (all id:s are in hex) 00000008 (D) C:\Program Files\Ubisoft\Assassin's Creed\AssassinsCreed_Dx10.exe 0000002f 0 0000002e 0 0000002d 1 0000002c 15 0000002b 0 0000002a 0 <== ... --- snip ---
Disabling builtin 'd3d10_1.dll' works around the crash - only to run into other issues.
$ wine --version wine-1.7.51-102-ga7e294c
Regards