KhronosGroup / MoltenVK

MoltenVK is a Vulkan Portability implementation. It layers a subset of the high-performance, industry-standard Vulkan graphics and compute API over Apple's Metal graphics framework, enabling Vulkan applications to run on macOS, iOS and tvOS.
Apache License 2.0
4.76k stars 419 forks source link

Detroit: Become Human crashes under Wine #2054

Open IsaacMarovitz opened 11 months ago

IsaacMarovitz commented 11 months ago

Detroit: Become Human (Vulkan 1.1) works under Wine on non-Macs, but on Mac it crashes on startup due to a seeming MoltenVK issue.

Unhandled exception: page fault on read access to 0x00000000000000c0 in 64-bit code (0x0000006fa3a3c8).
Register dump:
 rip:000000006fa3a3c8 rsp:000000000ad7f7f0 rbp:000000000ad7f7f0 eflags:00000202 (   - --  I   - - - )
 rax:0000000000000000 rbx:00006000019b7d80 rcx:000000006fea3cc8 rdx:0000000000000000
 rsi:00006000019b7d80 rdi:00006000019b7d80  r8:0000000000000008  r9:00000000000001f3 r10:0000000000000020
 r11:00006000019b7d80 r12:00007fc1c4b3e830 r13:00006000019b7d80 r14:00007fc1c4b3e830 r15:0000000000000000
Stack dump:
0x0000000ad7f7f0:  000000000ad7f810 000000006f9b1816
0x0000000ad7f800:  00007fc1c6356bf8 0000000000000000
0x0000000ad7f810:  000000000ad7f820 000000006fa3a396
0x0000000ad7f820:  000000000ad7f860 000000006f96c1a5
0x0000000ad7f830:  0000600000c99400 000000000ad7f980
0x0000000ad7f840:  0000000000000000 0000000000000000
0x0000000ad7f850:  0000000000000002 0000000088af3400
0x0000000ad7f860:  000000000ad7f890 0000000068cd97b7
0x0000000ad7f870:  0000000000000022 000000009191f8a0
0x0000000ad7f880:  0000000000000002 0000000088af3400
0x0000000ad7f890:  000000000ad7f950 00000000689706d2
0x0000000ad7f8a0:  0000000044bd0000 0000000000000000
Backtrace:
=>0 0x0000006fa3a3c8 _ZN26MVKCmdBindGraphicsPipeline22isTessellationPipelineEv+0x8() in libmoltenvk.dylib (0x0000000ad7f7f0)
0x0000006fa3a3c8 libmoltenvk.dylib+0xea3c8: cmpq    $0,0x000000000000c0 <wine-loader>+0xc0(%rax)
Modules:
Module  Address                 Debug info  Name (114 modules)
ELF 0000000000000000-000000000041c000   Stabs           <wine-loader>
PE  0000000000450000-00000000004cb000   Deferred        bink2w64
PE  00000000004d0000-0000000000500000   Deferred        libexpat
PE  0000000000500000-0000000000516000   Deferred        libpad
PE  0000000000520000-000000000054f000   Deferred        libscepad
PE  0000000001f30000-00000000020bf000   Deferred        gameoverlayrenderer64
PE  00000000020c0000-00000000020d1000   Deferred        psapi
PE  000000000b8b0000-000000000b8b9000   Deferred        dxgi_helper
PE  000000000b8c0000-000000000b8d0000   Deferred        dxgi
PE  0000000010000000-0000000010002000   Deferred        normaliz
ELF 0000000068039000-000000006803d000   Deferred        <wine-loader>
PE  00000000680a5000-00000000680b1000   Deferred        libwine.1.0.dylib
ELF 00000000680c6000-00000000680d6000   Deferred        user32.so
ELF 00000000680de000-00000000681ce000   Deferred        ntdll.so
PE  0000000068490000-00000000684ac000   Deferred        libd3dshared.dylib
ELF 00000000686c8000-00000000686d8000   Deferred        ws2_32.so
ELF 00000000686f6000-000000006870a000   Deferred        crypt32.so
ELF 000000006872e000-0000000068746000   Deferred        bcrypt.so
ELF 000000006875b000-000000006876f000   Deferred        wldap32.so
PE  000000006877c000-0000000068790000   Deferred        libz.1.2.13.dylib
PE  00000000687ab000-00000000687c0000   Deferred        libbz2.1.0.8.dylib
PE  00000000687de000-00000000687ea000   Deferred        libbrotlidec.1.0.9.dylib
PE  000000006881d000-000000006883f000   Deferred        libbrotlicommon.1.0.9.dylib
ELF 000000006886c000-0000000068a74000   Deferred        win32u<elf>
  \-PE  0000000068880000-0000000068a30000   \               win32u
ELF 0000000068cc7000-0000000068d5b000   Deferred        winevulkan.so
PE  0000000068e1b000-0000000068ec2000   Deferred        libfreetype.6.dylib
PE  0000000068fa0000-0000000068fcc000   Deferred        libpng16.16.dylib
PE  000000006b03c000-000000006b045000   Deferred        libffi.8.dylib
ELF 000000006b05f000-000000006b13f000   Deferred        winemac<elf>
  \-PE  000000006b070000-000000006b103000   \               winemac
