Confused on Steam Play and Proton? Be sure to check out our guide.
We do often include affiliate links to earn us some pennies. See more here.

Why Linux games often perform worse than on Windows

By -
I still see so much confusion and outright misinformation being spread about why a lot of Linux games perform worse than Windows, so here's a few real reasons.

Note: This is an editorial and tagged as such, please remember what that means. The way I think about things will likely be different to you.

Drivers
Drivers on Windows are tweaked rather often for specific games. You often see a "Game Ready" (or whatever term they use now) driver from Nvidia and AMD where they often state "increased performance in x game by x%".

This happens for most major game releases on Windows. Nvidia and AMD have teams of people to specifically tweak the drivers for games on Windows. Looking at Nvidia specifically, in the last three months they have released six new drivers to improve performance in specific games.
image
Update: Image above added to help show my point.

This just doesn't really happen on Linux, it has happened in the past, but it seems it's a rare occurrence on Linux. It seems a lot of people overlook this fact too. This is easily where a chunk of the performance difference comes from for some of the bigger games.

On Windows, drivers specifically state when they improve performance in certain games, I highly doubt AMD/Nvidia would release a driver on Linux that improved performance in a Linux game without saying anything.

Here's a specific example [see here] (one of many I could easily pull up) for Mad Max. On Windows, Nvidia specifically released a driver with "performance optimisations, Game Ready tweaks, and a SLI profile" for the DirectX version, we don't see things like that on Linux.

Update: I'm not claiming this is a major source of the difference, but it could account for some differences. The other issues below are likely the bigger issues.

Ports, not versions
A small part of the blame also lies in games that are ported from Windows to Linux after the original release. Why? As these games generally use some form of translation layer that translates DirectX calls to OpenGL, as opposed to rewriting the game engine for better OpenGL support. This can of course have an overhead to it. Not always, but a lot of the time it will.

Why do they use these layers? When thinking in business terms it's quite simple and comes down to two things: Time and Money. It would likely take too long to rewrite an entire game engine to make much better use of another API. We would end up seeing a lot less ports.

Think about these major games and how they were originally developed. They would have had thousands (if not millions) invested into them to make them perform on Windows. Where as Linux has no such investment for the games.

So, it's not down to laziness as I repeatedly see people say, but it's just business. Some of you may not like this, but that's the way it is for a small platform. The only way this is likely to change in future is if our platform grows and more developers take notice, but we won't grow much, if all people do is complain about the games we already have.

This doesn't apply to every Linux game of course, but it is a major reason from the bigger porters.

OpenGL
OpenGL itself can often be the problem. Many developers [like this one, and this one], some high profile too, have noted their extreme frustrations with this graphics API. I've personally spoken to a lot of developers over the years, some small, some big, and their thoughts about OpenGL are never very nice.

OpenGL doesn't really do multithreading. Nvidia do have their "__GL_THREADED_OPTIMIZATIONS" option but the results with that vary from game to game and GPU to GPU, it can destroy performance in some games. Remember the initial Linux release of The Witcher 2? VP tried to do OpenGL multithreading similar to DirectX [see here for their explanation], and the performance was terrible.

Where as DirectX does multithreading rather nicely. This is also something people repeatedly either forget, or ignore when it comes to Linux port performance.

The problems are many, from poor documentation to a lack of decent debuggers that can make life hell for developers using it.

Thankfully, Vulkan the new API will hopefully help to close the performance gap, but it won't be a silver bullet. Vulkan seems to be developed far more in the open than OpenGL ever was and there's actual excitement for it from developers. It was also designed with multithreading in mind [see this video]. We do still have the two other previously mentioned issues though.


So, before people go complaining there's a 20% (or whatever) difference in a Linux game, they need to ask themselves: do they want more Linux ports to happen, or do they want only 2 or 3 a year? Those 2 or 3 somehow hit 100% parity with Windows, but then they aren't financially rewarding for the developer and for Linux to continue to remain in Linux gaming obscurity until the end of time?

I don't particularly like it when ports don't perform amazingly well, but the point here is the experience you have. Is your experience with a Linux port good? If the answer is yes, does the difference between Windows and Linux really matter? Not really. Would you even know there was a difference unless you stared at that FPS counter or directly compared it to the Windows version? If the answer is a no, then again, does it really matter if there is a difference? Not really. Article taken from GamingOnLinux.com.
Tags: Editorial
1 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly checked on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly.
See more from me
The comments on this article are closed.
62 comments
Page: 1/7»
  Go to:

