ValveSoftware / Proton

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

fsync issues #2922

Open Plagman opened 5 years ago

Plagman commented 5 years ago

If you can reproduce a crash or performance regression with Proton 4.11 that consistently goes away with PROTON_NO_FSYNC=1, please post it here.

ghost commented 5 years ago

Sekiro doesn't load into game for me, but does with PROTON_NO_FSYNC=1.

Whitetyphon commented 5 years ago

I can add to what @z0z0z said, as Sekiro didn't work for me either.

The game worked fine in the main menu of the game and plays the opening cutscene, but after the cutscene when trying to load into the game, the game freezes. This was when starting a new game

When loading from a save file the progress bar gets to approx 3- to 5% completed and then freezes

PROTON_NO_FSYNC=1 makes the issue go away.

Should add that I used:

  1. Manjaro Linux
  2. Linux-fsync-5.2.1 as a arch repository pre-built package (Found in this repo pinned as a comment under the aur for fsync)
Oschowa commented 5 years ago

I also tested Sekiro, and while i can load into the game fine, after about 1 minute of running aroud the area close to the "Ashina Castle" Sculptor Idol, the game hung with sound still playing. I ran strace -p $sekiro_pid and got the following output: futex(0x22efd0, 0x1f /* FUTEX_??? */, 1, NULL, NULL, 0) = ?

Arch Linux Kernel 5.2.5 fsync patched

Vash63 commented 5 years ago

I'm still able to reproduce the issue where specific cutscenes (probably about 1/5 or 1/10) have dialogue that plays out of order in AC Odyssey with fsync enabled. I say 'still' as esync has this bug as well, so it's not a regression from esync, but it is a regression compared to having both esync and fsync disabled.

ofarukaydin commented 5 years ago

Guild wars 2 crashes after 1min. steam-15106949398107521024.log Arch linux

Xinayder commented 5 years ago

My 144Hz DisplayPort monitor is not being detected with the linux-fsync kernel package from AUR.

EDIT: here's my journalctl log file: https://gist.github.com/RockyTV/07f0f29f3c0a17a355b8929cafcb3a86

Askannz commented 5 years ago

Prey 2017 has a perf regression with Fsync enabled.

Without Fsync (PROTON_NO_FSYNC=1) : proton411_no_fsync

With Fsync : proton411_fsync

This is at 1080p with all settings to minimum, to ensure a CPU-bound scenario. GPU usage sits around 80%.

Specs : i7-7700HQ, GTX 1060 6GB with driver 418.52.18, kernel 5.2.4 patched with Fsync and PDS scheduler.

libcg commented 5 years ago

GTA IV has problems with fsync. The game loads, when I walk to get outside the apartment it freezes and doesn't seem to recover. PROTON_NO_FSYNC=1 makes the problem go away even though I still see fsync: up and running. in the logs...

Specs:

Bumbadawg commented 5 years ago

@Plagman : just a big <3 thank you, Quake Champions went from 90fps to 160fps ingame, and 140fps in menu to 230fps; this is amazing!

Plagman commented 5 years ago

@Plagman : just a big <3 thank you, Quake Champions went from 90fps to 160fps ingame, and 140fps in menu to 230fps; this is amazing!

That's pretty impressive; do you know if it's just Proton 4.11 doing that, or fsync specifically? What does the perf look like when setting PROTON_NO_FSYNC=1 on 4.11?

Plagman commented 5 years ago

I've tested it on my end and it seems to be Proton 4.11, not fsync, yielding the perf improvements, which matches my initial expectations.

jarrard commented 5 years ago

Yes Proton 4.11 does seem to have some performance fixes for games but it also introduces issues such as fixing performance in KCD but introducing possible frequent ctd at menu on launch, and also empyrion won't launch with 4.11 any longer.

Two steps forward, three steps back.. lol

jmbegley82 commented 5 years ago

