Back in the day, it used to irk me as to how GNU/Linux distributions could not be even considered to be in the proximity of video games enthusiasts – less because of the performance of the video games themselves and more because of how inconvenient it could be for them to set it all up. Admittedly, it had been quite a while since an avid video games fan like me did that, so it was almost a no-brainer for me to try it out and see if things have changed. What I ended up finding surprised me – I like to think that it would be just as pleasing to both enthusiasts who have been playing video games on GNU/Linux distributions and to newcomers who have been scoping this, alike.
On a testing bench using an AMD RDNA2-based GPU, the video game was configured to the highest possible graphical preset to really stress the hardware into performing as much as its limiting factor. If the RDNA2 architecture reminds you of something, allow me to share that it is what forms the foundation of the GPU that no other than the widely acclaimed Steam Deck makes use of. For that matter, if you factor in some performance scaling with respect to the handheld nature of the device and the optimized Proton compatibility layer, this article can be representative of what the Steam Deck is capable of when you use Fedora Workstation as a platform of your choice for playing your favourite video games.
To have an apples to apples comparison, we set up two environments – one with Windows 10 21H2 and one with Fedora Workstation 35. On the former, I installed MSI Afterburner and ensured that the graphics drivers are up-to-date while I did not have to bother doing the same on the latter as they came preinstalled. The only extra thing that I did was to configure the Lutris v7.1 runner after clicking my way through installing Lutris and MangoHUD from GNOME Software. It is downright astonishing how much you can do these days on GNU/Linux distributions without actually having to interact with the command line, making the entry barrier very low and welcoming.
Before we get into some actual performance testing and comparison results, let me talk a bit about the video game that is at the centre of the case study. Control is an action-adventure video game developed by Remedy Entertainment and published by 505 Games. The video game is centred around a fictitious organization about paranormal activities and takes inspiration from the likes of the SCP Foundation. It is a well-optimized video game that exhibits great graphics and is a showcase of what the underlying hardware is capable of. I ran tests on both DirectX 11 and DirectX 12 versions of the video game with their compatibility layers, DXVK and VKD3D, respectively.
Following are the results of the tests. I made use of OBS Studio, which is available as both an installer binary and as a package in the RPM Fusion repositories, to record around 15 seconds of in-menu gameplay and around 60 seconds of in-game gameplay. As the video game does not have any intrinsic benchmarking tool, the footage had to be broken down into segments of equal time periods to be able to pick up performance statistics on CPU usage, GPU usage and framerate. Please do note, even when OBS Studio introduces a certain overhead to the performance, the comparison still remains valid as in both the platforms the recording software is configured identically.
- In the menus
- In the menus
- In the game
- CPU usage
- In the menus
- In the menus
- In the game
- GPU usage
- In the menus
- In the menus
- In the game
Please feel free to let your inner enthusiast loose in the statistics and try sharing as many performance differences as you have inferred so far in the comments section below. In the meanwhile, allow me to share mine –
- With DXVK (DirectX 11), the loss of average in-menu framerate is around 19.87% and the same for average in-game framerate is barely 6.26%. DXVK is almost at the stage where a blind test of framerate smoothness could potentially confuse anyone as to which platform runs natively.
- With VKD3D (DirectX 12), the loss of average in-menu framerate is barely 8.67% and the same for average in-game framerate is around 24.51%. VKD3D seems to be steadily catching up and very soon enough, video games would be able to run with minimal loss of performance.
- With DXVK, there is only 1.40% of additional average CPU usage in the menus and around 17.88% of the same in the game. Closing this gap would help save battery life on handheld devices.
- With VKD3D, the average CPU usage in the menus is around 1.47% less than the equivalent Windows platform and the same in the game is 1.62% more. VKD3D is a great choice for handheld devices.
- With DXVK, the average GPU usage in the menus is around 13.40% more than that on Windows and the same in the game is around 1.04% more, making it more efficient in geometry rendering and less so in sprites.
- With VKD3D, the average GPU usage in the game is around 8.13% more than that on Windows and the same in the game is around 9.34% less, thus helping save battery on handheld devices running these video games.
- The CPU governor makes a marginal difference in performance and hence, it is something that can be left alone untweaked. The marginal difference noticed can also be considered in the margin of error.
- Fedora Workstation uses fewer system resources out of the box and hence, can easily dedicate a huge chunk of those to the video game in question but the same is not possible in Windows 10 21H2.
For someone who looked into GNU/Linux distributions as a platform for using interactive and entertainment software applications without having any fancy hardware requirements, these results almost feel like a breath of fresh air. With Valve working on strengthening Proton and other communities working on great solutions like Bottles and Lutris, gaming on GNU/Linux distributions is no longer an elusive dream. Things are only going to get better with a great number of video games running at near-native performance as we go on. I do not know for certain if 2022 would be the year of Linux Desktop or not, but if you ask me whether 2022 would be the year of Linux Gaming – I would answer that with a resounding yes. Let me know your thoughts down below!
- Highest possible graphical preset
- Configuration differences
- Performance measurements in the menus
- Performance measurements in the game
Honestly, I am very surprised about such huge difference in FPS. I game on Linux exclusively for last 5+ years, using Fedora for last 2 years. I do have AMD GPU and AMD CPU and with latest mesa and AMD drivers my performance pretty much in every game is more or less same as native. At least comparing to my Windows gaming friends. Some games even have better FPS (thanks to OS being quite forgiving when it comes to resource consumption).
You mentioned you used preinstalled drivers – I’d try to get latest (and custom Proton as well) and you might be (pleasantly) surprised! Another thing worth noting is that thanks to Valve’s huge work, tons of titles in Steam work out of box – install and hit Play button.
I was pleasantly surprised as well when I paid a visit to use Fedora Workstation as a platform of choice of video-gaming after almost a couple of years. The advancements made in DXVK and VKD3D helps with reducing the performance offset to a minimum and the helper tools like Lutris and Bottles make it so convenient for new users to get into this without much effort and without even using a terminal, for that matter.
I stuck with the preinstalled drivers and a GUI-bound installation method to simulate the conditions likely to be faced by a normal user and how the videogames perform just fine even without those finer controls. We would of course obtain better performance with those tweaks that you mentioned. With Valve’s work on Steam Deck, gaming on GNU/Linux distribution would be benefitted greatly as a whole. 🙂
166 to 181 AVG is almost the same, 5~10% difference
That is the point that this article is trying to make. DXVK and VKD3D have become so mature of software that the performance offset is, more or less, negligible at this point and would go on becoming even better in the coming times. Users need not do any tweaks or manual configurations if they do not want to do it and they would still obtain great framerates and visuals.
Cool comparison. Interesting to see the difference between DXVK and VKD3D. Also, I liked the scientific way it was written. It could benefit with a boxplot in the images to help see the spread of frames in the game.
We could add those graphs in the follow-up articles where we test on some more videogames. Thanks for suggesting those and I am glad to know that you liked the comparison.
Interesting read – still waiting for my pre-order reservation to get accepted so I can start waiting on it’s arrival.
But what’s “Lutris (DXVK optimized)” maybe I’ve missed it but I couldn’t find any mention in the artice – is it just DXVK option being enabled or a specific version optimized for Steam Deck?
Glad to know of your excitement. The “Lutris (DXVK Optimized)” is mentioned in the 2nd point of the appendix section which would lead to the 27th point of the references section – https://gist.github.com/t0xic0der/e6958f9404d395705a8b67a1ab39d024#file-config-csv.
Also, how does the performance stack up to the Valve-provided SteamOS?
As the underlying architecture (that is RDNA2) is the same in both the devices – the one on which these tests were performed and the one on Steam Deck, the performances can be very comparable if you factor in the handheld and battery-powered nature of the latter.
Also, how was the GUI experience under Fedora Workstation with GNOME? Any issues or annoyances that you ran into? Did you require to apply any tweaks/workarounds?
Oh, and how was battery and device heatup from the usage?
In my honest opinion, GNOME happens to be one of the most unintrusive and natural of all desktop environments and everything was butter-smooth, owing to the fact that the entire desktop environment was rendered by the discrete graphics card. The steps that I mentioned in the article are the steps that I followed and no tweaks or workarounds were performed.
The CPU usage and GPU usage metrics shown in the article are a good indicator of how fast that would guzzle up the battery and/or result in high temperatures. Simply put, higher CPU usage and GPU usage percentages, for the most part, would infer greater battery consumption and higher device heat-ups.
When it comes to the Fedora gaming experience, the most concerning areas are not performance-related as such. IMHO it rather is located in the lack of features that have been taken for granted for years in Windows, but persistently fail to materialize in Gnome or even the whole graphical stack on Linux.
Particularly annoying is the lack of support for variable refresh rate monitors in Gnomes Wayland session. Luckily, one can run Gnome X11 where it actually does work. Likewise, one can instead elect to run KDE or Sway on Wayland that both offer support for VRR. Alas, Fedoras default desktop experience does not.
An area where I have been led to believe that there is some kind of progress is HDR support throughout the Linux graphical stack. This is of course a case of some pretty invasive refactorings, but in practice little of that progress has been publicly visible.
Input latency optimizations have made a difference lately, but reports of mouse input stutter keeps surfacing, giving at least circumstantial evidence that further work might be needed.
Now, none of the above touches on the Steam Deck – It does not have a screen that supports VRR, nor HDR. It’s also usually used without a mouse. I still hope that Fedora could spare some attention for the above areas!
Sure, the progress is cool and all, but as others have properly pointed out, the Fedora Workstation experience is lacking a certain je ne sais quoi in terms of gaming performance.
In my personal case, it lacks so much power and exposed features that it feels more like a Fisher-Price toy than a properly vetted powerful desktop.
My two Dunkaroos: There’s a reason Valve chose KDE as the lead in desktop.
I like to think that it would certainly help us if you could share specifically how Fedora Workstation can be further improved upon when it comes to gaming performance. One of the reasons why KDE Plasma is the desktop environment of choice for Steam Deck is because the default layout is reminiscent of that of Windows, making it easier for non-GNU/Linux users to conveniently use it as a desktop PC. As there is always a choice when it comes to using Fedora, we also have a KDE Plasma centred spin https://spins.fedoraproject.org/en/kde/.
In a brutally honest way, Gnome would have to do a full course reverse in order to specifically appease my personal use case. (Which is the important bit.)
The internal philosophy that GNOME (as a group) holds towards desktop design is more or less the inverse of what appeals personally in desktops. It feels as though Gnome is BEGRUDGINGLY designed for the desktop; with other formats (tablets, keyboardless designs, Internet of things that should never touch the internet, et al) taking priority.
I have gone on various rants, rambles, bemoanments, and other passive-aggressive forms of protesting the various decisions the GNOME team have made. (Such as perusing philosophy over good code.)
KDE wasn’t just chosen because it “Looks like Windows.” That’s an absurd surface level analysis. Any DE or WM can look like Windows with enough effort, Fedora even packages several of them with Chicago/Whistler style look-and-feels.
For my armchair’s worth, KDE was chosen because it is powerful, highly customizable, and that picking a color in it doesn’t feel like pulling teeth.
User Agency, in other words.
As for “Why not use it myself”, I would, except I like my desktops much smaller in size. Like e16, NsCDE, or Sway. I don’t even use a graphical session manager, just TBSM. Which is 95% Bash.
One of the freedoms that Fedora Project provides users with is the freedom of choice. If GNOME does not look and feel the way one would want it to look like, they can customize it and if it does not satiate, then they totally have a choice to move on to a much preferred desktop environment with some packages.
I read through my comment again and I do seem to have mentioned the reminiscent look and feel of KDE as “one of the reasons why it was picked” and not “just chosen because” of the said reasons. KDE can surely be more powerful but it more or less depends on the users choice – I would refrain from making any further comment on it.
The creator of Proton GE made a Fedora prebuilt ISO called Nobara workstation specifically to make it easier for a person installing fedora to have a readymade gaming environment.
Do you think fedora could integrate some of the “fixes” to accomodate for regular people that want to play games?
I have made a script with a GUI to setup a full gaming station, using flatpaks (steam, lutris, heroic games launcher, athenaeum, emulators and more).
Check my work here:
It was made for french people, english is not well supported at the moment. It will improve.
Various additions made to the Nobara Project involve third-party packages – some of which can even be proprietary – and hence, it makes it difficult for us to include that out-of-the-box. While not totally ruling out the possibility of it happening, I would recommend adding those packages on a base Fedora Workstation installation like you would normally install packages.
Is there a reason why I can’t click on the images in this article and see them full size?
It appears that the author linked to images hosted on his personal github account rather than uploading a copy to fedoramagazine.org. Sorry that I didn’t catch that during editing. Can you get by with right-clicking and selecting to open the image in a new tab? Otherwise, I’d have to modify the original article to pull the images from Fedora Magazine’s image library.
I’ve updated the article to pull the images from Fedora Magazine’s site instead of github. Unfortunately, the popups still don’t work. It may be that the theme or the WP engine needs updated. But I don’t want to attempt any of that right now.
OK. I think this should be working now. (Thanks to some helpful hints from one of the other editors. 🙂)
Linux gaming is laughable at best. Star Wars Battlefront 2 for example is an old game that can not be played on linux distros. Lutris is a train wreck that sometimes works, sometimes does not. Instead of taking a propagandist stance, people should simply admit the obvious… linux and gaming do not mix.
Amazed new Linuxer
“Linux gaming is laughable at best”.
Really? Oh, my good bloke, REALLY?
Well everyone can have their own opinion of course. Star Wars Battlefront 2 has a gold rating on protondb so I guess many people are playing it? In my opinion Linux does the gaming thing very well. Remember it does the gaming thing and does the Windows gaming thing in one go. Apparently its doing it so well that Valve has invested in a handheld where Windows is the afterthought.
Lutris has come a long way and keeps improving. It keeps improving because of the very active community behind it. The same counts for WINE/proton. Its open source so everyone contributes.
That is what many Windows users have to get used to. Its not a matter of just consuming, one has to get involved in the community. That’s where Linux will begin to shine for them.
If that is too much to ask then yes, in that case I would recommend going back to Windows or a console for that matter.
With quantifiable statistics and an apples-to-apples performance comparison, I would beg to differ and state that the said article has a more analytical feel to it than a “propagandist” one. Do let us know how we can improve upon our “laughable” GNU/Linux gaming for the better. 🙂
When I showed the Game Spin at Linux NW 2016, the Tux Cart racing was a hit and the Steam games drew interest. But there were no big titles available on Linux then, so most of my gaming has been on consoles. I started windows gaming 2 years ago to play racing games and couldn’t buy a new console.
But that has all changed with Proton. When I learned about it on LTT, checked my Steam owned and wishlist games on Protondb, 39 of 41 owned were good and most of my wish list was too. So I ordered an AMD5900 and a Radeon RX6800, then brought them to life with Fedora 35. Added Steam and spent a week of overnight downloads at dsl speed to get all my games installed. Holiday gifts from my kids took another week.
All the games run fine, better graphics than the GTX1650 windows performance. I didn’t download the two borked games, The Crew 2 ‘battle eye’ needs an kernel change in work. The latest Proton 7. runs all the games, experimental was needed for Forza Horizon 5 and some others. WreckFest runs locked at 60fps on my HDTV see the OBS recording in my website link. NFS Heat, Dirt 2, ProjectCars, IL-2 sims run great. Red Dead, Age of Empires II, Civ VI, Uboat, GTA V and Subnautica are gorgeous. This is a big deal, freedom to play games.
I agree, it makes me really happy to play games on Fedora. Nice post.
Since you mentioned “setting it all up” is there any GUI for joystick calibration working on recent Fedoras?
The Steam client has a calibration utility to set the center dead zone, and another to assign buttons. Vibration works with Proton 7.0 for my xbox and razer controllers.
x86 GPU support seems like it’s getting pretty mature in Linux.
What about ARM GPU support? Browsers are only just starting to get standardized GPU-accelerated compositing support on ARM64, and video decode support in the current hardware is still lacking or unsupported. ARM GPU acceleration support for GNOME is barely working. Why is it that hardware companies can make their hardware work great for Android, but Linux (which is the kernel used in Android) gets very poor support by hardware vendors for open source desktop environments? The seemingly most-popular ARM platform, the Raspberry Pi 4 still hasn’t had any change in support from the Fedora Project since Fedora 31, according to the ARM wiki page. It’s pretty sad that this is where hardware support is at from ARM hardware companies. GNOME looks good, but doesn’t look to be as graphically intensive as Windows Aero from Windows Vista since it lacks the parallaxing transparency shader effects. How is it that ARM can be this far behind? And why are hardware companies dragging their heels so much on this when AMD and Intel have embraced open source?
I have the worst possible processor, and the best GC I could afford.
I have way better results on Fedora. Let me explain: My graphics on Fedora are faster in terms of response, because win 10 is doing a lot of things in the background you never asked him, as the annoying cortana want. So I have a huge advantage, as I can see in my winning ratio, even against really skilled players. “Perfect” drivers are not everything. It’s much easier for a computer with greater response time to display graphics, because there is more time to render, because, as you surely now, when i was using before 3DSmax to render a frame, better is your processor, faster is your rendering. Even then I was testing games on Linux Mandrake, and for the same game with the same graphics, card, etc… I got better performances than on XP with :
-older win versions as was 98.
As I remember, I succeded somehow to install Counter-Strike, and I could see that. With my then Radeon VE, everything was laggy under XP, RTCW for example, and even a lot of emulators, etc… But working nice under 98, and on Mandrake it was even faster with Counter-Strike compared to the same game under 98.
Curiously, sometimes even the pad/stick you use is important, on win or Linux, the same. When I use a Neo-Geo Stick with my Supergun connected to my computer, there is never any lag in graphics, but it can be different with another pad or stick, for exemple the Neo-Geo mini pad, the Neo-Geo ASP, or the Neo-Geo pad USB, etc… on win or Linux the same. Also for a reason my Supergun is not recognised correctly on Fedora, only one port is recognised nicely, with no coin slot support, all the credits/config/test buttons also not supported. It’s the same for both PC-to-JAMMA adapters I have, one from the official pandora box store, and one with an integrated vga not working (it has nothing to do fedora, it was just probably not made for my supergun) anywhere, but with coin slot and credit/config buttons recognized, even if the second player is still not recognised. depending of the distro, onto this one, the buttons for the second player can be recognised as :
– or a double-digit number(most often 17,18, etc…) as if it was the same stick as player one, and the second stick being a duplicate of the first one. Depending of the distro, it can recognise more or less buttons. on win 10, all is working nicely with a delay. And i’m writing this message with my Neo-Geo mini pad 🙂
I tried fedora 35, but wasn’t able to install a fitting graphics driver for my radeon 6900xt. Even video playback stutters sometime. very sad
Wat? “amdgpu” is AMDs OWN driver for your card and comes WITH the kernel in F35. You don’t need to install anything. I’m using a 6800XT: almost zero issues.
Video playback stutters…in what?
Firefox has hardware acceleration disabled atm because of a bug relating to sandbox/vaapi…
Is GameMode still a thing in Fedora? I had really good luck with it a few years ago, but I kinda stopped playing games. https://www.phoronix.com/scan.php?page=news_item&px=Fedora-GameMode-Packaging
Having a lot less time these days, for the last decade or so I’ve been playing games which have a nostalgia factor for me. Even back in ~2015 I remember N64 and GBA emulators working flawlessly (and for some reason back then I was using CentOS on my laptop).
Now it’s so easy to run AAA games with Proton, and you can go to the database to easily see which ones run well (a lot). I still play older games personally, but recently I’ve been enjoying some FFX and Mass Effect on my F35 Silverblue laptop and Steam flatpak — they run perfectly at the highest settings.