These instructions are only for Linux systems.
Try a desktop oriented kernel like Xanmod.
Use either the
ondemand governors when playing TF2 by using
cpupower frequency-set -g performance, for example. You can see available governors for your CPU with
GameMode is a handy utility released by Feral Interactive, which will change the CPU Governor from the default CPU governor to
performance. Recent updates allow it to change a games’ “nice priority”, which will give the game more resources to work with.
To run TF2 using GameMode through Steam, open Steam, then:
* Library -> right-click Team Fortress 2 -> Properties -> General -> Launch Options: \
gamemoderun %command% -your -tf2 -launch -options -go -here
If launching TF2 from Lutris, “Enable Feral GameMode” is likely enabled by default, hence the Launch Options additions aren’t used. You can check in Lutris via: * Games -> right-click Team Fortress 2 -> Configure -> System options
Balance IRQ interrupts across multiple cores by installing the
irqbalance package on your distro then enabling the
irqbalance.service, likely by
sudo systemctl enable --now irqbalance.service.
This package is installed on most Debian-based OS’s by default, like Ubuntu and Linux Mint.
You can install
schedtool and Ananicy Cpp, then enable
ananicy-cpp.service to automatically apply rule based process priority balancing, improving resources allocated to TF2.
This however requires a profile for TF2. Follow Ananicy Cpp’s profile import instructions to use community profiles from the original Ananicy software, which can be downloaded here or by installing the original Ananicy.
See the Arch Linux wiki for information about improving networking parameters for performance.
The Linux kernel supports multiple I/O scheduler algorithms for storage devices such as
kyber. Depending on the type and speed of your storage device, some of these algorithms may increase or decrase the latency of read requests, as well as overall throughput. See the Arch Linux wiki for more information.
Virtual memory optimization¶
See the Arch Linux wiki for information about improving virtual memory parameters.
Using native libraries can benefit performance, alongside fixing mouse sensitivity issues and providing better Wayland support. The automatic Steam runtime host library pinning is not enough to use native libraries on TF2 as the game’s launcher script shades in some libraries by itself. In order to force TF2 to use a native library, the built-in library must be deleted and the system libraries have to be manually pinned to the runtime.
An example of a library that benefits greatly from this approach is SDL2. To use a native version of SDL2, go to
TF2_FOLDER/bin and delete
libSDL2-2.0.so.0 (this will cause TF2 to fallback to the Steam Linux Runtime).
Then, install a 32-bit version of SDL2 and pin the library to the runtime using one of these commands, depending on your distribution:
sudo apt install libsdl2-2.0-0:i386 ln -s /usr/lib/i386-linux-gnu/libSDL2-2.0.so.0 "$HOME/.steam/root/ubuntu12_32/steam-runtime/pinned_libs_32/"
sudo pacman -S lib32-sdl2 ln -s /usr/lib32/libSDL2-2.0.so.0 "$HOME/.steam/root/ubuntu12_32/steam-runtime/pinned_libs_32/"
sudo dnf install SDL2.i686 ln -s /usr/lib/libSDL2-2.0.so.0 "$HOME/.steam/root/ubuntu12_32/steam-runtime/pinned_libs_32/"