Tried Metal Gear Solid V: The Phantom Pain (v1.50), using kernel 5.0.0-20-mfutex #21~18.04.1+1valve1+mfutex2-Ubuntu and Photon 4.11-1. The game hangs after a couple minutes and needs to be killed (although it does seem to perform better up until that point). Setting launch option PROTON_NOFSYNC=1 restored the game performance to roughly what it was with Proton 4.2 and no longer hangs (at least after 30 minutes). Last line of strace during hang is "futex(0x22efe0, 0x1f /* FUTEX??? */, 1, NULL, NULL, 0strace: Process 10877 detached" (although I may be using strace incorrectly) Using AMD FX-6300, Nvidia GTX 960, binary driver version 430.40, Ubuntu 18.04.2 LTS

ghost commented 5 years ago

PROTON_NO_FSYNC=1 fixes crashes in TEKKEN 7 that occur usually around stage load, before and after clearing out any cached shaders

Bumbadawg commented 5 years ago

(you may hide this as off-topic after reading)

I've tested it on my end and it seems to be Proton 4.11, not fsync, yielding the perf improvements, which matches my initial expectations.

@Plagman , indeed, this update bypassed my rational thinking and all safeguards skipped to hype the futex. I also confirm the perf boost mostly came from 4.2 -> 4.11 as you mentionned and not fsync only.

Here are the perfs in Quake Champions main menu, maxed out, on 125% resolution:

fsync linux 5 linux 4.15
ON 170 160
OFF 160 160

I didn't measure ingame accurately but i'd say the gain is about +5~20% with Fsync ON when playing heavy scenegraphs (long distance / heavy draw calls). It's now viable for an i5 4670k. Before 4.11, i had to disable the esync patch because it caused so much input lag/stuttering. Now it's smooth with that futex trick.

Again, a huge thanks for your contribution (and the team), pushing from Proton, the kernel propositions, and in general making gaming on Linux a robust and perennial alternative to closed-markets companies OS :+1:

PS: the 4.11 update convinced me to buy Shadow of the Tomb Raider before Feral native release hehe.

telans commented 5 years ago

/ Off Topic /

I know this is an issue thread, but I thought I'd just give my results with Borderlands GOTY Enhanced (might upate later for other games).

I did crash once when leaving fsync enabled, however I am not sure if that was a one-off or even related to fsync at all.

Software Version
Nvidia-vulkan 418.52.18
DXVK 1.3.1-git - https://github.com/doitsujin/dxvk/commit/02d92210adb3369d4c3d7bb06660ca0cde0a2add
Kernel 5.2.5-arch1-1-fsync
Game fsync On / Off FPS
Borderlands GOTY Enhanced Off 122 fps
Borderlands GOTY Enhanced On 130 fps

FPS recorded sitting at main menu, with maximum graphics options at 1080p, plus a custom Reshade config.

Question: Perhaps fsync: up and running. could be displayed in the Steam Console too? Generating a 20-30 Mb log file every time I want to check if fsync is actually running isn't very handy.

Ases commented 5 years ago

Kingdom Come: Deliverance freezes at loading screen, but works OK with the PROTON_NO_FSYNC=1 env variable

The Proton log don't show anything suspicious to my eyes.

Software Version
Distro Ubuntu 18.04
Kernel 5.0.0-20-mfutex
Driver NVIDIA 418.52.18
Proton 1564004442 proton-4.11-1b
DXVK v1.3-3-g6f1b252f
SteamGameId 379430

EDIT: No longer freezes with Proton: 1566846741 proton-4.11-3

jarrard commented 5 years ago

fsync should only be a factor if you have a kernel supporting it. I tried building the arch fsync one but even tho it installed, it had a boot error so gave up on it (took 3hrs to build),.

telans commented 5 years ago

@jarrard You can add the valveaur repo & signing key, much quicker. You could post here what the error is anyways?

jarrard commented 5 years ago

