Support us on Patreon to keep GamingOnLinux alive. This ensures we have no timed articles and no paywalls. Just good, fresh content! Alternatively, you can donate through Paypal, Flattr and Liberapay!

The GOL Nouveau Experiment – Conclusion

Posted by , | Views: 29,909
I have now spent two weeks using the open source Nouveau driver on my desktop and I have some results here. Let's see how well Nouveau did for me!

Let's start by talking a bit about a thing called GPU reclocking. By default your GPU will most likely be running at a low clockrate to conserve power and prevent unnecessary heat build-up. Only when the GPU power is really needed, it will get reclocked to a higher power level by the GPU driver. For the longest time this was a problem with the Nouveau driver as it suffered from a lack of GPU reclocking, leaving your GPU to the lowest possible power level each and every time. So it's not surprising that Nouveau gained the reputation of being a very under-performing driver.

Work has been done to fix this issue recently and on some cards you can access higher power levels. This is done manually by echoing values into /sys/class/drm/card0/device/pstate. Not really all that intuitive but I was able to reclock my GPU. However, this functionality is still very experimental and attempting to reach the two highest power levels turned my screen into pixel salad.

image

Luckily I had some reclocking capability and I was able to push my cores up to around 79% of the maximum clock rate. In the case of my GTX 760 that means 966 MHz out of 1228 MHz. Memory clockrate wasn't too good and the 0a power level I had access to only yielded 1620 MHz out of the 6008 MHz maximum, which naturally affects the performance in some games.

But regardless of these reclocking limitations, performance with most games has been surprisingly good. When I last tried Nouveau the clockrates were limited to the BIOS values which are too low to run most 3D games at a reasonable framerate. Now I get over twice as much power out of my GPU and the results reflect that.

A surprising amount of games work just fine with Nouveau, some of them even being big titles. Naturally you are limited to games that run on OpenGL 3.3, so Metro Redux and Bioshock Infinite are out of the question but the majority of games out there still use GL3. So these past two weeks, even if I haven't gotten to test out Bioshock Infinite, haven't been completely devoid of games. My gaming has mostly consisted of Mount & Blade: Warband and Cities: Skylines but, like I promised at the beginning of the experiment, I also widened my horizons just a bit and tried to play as many games as possible.

In basic usage Nouveau mostly worked flawlessly. One annoying thing has been this weird vertical purple line on the left side of my monitor. It's only a pixel or two wide, so it doesn't really negatively affect my screen space but it was a bit distracting at the beginning. I barely even notice it now but it's a thing I'd like to get rid of. It also seems like the image quality took a hit when I switched from the blob and everything seems a bit blurrier. I'm not quite sure what is the cause for that but luckily the difference is barely noticeable and I forgot about it in two days. Some software can also make Nouveau act a bit wonky. For example viewing a video in Flash (ugh) in a browser and then switching to another workspace while the video is playing seems to somehow mess with the screen buffer and make all kinds of weird things happen on the screen. I ended up switching to HTML5 video on YouTube with Firefox due to this problem. Same thing happened with SimpleScreenRecorder when I attempted to capture a certain region of the screen but fullscreen recording worked fine. The area I was recording also looked normal. Maybe someone with more knowledge can explain what might be happening with that. OBS was also a dead end and only seemed to output weird, distorted green video even when the preview looked fine. So video production was a bit tricky at times on Nouveau.

Okay, let's talk about something that might interest you more than my video production worries. Let's see how games worked on Nouveau.

I have to say, I was positively surprised by the performance of various games. Games like Mount & Blade: Warband and Xonotic worked absolutely fantastic with average framerate of 60 fps and beyond. I also had plenty of success with Source titles, including Counter-Strike: Global Offensive which also ran at solid 60 FPS. Valve certainly has optimized their games well. The only Source game that wouldn't cooperate was Left 4 Dead 2 which for some reason complained about glGetError. As far as I know my card should support the necessary spec even on Nouveau, so it could be a bug either in Nouveau or in L4D2. I also tried Dota 2 and after some slight tweaking it too ran at 60 FPS. Sadly my testing with it was limited by my abilities so I couldn't do extensive testing with it.

Note: the following CS:GO video was captured at 720p but that was to compensate for the recording. The game actually ran at 60 FPS at 1080p.

https://www.youtube.com/watch?v=3vo26bzWPlo

https://www.youtube.com/watch?v=H3pZkgHTg0U

Those games are nice, but surely you'll want to see something more. So let's bring in the big guns. Borderlands 2 and The Pre-Sequel were games you wished I would test, so I downloaded them both. The results were a bit mixed. TPS ran at a solid 60 FPS but it crashed only after a couple of minutes of play. BL2 on the other hand ran at a lower framerate, around 30 FPS, but seemed more stable. To my understanding they should run on the same engine so I'm left puzzled why one is more stable than the other. The performance difference is easier to explain, since BL2 has more going on in its world than on the barren moon of TPS.

