ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
24.65k stars 1.07k forks source link

Far Cry 4 (298110) #2143

Open Holzhaus opened 5 years ago

Holzhaus commented 5 years ago

Compatibility Report

System Information

I confirm:

Symptoms

A Uplay window with the title "Looking for updates" appears, accompanied by an error message box that tells us that Uplay has detected an unrecoverable error and must shut down.

Screenshot

Log file: steam-298110.log

Uplay crash dump (GZipped): Uplay.exe_4.8.1.3617_2018-12-26_18-53-02.dmp.gz

Reproduction

Install Far Cry 4 and click the "Play" button.

ATypescriptEnjoyer commented 5 years ago

This has been raised before, can be fixed by manually installing older version of uplay into the prefix and then changing the version number. https://www.reddit.com/r/linux_gaming/comments/a8f2kl/proton_3166_beta_released/ecbdi99/ Not a nice fix, but a fix at that.

ATypescriptEnjoyer commented 5 years ago

I've managed to get this game running after doing the above steps, but am now encountering lack of audio and a rendering bug, I've uploaded the video of my issue here: https://jackryder.co.uk/stuff/far-cry-rendering-bug.mp4

@kisak-valve would my issue be best in a separate issue? Didn't want to create another open issue for the same game.

kisak-valve commented 5 years ago

Hello @JackRyder, unless you find the root cause of an issue and the issue affects multiple games or the game is whitelisted, then it's best to discuss the game specific issues here.

Please copy your system information from steam (Steam -> Help -> System Information) and put it in a gist, then include a link to the gist in this issue report. Also, please add PROTON_LOG=1 %command% to the game's launch options, reproduce the issue, and drag and drop the generated $HOME/steam-$APPID.log into the comment box.

ATypescriptEnjoyer commented 5 years ago

system info :https://gist.github.com/JackRyder/d706d3038a2b8893595214a95e930045

Since the game runs, the proton log is pretty hefty so I split it into two parts, I imagine the second part would be the best for infomation, but i'll attach both anyway. steam-298110A.log steam-298110B.log

Also using proton 3.16-6 Beta.

ghost commented 5 years ago

I was able to get it working with Proton 3.16-8 Beta, and I got sound working too. I achieved this by using protontricks to run winecfg and add FarCry4.exe with the compatibility mode set to Windows XP, then using protontricks to install xact. Now I have an issue where the game is freezing every few minutes. This is because I'm on Ryzen isn't it? The issue reminded me of another issue I had with other Dunia Engine games on wine-staging because I had too many CPU cores. This is definitely not the culprit (and shouldn't be since esync is enabled). The stuttering seems to be caused my me rapidly moving my mouse. Any ideas? I plugged a different mouse into my computer and the freezing went away. Thanks Corsair.

pklampros commented 5 years ago

Had the same mouse problem but disabling Uplay overlay fixed it..!

NTMan commented 5 years ago

With Proton 4.2-4 the game working with follow issues: 1) No sound after first cutscene, this issue can be workarounded:

2) Appearing on random locations rectangular dimming in game: Screenshot from 2019-05-20 21-40-10-1 How it looks in dynamic I demonstrate on Youtube video: https://youtu.be/6O_LUtFXP58

3) After switching to another application and returning to game by pressing "Alt -Tab" unable rotate protagonist on 360 degrees (only 180 is possible), this issue can be workarounded if in main game menu (Escape button) and select "Resume" item.

4) Not working gamepad in my case it Dualshok 4

$ inxi -bM
System:    Host: localhost.localdomain Kernel: 5.1.0-ea5aee6d97fd+ x86_64 bits: 64 Desktop: Gnome 3.33.1 
           Distro: Fedora release 31 (Rawhide) 
Machine:   Type: Desktop Mobo: ASUSTeK model: ROG STRIX X470-I GAMING v: Rev 1.xx serial: <root required> 
           UEFI: American Megatrends v: 2202 date: 04/11/2019 
