While you're here, please consider supporting GamingOnLinux on:
Reward Tiers: Patreon. Plain Donations: PayPal.
This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!
You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Reward Tiers: Patreon. Plain Donations: PayPal.
This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!
You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register
- Steam Controller 2 is apparently a thing and being 'tooled for a mass production' plus a new VR controller
- NVIDIA stable driver 550.135 released for Linux
- Dungeon Clawler will grab hold of your free time now it's in Early Access, plus keys to give away
- Sony reportedly looking to acquire Kadokawa, owner of ELDEN RING dev FromSoftware
- Monster catcher Cassette Beasts adds Steam Workshop support and a new battle mode
- > See more over 30 days here
-
UnderworldGodot is an engine recreation of Ultima Under…
- Shmerl -
Proton Experimental for Steam Deck / Linux fixes Disgae…
- BladePupper -
JSAUX released their first White 6-in-1 Docking Station…
- RFSharpe -
Proton Experimental for Steam Deck / Linux fixes Disgae…
- Cybolic -
Dungeon Clawler will grab hold of your free time now it…
- Liam Dawe - > See more comments
- What have you been listening to?
- Shmerl - What do you want to see on GamingOnLinux?
- Linux_Rocks - Our own anti-cheat list
- Liam Dawe - Weekend Players' Club 11/22/2024
- Liam Dawe - Types of programs that are irritating
- Cyril - See more posts
Recently I decided to give a try to the latest game from FromSoftware (Sekiro™: Shadows Die Twice, because the nice and satisfactory experience that lots of fellow gamers had, and also because the various tests run by Linux players (such as at this link were encouraging.
Computer Specs are the following:
Proton:4.2-4
Distro:Ubuntu 19.04 (XFCE Desktop Environment 4.12)
Kernel:5.0.0-15-generic
RAM:64 GB
GPU Driver:NVIDIA 430.14
GPU:NVIDIA GeForce GTX 1080 Ti
CPU:AMD Ryzen Threadripper 2990WX 32-Core
When I looked up (also on ProtonDB) all the reports from people with the same hardware, I read coherently about a seamless execution of the game at 1440p 60fps.
To my concern, I have never been able to experience on my computer the same performances stated by the other players. In my case, the frame rate is hideous and very variable, with an average of 30fps, peaks of 55 and drops of 7~8 (in particular when moving from one area to another), which makes the whole game unplayable as soon as you face a little stronger or faster enemy.
I tried several optimization workarounds:
but none of the above (in particular the last one) has given any significant performance improvement.
I have experienced the same behaviour with other games, such as the following:
As I'm not able to explain the cause of the poor performance, can you recommend anything I could check in the OS? Is out there any benchmark which could trace the reason of it?
Another strange experience is moving the mouse for the camera control: any mouse movement will cause a drop of the frame rate, which restores just when I stop the mouse. This issue actually happens with every Wine/Proton game (but not for native Linux games, luckily), and I don't know honestly if it can be even minimally related to the one above.
Cheers,
Dave
Last edited by LordDaveTheKind on 22 October 2019 at 9:24 pm UTC
View PC info
I quite like to run "psensor" in the background, when I'm gaming, and check out the various graphs of temperature (CPU and GPU) and CPU load. Computers (CPU and/or GPU) can ramp-down performance when they get too hot. Maybe the internals of your PC are getting too hot (ideally CPU temp shouldn't go over 70 deg C and GPU temp shouldn't go over 90 deg C).
Maybe your PC case should have more case fans, and maybe your CPU could have a better CPU fan.
Your reported Proton (4.2-4) isn't the latest one (4.2-7 at time of writing).
Out of interest what hard drives are in your system? Those components could also contribute to slow-downs.
View PC info
Your problem is most likely your 2990WX CPU
This CPU is bad for games in its default configuration because it's made up of four 8-core dies, only two of which have direct access to the memory. The other two dies access memory through the first two dies which dramatically increases the latency.
And games are *VERY* sensitive to memory latency.
You can see your cpu topology with numactl:
sudo apt install numactl
numactl --hardware
You can try pinning the game to the first die without including any logical cores (SMT).
In the game's steam properties, set the launch command to: taskset -c 0,2,4,6,8,10,12,14 %command%
Also make sure these cores are piloted by the performance governor:
sudo apt install cpufrequtils
for i in {0..15}; do sudo cpufreq-set -g performance $i; done
PS: make sure you are using the latest NVidia drivers: 430.26 if I'm not mistaken
Edit: this is more complicated than I thought.
It seems the numbering of Threadripper cores follows a different scheme than Ryzen which would be retarded but hey...
So you might get better results with taskset -c 0-7 %command%
or with taskset -c 8-15 %command%
In the end, it will depend on how you installed you ram and graphics card: https://legitreviews.com/wp-content/uploads/2018/08/2990wx-diagram.png
You can see where your memory and graphics card are attached with lstopo:
sudo apt install hwloc
lstopo
Which should give you something like this: https://i.redd.it/xwch3642eeq11.png
this will show you to which cpu cores your gpu and memory are attached.
You want to pin the game to the cores closest to your memory and gpu while avoiding SMT cores.
Here below the list:
Cheers,
Dave
Thank you so much for the suggestions. I will follow them and keep you posted here.
Cheers,
Dave
The result given by lstopo on my CPU is the following: https://i.imgur.com/vVsx9yc.png
I tried then to run taskset -c 8-15 %command% with the core in Performance mode, and I can notice the difference, although it is still a low value, in the range of 30-45 fps for the aforementioned games (still very far from the 60fps experienced in the other reports).
I repeated again the toggle on/off of the Stream Overlay, the DE Composition, the game Video settings, the version of Proton, etc. but those variables won't change significantly the overall performance.
I must say that this strange behaviour is not happening in several other games (which of course I'd rather play in these days) such as The Witcher® 3: Wild Hunt (running at 75 fps on the average) or any Linux native game (running instead at 95 fps). It can be an issue related to the games bad design (FromSoftware games are historically infamous for having several bad design issues on PC), but seriously it should be something else as well.
I'll continue my researches, and keep this thread updated in case I find anything else.
Thank you so much anyway for your support.
Cheers,
Dave
View PC info
Okay, well I think we've eliminated that possible issue - Your drives are fast enough that they shouldn't be causing problems. (Although for ultimate performance, some NVMe SSD drive models are much quicker than SATA SSDs.) I think gurv's comments on CPU tweaking seem good to pursue. Maybe it would be good to visit your motherboard firmware config and have a poke around there as well :)
Now the incident seems to be more mysterious, but I have a lead probably.
I've installed SteamOS on a SSD disk partition, dual booted the PC, and installed DS3 on it. The game has seamlessly got 60 fps at 1080p on Max graphical settings. Screenshot here.
I can see that both the Vulkan API and the Driver are a little downgraded, but I don't think this is the issue. Now the tough part would be to analyse all the differences between the two runs. What can I check for a performance check during the game execution?
Cheers,
Dave
View PC info
Is this commuter "gaming only"or do you do other things with it? Perhaps you have program or deamon running in the background that is using a bunch of resources.
Only other thing that comes to mind are the CPU mitigations that have been coming through the kernel over the past year. Presumably, steamos might have them off to squeeze more performance out of the system?
View PC info
Hmm, that's quite strange indeed.
Theoretically it could be a regression in the driver version or a more optimized cpu scheduler on SteamOS.
That said, I've noticed something wrong in your lstopo output: all your ram is attached to numa node #2.
This means you only have half the memory bandwidth you could get and that only that numa node (core 8-15,40-47) has direct access to memory.
Check your motherboard manual, it should tell you how to best populate your ram slots.
Unless you have two 32GB sticks, you should be able to get the full 4-channel bandwidth.
Back to the topic, From Software games can indeed be finicky.
Maybe you could try restricting the game to only one ccx to avoid the thread synchronization penalty:
taskset -c 8-11 %command%
or (with smt):
taskset -c 8-11,40-43 %command%
> Thank you so much anyway for your support.
You're welcome :)
I'm glad to see you have at least found a way to game with a good framerate.
Good luck taming that monster cpu ^_^:)
Edit:
Oh just thought about something: you could get a pretty heavy framerate penalty if NVidia's driver thread is not on the same ccx. I think I've seen that happen when fiddling on my Ryzen.
So you may have to try all the ccx pinning possibilities:
taskset -c 8-11,40-43 %command%
taskset -c 12-15,44-47 %command%
(you should fix the ram slots assignment before trying the next two as currently numa node #0 doesn't have direct access to memory)
taskset -c 0-3,32-35 %command%
taskset -c 4-7,36-39 %command%
View PC info
From the esync wiki (https://github.com/lutris/lutris/wiki/How-to:-Esync):
"run ulimit -Hn to see open files limit (it should report 524288)."