The following video was captured at 720p with everything set to low.

https://www.youtube.com/watch?v=bazxhfnd8qY

When you think of a graphically intensive game, what comes to mind? Well, some people would say Metro: Last Light and that's what I decided to test. Due to the missing GL4 components in Nouveau I had to go with the original Metro port, but that's better than nothing. The results were surprising. Not only did Metro: Last Light run but it actually ran pretty well. It's most certainly not solid 60 FPS all the time but without recording it did manage to mostly stay above 30 FPS. The more open areas and large amounts of fire did have a pretty big impact on the framerate but I'd consider it playable if not smooth. I also tried some Unreal Tournament pre-alpha. Not the smoothest experience ever but once again playable.

https://www.youtube.com/watch?v=EXSMFjT-mA8

https://www.youtube.com/watch?v=y76zJOCNCLU

You also wanted me to find out how well Unity3D games worked. Here the results were a bit mixed. Interstellar Marines, unsurprisingly, ran at 20-30 FPS and Kerbal Space Program didn't do much better. Wasteland 2 also had trouble reaching 30 FPS. Not all Unity3D games performed badly though. Ziggurat, one of my favourite Unity3D games, ran at a respectable 40-60 FPS at 1080p and at a pretty much solid 60 FPS in 720p. Hand of Fate also ran at an acceptable 30-40 FPS.

The experiment wasn't just sunshine and rainbows though. Let's take a look at the disaster department.

While most games would run, some stubbornly crashed and burned either after just a couple of minutes of gameplay or immediately after launching them. The Feral ports were especially unlucky. XCOM: Enemy Unknown would crash immediately when you entered combat and Empire: Total War was even worse. When you started up Empire it would first turn everything on your screen red and then lock up your GPU entirely, making your computer hang. Sometimes the OS managed to recover from the situation by restarting Xorg, sometimes it would just hang until you forced a reboot. Same thing happened with Talos Principle and War Thunder. These GPU lockups were probably the biggest problem I encountered, since they made everything crash, not just the game and recovering from them was time consuming and annoying.

Luckily they didn't happen just randomly. They consistently only happened when certain games were run or when you tried to do something a bit “exotic”. I found a way to trigger it by streaming a game from my desktop to my laptop using Steam's In-Home Streaming and then trying to alt-tab on my desktop. If I let the host be, In-Home Streaming itself worked flawlessly.

In conclusion, Nouveau isn't perfect but it most certainly isn't unusable. A hardcore gamer probably wouldn't find Nouveau to be all that useful but for someone into more casual games and possibly an interest in software ethics it could be just powerful enough. Though someone like that probably would rather use an AMD card with a lot more complete open source driver. It's also not the most newbie-friendly, since you have to navigate quite deep into the system folders to even reclock your GPU. Once that process is automated and you can reliably access the highest possibly power states, I can see Nouveau becoming a viable alternative to the blob even for the less-technical people.

This experiment was a pretty fun one and I enjoyed testing all kinds of stuff with Nouveau. I imagine some of you might also want to test Nouveau to compare your experience to mine but a word of warning before you wipe that blob of yours: GPU support in Nouveau is limited. Especially if you are on one of those new Maxwell cards (GTX 750 + 900 series) you might find that you completely lack graphics and the reclocking only seems to work on Kepler hardware. So if you have a 600 or 700 series card you might be able to test it out. No promises, I'm no Nouveau dev.

Hopefully you found this experiment interesting. I will definitely keep an eye out for Nouveau's progress and probably test it out a lot more frequently than I've done so far. Have you tested Nouveau recently? What have your experiences been with it? Article taken from GamingOnLinux.com.
0 Likes
We do often include affiliate links to earn us some pennies. We are currently affiliated with GOG, Humble Store and Paradox Interactive. See more information here.
About the author -
I'm a Linux gamer from Finland. I like reading, long walks on the beach, dying repeatedly in roguelikes and ripping and tearing in FPS games. I also sometimes write code and sometimes that includes hobbyist game development.
See more from me
The comments on this article are closed.
30 comments
Page: 1/3»
  Go to:

Woodlandor 1 April 2015 at 4:54 pm UTC
Mmmmm pixel salad. ;)
Pecisk 1 April 2015 at 5:30 pm UTC
That's some serious effort man, respect. Well written report and good user testing I always wanted to do with Nouveau (but can't do due of lack of time). Fingers crossed Nouveau devs can move on with clocking stuff and we get it more reliable even this year.
Disharmonic 1 April 2015 at 5:30 pm UTC
Both XCOM and Empire:TW run fine with R600, so that must be a Nouveau bug. Did you test gallium-nine at all? It's definitely worth giving a shot imo.
Pecisk 1 April 2015 at 5:31 pm UTC
Is there similar report for RadeonSI? Would be very interesting to compare results.
tmtvl 1 April 2015 at 5:32 pm UTC
As someone with an AMD card believe me, the OS driver isn't nearly as good as some people claim it is.
X-COM:EU/EW locks the GPU. Anything even remotely taxing will run like a car with cubic wheels.