CPU:       8-Core: AMD Ryzen 7 2700X type: MT MCP speed: 3779 MHz min/max: 2200/3700 MHz 
Graphics:  Device-1: Advanced Micro Devices [AMD/ATI] Vega 20 [Radeon VII] driver: amdgpu v: kernel 
           Display: wayland server: Fedora Project X.org 1.20.4 driver: amdgpu resolution: 3840x2160~60Hz 
           OpenGL: renderer: AMD Radeon VII (VEGA20 DRM 3.32.0 5.1.0-ea5aee6d97fd+ LLVM 8.0.0) v: 4.5 Mesa 19.1.0-rc2 
Network:   Device-1: Intel I211 Gigabit Network driver: igb 
           Device-2: Realtek RTL8822BE 802.11a/b/g/n/ac WiFi adapter driver: N/A 
Drives:    Local Storage: total: 11.57 TiB used: 8.15 TiB (70.4%) 
Info:      Processes: 456 Uptime: 6h 58m Memory: 31.40 GiB used: 16.62 GiB (52.9%) Shell: bash inxi: 3.0.34 
NTMan commented 5 years ago

The game is crashes when I enable renderdoc (ENABLE_VULKAN_RENDERDOC_CAPTURE=1) for record a trace.

steam-298110.log

xDShot commented 4 years ago

Gamepad controls are not recognized in the game...

xDShot commented 4 years ago

Also all foliage appears flickering

xDShot commented 4 years ago

To fix flickering foliage, install/compile dxvk 1.4.4 or less for now. Related: https://github.com/doitsujin/dxvk/issues/1257

Hanouta commented 4 years ago

I've bisected the flickering issue, it's caused by this commit in DXVK.

spamatica commented 4 years ago

As Far Cry 4 was on sale I got it. Works with an nvidia card as far as I can see. The audio issues still exist but can be worked around as previously detailed. I would like to get the controller part to work though. Any ideas how to go about it? The initial menu react to controller input but seem to misinterpret the input. This probably leads to controllers being disabled. Any ideas how to go about debugging this? I'm not very experienced with wine/proton debugging. Searching for this issue I see that Far Cry Primal also has trouble with controllers, same issue maybe.

open-antux commented 4 years ago

Far Cry 4 don't run. Uplay run correctly without any problem, but when I click play on Far Cry 4 it didn't run

sandsmark commented 4 years ago

I've bisected the flickering issue, it's caused by this commit in DXVK.

Have you reported it to DXVK?

Hanouta commented 4 years ago

I've bisected the flickering issue, it's caused by this commit in DXVK.

Have you reported it to DXVK?

I wrote a comment about it in the Far Cry Primal issue (https://github.com/doitsujin/dxvk/issues/1257) because that seems to have the same problem. Unfortunately they don't really know what's causing the issue, and are not really interested in fixing it(see https://github.com/doitsujin/dxvk/issues/1257#issuecomment-558790007)

sandsmark commented 4 years ago

Unfortunately they don't really know what's causing the issue, and are not really interested in fixing it

from the later comment it seems like it you tracked it down pretty closely. I guess the next step (unless someone spots the issue) would be to look at the disassembly (ghidra has a diffing mode) with and without the call. not in the mood to wade through x86 assembly now, though.

Carusu commented 3 years ago

it seems to work fine with Proton-6.0-GE-1

kisak-valve commented 3 years ago

Far Cry 4 launches from UPlay then immediately crashes

Issue transferred from https://github.com/ValveSoftware/Proton/issues/5149. @ChaosBlades posted on 2021-09-10T11:09:18:

Compatibility Report

System Information

I confirm:

steam-298110.log

Symptoms

Uplay launches the game then it immediately closes. I see in the proton logs an error for... [0828/085556.679:ERROR:dxva_video_decode_accelerator_win.cc(1440)] DXVAVDA fatal error: could not LoadLibrary: msmpeg2vdec.dll: Module not found. (0x7E)\

... I tried to download that dll from the internet and put it in system32 but that did not seem to help

Reproduction

I have tried a completely stock fresh install of Pop OS. Up to date modded xanmod kernel Proton GE Adding mesa and wine repo All versions of Proton available in Steam This is the only game I have tried that does not work. Other UPlay games work without issue I have Far Cry 4 Gold edition with all the DLC if that matters.

ChaosBlades commented 3 years ago

It seems msmpeg2vdec.dll is part of the Windows Media Feature Pack which led me to a winetricks github issue. that can not be linked here

It seems this is a really old issue which makes me think it is not the reason Far Cry 4 is not launching for me because it clearly worked several months ago.

kisak-valve commented 3 years ago

Hello @ChaosBlades, the link you posted is tainted by legally problematic workaround(s) and has been removed.

ChaosBlades commented 3 years ago

I did some testing on this...

Ubisoft Connect does not work on Proton 5.13-6 or older. So that leaves only Proton 6.3-7 and Experimental. I tried fresh installs of Pop!_OS, Manjaro, and Garuda Linux. All the the same issue. Either Far Cry 4 works on an older Proton Version but Ubisoft Connect won't work on or this is a specific issue with my hardware config... 5950x and a 6900xt Looking at ProtonDB I can see that this was working on the latest Pop!_OS with Proton Experimental 2 months ago with a Ryzen 5 2600 and Nvidia 1650 so perhaps this is an AMD GPU issue.

ChaosBlades commented 2 years ago

It has been months now and I am still having this issue and over these last several months I look at protondb and I see random people also having the same experience as I do appear either the game runs great or it never launches. Does not seem to matter what hardware brand you have, what version of proton you are using, or what linux distro you are on. Either you are lucky and it works or you are not lucky and it doesn't launch past UPlay. I tried multiple distros both debian and arch based, tried multiple Proton versions including experimental bleeding edge, as well as tried removing all DLC and just running the base game.

ATypescriptEnjoyer commented 2 years ago

It has been months now and I am still having this issue and over these last several months I look at protondb and I see random people also having the same experience as I do appear either the game runs great or it never launches. Does not seem to matter what hardware brand you have, what version of proton you are using, or what linux distro you are on. Either you are lucky and it works or you are not lucky and it doesn't launch past UPlay. I tried multiple distros both debian and arch based, tried multiple Proton versions including experimental bleeding edge, as well as tried removing all DLC and just running the base game.

Try using the GloriousEggroll proton versions, they work better with 3rd party DRM

ChaosBlades commented 2 years ago

I have been, just tested it again with the latest version. No change on the issue. Also just tested with Resizable BAR disabled. I can see plenty of people reporting they are using official versions of Proton without issue as well.

Edit: Also for clarity all my other UPlay games work fine. Several Assassin Creed games, Watch Dogs, etc. So definitely an issue specific to Far Cry 4.

makeclean commented 2 years ago

I'm in the exact same boat as you @ChaosBlades I've got an Nvidia system, Farcry 5 works no problem, Farcry 4 refuses to launch.

ChaosBlades commented 2 years ago

I have finally got this game to launch on something. I am now fairly confident this is some kind of hardware specific issue. I installed ChimeraOS 33 on my living room PC and the game works without issue. I then install ChimeraOS 33 on my desktop PC that I have been having this issue on and just like with every single other distro I tried it will not launch. Here is the hardware breakdown on both systems.

Living Room PC (Works) CPU: AMD 5800X RAM 32GB DDR4 Mobo: ASUS TUF GAMING X570-PLUS (WI-FI) GPU: Nvidia GTX 1660 Super Storage: PCI 3.0 NVMe SSD

Desktop PC (Does Not Launch) CPU: AMD 5950X RAM: 32GB DDR4 Mobo: ASUS ROG Crosshair VIII Dark Hero (X570) GPU: AMD 6900XT Storage: PCI 3.0 NVMe SSD

Based on my research I can not find anyone reporting this game to work on any CPU that has more than 12 cores 24 thread. Every reference to this game not working with a CPU model listed is reporting they have a 5950X that I am able to find.

@makeclean What CPU do you have?

ChaosBlades commented 2 years ago

I went into the BIOS and limited the CPU to 1 CCD (8 core 16 thread).... Game Launches!

That is the issue, it is some kind of core count limitation.

Now that we have identified the issue can we get a developer to look into this? Let me know if you need any logs or anything from me. I did post a log back in Sept of 2021 but if that isn't enough let me know.

I'll also update my report on protondb to reflect this issue.

Blisto91 commented 2 years ago

Does it work if you launch the game with WINED3D? I have already made a dxvk issue since i noticed i got stuck in the pre company logos loading screen 1/2 times with dxvk, but not with WINED3D. The game have apparently been finicky with dxvk in the past.

ChaosBlades commented 2 years ago

I added PROTON_USE_WINED3D=1 %command% to the launch options and no it does not launch. Same result as before.

kisak-valve commented 2 years ago

Hello @ChaosBlades, it might be interesting to test how the game behaves on the AMD 5950X system with the BIOS changed back to normal and the game's launch options set to taskset -c 0-15 %command%.

ChaosBlades commented 2 years ago

That also does not work around the issue. Also tried different variations on that such as the following. taskset -c 0,2,4,6 %command% taskset -c 0-7 %command%

ChaosBlades commented 2 years ago

I just disabled SMT (disables Hyperthreading) in the BIOS which turns the CPU into 16 Core 16 Thread (instead of 32 Thread). This also allows the game to launch.

Edit: Limiting each of the 2 CCDs to 7 cores (14 Core 28 Thread) also allows the game to launch.

Edit2: I would just like to state that the game does work running on this same system under Windows. Seems on Linux via Proton we have a Thread limit somewhere between 29 and 32 threads and artificially limiting that via taskset does not work around the issue.

Blisto91 commented 2 years ago

Good investigation Chaos 👀

makeclean commented 2 years ago

My email reply didn't make it to you @ChaosBlades but amazing sleuthing. I have a dual socket 32 core (64 threads total) machine, which corroborates this. Amazing work.

makeclean commented 2 years ago

I wonder if its worth trying numactl- https://serverfault.com/questions/625146/difference-between-taskset-and-cpuset maybe?

ChaosBlades commented 2 years ago

Assuming I did this correctly, that does not allow the game to launch.

cpuset and numactl is not installed by default on Pop OS so after installing them both it looks like cset by default already sets up a cpuset containing threads 0-31. So I should just need to add numactl --physcpubind=+0-7 %command% to launch options and that should limit the game to CPU cores 0-7, which did not allow the game to launch. UPlay does launch which makes me think it is working, but I get the same behavior as before.

makeclean commented 2 years ago

Similar issue here https://www.protondb.com/app/55150 reported by synrgy87, seems to be a theme with high core count machines.

makeclean commented 2 years ago

It would be nice to have a software solution to this :)

Blisto91 commented 2 years ago

If it works on windows then i imagine a software workaround or fix should be possible.

Note even after this has been fixed the game also is a bit iffy together with dxvk and can randomly freeze at boot at least. Dunno about ingame

ChaosBlades commented 2 years ago

I own Warhammer 40,000: Space Marine - Anniversary Edition as well and tested for this issue.

On failure it will launch to full screen (black screen) unlike Far Cry 4. It will then crash to desktop with a Bug Splat error window. Where it wants you to send in a bug report.

On this game I needed to limit the CPU to 6 Cores per CCD. So 12 Core 24 Thread. The game would not work on 14 Core 28 Thread like Far Cry 4.

I'll post in the issue thread for Space Marine as well looks like they don't understand what is going on over there yet as well.

Blisto91 commented 2 years ago

@ChaosBlades I just learned of WINE_CPU_TOPOLOGY which is built in to protons version of wine. Dunno if that could make a difference or if it's basically the same as the other methods. I'm gathering you could run it like WINE_CPU_TOPOLOGY=4:0,1,2,3 %command% to only tell about 4 cores.

But i don't really understand really anything about it 😁

ChaosBlades commented 2 years ago

@Blisto91 THAT WORKS! Nice find!

So I can run WINE_CPU_TOPOLOGY=31:0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 %command% and it will launch but if I do 32 then it will act as it would without the command.

