protonscr

Mass Effect 2 crashes on launch

dxvkclosed d3d9not our bugwindows
doitsujin/dxvk#3264 · opened 2023-02-19 by mirh · updated 2024-09-05 · 11 comments · github
1 matching comments, n / p to jump
Mmirh 2023-02-19 github

Software information

Mass Effect 2, any setting.
I verified both DXVK to work with other games, and other wrappers to work with ME2.

System information

  • GPU: Geforce 2080 SUPER
  • Driver: 527.56
  • Wine version: W10 21H2
  • DXVK version: 2.1 and last git too

Apitrace file(s)

ME2Game.exe caused an Access Violation at location 798A0D8F in module nvoglv32.dll Reading from location 73A14274.

Registers:
eax=00000003 ebx=01ce7d58 ecx=00000064 edx=00000078 esi=01cb5694 edi=73a14274
eip=798a0d8f esp=0192bb80 ebp=0192bb88 iopl=0         nv up ei pl nz na pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010202

AddrPC   Params
798A0D8F 01CB5694 73A14274 0A0D48E8  nvoglv32.dll!vk_icdNegotiateLoaderICDInterfaceVersion+0x938ff
7948A989 7AB6323C 7AB63240 0192BD28  nvoglv32.dll!DllMain+0x11549
7949A565 01D03FD0 00000000 0A0D48E8  nvoglv32.dll!DrvPresentBuffers+0x3225
7945D909 0A0D48E8 01CB68F0 01C71950  nvoglv32.dll!0xf4d909
7945EE43 0A0D48E8 00000000 7973A577  nvoglv32.dll!0xf4ee43
7973AE8D 0192BE64 0192BE68 797B407A  nvoglv32.dll!vk_optimusGetInstanceProcAddr+0x1b9cd
7973562C 0192BE64 00000002 01CB68F0  nvoglv32.dll!vk_optimusGetInstanceProcAddr+0x1616c
797B407A 0A0D9640 00000002 01CB68F0  nvoglv32.dll!vkGetInstanceProcAddr+0x6269a
797B7AD4 01CF4D20 00000000 00000000  nvoglv32.dll!vkGetInstanceProcAddr+0x660f4
797B6144 01CB68F0 01CF4D20 00000000  nvoglv32.dll!vkGetInstanceProcAddr+0x64764
797B370F 0192C864 01CB68F0 01CB6E0C  nvoglv32.dll!vkGetInstanceProcAddr+0x61d2f
797B453F 0092C864 01CB6364 79750920  nvoglv32.dll!vkGetInstanceProcAddr+0x62b5f
797B34A0 0192C864 00000000 01CB6364  nvoglv32.dll!vkGetInstanceProcAddr+0x61ac0
79750931 0192C864 00000000 01CB6364  nvoglv32.dll!vkCreateInstance+0x11
6626E3A0 0192C924 00000000 0192CA30  vulkan-1.dll!vkDestroyDevice+0x3fa80
7971EFB3 0192C924 00000000 0192CA30  nvoglv32.dll!DrvPresentBuffers+0x287c73
66256E31 0192CA08 00000000 01CBB3A0  vulkan-1.dll!vkDestroyDevice+0x28511
6627405D 0192CB70 00000000 0192CA9C  vulkan-1.dll!vkDestroyDevice+0x4573d
52154540 043EA750 01BAA48C 0192CCE0  d3d9.dll!Ordinal16+0xb2dd0
52156A23 000000C9 FFFFF3C5 01BAE508  d3d9.dll!Ordinal16+0xb52b3
520A2665 00000001 520A1594 00000000  d3d9.dll!Ordinal16+0xef5
520A1594 00000020 00000001 0192D0E4  d3d9.dll!Direct3DCreate9+0x24
0096AB10 AFC79364 FFFFFFFF 00000000  ME2Game.exe!GImage::GImage+0x569570
009680E2 0192D1B0 00000000 00000004  ME2Game.exe!GImage::GImage+0x566b42
76F1BF34 00450053 00000032 00000000  combase.dll!ActivationPropertiesIn::~ActivationPropertiesIn+0x2a0  [onecore\com\combase\actprops\actprops.cxx @ 1207]
0053003B 00000032 00000000 00000000  ME2Game.exe!GImage::GImage+0x12ea9b
00450053 00000000 00000000 00000000  ME2Game.exe!GImage::GImage+0x4eab3

Log files

BBlisto91 2023-02-19 github

Your log indicates that dxvk doesn't even get to where it picks an adapter, as that is usually what is printed afterwards.
Does this work with older versions like 1.10.3 or 2.0? I am able to launch correctly on Linux with Proton Experimental with my 7900xtx and radv driver (also if i tell the game i'm on Nvidia)

Mmirh 2023-02-19 github

Indeed, the crash stack shows something wrong at the query adapters step.
No it doesn't seem to work even on older versions (2.0, 1.10.3, 1.9.1 or 1.5.5).

Mmirh 2023-02-20 github

Of note that I just tested on my laptop, with the same results out of the box.
If I disable the 950M though (leaving only the integrated intel graphics) it works.

Given that in #1903 I could confirm everything to be fine, I suspect it's something that nvidia added to their latest (windows?) drivers.

Mmirh 2023-02-20 github

I can confirm the regression happened between 522.30 and 526.47.
(for some reason it doesn't apply to the demo which is just o-kay)

BBlisto91 2023-02-20 github

Thank you for nailing down the specific offender

KK0bin maintainer 2023-02-20 github

@mirh We do not support piracy here.

KK0bin maintainer 2023-02-20 github

20230220210130_1

The game works fine on Linux with DXVK.

This is either some Windows bullshit that we can do nothing about or an issue with Nvidias Windows Vulkan driver.

RRedundanz 2023-02-20 github

if i may add, the game runs fine on windows with dxvk 2.1 with radeon vega 64 on newest 23.2.1 driver.
and as far as i remembered i played the game already with dxvk in 2019 on the same windows setup as well.

Mmirh 2023-02-20 github

I literally said that this problem was introduced in version 526.47.
Also it blows my mind that I cannot even mention the steps that I made "between owning two separate copies of the game".
This is an incompatibility between "whatever the origin DRM triggers in the new nvidia driver" and dxvk.

Mmirh 2023-03-01 github

After much foobaring I found it crashes in this call
https://github.com/doitsujin/dxvk/blob/0d28be4ab8162b6ee2a37d959f5c791e1e69b166/src/dxvk/dxvk_instance.cpp#L176
Enabling all the vulkan loader debug channels couldn't show any difference up to the crash (which happens here).
I also briefly suspected this could be related to the new negotiation changes in the vulkan 1.3.234 loader (as suggested by the name of the topmost function in the stack), but the first affected driver was only 1.3.224.

FWIW this still happens in yesterday's 531.18.

Mmirh 2024-09-05 github

This got fixed in nvidia 555.99 drivers.

Proton versions

DLLs