protonscr

Mirror's Edge Catalyst crashes with DXVK on Nvidia (Wine only)

dxvkclosed dxgigame bug
doitsujin/dxvk#2169 · opened 2021-07-18 by aufkrawall · updated 2022-08-19 · 9 comments · github
Aaufkrawall 2021-07-18 github

The game starts fine on Windows with Nvidia (DXVK spoofs Nvidia by default for this game due to #1062 ).
Though the game shows lots of stutter when moving. Perhaps it expects some native Nvidia D3D11 driver magic when it recognizes an Nvidia GPU?

In Wine, it throws this error instead:
Screenshot_20210718_131826

With dxgi.nvapiHack = True, the game window opens, but starts to hang shortly after.

Software information

Latest game version via Origin (disable Origin overlay, cloud sync and probably force WineD3D for origin.exe, originclientservice.exe and qtwebengineprocess.exe).
The game ran fine with the same Wine version and prefix with a Radeon + RADV.

System information

  • GPU: RTX 3060
  • Driver: 470.42.01
  • Wine version: wine-staging-tkg 6.8 (protonified, no fullscreen hack)
  • DXVK version: latest git-master and 1.9

Log files

nvapihack = false
MirrorsEdgeCatalyst_d3d11.log
MirrorsEdgeCatalyst_dxgi.log

nvapihack = true
MirrorsEdgeCatalyst_d3d11.log
MirrorsEdgeCatalyst_dxgi.log

Ddoitsujin maintainer 2021-07-18 github

Known issue with Frostbite games on some systems, but can't reproduce locally. Really need an apitrace for this and more info on your system (a full list of desktop resolutions + refresh rates available).

Aaufkrawall 2021-07-18 github

It indeed works with WineD3D dxgi.dll (which by default spoofs a GTX 470, at least in Proton).
Would an apitrace captured on Windows do the trick?

2560x1440 85Hz is the only offered resolution. I wonder if it would actually work with fullscreen hack (if it doesn't introduce other issues, which it likely does :( ), as it always spoofs a 60Hz mode to be available due to some applications having trouble without it. Gonna try out borderless.

Edit: Works in borderless.

Aaufkrawall 2021-07-21 github

I suspect this is actually an issue of upstream Wine X11 not always spoofing 60Hz like fullscreen hack does, so we might just close this?

Ddoitsujin maintainer 2021-07-21 github

I guess the question is why it works with wine's dxgi, it's not like it has access to more display modes than ours.

Can you build DXVK after running meson configure -Denable_tests=true, run dxgi_factory.exe with both DXGI implementations, and post the output?

Aaufkrawall 2021-07-21 github

Yeah, can do that. I think the reason why it works with Wine DXGI might be that it spoofs some weird 50.xxHz resolution.

Aaufkrawall 2021-07-21 github

I suppose both shouldn't look like this when xrandr lists only one mode?

DXVK DXGI:
Adapter 0:
 NVIDIA GeForce RTX 3060
 Vendor: 4098
 Device: 26591
 Dedicated RAM: 12884901888
 Shared RAM: 25132895232
 Output 0:
  \\.\DISPLAY1
  Coordinates: 0,0:2560x1440
  640x480 @ 62
  800x600 @ 61
  1024x768 @ 60
  1280x720 @ 59
  1280x800 @ 58
  1280x1024 @ 57
  1366x768 @ 56
  1440x900 @ 55
  1600x1200 @ 54
  1680x1050 @ 53
  1920x1080 @ 52
  1920x1200 @ 51
  2560x1440 @ 50
  
Wine DXGI:
Adapter 0:
 NVIDIA GeForce GTX 470
 Vendor: 4318
 Device: 1741
 Dedicated RAM: 12884901888
 Shared RAM: 16755263488
 Output 0:
  \\.\DISPLAY1
  Coordinates: 0,0:2560x1440
  640x480 @ 62
  800x600 @ 61
  1024x768 @ 60
  1280x720 @ 59
  1280x800 @ 58
  1280x1024 @ 57
  1366x768 @ 56
  1440x900 @ 55
  1600x1200 @ 54
  1680x1050 @ 53
  1920x1080 @ 52
  1920x1200 @ 51
  2560x1440 @ 50

xrandr:
DP-2 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 640mm x 360mm 2560x1440 85.00*+

Ddoitsujin maintainer 2021-07-22 github

Well, we get the information from wine and wine gets the information from xrandr, so, uh, not really sure what's going on there. Especially the reported refresh rates are interesting, to say the least.

Anyway, tagging as game bug since the game apparently makes too many assumptions about available display modes.

BBlisto91 2022-08-06 github

@aufkrawall Friendly ping. Are you still having issues with latest wine, dxvk and drivers? :slightly_smiling_face:

Aaufkrawall 2022-08-19 github

I think we can close this, fullscreen mode of the game works with Proton (just tested it) and that should suffice.

DLLs