PE  000000006cb4c000-000000006cb5b000   Deferred        libintl.8.dylib
PE  000000006cb6f000-000000006cb7f000   Deferred        libtasn1.6.dylib
PE  000000006cba1000-000000006cbd3000   Deferred        libidn2.0.dylib
ELF 000000006cbeb000-000000006cbf7000   Deferred        kerberos.so
ELF 000000006cbf8000-000000006cc08000   Deferred        dnsapi.so
PE  000000006cc46000-000000006cca1000   Deferred        libnettle.8.6.dylib
PE  000000006cd04000-000000006cebf000   Deferred        libgnutls.30.dylib
PE  000000006d0b5000-000000006d217000   Deferred        libp11-kit.0.dylib
PE  000000006d38e000-000000006d3de000   Deferred        libhogweed.6.6.dylib
ELF 000000006d417000-000000006d42b000   Deferred        secur32.so
ELF 000000006d43c000-000000006d458000   Deferred        winecoreaudio.so
PE  000000006d52e000-000000006d6d0000   Deferred        libunistring.5.dylib
PE  000000006d741000-000000006d7bf000   Deferred        libgmp.10.dylib
PE  000000006d868000-000000006d979000   Deferred        libiconv.2.dylib
PE  000000006d9b4000-000000006d9cc000   Deferred        libobjc-trampolines.dylib
PE  000000006dca3000-000000006de1f000   Deferred        coreaudio
PE  000000006f950000-00000000700a8000   Stabs           libmoltenvk.dylib
PE  000000007ac6d000-000000007aca1000   Deferred        libdxccontainer.dylib
PE  000000007b000000-000000007b558000   Deferred        kernelbase
PE  000000007b600000-000000007b7a4000   Deferred        kernel32
PE  000000007d400000-000000007d405000   Deferred        wine64-preloader
PE  0000000138000000-000000013962d000   Deferred        steamclient64
PE  000000013b400000-000000013b44b000   Deferred        steam_api64
PE  000000013f000000-000000013f197000   Deferred        tier0_s64
PE  000000013f600000-000000013f6b3000   Deferred        vstdlib_s64
PE  0000000140000000-00000001438c1000   Deferred        detroitbecomehuman
PE  000000014a070000-000000014c868000   Deferred        libmetalirconverter.dylib
PE  0000000170000000-0000000170333000   Deferred        ntdll
PE  0000000180000000-000000018058c000   Deferred        mfc140
PE  00000001c69e0000-00000001c7768000   Deferred        shell32
PE  00000001c8b40000-00000001c8bb8000   Deferred        msacm32
PE  00000001c8db0000-00000001c90c6000   Deferred        msvcrt
PE  00000001c92d0000-00000001c934e000   Deferred        winecoreaudio
PE  00000001dd3f0000-00000001dd76c000   Deferred        crypt32
PE  00000001ec2b0000-00000001ec356000   Deferred        ws2_32
PE  00000001f51e0000-00000001f5213000   Deferred        hid
PE  0000000201cf0000-0000000201d99000   Deferred        secur32
PE  000000021a7e0000-000000021a9c4000   Deferred        setupapi
PE  0000000228450000-00000002284c9000   Deferred        propsys
PE  0000000231ae0000-0000000231d71000   Deferred        rpcrt4
PE  000000023d820000-000000023df01000   Deferred        user32
PE  0000000240030000-00000002400bd000   Deferred        iphlpapi
PE  000000026b4c0000-000000026b756000   Deferred        gdi32
PE  000000026ed50000-000000026ed65000   Deferred        vcruntime140
PE  00000002739c0000-0000000273ea5000   Deferred        oleaut32
PE  0000000274a50000-0000000274a7c000   Deferred        kerberos
PE  000000027ab80000-000000027ab91000   Deferred        cfgmgr32
PE  000000028dfa0000-000000028dfc0000   Deferred        nsi
PE  000000029cfc0000-000000029d00c000   Deferred        dnsapi
PE  00000002a4090000-00000002a40c1000   Deferred        wtsapi32
PE  00000002bb750000-00000002bbca6000   Deferred        comctl32
PE  00000002bc640000-00000002bc67c000   Deferred        imagehlp
PE  00000002bcfe0000-00000002bcffc000   Deferred        mswsock
PE  00000002d4d40000-00000002d4d92000   Deferred        bcrypt
PE  00000002e3540000-00000002e3656000   Deferred        shlwapi
PE  00000002e8f10000-00000002e9495000   Deferred        ole32
PE  00000002f1fa0000-00000002f1fc0000   Deferred        version
PE  00000002f6140000-00000002f6275000   Deferred        xaudio2_8
PE  00000002f7230000-00000002f72f0000   Deferred        uxtheme
PE  0000000308050000-000000030816d000   Deferred        dinput8
PE  00000003126f0000-0000000312745000   Deferred        shcore
PE  0000000319900000-000000031999f000   Deferred        mfreadwrite
PE  0000000327020000-00000003271af000   Deferred        combase
PE  000000032a700000-000000032a7c1000   Deferred        sechost
PE  0000000330260000-000000033038e000   Deferred        advapi32
PE  0000000335260000-0000000335297000   Deferred        rtworkq
PE  0000000336850000-00000003368f4000   Deferred        mmdevapi
PE  0000000346ba0000-0000000346bee000   Deferred        jsproxy
PE  0000000358120000-0000000358250000   Deferred        winhttp
PE  0000000360e10000-0000000360eab000   Deferred        msvcp140
PE  00000003785e0000-00000003785f3000   Deferred        vulkan-1
PE  00000003871c0000-000000038720d000   Deferred        concrt140
PE  000000038b5a0000-000000038b713000   Deferred        wldap32
PE  00000003a6d40000-00000003a6f35000   Deferred        mfplat
PE  00000003a93b0000-00000003a93e7000   Deferred        xinput1_4
PE  00000003af670000-00000003af9f8000   Deferred        ucrtbase
PE  00000003afd00000-00000003afd66000   Deferred        imm32
PE  00000003b6dc0000-00000003b6edf000   Deferred        winevulkan
PE  00000003b8f00000-00000003b90b9000   Deferred        winmm
PE  00000003be590000-00000003be868000   Deferred        dbghelp
PE  00007ff80f264000-00007ff80f2a0000   Deferred        libsystem_kernel.dylib
PE  00007ff80f29f000-00007ff80f2ab000   Deferred        libsystem_pthread.dylib
PE  00007ff80f2cf000-00007ff80f2db000   Deferred        libsystem_platform.dylib
JoshuaBrest commented 10 months ago

