I used gamemode
because it seemed like a nice performance tool; however it caused performance, stability, and issues (in TeamF2). In TF2, I had irregular frame rates and frame times.
I decided to disable gamemode
to see what would happen; because it's a good idea to test every known factor. I got a consistent frame rate of 60fps and consistent frametime of 16.67ms.
GameMode is a daemon/lib combo for Linux that allows games to request a set of optimisations be temporarily applied to the host OS and/or a game process.
GameMode was designed primarily as a stop-gap solution to problems with the Intel and AMD CPU powersave or ondemand governors, but is now host to a range of optimisation features and configurations.
Currently GameMode includes support for optimisations including:
- CPU governor
- I/O priority
- Process niceness
- Kernel scheduler (
SCHED_ISO
) - Screensaver inhibiting
- GPU performance mode (NVIDIA and AMD), GPU overclocking (NVIDIA)
- Custom scripts
Constantly changing the behavior of the CPU and priorities can be very bad for stability.
I think games should focus on optimizing their code, instead of relying on third party software.
sasalzig@lemmy.ml 2 years ago
Yeah, looking at this list, there are multiple things that could cause worse outcomes in practice.
The most problematic IMHO are the I/O prio and niceness. This is because other processes like xorg and the compositor (and maybe even kernel threads, though not sure if you can starve those) need I/O and CPU too when running a game, and they get starved by the game hogging these resources. I remember when running the original StarCraft through wine you needed to de-nice it to avoid starving the X server of CPU.
Of course some of the other stuff is also sketchy since it could increase temps and therefore induce throttling. Depends on how good the cooling is I suppose.
A low latency scheduler can increase overhead and thus reduce average fps, but should not really increase stuttering (probably the opposite), so I don't think that's the problem really.