OpenSuSE Gaming tips and tricks thread

In preparation of the new TS forum format that is coming soon, I thought it was a good idea to already start with a few wiki style threads, to gather information from the forum community to aggregate later.

This is the second one, the first one related specifically to gaming in linux, more precisely in OpenSuSE, because that's what I would suggest as most easy to use full featured bleeding edge distro with the most advantages for general use and gaming.


I'm going to start off with a little trick that is very fundamental for fp-fps and CS players: how to set the polling rate of any mouse to 500 Hz. First of all, why 500 Hz and not 1000 Hz? Because 1000 Hz doesn't really provide any benefit over 500 Hz, but starts to noticeably influence the system resources. 500 Hz is just the sweet spot. It means that it will always register at least two mouse positions per rendered frame in the GPU, and at least 4 mouse positions per rendered frame on the fastest monitors. That's more than enough.

In OpenSuSE, setting the mouse polling rate is super simple, and doesn't require any CLI work or .conf file editing.

You go into Yast (Super key, start typing "yast", then click on the Yast icon). Yast will then ask for the superuser password (either the user password if that is a superuser, or the root password if you've configured a separate root account, which is a better option, although OpenSuSE by default proposes a standard user with superuser rights), then click on the icon "bootloader". Yast will then withdraw all the info it needs, and present you with a screen called "boot loader settings". Click on the second tab called "Kernel Parameters", and go to the second text box called "Optional Kernel Command Line Parameter". In that text box, enter "usbhid.mousepoll=2" and hit OK. After a reboot, your mouse polling rate will be set to 500 Hz.

I found an interesting one last night.

If you are using Opensuse 13.2 with KDE and you seem that you can't add or modify connections via the GUI try this:

  1. Go to yast
  2. Got to Network Connections
  3. click on the Global tab
  4.  Under Network Setup Method =, click the drop down box and change it to Network Manager 
  5. Hit ok to save your changes

And now you can edit and add connections via the taskbar.

Have you tried using the renice command to boost game process priority and increase responsiveness?

It felt like I was dragging my mouse through mud but this trick made my controls really snappy when playing CS:GO. I use it on OSX but I guess it can be applied to OpenSuSE as well. It also seems to decrease my latency and reduce rubber banding when playing over wireless.

I'm going to try out the polling trick on OSX, it should work on any unix system, right?
Why make this thread OpenSuSE/GUI specific instead of using the command line examples?

Sorry for breaking the wiki style thread! :)

Well it's actually not the same across distros and *nix systems.

OpenSuSE is a pretty recent distro, and the usbhid is integrated in the kernel itself. That gives you a very responsive mouse, more responsive and more consistent than on Windows for instance, which is nice for CS:GO (luckily Valve is still on Ubuntu 12.04 on a old kernel, they haven't discovered this benefit yet so they haven't nerfed the mouse yet lolz).

When you set it as a kernel parameter like I did above, it's the same as if you were to dracut the parameter into initramfs, which is the way to do it on non-RPM bleeding edge distros like Arch, but that's something that you can't do in the GUI, which is why I put forward OpenSuSE basically, because pretty much everything can be set in a "set-and-forget" kind of way through the GUI, and even if someone would break X by messing drivers up, Yast, the config utility, still works in the CLI as a kind of pseudo-GUI that's still very easy to use.

On distros with an older kernel, you have to set the mouse polling rate in the corresponding .conf file (depending on the distro, the location and name of that file varies), and make it persistent by adding a line to your rc.local or other startup environment config script that is used in your distro of choice, so that the value is written every time you start up. Not a big deal to set up either, but it involves CLI work, or at least text editor work. I wanted to avoid that, to lower the threshold.

I have no idea how it's done in OSX to be honest, because I don't know where the configuration file for the mouse settings is on OSX, and I don't game in OSX, so I have never looked it up. Probably though, on OSX it's a setting that is not configurable as a kernel parameter, at least that's what I would expect.

You're absolutely right that - just like on Windows - CS:GO is hardly playable with a default 125Hz polling rate on a system that's capable of high fps. It does feel like running through molasses lolz.

This advice is of agnostic nature and not related to OpenSUSE per se, so can be adapted to any modern linux distro.

Lots of linux users on this forum are stallmanites for whatever reason, but you can get double the performance with binary drivers - Shock horror, i know right.

Optimise your kernel (get rid of the bloat) and configure it to use your hardware ie; tuning/scheduling/architecture/frequency etc. If you don't have much juice (a good CPU) then you will need to renice your process' for optimal performance.

Pro tip; package your custom kernels to have them on hand if need be. (Patch a Zen kernel if you're a n00b).

Launch games in their own Xserver so you don't have bloat running in the background eg; steam://rungameid/{insert id here} -- :1.  This especially applies to enterprise grade distros like OpenSUSE that have a lot of cruft loaded in the background when compared with tailored distros such as debian/arch/gentoo.

You should see decent performance gains upwards of 20-30 percent just from these basic changes and kernel optimisations.