Citra Performance on Intel iGPU - Linux beats Windows

Thanks to tywald’s advice about trying out Citra on Linux, I did some quick performance tests on 5 Games which I would like to share here. AMD and Intel GPUs benefit from better optimized OpenGL on Linux thanks to the Mesa driver, so I wanted to see it for myself!

Test Info:

  • Laptop specs: i5-3230M; Intel HD Graphics 4000; 1x 4GB RAM
  • Windows version: 7 & OpenGL 4.0
  • Linux Distro: MX Linux 19.3 & OpenGL 4.2
  • Citra nightly 1696 - default settings
  • quick test simply consist of getting into the very first in-game section, stand still and check the performance at uncapped FPS
  • for the performance number I use game speed (in %) instead of FPS, as it’s easier to see if a game runs well (>100%) or not at a glance
  • bright colored bars are original resolution results, darker bars are 2x internal resolution

This is quite a big performance boost on Linux across the board! It makes more demanding games like Mario Kart or Kirby Planet Robobot finally perfectly playable on my laptop. It’s not just the performance gain: On Linux the tested games are completely glitch free, where on windows I noticed quite a few graphical artifacts such as flashing objects/textures (especially on Detective Pikachu).

The biggest difference shows Mario Kart with over 2x better performance on Linux compared to Windows. Though the difference gets smaller with higher resolutions. I only used up to 2x IR for the tests, as going above will often result in performance below 100% speed, so that’s not useable on my system.

If someone also got some Citra on Linux vs Windows performance comparisons, please share them here! :slight_smile:

3 Likes

Hi! Awesome work! Please tell me if you’re using some kind of dual boot Linux/Windows or Virtual Box. I would like to play on Linux for sure but my current OS is Windows.

I use a method called “Frugal Install” which is a combination of LiveUSB and Dual-Boot. It works like this:

  • Windows 7 is my main OS
  • when I want to launch into MX Linux, I simply insert the MX Linux Live-USB and turn on the laptop
  • but all files of the MX Linux system are actually stored and loaded on my HDD, just like with the dual-boot method
  • so the LiveUSB is really just needed for the initial boot; you can remove the USB once you are booted to the Linux Desktop

Note: unlike with dual-boot, you can use the frugal install on any existing HDD partition (even the windows partition), while leaving all other files untouched. But the problem is that when you are booted into MX Linux, you won’t be able to access the files stored on the frugal partition. Due to this I couldn’t access my game rom files and that’s why I created a new seperate partition just for the MX Linux frugal install.

There is also a method called “persistent Live-USB”, where all files are stored and loaded on the USB itself; but it’s much slower. I decided to use MX Linux since it seems to be the only modern distro that allows such a persisitent/frugal Live-USB method.

Here is some more info about the frugal install method:
https://mxlinux.org/wiki/system/frugal-installation/

1 Like

There is no way you will get an even remotely playable framerate in Virtual Box. To play any sort of demanding game or emulator in an OS, you need to run that OS on the hardware.

1 Like