EDIT: For who is curious: AMD Radeon HD 7770 Cape Verde.
Samsai 1 April 2015 at 5:37 pm UTC
DisharmonicBoth XCOM and Empire:TW run fine with R600, so that must be a Nouveau bug. Did you test gallium-nine at all? It's definitely worth giving a shot imo.
I spent a couple of hours trying to sort it out for testing but I couldn't figure out the necessary configurations in time. I am not too skilled with Wine or Gallium3D, so in the end I just got frustrated and left Gallium-nine out of the testing entirely.
FutureSuture 1 April 2015 at 6:15 pm UTC
View PC info
  • Contributing Editor
tmtvlAs someone with an AMD card believe me, the OS driver isn't nearly as good as some people claim it is.
X-COM:EU/EW locks the GPU. Anything even remotely taxing will run like a car with cubic wheels.

EDIT: For who is curious: AMD Radeon HD 7770 Cape Verde.
I see that you use openSUSE. Is that openSUSE 13.2 or openSUSE Tumbleweed you are using? I hope to not sound condescending by saying this, but open source graphics drivers on Linux benefit from the latest Linux and Mesa updates. Do you have the latest version of Linux and Mesa?
minj 1 April 2015 at 6:27 pm UTC
This makes me wonder though...

As far as I can understand, Vulkan drivers will be a separate beast entirely.

So my question of the day is, what is stopping nVidia from open-sourcing it?*

Get hype?

* again according to my limited understanding the main counter-argument for their OpenGL driver was 'legal issues'. I wonder if that is an euphemism for 'assholes in Redmond'.
mirv 1 April 2015 at 7:08 pm UTC
View PC info
  • Supporter
  • Top Supporter
minjThis makes me wonder though...

As far as I can understand, Vulkan drivers will be a separate beast entirely.

So my question of the day is, what is stopping nVidia from open-sourcing it?*

Get hype?

* again according to my limited understanding the main counter-argument for their OpenGL driver was 'legal issues'. I wonder if that is an euphemism for 'assholes in Redmond'.

Vulkan drivers might indeed be far better off in the open source world - at least that layer might be. OpenGL actually has patent-encumbered components that are quite frustrating to deal with (s3tc, FP32 framebuffers, that kind of thing). Not of all it is core, but are widespread enough that they may as well be. That's dealing with OpenGL alone, and before getting into extensions (some of which might again require "secret sauce" from either the graphics company, or 3rd party IP that they use). It makes opening up drivers a bit of a legal hassle - but not one that's insurmountable (see AMD). nVidia likely don't see opening up drivers as beneficial to their bottom line, and so they don't.

Aside from the graphics API, there are things like video card initialisation, reclocking, shader compilation (into final bytecode that runs on the specific GPU architecture), etc, which is something that can't just be ripped out of a blob and put into a FOSS driver. AMD spent a while seeing that this step worked (thanks to community effort, hardware documentation, and AMD). Nouveau hasn't had that advantage (which makes their reverse engineering work something of a marvel). The point though, is that even if nVidia released hardware docs today, it'd be a while before that low level work could be sorted out (though not as long as you might think - a lot of the effort has been done already). Open sourcing a binary blob would still require it to be torn apart and rebuilt "properly" to work with Mesa. Not even AMD see that as something worth doing, and they've played a very long game to get to the stage of amdgpu instead.

tldr; it's not just legal issues, but technical and return on investment issues as well.
Maelrane 1 April 2015 at 7:55 pm UTC
tmtvlAs someone with an AMD card believe me, the OS driver isn't nearly as good as some people claim it is.
X-COM:EU/EW locks the GPU. Anything even remotely taxing will run like a car with cubic wheels.

EDIT: For who is curious: AMD Radeon HD 7770 Cape Verde.

Must be your machine, as I can run this game just fine on my HD 6950 with Mesa on Archlinux.
Actually I run pretty much everything apart from Natural Selection 2 (doesn't work since many months on Mesa), Dead Island and Dying Light fine, which I play on Windows for the time being.
  Go to:
While you're here, please consider supporting GamingOnLinux on Patreon, Liberapay or Paypal. We have no adverts, no paywalls, no timed exclusive articles. Just 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!
Livestreams & Videos
None currently, submit yours here!
See more!
Popular this week
View by Category
Contact
Latest Comments
Latest Forum Posts