Guest Oct 27, 2016
This Needed saying.
gojul Oct 27, 2016
I don't mind to have 60FPS on Linux rather than 70FPS on Windows. As long as I can decently play on Linux this is really fine for me. And in term of disk access Windows absolutely sucks, whereas Linux shines. The same applies for multitasking, as I like having many apps opened while playing.

And yup, lack of driver optimization for specific games can have a huge impact. Linux graphics drivers actually look much more like professional series drivers, i.e. focusing more on stability rather than performance.


Last edited by gojul on 27 October 2016 at 11:16 am UTC
sudoaptgetplay Oct 27, 2016
Driver tweaks on linux exist, at least for Amd. See this phoronix article.


Last edited by sudoaptgetplay on 27 October 2016 at 11:06 am UTC
Linas Oct 27, 2016
View PC info
  • Supporter Plus
As a Linux user, I don't care that much, because I have nothing to compare it with. They are essentially different pieces of software with major components replaced (like DirectX to OpenGL), compiled to different binary formats, and run on systems that handle basically every subsystem differently. Luckily more and more games are made with Linux (well cross-platform actually) in mind, and the performance difference is starting to fade.

Linux is a better system design in general, and can outperform the competitors in many use cases. Disc IO performance tends to be better on Linux, so are memory intensive and multi-threaded tasks. I don't have any benchmarks, sorry, just my anecdotal experience. Therefore I believe that as soon as graphics performance gets better, we will see definite benefits, because other parts of the system perform very well already.
fabry92 Oct 27, 2016
A port like mad max about performance is more than enough for now in linux scenario. At moment linux need AAA games, LoL client native and native blizzard games (ow, hots) for improve gaming community and bring us more players on linux


Last edited by fabry92 on 27 October 2016 at 11:13 am UTC
STiAT Oct 27, 2016
When I start to care about performance is, when a game is basically unplayable on a system hitting recommended settings given by the developers/publishers.

As long as games are playable "good enough", I don't really care that much if I have 10 or 20 fps more or less.

And I noticed that I'll get a new graphics card this month. Thanks NVidia for the 1050 which fits into the Alienware X51 ... so some issues get solved.
0aTT Oct 27, 2016
I am very satisfied with the actual situation. Shadow of Mordor I just played in 30 FPS (GTX 970). Mad Max runs already much better. I think the porters learn. Deus EX:MD will probably not run in the highest settings on my hardware, which it would under Windows. But I do not care as long as it goes further. I had not played for years because of the lack of games under Linux. This is now over and that is wonderful. For children the range of games is enormous. There is no reason to stress children with Windows or put them in front of a console. This is just great.

I think Linux has an advantage over all other systems: Its community.

By the way: Shadow of Mordor is broken for some time with the actual Nvidia drivers. (I tested it a week ago with an 367 driver). I see the same bug as described here: https://www.gamingonlinux.com/articles/looks-like-shadow-of-mordor-has-bad-graphical-bugs-with-nvidia-36412.6909


Last edited by 0aTT on 27 October 2016 at 11:32 am UTC
Liam Dawe Oct 27, 2016
Quoting: 0aTTBy the way: Shadow of Mordor is broken for some time with the actual Nvidia drivers. (I tested it a week ago with an 367 driver). I see the same bug as described here: https://www.gamingonlinux.com/articles/looks-like-shadow-of-mordor-has-bad-graphical-bugs-with-nvidia-36412.6909
There is a fix for that here.
DamonLinuxPL Oct 27, 2016
Most porters team, use wrappers. Poor wrapp technlogy gives us FPS loos. So wee need better optimization. We need remember not only VP make wrappers, but also Feral and Aspyr. One use indirex wrap. So it like eON from VP. So most Linux games is wrapped. One is better, other is worse. But we need remember, if we calling eON game non native, or semi-native we should also calling this same non-native Feral and Aspyr ports. But If we calling Feral - native ports, we should calling VP - also native.


Last edited by DamonLinuxPL on 27 October 2016 at 11:55 am UTC
Liam Dawe Oct 27, 2016
Quoting: swickOnce again just putting out speculation without *any* data or *any* proof. I could easily proof you wrong on a number of points just by gathering data from benchmarks.

Even more outrageous is the last paragraph full of opinion on an article with a headline that promises facts.
You again, why are you even here, you dislike literally everything I write.

It's an Editorial, marked as such, do you even understand what Editorial means? Let me help you on that one:
Quotean article in a newspaper or other periodical or on a website presenting the opinion of the publisher, writer, or editor.

Once again, you post a comment having a go at me, yet not actually presenting any arguments of your own to counter it, just hateful remarks as usual.

Try harder bro!
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.