Difference between revisions of "Improving performance"

From Linux Gaming
Jump to navigation Jump to search
m (Reverted edits by Aragorn (talk) to last revision by Slouchy)
Tags: Rollback Reverted
Line 1: Line 1:
== Major tweaks ==
== Major tweaks ==
*Set your CPU to maximum performance. You can use [[Gamemode|GameMode]] or [https://gitlab.com/corectrl/corectrl/ CoreCtrl] to do this.
*Set your GPU to maximum performance. Read the AMD/Nvidia specific tweaks section to see how.
* If you use X11, disable [[Compositor|composition]]:
**If you use KDE: This can be done with a switch in Lutris settings. Right click the game -> Configure -> System options -> Disable desktop effects. This dramatically improves input lag and ''"smoothness"''. If you use Steam or Heroic, you have to manually disable composition with <code>shift</code> + <code>alt</code> + <code>f12</code>. The same combination re-enables it.
**If you use Gnome: You don't have to do anything.
**If you use Cinnamon: This is not possible and you should switch the desktop environment.
*Enable Esync. Lutris: Right click the game -> Configure -> Runner options -> Enable Esync.
*Or, even better, enable Fsync. You need to use a compatible Kernel (like Zen, linux-tkg, or Xanmod; '''kernel above 5.16 is compatible with F-sync out of the box'''), and enable it in Lutris: Right click the game -> Configure -> Runner options -> Enable Fsync
*Look at your thermals and if they are too high, adapt the fan speed.


==Optional==
* Set your CPU/GPU into performance mode. For AMD GPUs this can be achieved with CoreCtrl. Open CoreCtrl, and add a profile for every game, or edit the global settings to your likings.
* Disable composition. This can be done with a switch in Lutris settings. Right click the game -> Configure -> System options -> Disable desktop effects. This dramatically improves input lag and ''"smoothness"'' (at least on KDE. If I understand it correctly, this is not necessary on Gnome. Please edit this if you have more information). If you use KDE, you can manually disable composition with <code>shift</code> + <code>alt</code> + <code>f12</code>. The same combination re-enables it.
* Enable Esync. Lutris: Right click the game -> Configure -> Runner options -> Enable Esync.
* Or, even better, enable Fsync. You need to use a compatible Kernel (like Zen, linux-tkg, or Xanmod; '''kernel above 5.16 is compatible with F-sync out of the box'''), and enable it in Lutris: Right click the game -> Configure -> Runner options -> Enable Fsync


*Use [[FSR - FidelityFX Super Resolution|FSR]]. This might dramatically improve your framerate in GPU limited games but will definitely hurt the image quality.
== Optional ==


==Input lag, Desktop Environments, and x11/Wayland==
* Use FSR. This might dramatically improve your framerate in GPU limited games but will definitely hurt the image quality.
{{Needs work|Problem=Might be outdated, and there is missing data for various desktop environments and window managers}}
*It appears that KDE Plasma (X11) with no composition (currently) is (one of) the best regarding performance, and input lag. Gnome is also ok, but you should avoid Cinnamon. This might be outdated, but I can't find newer data.<ref>https://www.reddit.com/r/linux_gaming/comments/cii545/linux_input_lag_analysis_v26des_windows_10_1809/</ref>
*You should only use Wayland, if you can enable FreeSync, because otherwise it will force vsync. If you are using KDE, and you have FreeSync enabled, the performance and input lag should be close to KDE X11 with composition disabled.<ref>https://zamundaaa.github.io/wayland/2021/12/14/about-gaming-on-wayland.html</ref> The input lag will increase by the "half frame" that is displayed with tearing. It's basically the question whether or not you want to wait for the frame to be complete before displaying it. KDE Plasma is currently the best DE for Wayland.<ref>https://www.reddit.com/r/linux_gaming/comments/rghr60/about_gaming_and_latency_on_wayland/hpox61p/?context=3</ref>


It should be noted that we are talking about milliseconds here (the best value is 20ms, the worst is 90ms). If you are not susceptible to this, you might not even notice. But generally speaking, the game will feel more responsive if your input lag is low. You might also notice stuttering if you 99th percentile is bad.
== Input lag, Desktop Environments, and x11/Wayland: ==


==AMD/Nvidia specific tweaks==
* It appears that KDE Plasma (X11) with no composition (currently) is (one of) the best regarding performance, and input lag. Gnome is also ok, but you should avoid Cinnamon. This might be outdated, but I can't find newer data: <nowiki>https://www.reddit.com/r/linux_gaming/comments/cii545/linux_input_lag_analysis_v26des_windows_10_1809/</nowiki>
* You should only use Wayland, if you can enable FreeSync, because otherwise it will force vsync. If you are using KDE, and you have FreeSync enabled, the performance and input lag should be close to KDE X11 with composition disabled: <nowiki>https://zamundaaa.github.io/wayland/2021/12/14/about-gaming-on-wayland.html</nowiki> The input lag will increase by the "half frame" that is displayed with tearing. It's basically the question whether or not you want to wait for the frame to be complete before displaying it. KDE Plasma is currently the best DE for Wayland: <nowiki>https://www.reddit.com/r/linux_gaming/comments/rghr60/about_gaming_and_latency_on_wayland/hpox61p/?context=3</nowiki>


=== AMD===
It should be noted that we are talking about milliseconds here (the best value is 20ms, the worst is 90ms). If you are not susceptible to this, you might not even notice. But generally speaking, the game will feel more responsive if your input lag is low. You might also notice stuttering if you 99th percentile is bad.
 
* Use [https://gitlab.com/corectrl/corectrl/ CoreCtrl]
**Add a profile for every game:
***For your GPU select ''Performance mode'': ''Fixed'' and use the ''High'' setting (you may also adapt GPU fan speed here)
***For your CPU select ''Performance scaling'': ''Custom'' and use ''Frequency governor'': ''Performance''
*Use Mesa drivers
 
===Nvidia<ref>https://www.reddit.com/r/linux_gaming/comments/sc9dv7/need_help_writing_wiki_article_about_how_to_tweak/hu54e1g/?context=3</ref>===
{{Needs work|Problem=not complete, and just copied from a reddit post}}
*The [https://wiki.archlinux.org/title/NVIDIA/Tips_and_tricks#Overclocking_and_cooling Arch Wiki] is the best place to start. Enable coolbits as the link explains. Good is, setting the coolbits value to 28 on anything currently supported (post-Fermi) to enable full control over the GPU (at least, as much control as you're allowed to be given).
* Use GreenWithEnvy for overclocking, setting power limits (raise or lower) and fan curves. It's the closest alternative we have to MSI Afterburner.
*Make sure to use a Proton version of 6.3, Experimental, Proton-6.21-GE-2 or later for Proton-GE and Proton-tkg/wine-tkg-git of 6.17 or greater (or build your own) for DLSS support. For Steam, you need to put <code>PROTON_HIDE_NVIDIA_GPU=0 PROTON_ENABLE_NVAPI=1 %command%</code> in your launch options (side note: there should only ever be one <code>%command%</code>).
*For non-Steam games, use the latest lutris or wine-ge-custom build, '''with Lutris''', and make sure to toggle on DLSS support in the Configure -> Runner options menu (though this might be better-suited to a Lutris article, which should exist). For non-Steam games, you also need a dxvk.conf file with <code>dxgi.nvapiHack = False</code> in it. You can just create one (mine is <code>~/Documents/dxvk.conf</code>) and set <code>DXVK_CONFIG_FILE=/path/to/dxvk.conf</code> in your <code>/etc/environment</code>.
*Use DKMS. Every distro that has proprietary nvidia driver support offers a DKMS version.
*Use [https://github.com/lutris/docs/blob/master/InstallingDrivers.md this] to get minimal required drivers installed.
*For Arch-based distributions, use TKG's <code>nvidia-all</code> [https://github.com/frogging-family/nvidia-all repo],  with <code>_dkms=""</code> set to true in <code>customization.cfg</code>.
 
<references />

Revision as of 01:57, 5 February 2022

Major tweaks

  • Set your CPU/GPU into performance mode. For AMD GPUs this can be achieved with CoreCtrl. Open CoreCtrl, and add a profile for every game, or edit the global settings to your likings.
  • Disable composition. This can be done with a switch in Lutris settings. Right click the game -> Configure -> System options -> Disable desktop effects. This dramatically improves input lag and "smoothness" (at least on KDE. If I understand it correctly, this is not necessary on Gnome. Please edit this if you have more information). If you use KDE, you can manually disable composition with shift + alt + f12. The same combination re-enables it.
  • Enable Esync. Lutris: Right click the game -> Configure -> Runner options -> Enable Esync.
  • Or, even better, enable Fsync. You need to use a compatible Kernel (like Zen, linux-tkg, or Xanmod; kernel above 5.16 is compatible with F-sync out of the box), and enable it in Lutris: Right click the game -> Configure -> Runner options -> Enable Fsync

Optional

  • Use FSR. This might dramatically improve your framerate in GPU limited games but will definitely hurt the image quality.

Input lag, Desktop Environments, and x11/Wayland:

  • It appears that KDE Plasma (X11) with no composition (currently) is (one of) the best regarding performance, and input lag. Gnome is also ok, but you should avoid Cinnamon. This might be outdated, but I can't find newer data: https://www.reddit.com/r/linux_gaming/comments/cii545/linux_input_lag_analysis_v26des_windows_10_1809/
  • You should only use Wayland, if you can enable FreeSync, because otherwise it will force vsync. If you are using KDE, and you have FreeSync enabled, the performance and input lag should be close to KDE X11 with composition disabled: https://zamundaaa.github.io/wayland/2021/12/14/about-gaming-on-wayland.html The input lag will increase by the "half frame" that is displayed with tearing. It's basically the question whether or not you want to wait for the frame to be complete before displaying it. KDE Plasma is currently the best DE for Wayland: https://www.reddit.com/r/linux_gaming/comments/rghr60/about_gaming_and_latency_on_wayland/hpox61p/?context=3

It should be noted that we are talking about milliseconds here (the best value is 20ms, the worst is 90ms). If you are not susceptible to this, you might not even notice. But generally speaking, the game will feel more responsive if your input lag is low. You might also notice stuttering if you 99th percentile is bad.