protonscr

[d3d11] Call of Duty: Mordern Warfare Remastered

dxvkclosed windows
doitsujin/dxvk#1360 · opened 2020-01-20 by byumjin · updated 2020-01-23 · 8 comments · github
2 matching comments, n / p to jump
Bbyumjin 2020-01-20 github

Hi,

currently, I'm trying to run CoD:MW Remastered with DXVK with source codes, not the binary ones. When my application is initializing, it crashes after it passes CreateDepthStencilState().

캡처_2020_01_20_18_20_18_445

캡처_2020_01_20_18_20_35_821

캡처_2020_01_20_18_20_51_96

The suspicious thing is, ppDepthStencilState points RasterizerState(instead of DepthStencilState) out before it passes InitReturnPtr().

캡처_2020_01_20_18_03_05_111

The problem is that it doesn't show any callstacks so that it makes hard to trace where can be cause of this.

So, I want to ask that is there a better way to debug or trace this?
(I tried apitrace but it didn't generate any log files)
Or did you see this kind of issue before?
I already set the log to Trace level but it didn't give much information.

FYI, I had to set custom VenderID at dxvk.config file because I'm currently using NVidia card and it kept trying to load ati dll instead of nvapi64.dll.
Also, I'm using DXVK 1.2.1 version a bit out-dated.

Thank you.

System information

  • GPU: GTX1060 mobile
  • Driver: 441.87
  • Wine version:
  • DXVK version: 1.2.1
Ddoitsujin maintainer 2020-01-20 github

So, I want to ask that is there a better way to debug or trace this?

Yes, record an apitrace. I appreciate your debugging efforts but ultimately they don't tell me anything; if the game passed invalid pointers around then it would likely crash on native D3D11 as well.

FWIW Modern Warfare Remastered did work in the past; maybe try an old DXVK version (like 1.0 / 1.0.1) to double-check. If that also doesn't work, probably another one of those dreaded Windows-only issues that we quite frankly don't really care about since they can't be fixed anyway.

and it kept trying to load ati dll instead of nvapi64.dll.

DXVK does not work with games using either library, and this cannot be fixed since they rely on the Windows driver model. NVAPI is the reason why DXVK reports all GPUs as AMD cards because NVAPI causes problems nearly 100% of the time.

Bbyumjin 2020-01-21 github

if the game passed invalid pointers around then it would likely crash on native D3D11 as well.

I also thought of that, but it works well if I just run my game on native.

Currently, trying old version would be the best option.

Bbyumjin 2020-01-22 github

Finally, I could trace infomation via apitrace and found very suspicious parts out.

These are trace when I run CoD:MW remastered on native (Windows).

캡처_2020_01_22_18_10_09_419

You can see that it creates swapchain before MakeWindowAssociation function call.
But, somehow, CreateSwapChain in dxvk is never passed.
So, it seems like it never creates swapchain.
(I've checked that MakeWindowAssociation is hooked correctly)

캡처_2020_01_22_18_10_21_490

After a few threads, it calls GetBuffer() from SwapChain interface right after it passes CreateDepthStencilState(). I think that's why it crashes after it passes CreateDepthStencilState().

Have you ever encountered issues when some specific functions are not hooked?
Or do you have any idea about this?

Ddoitsujin maintainer 2020-01-22 github

We don't use hooks, but it's possible that the game loads Windows DXGI for some reason which simply cannot work with DXVK.

Anyway, please upload your trace somewhere so that I can replay it on my end.

Bbyumjin 2020-01-22 github

I already uploaded the trace.
You can check trace infomation url here or above my post.

Bbyumjin 2020-01-22 github

And this is what I run with Dxvk. I think this file does not reflect the correct trace though when I run my app(with dxvk) on Visual Studio because it doesn't even create d3d11 device.

Ddoitsujin maintainer 2020-01-22 github

The trace replays fine with DXVK.

Also one thing I just noticed:

DXVK version: 1.2.1

How about trying 1.5.1? Please don't waste my time with issues in eight-month old DXVK versions.

Bbyumjin 2020-01-23 github

I found a similar issue #1109 here.
After I update DXVK from 1.2.1 to 1.5.1, the problem is gone.

DLLs