Use Reddit? Join us on our very own subreddit: https://www.reddit.com/r/Linuxstuff/
You can sign up to get a daily email of our articles, see the Mailing List page!
Support us on Patreon to keep GamingOnLinux alive. This ensures we have no timed articles and no paywalls. Just good, fresh content! Alternatively, you can support us on Paypal and Liberapay!

GameMode is a new daemon/lib combo for Linux that will allow you to optimize your PC for gaming. It’s not magic, it won’t suddenly make your Linux games suddenly get better performance, but it’s something that can help.

You might have seen a message box pop up with some more recent Linux ports from Feral Interactive, one that tells you that your current CPU governor is not optimised—like this:

When games end up waiting on the GPU, some CPU performance governors may downclock the CPU and then up it again later, which can result in performance problems. GameMode, as it is right now, is to help you with that. Curious about it and wanting to know a little more direct from the developers, Feral agreed to answer some quick questions I had about it:

1) Can you give us a rundown on what exactly GameMode is and why Linux gamers might need it?

“GameMode is a daemon/library combo for Linux, written in C, which allows games to request that a set of optimisations be temporarily applied to the host OS. These optimisations improve the performance of the game.

To apply these optimisations, some of our games require that users manually swap the CPU governor using sudo privileged commands. We've had some feedback from people saying that they'd prefer not to have to do so much setup in order to get the best performance from their game. Further to this, some users voiced concerns about the increased energy usage that might result from leaving the CPU in a higher power usage mode.

By automatically applying these optimisations when the game is running and removing them when it isn't, GameMode saves users the trouble of having to tinker. It also ensures that the CPU is restored to a more efficient state when they've finished playing.”

2) You say it is "intended to be expanded beyond just CPU governor states", what extras did you have in mind?

“A lot of good ideas have been put forward by beta testers, including de-activating tools like f.lux, swapping KWin from OpenGL to xrender, and changing users' chat client status to "Playing X". GameMode is Open Source, so pull requests, or forks with features like these are welcome.”

3) To be clear for our readers, is this something that will ship built-in with Feral games and will users have to do any manual steps to enable it?

“GameMode won't ship with the games; since it's open source, users will need to install it themselves using the steps on GitHub. The tool will only need to be installed once, and will work with all future Linux titles released by Feral.

It will also work with previously released games, provided users adjust their launch options on Steam.”

It’s currently under a “BSD 3-Clause License (Revised)” license and you can find out more on GitHub. It’s certainly going to be interesting to see how this project evolves over time, could end up being something extremely useful. It already made its way to the AUR for Arch users.

Once you've installed it using their instructions, you can then tell any game to use it by doing this command:

LD_PRELOAD=/usr/\$LIB/libgamemodeauto.so ./game

You can also add it as a Steam launch option for each of your games like so:

LD_PRELOAD=$LD_PRELOAD:/usr/\$LIB/libgamemodeauto.so %command%

If you wish to know what current CPU governor is in use, you can run this command in terminal:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

I actually had pre-announcement access to it and testing it has given me some good early results. Obviously this will be game and hardware dependent and yes, all tests were done over multiple runs to ensure it wasn't a fluke.

Testing it with F1 2017 for example, gave these FPS results:

That might not look like a big difference, however, behind the FPS results are the frame timings:

  Without Game Mode With Game Mode
Min Frame Time 10.32ms 10.03ms
Average Frame Time 13.31ms 11.88ms
Max Frame Time 19.36ms 16.02ms

As you can see, it has helped to reduce frame timings while increasing the overall framerate, so using GameMode (or manually using performance mode) can have an impact resulting in a smoother game. Using GameMode instead of doing it manually, does have the benefit of your CPU reverting to a more power efficient mode afterwards of course.

Testing Deus Ex: Mankind Divided was a slightly different story, as it always gave a better minimum FPS score when using GameMode, but the average and maximum showed little difference—certainly still worth it though! As for frame timings, the built-in benchmark doesn't give them.

Company of Heroes 2 is similar to Deux Ex with the benchmark mode only giving FPS scores. During my testing, both in the benchmark mode and actually playing it, the difference was noticable when using GameMode—with it being much smoother overall:

Again, to stress, your results will depend on your hardware and it's no different to manually changing your CPU governor to performance—for now (until they do more with it), although it does bring it back down to powersave or ondemand automatically which is nice.

Rise of the Tomb Raider will be the first game from Feral to have support for it integrated, so you won't need to give it any special launch options. However, you still need to install the tool yourself.

It’s great to see Feral Interactive do more open source projects, as they already have their game launcher scripts up on GitHub too.