Context:

Error Message on startup Screenshot of error

Blank screen on startup (mouse cursor sometimes appears) Screenshot of black screen

dinfyru commented 5 months ago

Any news?

anpom13 commented 3 months ago
Снимок экрана 2024-07-07 в 08 35 06

On crossover with cxpatcher I get not only black screen, but also this window error. Maybe it's reason why Detroit can't run? I see in internet how people solve that problem on steam deck with other games on linux (here, for example https://www.reddit.com/r/linux_gaming/comments/1coyfdh/psa_steam_game_launch_error_solution/) -- but I don't know can it work on Mac or not

billhollings commented 3 months ago

This looks to be something that will be better handled by reporting it to our friends over at CodeWeavers.

dinfyru commented 3 months ago

This looks to be something that will be better handled by reporting it to our friends over at CodeWeavers.

Tell me, have you already sent the data to CodeViewers? Or do we need to do this ourselves?

billhollings commented 3 months ago

This looks to be something that will be better handled by reporting it to our friends over at CodeWeavers.

Tell me, have you already sent the data to CodeViewers? Or do we need to do this ourselves?

I have not sent anything to CodeWeavers about this myself.

JoshuaBrest commented 2 months ago

This looks to be something that will be better handled by reporting it to our friends over at CodeWeavers.

It literally says it's a crash in your code. I'm struggling to understand how it's not your bug.

billhollings commented 2 months ago

This looks to be something that will be better handled by reporting it to our friends over at CodeWeavers.

It literally says it's a crash in your code. I'm struggling to understand how it's not your bug.

That may indeed turn out to be the case in the end. But the context of how MoltenVK is being used, what calls are being made, why the app is indicating the driver (MoltenVK?) is not supported and may crash, and what it means to continue under those conditions, are all better diagnosed within the app and/or Wine environment, using the debugging tools available there. For instance, this may be a situation where the app is trying to use a Vulkan feature that MoltenVK has indicated it does not support.

Once more info about all that is determined, it may come back here as a specific issue with much more context and information, it may come back here as a feature enhancement request, or it may be resolved within the app or Wine environments.

Notme17-io commented 2 months ago

This problem is observed on: Wine; CrossOver; Whiskey. 1 2

The message "Your video card is not officially supported by Detroit: Become Human" does not really affect anything, then after clicking "ok" the shader cache should load, but at this stage an error occurs. But judging by what was written everywhere, the problem arose on the old GPU(amd, nvidia), or on the Intel GPU, and was solved by releasing drivers for this crooked port of the game 3

https://www.intel.com/content/www/us/en/support/articles/000094530/graphics.html

I hope you can find the reason and fix it <3

Notme17-io commented 2 months ago

This looks to be something that will be better handled by reporting it to our friends over at CodeWeavers.

It literally says it's a crash in your code. I'm struggling to understand how it's not your bug.

That may indeed turn out to be the case in the end. But the context of how MoltenVK is being used, what calls are being made, why the app is indicating the driver (MoltenVK?) is not supported and may crash, and what it means to continue under those conditions, are all better diagnosed within the app and/or Wine environment, using the debugging tools available there. For instance, this may be a situation where the app is trying to use a Vulkan feature that MoltenVK has indicated it does not support.

Once more info about all that is determined, it may come back here as a specific issue with much more context and information, it may come back here as a feature enhancement request, or it may be resolved within the app or Wine environments.

🙏🏻🙏🏻🙏🏻

titiyoyo commented 1 month ago

happens here too