Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Far Cry 4 crash at startup [DX11, apitrace included, AMD RX 400 series] #2666

Closed
deton24 opened this issue Jun 4, 2022 · 23 comments
Closed

Comments

@deton24
Copy link

deton24 commented Jun 4, 2022

Uplay overlay disabled (didn't help).

One report here says FC4 worked with dxvk-async 1.8.1 on W10 and 5700 XT, I checked dxvk-async 1.8.1 (with and without specific for async dxvk.conf dxvk.enableAsync = true parameter), and it's still the same. In other report, it worked on W10 20H2 and driver 21.5.2 and dxvk-async 1.8.1 on 5700XT: "Performance [was] worse with Vulkan than DX11, even if it's more consistent. There [were] visual glitches with shadow rendering". Current dxvk_async doesn't work either.
Looks like the same issue exist on Proton to this day (link) as you see responses below, but it works on SteamDeck via Proton.

If I leave only d3d11.dll the game launches, I can hear the sound, but the screen is black, and it doesn't make the game full screen like FC4 does on startup. I tried minimizing and maximizing.

I tried leaving only dxgi.dll, but it showed errors of d3d10 libraries on initialization, I copied them from dxvk as well, but still crash like when only dxgi.dll and d3d11.dll are copied, or all of the libraries.

Far Cry 3 using DX9 also crashes (I can create another issue with apitrace later).

Software information

Far Cry 4 Uplay (DX11), maximum details except soft shadows, FHD 16:10, SMAA.

System information

  • GPU: RX 470
  • Driver: 22.5.2 (the newest optional)
  • DXVK version: 1.10.1
  • Windows 10

Apitrace file(s)

Log files

As for a apitrace, I had a headache making it. I needed to copy everything from lib\wrappers to bin folder, then only launched the game, and it created the trace on desktop. It would be nice to add an information about this method in bug_report.md if apitrace doesn't work for someone. I also tried --api instead of -a and specifying --output [path\name.trace] so I either tried:
apitrace.exe trace --api dxgi D:\Gry\Far Cry 4\bin\FarCry4.exe --output D:\Gry\Far Cry 4\bin\application.trace
and also:
apitrace.exe trace --api dxgi D:\Gry\Far Cry 4\bin\FarCry4.exe
with described in bug_report.md:
apitrace.exe trace -a dxgi D:\Gry\Far Cry 4\bin\FarCry4.exe
I was launching it all from bat located in D:\Downloads\apitrace-11.1-win64\bin which was launching the game itself, so I assume it worked correctly.

@deton24 deton24 changed the title Far Cry 4 crash at startup [apitrace included, Windows 10, AMD RX 400 series] Far Cry 4 crash at startup [DX11, Windows 10, apitrace included, AMD RX 400 series] Jun 4, 2022
@Blisto91
Copy link
Contributor

Blisto91 commented Jun 4, 2022

I am able to launch it on linux through steam proton. Tho it seems finicky and can easily freeze during startup if i alt tab or anything (maybe just randomly), so i don't touch it until i get to the main menu.
R9 380 mesa 22.1 (linux open source drivers)

Anyway try disabling or enabling ubisoft overlay (switching it from what ever it is at the moment)
Also try with latest master https://github.com/doitsujin/dxvk/actions/runs/2434778593

I will try to check it out on windows or amdvlk (amd's own linux vulkan driver) when i have time.

@K0bin K0bin added the windows label Jun 4, 2022
@deton24 deton24 changed the title Far Cry 4 crash at startup [DX11, Windows 10, apitrace included, AMD RX 400 series] Far Cry 4 crash at startup [DX11, apitrace included, AMD RX 400 series] Jun 4, 2022
@Blisto91
Copy link
Contributor

Blisto91 commented Jun 4, 2022

Okay i tried on windows 10 with dxvk 1.10.1 (d3d11.dll & dxgi.dll) and didn't encounter any issues. Tho i only went to main menu and pressed new game and then exited at the intro video.
This is with the 21.5.2 driver as it is the latest i can use since amd dropped support for my card last year.

Are you able to try and downgrade your graphics driver?

Edit: i reread your post and see someone reported it working with the same driver version, so could likely be a driver issue.

@deton24
Copy link
Author

deton24 commented Jun 4, 2022

it seems finicky and can easily freeze during startup if i alt tab or anything (maybe just randomly), so i don't touch it until i get to the main menu.

Yeah, I noticed that on me end too when used only d3d11.dll. I waited patiently till the sound with intro skipped starts playing.

Just tried out with either disabled and enabled overlay again using various library combinations I mentioned, but it's the same. With only d3d11.dll it even crashes when overlay is enabled (so there is no black screen with sound I mentioned).

Downloaded the latest master from the link above. Still nothing. Behavior is exactly the same as I described above.

Thanks for fast response!

@deton24
Copy link
Author

deton24 commented Jun 4, 2022

Checked the 21.5.2 from a year a go, and nothing. Both master, 1.10.1, 1.8.1 checked. Overlay enabled and disabled.

When I leave only dxgi.dll and d3d11.dll, it always shows:

The procedure entry point DXGID3D10RegisterLayers could not be located in the dynamic link library C:\Windows\System32\d3d10core.dll

It's shown three times and then crashes.

or it's about d3d10_1core.dll when d3d10_1.dll is deleted

I have DirectX updated using 2011 dxsetup and dxwebsetup.exe but the files doesn't seem to be part of the DirectX installers.
Could you upload me your d3d10_1core.dll and d3d10_1.dll from system32, so I could put it to bin directory to check whether it is not bound to my old W10 build? I cannot find these libraries uploaded in newer versions than mine.

Maybe you could also update drivers on your end to see whether it works and whether DXGID3D10RegisterLayers is not bound to my old W10 build?
But it may crash on newer drivers without that error on newer builds anyway, seeing by last people reports from 10 days even on Nvidia, so it's still worth trying out.

edit. I got the libraries. Still got the same d3d10core.dll DXGID3D10RegisterLayers error, then I replaced the library in system32 (used "take ownership"), error disappeared, but the crash is still there. Tried out the same for d3d10.dll d3d10_1.dll d3d10_1core.dll both in system32 and bin. Everything with overlay disabled and enabled on at least dxvk 1.10.1.
So at "best" scenario it's crashing on Polaris no matter of AMD drivers version and it's maybe not bound to the old W10 compilation. Curiously, newer d3d10_1core.dll and d3d10core.dll are much smaller than mine.

Did you use dxvk 1.10.1 or master? Disabled or enabled overlay?

@doitsujin
Copy link
Owner

Maybe you could also update drivers on your end to see whether it works and whether DXGID3D10RegisterLayers is not bound to my old W10 build?

We don't implement that function since it's not part of the public API. The most likely cause is that the game does not load our dxgi.dll and instead uses the one from System32, which is impossible to work around on our end and does not happen on Linux.

@Blisto91
Copy link
Contributor

Blisto91 commented Jun 4, 2022

@deton24 I can't update my graphics drivers if that's what you mean.
I think my win 10 is up to date, tho i am not sure. Directx (at least the newer version) should be included with windows 10 and is updated through windows update.

I was using 1.10.1

@deton24
Copy link
Author

deton24 commented Jun 4, 2022 via email

@doitsujin
Copy link
Owner

Tomorrow I'll check if replacing dxgi.dll in system32 fixes any issues

Please don't do that, it'll break your Windows install.

@deton24
Copy link
Author

deton24 commented Jun 4, 2022

Thanks for advise. It wasn't like I wasn't afraid a bit.

Ahh. You can't update because the support for these cards had been dropped.

You probably know, but one of the older AMD cards was still supported after abandoning older GCNs, and that's why they still have newer drivers after some tweaking, here are unofficial drivers:
https://forums.guru3d.com/threads/3rd-party-driver-amernime-zone-radeon-insight-22-5-1-whql-driver-pack-released.436611/
But I understand you might be reluctant to use them.

@Blisto91
Copy link
Contributor

Blisto91 commented Jun 4, 2022

It's fine. I mainly use linux at the moment and the community open source driver (which is the main gaming driver) supports my card fully still.

For your issue i would advise trying to update your windows install if possible. Through windows update that is

@RareMv
Copy link

RareMv commented Jun 18, 2022

Hey @deton24 . The Guru3D and Reddit post were both done by me, in the same timeframe. It was the first time I managed to get Far Cry 4 working with DXVK at that time. I didn't really get around playing the game, so I haven't tested the game since to see if something changed. I remember uPlay also working at that time as well.

@Blisto91
Copy link
Contributor

Blisto91 commented Jul 3, 2022

@deton24 Any update on this?

@deton24
Copy link
Author

deton24 commented Jul 3, 2022 via email

@RareMv
Copy link

RareMv commented Aug 19, 2022

The NimeZ DXNAVI module for DX11 improvements are more or less only 100% reliable just on RDNA1 (and RDNA2 of course).

Using them on anything other than RDNA is just luck of the draw.

@deton24
Copy link
Author

deton24 commented Aug 21, 2022

Well. It wouldn't make much sense to enable anyone using it on older cards than RDNA then. In official drivers it's limited for RDNA2 for most extent (in newer drivers RDNA1 doesn't benefit from DX optimization without this mod too much - drivers use different libraries). As for testing it on older cards, it will be the best to test in specific titles, where the performance gains using new DX optimizations are the biggest on RDNA and RDNA2 (e.g. God of War). But from the technical side, also GCNs use the same AMD libraries for DX11 like RDNA2 in this mod now, and only few games are buggy in this way, so it may simpl,y work. But, it's also worth testing whether anything changed for old DX11 games. Personally I tested mentioned in this thread Far Cry 4. The drivers also allow using different kernel (GPUV).

I tried to compare the results of "AMD 22.5.1 with GPUV 21.40 / LTS 22.2.3 Kernel" with DX optimizations vs official 22.5.2, and in FC4 in more demanding place it was one or two FPS better using modded drivers (36-37 vs 35) and I think that small difference is repetitive.
Additionally, I noticed that I have slightly fewer FPS (38 vs 36 FPS) when UI/CCC is installed. It happened on the official drivers before and the change was repetitive also using official drivers.

During that time I also compared various modded kernels - modded AMD 22.5.1 with GPUV 21.30 / LTS 21.11.3 with modded AMD 22.5.1 with GPUV 21.40 / LTS 22.2.3, and the latter achieved more FPS in Far Cry 4 (44 vs 47 FPS in other place nearby first safe house). Old 4 core CPU, geometry, environment low, shadow medium, fur on, SMAA, the rest max. CSGO FPS Benchmark got min. 53 FPS using AMD 22.5.1 Installation for Desktop/Mobile with DX optimizations vs 57-58 "AMD 22.5.1 with GPUV 21.30 / LTS 21.11.3" and "AMD 22.5.1 with GPUV 21.40 / LTS 22.2.3 Kernel Installation for Desktop/Mobile" respectively (at the limit of the measurement error) unfortunately I forgot to make another pass when I got the 53 FPS result.

Every FC4 result was received after restart, otherwise results were bigger.
Using official drivers, I also noticed that till I didn't restart the PC after installing new drivers, I got a bit worse max FPS in Furmark.
Every driver version was installed after cleanup in DDU.

@Blisto91
Copy link
Contributor

Blisto91 commented Oct 9, 2022

@deton24 friendly ping. Have you tried updating yet? 🙂
Also try latest master if you can.

@deton24
Copy link
Author

deton24 commented Oct 9, 2022 via email

@deton24
Copy link
Author

deton24 commented Oct 10, 2022

Tested latest master with artifact produced:
https://github.com/doitsujin/dxvk/actions/runs/3204372286
And still nothing (same error d3d10core.dll error). Temporary tested on 22.7.1 drivers (but I believe older drivers create more in-game problems then with game initialization itself in case of DXVK).

After replacing d3d10core.dll from newer build (but it's much smaller), it still crashes without specific error - d3d12.dll related crash in Event Log - so I replaced d312.dll from newer build as well (but not matching to core), and now it crashes both with overlay disabled and enabled with FC64.dll in Event Log after going to fullscreen shortly. But it is the same even without DXVK, so replacing libraries creates a new problem on my end, so don't bother. I don't know whether it would even work with the same build libraries. Previously my friend didn't have d312.dll in system32 when I replaced everything, now I found d312.dll from elsewhere and oly replaced core and d312.

With my normal system libraries it still works without DXVK of course (and loads the whole game world correctly).

I'll let you know immediately when I'll be able to test on newer W10 build (doesn't seem to be soon, though, sorry).

@K0bin
Copy link
Collaborator

K0bin commented Oct 10, 2022

This is almost certainly either a driver bug or an something that only happens on Windows. In either of those cases, there's nothing we can do. There's a reason why Windows isn't officially supported by DXVK D3D10 and D3D11,

@CortexReaver
Copy link

I've got the same Issue with Far Cry 3 but on Windows 7 with NVidia card (I decided not to make a new issue because of that). The error were looking similar for d3d11: DXGID3D10GetLayeredDeviceSize in dxgi.dll. May be this will be useful for someone.
Btw, any news on this problem? This Dunia engine is very finicky on its own, works awful with the default d3d9.dll and crashes every 10 minutes with d3d11.dll.

@Blisto91
Copy link
Contributor

Blisto91 commented Oct 29, 2022

No specific progress has been made no since i don't think any devs here have the issue on Linux.
If it doesn't work with the commits that have been made on the 1.10.x branch since 1.10.3 then there won't ever be anything from the DXVK side that makes it work on your Windows 7 install as the next major version requires a driver bump and old drivers won't be supported anymore.

@K0bin
Copy link
Collaborator

K0bin commented Dec 30, 2022

I'm closing this because the game appears to work on Linux. This is probably another Windows issue that we can't do anything about.

@K0bin K0bin closed this as not planned Won't fix, can't repro, duplicate, stale Dec 30, 2022
@CortexReaver
Copy link

Far cry 3 seems to be working fine on Windows 10 22H2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants