After chatting on Twitter with a fellow Rocket League enthusiast about the performance of the game, I decided to take a look.
Rocket League originally released for Linux back in 2016, using an older build of Unreal Engine 3 with OpenGL as the renderer. With that in mind, it's one of the older major Linux ports available to us. Age is just a number though, it's a fantastic game. It's not perfect though and there's plenty of room for improvements.
To demonstrate this (and see how far D9VK has come), I've taken a look at it three different ways:
- Firstly, there's the native Linux version of course.
- The next, is the Linux native version again, but this time using NVIDIA's threaded OpenGL optimizations (more info here) which NVIDIA rarely switch on by default (there's about 7 titles in their whitelist for it) and Rocket League doesn't tell the driver to turn it on. To use it, simply add:
"__GL_THREADED_OPTIMIZATIONS=1 %command%"
As a launch option on Steam for any OpenGL game. - Finally, there's Steam Play using the experimental D9VK (added in Steam Play Proton 4.11) which translates the Windows version into Vulkan to run it on Linux. Use "PROTON_USE_D9VK=1 %command%" as a launch option on Steam to use D9VK with Direct 3D 9 games.
For reference: The testing was on an up to date Manjaro Linux install, using an NVIDIA 980ti and the 430.26 driver with an Intel i7-5960X. Results will obviously vary based on CPU/GPU and more.
The results are pretty surprising, using the same replay of a crowded 3v3 match on probably the most demanding map in the game at 1080p with all settings maxed out:
Direct Link
Note: This map does have one issue where the area outside the playing field is rendered differently. The Linux version is too bright and shows too much, the Windows version with Steam Play and D9VK version is much more correct.
As an additional measure, here's another video during a 2v2 match on a different map using the exact same testing method:
Direct Link
As we can see, without NVIDIA's threaded optimizations the Linux version comes in dead last easily in both videos. With it, performance is much closer and it's smoother but Steam Play with D9VK comes out on top in both. There's a few moments where the Linux native build with threaded OpenGL beats Steam Play with D9VK but not many. Impressive really, since D9VK is classed as "experimental" and likely has plenty more optimizations still left to be done before it's ready.
So what's the takeaway here?
Well, Rocket League on Linux can be enjoyed quite easily and Psyonix (the developer) should absolutely enable NVIDIA's threaded OpenGL optimizations on Linux. They don't even need to update the game, they can just add the launch option themselves by default. If you do have some performance issues, Steam Play can likely make the experience even smoother again. The biggest difference is hitching, with Steam Play the game remains a lot more fluid overall. This doesn't mean Steam Play is suddenly better than native games of course, it all depends on how the game was ported to Linux. To be clear, with Steam Play it has its own issues that I've not seen in the native Linux version. Sometimes with Steam Play the game will repeat bits of audio, crash and hard-lock my PC (rare but it happens).
Also we are comparing OpenGL to Vulkan, that alone can make a big difference depending on the implementation. It's all about the time spent on the Linux version, with Steam Play (as shown) clearly Linux is a gaming platform that can perform well (and in many cases threaded OpenGL does great too). With enough time and a bigger market share, developers would spend more time on their Linux ports. First we have to get there.
If you wish to join me in adoring Rocket League like a second child (it really is my #1 game), you may find it on Humble Store and Steam.
The article was updated after publishing with a second video and some wording adjustments.
Could it be that it's faster because of those missing "features"?
Quoting: appetrosyanIs there a Linux native game that uses Vulkan? I wonder if all the wins are due to OpenGL being bad, or because of something else...
Crotean is using Vulkan.
Quoting: mylkaQuoting: liamdaweQuoting: mylkaam i the only one looking at the background?That is actually how it is supposed to look. The D9VK version looks almost the same as it does on Windows. The Linux version is way too bright and has no fog apparently.
D9VK shows absolutely nothing..... of course it is faster
just look at the 1 second..... its just dark... nothing to render
Edit: Added a second video to also compare, on a different map, along with some slight adjustments to the wording in places to accommodate it.
but it still explains why native is slower
and imho... i think native looks much better
Missing compiler optimisations, spaghetti code in the older UE, things that are lightweight on Windows, and not on Linux! Or... Vulkan is more optimised than OpenGL.
Quoting: EikeQuoting: appetrosyanIs there a Linux native game that uses Vulkan? I wonder if all the wins are due to OpenGL being bad, or because of something else...
Crotean is using Vulkan.
Serious Sam?
Quoting: appetrosyanQuoting: EikeCrotean is using Vulkan.
Serious Sam?
Yes...
https://www.gamingonlinux.com/articles/serious-sam-fusion-has-the-first-update-in-some-time.12987
... and the great Talos Principle:
https://www.gamingonlinux.com/articles/the-talos-principle-has-a-new-beta-with-an-upgraded-serious-engine-removes-opengl-in-favour-of-vulkan.13624
Last edited by Eike on 3 August 2019 at 12:27 pm UTC
Quoting: appetrosyanQuoting: EikeQuoting: appetrosyanIs there a Linux native game that uses Vulkan? I wonder if all the wins are due to OpenGL being bad, or because of something else...
Crotean is using Vulkan.
Serious Sam?
All of their games since The Talos Principle. This one was the first. When the Vulkan render became faster than the OGL renderer for the first time (quite a lot), I asked a Croteam developer on Steam why I could only see just one CPU core at maximum and others down at 20%. He told me it was because the Vulkan renderer was still on one thread at that time, but it was already much more efficient than OGL.
Quoting: thykrAren't we missing some "features" with d9vk though, since it's DirectX9 and not DirectX 10, 11, 12?That's not how things work. Rocket League is a DX 9 game on Windows.
Could it be that it's faster because of those missing "features"?
Also, Dxvk which is already in Steam Play does DX 10 and 11.
That said, I had to drop to gallium nine for that one before, "native" wine just couldn't handle the performance. That said, D9VK actually outperforms gallium nine by leagues.
Not all seems to be yet implemented (lightning stuff seems to be still work in progress), but it's very damn promising, even if they still have quite some way to go.
I think with D9VK, DXVK, VKD3D and Wine/Proton really pushing forward there, we're looking in a better future. Yes, it's not native, but if the result is that good and it gives a cheaper way porting over, why not? They can even bundle that up.
Lately ran into an issue with Far Cry 3, but that was fixed with DXVK 1.3.x too.
I'm amazed by the recent improvements on all the wine / proton / dxvk / d9vk side. Where I had trouble getting a lot of the games just running, going out of my way to patch up wine prefixes etc., it now just works for a lot of those (a lot of games still face issues in wine and proton though, but then, wine / proton are showing a good pace and a lot of bugs fixed every few weeks).
I was always a person not wanting to use wine for gaming, since performance issues and having to basically fix up every game to get it properly running was annoying. Happy to see that becoming better and with all the technological advances the experience is a lot better now.
Last edited by STiAT on 3 August 2019 at 12:39 pm UTC
Quoting: LeopardQuoting: appetrosyanIs there a Linux native game that uses Vulkan? I wonder if all the wins are due to OpenGL being bad, or because of something else...Yes. Lately pretty much all Feral ports are on Vulkan. An excellent example on that is Rise of The Tomb Raider.
That is nearly on par with Windows version at performance terms.
I guess you meant the Windows version of RotTR on Windows is nearly on pair with the native Linux version, right? :)
From what I know the native Linux version performs a lot better than the Windows version on Linux using DXVK. Which is kind of expected (and not meant as criticism towards DXVK) considering both are targeting Vulkan and the nature of how DXVK works vs the possibilities Feral has when porting a game.
Last edited by jens on 3 August 2019 at 12:52 pm UTC
Quoting: GuestQuoting: LeopardAnd famously on The Talos Principle Croteam took out the OpenGL renderer in favour of the Vulkan one the moment that it was feasible to do so.Quoting: appetrosyanIs there a Linux native game that uses Vulkan? I wonder if all the wins are due to OpenGL being bad, or because of something else...Yes. Lately pretty much all Feral ports are on Vulkan. An excellent example on that is Rise of The Tomb Raider.
That is nearly on par with Windows version at performance terms.
Legacy branch still have OGL for people with non VLK hardware.
So old games with a dx9 to vulkan transition might actually run especially well on Intel GPUs compared to native OpenGL ports.
Last edited by Julius on 3 August 2019 at 1:04 pm UTC
Quoting: jensQuoting: LeopardQuoting: appetrosyanIs there a Linux native game that uses Vulkan? I wonder if all the wins are due to OpenGL being bad, or because of something else...Yes. Lately pretty much all Feral ports are on Vulkan. An excellent example on that is Rise of The Tomb Raider.
That is nearly on par with Windows version at performance terms.
I guess you meant the Windows version of RotTR on Windows is nearly on pair with the native Linux version, right? :)
From what I know the native Linux version performs a lot better than the Windows version on Linux using DXVK. Which is kind of expected (and not meant as criticism towards DXVK) considering both are targeting Vulkan and the nature of how DXVK works vs the possibilities Feral has when porting a game.
Yes. I meant Feral port of this game on Linux performs nearly same as Windows version running on Windows. Windows vs Linux basically.
https://github.com/daniel-schuermann/mesa/issues/36#issuecomment-513079192
This guy did some comparision on this game with Aco + Feral port vs Windows DX12 renderer.
I set the native version fps limit at 120 and it's rock solid. 8700k/RadeonVII 3440x1440 everything maxed out. Without the fps limiter, it bobbed around the 200 mark.
Honestly not sure if I could tell the difference...
Quoting: dpanterHow many fps do you need in RL?Well, it's not just about how high it can go, it's also about smoothness. The native version without gl threaded drops down a bit too hard at times that you can see it. Thankfully, threaded opengl makes it pretty darn good.
I set the native version fps limit at 120 and it's rock solid. 8700k/RadeonVII 3440x1440 everything maxed out. Without the fps limiter, it bobbed around the 200 mark.
Honestly not sure if I could tell the difference...
Quoting: liamdaweThankfully, threaded opengl makes it pretty darn good.
That's a fine understatement. For me the frame rate almost doubles.
Which surprises me: My GTX 970 makes as many frames as your 980 Ti in RL. I use a 6700K. I don't know if this is the reason. There are probably more bottlenecks. In CSGO I have a constant 250 FPS with maximum settings.
In any case, thanks for the hint!
Last edited by 1xok on 3 August 2019 at 8:30 pm UTC
See more from me