Radeon vs Nvidia on Linux – My Thoughts

Updated Jan 1, 2021Editorials
nvidia vs radeon

Conclusions

  • Nvidia can get you the best performance by a fairly large margin. That performance comes at the expense of stability, e.g. crashes requiring restart, at least that’s my experience with it so far.
  • The difference between Nouveau and AMDGPU is minuscule, if any, in terms of visible performance (disclosure: gaming wasn’t tested).
  • There is a difference between Nouveau and AMDGPU in terms of feature support, e.g. AMDGPU has full power management support while Nouveau doesn’t[1].
  • Nvidia offers substantive choice. You can choose between proprietary or open source driver and you’ll actually get very different results. Whereas Radeon, on the other hand, has the proprietary driver based off of the open-source one and performance is basically on par between the two.

A little background

I recently bought a new Radeon graphics card for the first time in my life. I installed it on my PC – that was easy (I was afraid it might not fit in size) – and then came the software side. Getting it to basically work was also easier than I expected, but then came the fine-tuning or tweaking part. I explored the new card’s capabilities and compared it to my former Nvidia GTX 560 Ti (yeah I know, it’s so old it’s been marked legacy a couple of years ago). Anyways, after having Nvidia for so many years (I can’t even remember when I started using Nvidia for the first time, but more than 10 years ago for sure) and having switched only recently, so that the memories from my Nvidia experience are still fresh, I’ve reached some conclusions regarding the two cards.

Before deciding which card to purchase, I did an online research to figure out what type of card should I buy. My criteria was as follows (the order is random but numbered for a later purpose):

  1. The new card should be new, i.e. debuted within a time period of a year, so that it would also last for a relatively long time.
  2. The new card should be worth its cost in terms of specs and actual performance – I don’t game, but it should be capable of full HD movies which I tend to watch on my PC once in a while. Internet browsing, i.e. scrolling should be smooth – you might be surprised, but with all the new tech on the Web nowadays, this task does put graphic cards under considerable pressure.
  3. The card should work well with Linux, as I spend 99% of my computing time on the platform, and also as a lesson from using Nvidia proprietary card for a long time.

What the Web said

Upon doing my online research, the most conspicuous feature that stood up for me was that pretty much everyone online were complaining about Nvidia not cooperating with Linux which leads to all sorts of issues. That, of course, alarmed me that my third criteria might be broken if I choose to purchase an Nvidia card.

The next thing that stood up was that people were praising Radeon cards and the company for being so cooperative with Linux in particular and open source community in General, that is Radeon is in line with the 3rd criteria.

Third, performance-wise, benchmark results[2] tended to portray Radeon’s open-source driver as second best on Linux (though by a fair margin) after Nvidia’s proprietary driver – 2nd criteria: performance for money – Nvidia has the edge over Radeon, however it also breaks the 3rd rule while Radeon isn’t.

Fourth, the Web says that due to Nvidia’s lack of cooperation, there’s very slow Wayland progress[3] with regards to these cards, whilst Radeon and Intel cards are basically fully supported, as far as Wayland, which is still a work in progress, works. Once again Radeon passes my 3rd criteria while Nvidia seems to break it.

Being the case as it is, and based on the fact I had never had Radeon before while I already was familiar with the pitfalls of Nvidia, I decided it’s time to give Radeon a try.

My rationale was: Yes, the difference between Radeon’s open-source and closed-source driver being on par would also push me into sticking to open-source software, which in general I tend to trust more. Also, given that my last Nvidia card was pretty old and had perhaps half the performance capabilities a modern card has and it was still enough for me, together with the fact I don’t game so I don’t have too high requirements anyway, meant for me that giving up a little performance in return for better stability and cooperability with Linux would probably be the best choice for me.

My actual experience

Nvidia

These are some of the issues I used to experience with Nvidia card on Linux:

Issues which I encounter with the closed-source driver are marked with (c), with open source driver (o) and if it was on both then (c,o).

  • Random crashes requiring reboot (c), that seemed to be connected to the power management mode, i.e. setting the mode on high performance seemed to prevent the card from crashing, but in the last few months that didn’t seem to work either (could be due to a driver update or hardware connected).
  • Screen tearing (c,o), I had to hack xorg/X11 to defuse that.
  • Crashing upon high load or on specific cases, for instance upon browsing Google Maps (o), at some point I found I could reduce the chances of that happen by installing Nvidia’s openCL support package instead of relying on the aging Mesa’s openCL component support or by disabling hardware acceleration in the web browser.
  • Copy pasting text lines occasionally was buggy, copying the whole line except for the first letter (c,o). I double checked that and could actually see the whole line was selected. I haven’t spent enough time to determine whether it happens on Wayland too
  • tty / command console couldn’t use Nvidia’s propretary driver as it wasn’t built-in to the Linux kernel, therefore proper screen resolution and other features couldn’t work on that mode and the switch between GUI and tty wasn’t smooth, it also required more work on installing a workable frame buffer setup which would play nicely with Nvidia (c).
  • Non-smooth scrolling (o), it’s not very noticeable and you can certainly get used to it, but compared with the proprietary driver you can definitely see the difference.
  • Non-working Wayland (c) – The devs say that it’s not that they don’t support Nvidia, but it’s Nvidia that doesn’t support them[4].

Radeon

These are some of the issues I experience currently with Radeon card on Linux:

Since Radeon’s open and closed source drivers are very similar in performance, I didn’t spend much time testing both, and so all the points below are regarding AMDGPU – Radeon’s open-source driver, some may or may not also be present with closed source Radeon driver – AMDGPU-PRO.

  • Non-smooth scrolling, basically seem to be the same performance as Nvidia’s Nouveau driver (that’s the open source driver) used to present me.
  • Crashing upon high load or on specific cases, for instance upon browsing Google Maps, here I found that installing the newest OpenCL implementation from AMD called ROCm solve the issue.
  • Copy pasting text lines occasionally is buggy, copying the whole line except for the first letter. I double checked that and could actually see the whole line was selected. I haven’t spent enough time to determine whether it happens on Wayland too. This happens on Nvidia as well.

The issues AMDGPU driver has seem to basically overlap with Nouveau’s. The performance seem to be quite similar too, and that is given the fact my Radeon card is much newer and more powerful than my Nvidia card was, meaning the driver code or technology it rely on is probably quite similar and that has a significant impact on performance.

Regarding screen tearing – I experienced it with both AMDGPU and Nouveau, however, in AMDGPU’s case it happened only when I still had my xorg hacks that were there in order to prevent Nouveau/Nvidia-drivers (propreitary) from screen tearing. Once I removed those hacks, I didn’t experience screen tearing with AMDGPU at all and since that is the default way of running it, I think it wouldn’t be fair to point that out as a AMDGPU drawback. That said, keep in mind that my Radeon card is much newer than my former Nvidia, it could be that a new Nvidia card wouldn’t show any screen tearing by default either.

Another thing which worth noting is that AMDGPU’s power consumption is tweakable by using Linux’s default power management tool (dpm). Nouveau, on the other hand is still in WIP (work in progress) phase[1] in the best case scenario, or in the worst case where the devs are still at the stage of TODO[1] – meaning they haven’t even started yet.


Having considered all the above, my personal tendency is to default to Nvidia in my next purchase and that is due to Nvidia offering substantive choice with its closed source driver vs Nouveau, that and the fact the performance both AMDGPU and Nouveau offer is quite on par anyway, apply that on a modern card and it’s suffice for my personal needs. That is my position at the moment, I’m still fairly new to using Radeon so it might change in the future.