63 Likes, Who?
We do often include affiliate links to earn us some pennies. We are currently affiliated with GOG and Humble Store. See more information here.
101 comments
Page: 1/11»
  Go to:

Brisse 10 April 2018 at 10:29 am UTC
I guess this won't do much for us AMD-users since they don't usually default to "powersave"? When I used Ubuntu 17.10 I think it defaulted to "ondemand" with my Ryzen 1700X, and now I'm on Debian Sid which seems to default to "performance".

Edit: I just realized the latter could be because I run a custom kernel.


Last edited by Brisse at 10 April 2018 at 10:31 am UTC
Nevertheless 10 April 2018 at 10:34 am UTC
Holy cow, Linux has a game mode ;-)
Leopard 10 April 2018 at 10:34 am UTC
Wow , cool stuff.

I'm on default setting for cpu power , which is "on demand" i guess.

Will try that , on i7 7700HQ.
mike44 10 April 2018 at 10:37 am UTC
Good but I would prefer not to install anything. Could we simply run a command before and after playing?
ysblokje 10 April 2018 at 10:39 am UTC
View PC info
  • Supporter
For archlinux users I created some aur packages.

gamemode-git

gamemode (stable releases)

lib32-gamemode-git

lib32-gamemode (stable releases)


(edit : added lib32 variants)


Last edited by ysblokje at 11 April 2018 at 11:08 am UTC. Edited 2 times.
Faattori 10 April 2018 at 10:43 am UTC
mike44Good but I would prefer not to install anything. Could we simply run a command before and after playing?

Yes you can.

echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
echo powersave | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

https://www.gamingonlinux.com/articles/you-will-want-to-force-your-cpu-into-high-performance-mode-for-vulkan-games-on-linux.9369


Last edited by Faattori at 10 April 2018 at 10:44 am UTC
Nevertheless 10 April 2018 at 10:44 am UTC
mike44Good but I would prefer not to install anything. Could we simply run a command before and after playing?

You could do all it does yourself in a script before and after playing. It will just need sudo to do anything.. That's what a daemon keeps away from the user.
TemplarGR 10 April 2018 at 10:47 am UTC
ysblokjeFor archlinux users I created some aur packages.

gamemode-git

gamemode (stable releases)

You can always depend on someone creating AUR packages just minutes after you read an article. I come here expecting to make an AUR package of my own and then i find out it has already been done. LOL.

Good job!
liamdawe 10 April 2018 at 10:56 am UTC
BrisseI guess this won't do much for us AMD-users since they don't usually default to "powersave"? When I used Ubuntu 17.10 I think it defaulted to "ondemand" with my Ryzen 1700X, and now I'm on Debian Sid which seems to default to "performance".

Edit: I just realized the latter could be because I run a custom kernel.
I messed up the wording a little there, it works with both powersave and ondemand

FYI: powersave is the default for newer intel CPUs, ondemand is for older (source)
QuoteDepending on the scaling driver, one of these governors will be loaded by default:

ondemand for AMD and older Intel CPU.
powersave for Intel CPUs using the intel_pstate driver (Sandy Bridge and newer).


Last edited by liamdawe at 10 April 2018 at 11:11 am UTC
Xpander 10 April 2018 at 10:58 am UTC
BrisseI guess this won't do much for us AMD-users since they don't usually default to "powersave"? When I used Ubuntu 17.10 I think it defaulted to "ondemand" with my Ryzen 1700X, and now I'm on Debian Sid which seems to default to "performance".

Edit: I just realized the latter could be because I run a custom kernel.

it does impact. ondemand mode is not good either. it will switch between clocks in games a lot (not in all games) and will cause fps drops. i run my ryzen always on performance mode when i go gaming. It has pretty big impact on the minimum framerates when running ondemand.

if you are on performance mode then its fine, its not the default behaviour on most distros though. Running it on performance constantly isnt that great also imo, but ryzen is pretty efficient (on idle with performance mode enabled) and just adds +20W compared to ondemand judging by my UPS reporting


to avoid sudo thing i created a polkit rule for cpupower to let me execute the command without sudo

looking forward to see this gamemode being implemented into the future games of feral and others.


Last edited by Xpander at 10 April 2018 at 11:05 am UTC
  Go to:
While you're here, please consider supporting GamingOnLinux on Patreon or Liberapay. We have no adverts, no paywalls, no timed exclusive articles. Just good, fresh content. Without your continued support, we simply could not continue!

We also accept Paypal donations and subscriptions! If you already are, thank you!

Due to spam you need to Register and Login to comment.


Or login with...

Livestreams & Videos
Community Livestreams
See more!
Popular this week
View by Category
Contact
Latest Forum Posts