protonscr

Assassins Creed 4 Black Flag crashes on DXVK 2.3 (works fine on 2.2)

dxvkclosed
doitsujin/dxvk#3679 · opened 2023-09-30 by JordanPlayz158 · updated 2023-10-01 · 4 comments · github
JJordanPlayz158 2023-09-30 github

Software information

Game: Assassins Creed 4 Black Flag
Settings:

  • Resolution: 1680x1050 60Hz
  • Environment Quality: High
  • Texture Quality: High
  • Anti-Aliasing Quality: FXAA
  • Shadow Quality: High
  • Reflection Quality: High
  • Motion Blur: On
  • Ambient Occlusion SSAO
  • God Rays: Low
  • Volumetric Fog: On
  • VSync: On

System information

  • GPU: RX 6600
  • Driver: amdgpu
  • Wine version: Wine-GE-Proton8-17
  • DXVK version: 2.3

Apitrace file(s)

https://www.dropbox.com/scl/fi/g9i327iwyud4uus72xby2/AC4BFSP-compressed.trace?rlkey=ippx9vpzyx4x0o60vm8qurzlb&dl=0

Log files

Please attach Proton or Wine logs as a text file:
AC4BFSP.log

Note: To test the crash, it is near instant, before the "Inspired by historical events and characters." fully fades in

BBlisto91 2023-10-01 github

@JordanPlayz158 Hi there :wave:
This looks like the line of interest from your log

wine: Call from 7BC2D380 to unimplemented function D3D10CORE.DLL.D3D10CoreCreateDevice@20, aborting

So i poked at this a bit and the only way i was able to reproduce was to use the old d3d10.dll dxvk used to ship along with d3d10_1.dll prior to 2.0. Though they haven't been installed by default for a long time even then with the install script since it was recommended to use either the Wine or Windows versions. With the dxvk versions of those this seems to regress with commit https://github.com/doitsujin/dxvk/commit/a62117cd13618f98e5c0f0da27de9193cbc6dae2
Can you check if you have any of those old dlls in your prefix and verify that it works fine when you use the builtin Wine version of those two instead?

JJordanPlayz158 2023-10-01 github

So i poked at this a bit and the only way i was able to reproduce was to use the old d3d10.dll dxvk used to ship along with d3d10_1.dll prior to 2.0.

That does make sense, this did come from dxvk 1.1 (and probably earlier), I did test 1.1, 2.0, 2.1, 2.2 and 2.3 and all worked fine but 2.3 so that makes sense as this commit did ship in 2.3 and not 2.2

Can you check if you have any of those old dlls in your prefix and verify that it works fine when you use the builtin Wine version of those two instead?

I see the d3d10 and d3d10_1 dlls are old (a few months old) and after removing the entries for d3d10 and d3d10_1 dll overrides from the list and launching with dxvk 2.3 it works fine so is that the solution or perhaps in 2.4 can it check for old dlls and override to fix it automatically or will the fix be deleting them from the prefix manually and they will be copied from latest dxvk or just removing dll overrides from the prefix is the solution?

BBlisto91 2023-10-01 github

Good to hear that was the issue.

The simplest way is just to remove the overrides for them or set them to builtin. Since that seems to work fine here.
If you want to be more thorough and also restore the old Wine files then you can remove overrides for the two DLLs in winecfg and also delete the files themselves. Then running wineboot -u will restore the original Wine ones.

JJordanPlayz158 2023-10-01 github

I see, thank you for highlighting multiple avenues to fix it.

Proton versions

DLLs