I hope it’s okay to ask this question here, since it seems to differ a little from general posts.
I am currently looking to upgrade my workstation GPU and AMD’s pricing is far better suited for my budget. But I worry a lot about the driver stability, since I witnessed some true horror stories with AMD drivers back in 2020. I have also read that they’ve gotten a lot better in the meantime.
So if you happen to use an AMD GPU: How was your experience with productivity software (Unity, UE, Maya, blender etc.) so far?
I recently switched because I needed HDMI 2.1 on Linux, which AMD doesn’t support, though not for lack of trying.
I need to give two perspectives here. One from my day-job as a gamedev, and one from my hobby as a gamedev.
The main difference is that in my spare time I do not have to suffer working on Windows.
So, first about work: I have switched from an nVidia card to an AMD one in 2022, because my work PC’s nVidia card had too little VRAM to run the editor of Unreal Engine 5. Editor performance was abysmal (due to the nVidia card’s limited VRAM) and running out of VRAM also frequently caused the editor to crash.
After I switched to an AMD card, those crashes were gone and performance of the editor was way better too (because it now had enough VRAM to no longer fall back to system RAM). However, Unreal kept complaining about a driver bug regarding synchronization, that never led to any observable issues other than running into a (continuable) assert on editor startup. I am still using this card, and after some driver update, that warning went away.
The AMD card is working flawlessly for me, and I honestly do not want to switch back.
There is one thing that I need to highlight though: The nVidia rendering debugging tools (most important: nVidia Insights) are locked to nVidia hardware. AMD’s tools are not locked to AMD hardware. So, if you use an nVidia card, you get access to all tools, while on AMD cards you need to make do with the tools you get from AMD (or Intel, or Microsoft).
In my spare time I luckily don’t have to use Windows, and on Linux the AMD drivers are, in my opinion, superior to the nVidia drivers in almost all aspects. The most important thing about them is that they are open source, so you can actually edit the drivers, and mesa (the open source project that contains the OpenGL runtime) has some pretty amazing debugging features.
The AMD Linux drivers also integrate way better with the various desktop environments. With the nVidia drivers you more or less need to use the nVidia Control Center for some settings, what is not the case with the AMD ones.
The one drawback I see on Linux, compared to the nVidia drivers, is that setting up OpenCL is a little bit more involved with the AMD drivers - but since you nowadays can combine the open source drivers with the ROCm OpenCL runtime, that’s not that a big deal any more.
Last, but not least: In my experience the AMD drivers are “more strict” when it comes to using graphics APIs and shader languages correctly. Back when I still used an nVidia card, I caused several bugs that only surfaced on a coworkers’ AMD card. In all of those cases the bugs were actual bugs in my code, that only worked because they accidentally did the right thing on nVidia due to implementation-defined behaviour…
As a fellow Linux user: thank you for mentioning the OS as well and your overall pretty detailed comment. :)
If you do decide to go with an amd GPU for gamedev, please reach out if you run into any snags. Would be happy to assist in any way I can.
I did actually. Thank you, I’ll reach out if I need help.
Appreciate this input. The PAL drivers have indeed become more explicit / strict about spec compliance.
We sort of learned this the hard way across a breadth of older OpenGL apps (leveraging some pretty finnicky workarounds way back when) but have endeavoured to address each of these issues for OGLP.
I remember figuring out how to get OpenCL stuff working back in 2019 was not so easy, but I haven’t had problems like that in a few years now. More recently, getting blender to do GPU rendering for example was just a matter of figuring out which package needed installing.