Space Marine will run with WINE_CPU_TOPOLOGY=26:0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 %command% but not 27. I'll post that over on that issue thread as well.

ngreve commented 2 years ago

System Information

Symptoms:

https://user-images.githubusercontent.com/18660100/177756123-4ca3d5a3-3dea-400f-a36f-06c666d16009.mp4

Changing between different ingame graphics settings does not have any effect on these glitches.

Blisto91 commented 2 years ago

@ngreve It's likely a dxvk issue. I also reproduce a hang at the initial loading screen. Tho that is with radv. I have made a issue about it here https://github.com/doitsujin/dxvk/issues/2669 And there is another issue from a windows user that the game crashes when they use dxvk.

Does it say anything interesting in the proton log when you try to launch with radv or amdvlk?

Edit: i am sorry i accidently pinged the wrong person first time

ngreve commented 2 years ago

Running with vk_radv the last message says (steam-298110-radv.log):

5862.720:0150:0154:trace:seh:raise (22)
terminate called after throwing an instance of 'dxvk::DxvkError'
5862.720:0150:0154:fixme:msvcrt:__clean_type_info_names_internal (1000B488) stub

Running with vk_amdvlk i can't find anything interesting, but that's because I actually do not know what I am looking for (steam-298110-amdvlk.log).

Blisto91 commented 2 years ago

This in your radv log is very odd.

info:  Required Vulkan extension VK_KHR_surface not supported

That should not happen as i'm pretty sure that is a pretty old supported extension (and required for anything to work). Could you try reinstalling radv and see if anything changes? Be sure to install both 32bit and 64 bit version.

kisak-valve commented 2 years ago

Hello @ngreve, please copy your system information from Steam (Steam -> Help -> System Information) and put it in a gist, then include a link to the gist in this issue report.

ngreve commented 2 years ago

The requested system information (also updated my OP)

I've reinstalled vulkan-radeon and installed - the missing - 32bit version of it. Now running with Proton-7.0-3 and vk_radv, the game freezes in the beginning just like with vk_amdvlk, but the message Required Vulkan extension VK_KHR_surface not supported disappeared, I guess that's progress (?).

But I also revisited ProtonDB and saw that people got the game running with Proton 6.3 in the past. So, I've tested it with Proton 6.3-8 and I've got it running with with vk_radv and vk_amdvlk.

But I encountered another bug. At some point, if you switch between different Proton versions, an error message appeared that said something like "No Ubisoft Connect installed. Install it so run the game... (blabla)". This error occurred every time when I've switched from Proton 7.0 down to 6.3. Switching back to 7.0 did not fixed the error, I needed to reinstall the whole game.

So, to get it running with Proton 6.3, I firstly needed to uninstall the game. With the game uninstalled, go into Properties -> Compatibility -> Select Proton 6.3-8, then install the game. Now Steam/Proton finds Ubisoft Connect and starts the game.

Again, the game now runs with Proton 6.3-8 and both vk_radv and vk_amdvlk.

kisak-valve commented 2 years ago

Thanks, https://gist.github.com/ngreve/1cce2333b360acc6229ea68457ecc4d0#file-gistfile1-txt-L278-L291 and https://gist.github.com/ngreve/1cce2333b360acc6229ea68457ecc4d0#file-gistfile1-txt-L439-L452 looks like https://github.com/GPUOpen-Drivers/AMDVLK/issues/278 could be interfering with your testing.