Support us on Patreon to keep GamingOnLinux alive. This ensures all of our main content remains free for everyone. Just good, fresh content! Alternatively, you can donate through PayPal. You can also buy games using our partner links for GOG and Humble Store.
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 came back to check 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: «6/7»
  Go to:

ElectricPrism Oct 27, 2016
This article outlines a term that I've created to describe the situation -- LinuxTax™

Essentially, what it means is that in order to use Linux as a gaming platform you have to purchase a better GPU than you would on Windows - and with the licensing differential for system builders that means you take your GPU budget and add the $100 you saved not buying a Windows OEM License.

So $150 (Windows GPU) becomes $250 (Linux GPU). This is the cost of using a secure, virus free, and superior platform.

Linux is better, yet Linux Gaming is still relatively new, hell MESA isn't even complete yet and it's already competing with Nvidia "The Blob".

So there you have it - LinuxTax™.

As long as my GPU achieves 120 FPS+ at 1080p I couldn't care less.

60 FPS @ 4k is my target but I really don't need to game at 4k, very few titles even perform well at that resolution on any GPU Card.


Last edited by ElectricPrism on 27 October 2016 at 8:28 pm UTC
Kimyrielle Oct 27, 2016
Quoting: Alm888Companies such as Feral and Aspyr are basically parasites. Or "middlemen" if that word is very strong for one's taste; it does not matter how to call them. The only thing that counts is what they do: they are flourishing on the current Windows/Linux disparity. They are not interested in increasing the number of Linux developers (why would they slay their "herd" ) and instead milking money from developers' foolishness and ignorance in tools selection and lack of Linux experience.

Tbh, if you already suggest that your language in inappropriate, it's probably because it is! ;)

Yes, I get the point that in an ideal world we wouldn't need porting houses anymore, because devs would just develop using multi-platform tools and dump DirectX and other obsolete proprietary middleware into the garbage bin of history where they belong.

But I am -happy- to have Feral and Aspyr around. Because we just have to face the reality that larger studios won't change their development processes for us 1%. You call them parasites, I call them catalysts. Yes, in the end they will make themselves obsolete if it works out the way we want to. But without them, Linux gaming will never become a mainstream thing in the first place. By porting AAA games, Feral and Aspyr are paving the road for others to follow. They make AAA gaming viable for Linux by showing that it can be done. And by making AAA games run on Linux they show both gamers and developers that Linux is a viable gaming platform and not just a OS for nerds and servers. You need a critical mass to get a platform recognized as a gaming platform. Porting houses are giving us that. My Steam library is full of games they ported. Without that I wouldn't even -think- about eventually ditching Windows. And without Linux-exclusive users developers will do what Blizzard does and just tell us to boot into Windows instead of releasing Linux versions of their games.
Luke_Nukem Oct 27, 2016
Fuck me sideways... Some of the replies here. Self-rightous and arrogance are not virtues, people.

Quoting: Kimyriellewe just have to face the reality that larger studios won't change their development processes for us 1%. You call them parasites, I call them catalysts.

without them, Linux gaming will never become a mainstream thing in the first place. By porting AAA games, Feral and Aspyr are paving the road for others to follow.

You need a critical mass to get a platform recognized as a gaming platform. Porting houses are giving us that.

Why did I chop out and bold these points by Kimyrielle? Because they are spot on and quite important things that all the nay-sayers are missing.

And how many AAA games do we have without Aspyr, Feral, and VP? Sweet fuck all, that's how many. These companies are doi g us a massive service in one of the very few ways possible in regards to business sense and market size. They are helping to build the critical mass we desperately need to be seen as a viable market by more of the larger developers and publishers. Until developers actually consider all three PC operating systems at once from the start of their development cycle, this is what we have, and I am super thankful to these people.


Last edited by Luke_Nukem on 27 October 2016 at 9:42 pm UTC
Grimfist Oct 28, 2016
Could not agree more on Luke Nukem, we desperately need the porters, they are the ones that will make Linux recognized as a serious market in the future.
And as long as the port runs fine and I have a good experience, I am fine with it. Ok my system is quite strong (Xeon E3 1231, GTX 970, 16GB RAM) so long everything runs at max setting in FullHD. And that is what counts for me.

