Don't want to see articles from a certain category? When logged in, go to your User Settings and adjust your feed in the Content Preferences section where you can block tags!
We do often include affiliate links to earn us some pennies. See more here.

Why Linux games often perform worse than on Windows

By - | Views: 57,837
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. Find me on Mastodon.
See more from me
The comments on this article are closed.
63 comments
Page: «4/7»
  Go to:

Corben Oct 27, 2016
Another aspect is, this will vanish over time.
Hardware is getting more and more powerful, but good games can be played at any time. Even when they are already a few years old (which is a lot regarding the fast paced times nowadays).
E.g. I still like to play Aliens vs Predator (2010). It doesn't perform very well on my desktop (C2Q, GTX670) in wine, but it's running perfect in wine on my new notebook hardware (i7, GTX1070). I would love to have a supported port, even if it would use wine on steam then. Just the requirements would be higher than on Windows.
Nevertheless my desktop is still powerful enough to play Alien: Isolation, Tomb Raider, Mad Max at playable framerates. So I don't see a reason to upgrade my desktop too (especially as the notebook was expensive enough *g*).

So I guess with my new hardware even a port of Batman: Arkham Knight would have been playable.

Nevertheless there is a chicken-egg problem. If ported games have a bad performance (unbearable to play performance), people won't buy them, so devs/porters aren't getting money and won't port more games. Additionally most people prefer to play recent games, and not games which are already half a decade old.

Personally I'm fine with ports of games, which are already finished with their sales on windows. I prefer to get more games ported, and play them later on a newer hardware than having no ports.

And as Feral is doing a really good job in porting, I think the performance discussion is mainly from people looking at benchmark numbers rather than at gameplay fun.
Of course it's a valid argument, but imho it doesn't have as much weight as it seems. Otherwise the SmachZ kickstarter campaign wouldn't be successful. There people already know they won't have the best performance playing games. But it will be enough to enjoy playing them.

Yeah, I see, I should also send some cookies to aspyr, cheese, feral, flibit, icculus, knockout_games, ttimo, etc pp... all the lovely people bringing us the games we long for ;)


Last edited by Corben on 27 October 2016 at 1:19 pm UTC
Mountain Man Oct 27, 2016
Quoting: skinnyrafBTW., Valve does not need to do this to have any "clear proof". Just put some data identifying Steam Machines and/or SteamOS in telemetry they collect anyway - or modify the hardware survey to display on SteamOS.
I guarantee you that Valve knows to the person precisely how many people are using Linux/SteamOS to play games, but for whatever reason, they have chosen not to disclose that information, which is frustrating when I hear developers say they're not supporting Linux based on the Steam hardware survey.
MaCroX95 Oct 27, 2016
Quoting: skinnyraf
Quoting: MaCroX95I would really like to see Valve making Steam machines OS locked to SteamOS because this is what would give them clear proof of how many people only on their behalf use Linux-based distro for gaming... Yes it would be a Microsoft-like move but it would be more effective than letting people to buy SteamOS powered steam machines and then give them right to just put Win10 on there...

Talk about becoming monsters you're trying to fight.

So, you propose to lock down machines that were specifically created to foster openness of the PC platform? You propose to lock down machines running a system that is most often a victim to MS locking down PCs and advertised as the way to secure oneself from suffering a lock-in?

Interesting :)

BTW., Valve does not need to do this to have any "clear proof". Just put some data identifying Steam Machines and/or SteamOS in telemetry they collect anyway - or modify the hardware survey to display on SteamOS.

I agree with your point it's a great one... Microsoft has been doing that for years and now since Win8 came out they went too far... If people who buy Steam machines would get system like SteamOS preinstalled and not having a chance to install Windows on it it would embrace linux gaming and getting to know Linux by the users who use them. As I have noticed when I was making the switch... When I had dual-boot I always ended up going back to Windows because it has been the "safe spot" for me, later I just purged all my Windows partitions and just threw myself into a new environment and only then discovered the true beauty of Linux. I think that if Valve embraced usage of Linux on their custom-built hardware with purpose. it is way less intrusive comparing to what kind of terror Microsoft is doing at the very moment.

But yeah we all embrace complete openness including Valve and hoping that people will see how limiting proprietary systems actually are but that's probably not happening any time soon because of the commercial reasons.
0aTT Oct 27, 2016
Quoting: Mountain Man
Quoting: skinnyrafBTW., Valve does not need to do this to have any "clear proof". Just put some data identifying Steam Machines and/or SteamOS in telemetry they collect anyway - or modify the hardware survey to display on SteamOS.
I guarantee you that Valve knows to the person precisely how many people are using Linux/SteamOS to play games, but for whatever reason, they have chosen not to disclose that information, which is frustrating when I hear developers say they're not supporting Linux based on the Steam hardware survey.
It's a risk. But I think Square Enix, Warner, SEGA, 2K and other big publishers know what they are doing when they bring Games to Linux. I think they do not will bring all games to Linux, but definitely where it is worth it for them.

Others publishers do not publish for whatever reason. I'm most wondering about Bethesda and Doom 2016. They already have an OpenGL/Vulkan game. Even if they just would removed the additionally copy protection at some point, many penguins would buy the Game, just like Skyrim. SEGAs Total War: Warhammer has Denuvo too but will come to Linux. (And SEGA has to pay for the port of this DirectX Game.)