Well I'm running manjaro and they have some custom configurations that cause running your own kernel a issue. I'm actually going to switch to Pop_OS now and give that a go, there should be a ubuntu compat fsync kernel around somewhere. Arch was great and all but since antergos went bye bye I kinda lost interest a bit (yes I know someone resurrected the project under a new name but I don't want to go down that route again).

mozo78 commented 5 years ago

The best move is to use vanilla Arch.

jarrard commented 5 years ago

yes tho that's all off topic now.

I'll try and get fsync for pop_OS and give it a test run sometime.

Ases commented 5 years ago

I'm actually going to switch to Pop_OS now and give that a go, there should be a ubuntu compat fsync kernel around somewhere.

@jarrard You can use the linux-mfutex-valve from valve-experimental ppa, that's what I'm using

fls2018 commented 5 years ago

Fsync with No Man's Sky hangs.

steam-275850.log

skeevy420 commented 5 years ago

Well I'm running manjaro and they have some custom configurations that cause running your own kernel a issue.

Without trying to stray further off-topic, Manjaro uses some modules from the AUR and if you're using any of those modules you just need to make sure you have those same AUR packages installed when using custom kernels.

Just posting that because I'm using Manjaro with an fsync enabled kernel provided by Tk-Glitch and that's the main thing I have to do to run custom kernels regardless of where they come from.

jomarocas commented 5 years ago

all games crash for me after make continue i put this command in user settings, any problems related with this functionality? for me this PROTON_NO_FSYNC=1 crash all assassin creed except the 2. games, like origin before continue, unity crash before continue, revelations this game freeze, 2 working good disable vsync in game, all the games are disable vsync

telans commented 5 years ago

PROTON_NO_FSYNC=1 Shouldn't be crashing any games that didn't crash beforehand. This might just be an artifact of upgrading from Proton 4.11 to Proton 4.2, rather than an issue caused by any fsync kernel patches. You could easily verify this by reverted back to Proton 4.2 and testing your games

10ked commented 5 years ago

Ok running slackware current with a patched kernel (linux-5.2.5) with fsync up and running Dark souls remastered locks up randomly and i have to switch to virtual terminal and reboot. With PROTON_NO_FSYNC=1 the game runs ok with no lock ups. Yes this is reproducible. Let me know if you need more info

logan001 commented 5 years ago

i wonder where is the problem? in wine or kernel?

jomarocas commented 5 years ago

i wonder where is the problem? in wine or kernel?

apparently is in the kernel, i have ubuntu 18.04, and kernel 5.0.0-23 and the games start to failing, only certani games but i dont know why the kernel but i think only for free sync of amd but i dont know in special in tecnical details

telans commented 5 years ago

@10ked Post a PROTON_LOG for the appid as it crashes

jarrard commented 5 years ago

I'm actually going to switch to Pop_OS now and give that a go, there should be a ubuntu compat fsync kernel around somewhere.

@jarrard You can use the linux-mfutex-valve from valve-experimental ppa, that's what I'm using

Yeah thanks for link, however I don't think there is much point moving off the -21 kernel if fsync kernel is confirmed crashing already. I've had a huge headache last week with HDD failures and lost data and my internet and mobile breaking all at the same time, I really don't want to spend a week now debugging fsync...

telans commented 5 years ago

Kernel crashes? I've not experienced anything like that, and I've used fsync with quite a few games

jarrard commented 5 years ago

https://github.com/ValveSoftware/Proton/issues/2927

Could be related, I dunno

telans commented 5 years ago

I don't believe that's related to fsync whatsoever

10ked commented 5 years ago

Anyways i tried to attach a proton log file and github does not seem to want to let me. it complains about file size. I have one if a way can be found to upload it. Dark souls remastered locks up it does not crash ok.

10ked commented 5 years ago

steam-570940.log Here is a smaller log file. I hope it helps, because like i said before the game hangs it does not crash and i have to switch to a virtual terminal and reboot.

Bumbadawg commented 5 years ago

[off topic] @10ked head -c 10M steam-$ID.log > skimmed.log to reduce the log size.

LeJimster commented 5 years ago

Crysis (64-bit DX10 version). With Fsync enabled the splash screens are very,very,very slow to progress with choppy audio, I managed to get through about 4 splash screens and then it appeared to hang. This seems to be exactly the same with Esync.

Works fine with Fsync & Esync disabled.

steam-17300.log

System Specs

LeJimster commented 5 years ago

Thief Experienced 2 app hangs, when doing benchmarks comparisons between Fsync/Esync/Disabled. Both crashes were with Fsync enabled. I managed a few runs without crashes, so it doesn't happen every single time.

steam-239160-crash1-reduced.log steam-239160-crash2-reduced.log

I can upload the full size logs if needed, as they were several hundred MB each.

System Specs

ghost commented 5 years ago

Rocket League on Proton crashes consistently for me about every other match. Using PROTON_NO_FSYNC=1 fixes the issue.

skimmed.log

specs

Xinayder commented 5 years ago

I'd like to point out that if you have the linux-fsync kernel, you must disable fsync or esync for the game to work. Right now, if you don't disable one of them, your game will crash.

Definitely something Valve should take a look at, either disabling esync or fsync by default, as these two options don't get along together.

telans commented 5 years ago

They work together with some games, I haven't encountered a problem with either of them yet.

Xinayder commented 5 years ago

They work together with some games, I haven't encountered a problem with either of them yet.

GTA V crashes with both enabled, and as reported above, so does Rocket League.

LeJimster commented 5 years ago

They work together with some games, I haven't encountered a problem with either of them yet.

GTA V crashes with both enabled, and as reported above, so does Rocket League.

I was playing GTA V with fsync on earlier, as I'm getting ready to do a benchmark comparison.. Didn't experience any crashes. I'm using the Rockstar Social Club version of the game. I didn't run the game for very long though.

Update: I have experienced 1 crash so far when benchmarking. I'm not sure about debug logging in wine yet, so haven't had chance to replicate.

pingubot commented 5 years ago

Hi,

just tried Homefront the Revolution and it hangs during loading with fsync enabled (the loading circle is moving on and on..). Disabling Fsync fixes the issue. Strace -p shows the following:

strace -p 6925 strace: Process 6925 attached futex(0x22cc80, 0x1f / FUTEX_??? /, 1, NULL, NULL, 0^Cstrace: Process 6925 detached <detached ...>

Many thanks ! Christian

Corben78 commented 5 years ago

I just realized, when playing Beat Saber with custom song mod, the custom songs aren't loading properly. It works from time to time, e.g. when waiting for a while, but mostly the songs aren't loading. PROTON_NO_FSYNC=1 as additional launch parameter gets rid of the problem. Otherwise Beat Saber runs fine.

EmptyVisual commented 5 years ago

Game: No Man's Sky (version 2.0 BEYOND update) https://www.nomanssky.com/beyond-update/

System Information

Distribution: Arch Linux x86_64 Kernel: Linux 5.2.8-arch1-1-fsync (from the Valve AUR) GFX: GTX 970 - using nvidia-dkms 430.40-4 drivers

Proton Version: 4.11-2

Issue

With the new No Man's Sky beyond update (released today), the game fails to launch completely, instead, it gets stuck on Running with no game client visible. See below image

A fresh compatdata has been made to test this, however, made no difference.

Workaround

PROTON_NO_FSYNC=1 %command% used in the launch options for the game allows the game to start without fail every time.

lsb-release package is also needed for Steam to launch on Arch with the fsync kernel.

kakra commented 5 years ago

Patched kernel 5.2 (with one additional needed patch cherry-picked from 5.3): https://github.com/kakra/linux/commits/rebase-5.2/steam-patches

Problem: "Middleearth: Shadow of War" freezes a lot during gameplay with fsync on, otherwise it runs fine for hours.

Distribution: Gentoo Linux Kernel: Linux 5.2.8 with CK and Fsync patches, MuQSS enabled GFX: NVIDIA Geforce GTX 1660 Ti AMP 6GB, drivers 418.52.18 and 435.17 Proton: 4.11-2

kwahoo2 commented 5 years ago

Tomb Raider 2013 has a performance regression, it is very visible when graphics settings are set to Low: Fsync On (FPS Avg/Max/Min): 211,0/238,0/165,3 GPU usage reported by DXVK ~50%

Fsync Off (Avg/Max/Min): 295,8/346,6/223,6 GPU ~80%

Highest settings preset: Fsync On (Avg/Max/Min): 84,6/116,8/64,3 GPU 100%

Fsync Off (Avg/Max/Min): 85,0/101,6/68,0 GPU 100%

Specs: Radeon 580/Ryzen 1700/Ubuntu 19.04 kernel 5.2.8 + fsync patches AMD RADV/ACO POLARIS10, DRM 3.32.0, 5.2.8, LLVM 8.0.0 Driver: 19.1.99 Vulkan: 1.1.107 DXVK v 1.3.2-4-g0b21ef18