But the day will come when developers will start using a dev workflow tailored
to multi platform. And some companies already do multi platform development (I look at you Obsidian)

And a small annotation on the OpenGL part: OpenGL is fine if used correctly. Most of the devs just have a lot less experience with OpenGL compared to DX. Take ID Software, they made Doom with OpenGL 4.5 on Windows, and it runs with >100FPS with max settings on my machine, and it looks superb. And yes, OpenGL 4.5 can do multi threading, already programmed with it myself. But the issue with porting a DX11 multi threading engine to OpenGL remains, this will give a shitload of problems.
zilot Oct 28, 2016
Or maybe if devs started to do think about doing cross platform stuff using vulkan by default it might be faster and we wouldn't have shitty ports on linux. Because sorry but most games in linux that I could play were bad ports from windows. I don't have a bad computer and yet I'm forced to put everything to minimum on some games.
Instead of telling we should be comprehensive about those shitty ports and stop ranting about the performances of games that are released, I think it's better to explain to devs that they can also think about other platforms and gain the favour of the public by releasing decent games on linux. I'm not asking the same performances, just some decent performances.
Nanobang Oct 28, 2016
View PC info
  • Supporter
I couldn't hear the useless whining of the parity complainers because I was too busy playing Mad Max.
mitcoes Oct 29, 2016
I read a lot of benchmarks, and people do read them as I do "ceteris paribus"

GNU/Linux PCs are always better with the SAME PRICE, as no game beats a GNU/Linux machine with a + 100 same brand USD GPU that is what MS WOS cost or would cost you to improve your gaming performance.

So while 100 USD (MS WOS cost) hardware can beat MS WOS cost improved performance GNU/Linux is better for gaming.

And about drivers a lot of the work they do to adjust games, improve also the general driver use for any OS, including GNU/Linux. remember Nvidia has a great business as computing GPU in GNU/Linux and good gaming drivers help to do it.
tuubi Oct 29, 2016
View PC info
  • Supporter Plus
Quoting: mitcoesAnd about drivers a lot of the work they do to adjust games, improve also the general driver use for any OS, including GNU/Linux.
Sure there are generic optimizations, but there's also tons of hacks that activate only for specific game binaries or when the driver detects problematic call patterns.

Vulkan and DX12 with their "thinner" drivers will hopefully make some of this unnecessary, but probably won't completely eliminate these hacks. The hardware vendors will still want to do all they can to make their GPU's perform better than the competition in the latest AAA games, and they might still do that by hacking around known bottlenecks on the fly. It would be better if they helped game developers fix their graphics code, but that might end up helping the competition as well and where's the fun in that. :/
elmapul Oct 29, 2016
Quoting: ElectricPrismThis article outlines a term that I've created to describe the situation -- LinuxTax™
.

for those games with an 10% performance difference, i agree that the "Linuxtax™" solves the problem, but for those who perform 50/80% worse as said by another comment, i doubt it.
7IJ7o Nov 1, 2016
Quoting: liamdawe
Quoting: tuubi
Quoting: devlandOpenGL has feature parity with DirectX, and that includes multithreading.
In fact OpenGL 4.5 seems to have features DX11 does not. Your comment about multithreading is also basically true, but the implementation is different enough that an engine designed with D3D in mind won't be able to take advantage without some serious refactoring. It also requires equally serious OpenGL expertise, and that's pretty rare in the industry.
Curious, why has one of the major features of Vulkan been touted as multithreading, if OpenGL already had it? As far as I knew, OpenGL didn't really do it, which is why Vulkan can spread things across your cores nicely.

We've seen plenty of videos showing this, where OpenGL is locked down to one core.

Multithreading is possible with OpenGL, but it is hard to code correctly and to prevent overheating. Maybe that is the reason why one of the major features of Vulkan is multithreading (more simple to use and more efficient than with OpenGL?). But I am not an expert in this, I just have read some stuff about multithreading with OpenGL.


Last edited by 7IJ7o on 1 November 2016 at 2:18 pm UTC
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.