I guess Bethesda will pay for Denuvo forever (as long as they exist) even it just holding back people buying the game. In particular Bethesda was in the 90s already almost broke. They had good games but a bad management. Today they are financed (among others) by the Trump Clan. ;)

Thus, one must also assume that not all publishers decide rationally.


Last edited by 0aTT on 27 October 2016 at 2:00 pm UTC
Kimyrielle Oct 27, 2016
I am not a typical "gamer". I am just a person who loves games. But I certainly don't buy $1,000 GPUs to get another 2 FPS and maximized anti-aliasing out of a game when I already get 60 FPS out of the games I am playing. I just want enough FPS not to get any visible stuttering and I don't insist on setting -every- single graphics option to "Ultra Quality".

I have yet to find a Linux game that would disturb me, performance-wisely. *shrug*

That being said, I am still looking forward to the day when they stop -porting- games, but develop them with multi-platform support in mind right away. Because that's how it should be.
Comandante Ñoñardo Oct 27, 2016
Quoting: liamdaweOpenGL
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.

If (in theory) DX is superior to OPENGL; why not pay the licence and teach Linux how to speak DX instead of use traslation layers?..Something like Gallium, but Legal.

I know, is a propietary tech.. So what? Steam is not only a propietary software but also a DRM, and most Linuxians happily use it.

Quoting: devlandI agree with most of what's been said in the article except for the opengl part.
It contains only rare cases of developers not implementing it correctly. If someone didn't manage to use a technology as it was intended, it doesn't mean the technology is bad.

Don't blame the tool, blame the people that use it.

OpenGL has feature parity with DirectX, and that includes multithreading.
If VP made a shitty port it doesn't mean OpenGL sucks. We get shitty console ports on DirectX all the time. Do people complain that DirectX sucks? No.

How did Valve, and others (like Larian), manage to get such great Linux native OpenGL powered ports? Do they use magic? No. They just do it right.

I agree 100%
Specially in the "shitty console ports on DirectX" part... Bioshock Remastered is a recent example.

I wonder if the "Depth Charge" clue in the Feral radar is the Linux version of that Remaster..


Offtopic:
I was this close to have a heart attack because EA just released Crysis, Crysis Warhead and Medal of Honor: Pacific Assault on GOG....
This is a clear sign that EA actually is changing...
Maybe they are changing so much that they will make a incursion in Linux...

Do you imagine a Linux and MacOS port of Bad Company 1(game that wasn't ported to windows)?
Something like that will shake the Linux world.
emphy Oct 27, 2016
Quoting: Comandante oardoIf (in theory) DX is superior to OPENGL; why not pay the licence and teach Linux how to speak DX instead of use traslation layers?..Something like Gallium, but Legal.

I know, is a propietary tech.. So what? Steam is not only a propietary software but also a DRM, and most Linuxians happily use it.

Err, the problem, in this case, is that its proprietary tech from Microsoft, and for some strange reason they may have a problem with licensing their remaining single most competitive advantage to other OS-es.

Actually, it would be legal anyways to implement directX, just a lot of work and probably with worse results than the original implementation. As an example, see wine, which in many cases still works so-so.


Last edited by emphy on 27 October 2016 at 3:36 pm UTC
minidou Oct 27, 2016
on the subject of drivers development, I'd like to remind this great post
http://www.gamedev.net/topic/666419-what-are-your-opinions-on-dx12vulkanmantle/#entry5215019

tl;dr: graphic engine development is a clusterfuck, and drivers are badly needed to fix horrible mistakes (but Vulkan/DX12 may save us all)

with Linux still ridiculous market share and lack of serious investment by videogame developers and graphic card manufacturers, it's a wonder some videogames even launch, performance comes last and the brightest minds on earth are busy fixing rendering in directX drivers
PublicNuisance Oct 27, 2016
As long as I have 60 FPS minimum I don't mind if Windows has more. My main issue is usually the difference is much bigger. Pillars of Eternity for instance ran on Windows on my HD7950 at over 100FPS while on Linux I got 20-40 with that same card. On a GTX 680 and GTX 960 it still dropped to 40-50 FPS at times on Linux. Several other games give similar results on Linux such as Painkiller: Hell and Damnation, Saints Row IV, etc. What keeps me going is my huge backlog. I am willing to play other games that I can play at 60FPS+ while I save up for better hardware and hopefully Linux makes progress as well. Patience is the key. Linux has made great strides over the last couple years and hopefully it continues in the right direction.
Beamboom Oct 27, 2016
QuoteA small part of the blame also lies in games that are ported from Windows to Linux after the original release.


Dude, this is not just a small part. It is a major part. As a rule of thumb, ports always perform lesser than the game on the platform it were developed. Ports are, generally speaking, not something we want (it's just that for us Linux gamers currently the only realistic alternative is much worse: Wrappers).

A good example there is the PS3. It was issues related to ports that Playstation struggled with for the better part of its first years. The games were developed for Xbox and then ported to Playstation, and it caused so much trouble and nearly always games performing better on Xbox, with fewer issues. Or Windows games ported to consoles. Or the other way around.

We don't really want ports. We want games designed for our platform during development.


Last edited by Beamboom on 27 October 2016 at 4:04 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.