top | item 18971044

AMD Open Source Driver for Vulkan

505 points| ajr0 | 7 years ago |github.com | reply

174 comments

order
[+] zanny|7 years ago|reply
A lot of people are talking along the lines of "oh AMD is nice but... Nvidia".

No, in 2019 all AMD GPUs this decade support OpenGL through 4.5, support Vulkan, and still really don't have a great OpenCL situation (rocm is out of tree on every distro and only supprts parts of 2.0 still).

For gaming though, theres no reason not to get an AMD GPU. They are at near performance parity with Nvidia relative to their Windows performance, they work with the inbuilt drivers on every distro out of the box, and the only footgun to watch out for is that new hardware generally takes a feature release Mesa cycle to get stable after launch. You even get hardware accelerated h264 encoding and decoding (and vpx on some chips) via vaapi. All on top of the fundamental that they are much more freedom respecting than Nvidia.

Stop giving Nvidia your money to screw you over with. CUDA, their RTX crap, Gsync, Physx, Nvidia "Gameworks", and much more are all anti-competitive monopolist exploitative user-hostile evil meant to screw over competition and customers alike. Nvidia is one of the most reprehensible companies out there among peers like Oracle. AMD isn't a selfless helpless angel of a company, but when their products are competitive, and in many ways better (such as supporting Wayland) stop giving such a hostile business your money.

[+] dragontamer|7 years ago|reply
> No, in 2019 all AMD GPUs this decade support OpenGL through 4.5, support Vulkan, and still really don't have a great OpenCL situation (rocm is out of tree on every distro and only supprts parts of 2.0 still).

To be fair, only Intel has good OpenCL 2.0+ support. NVidia isn't really pushing OpenCL and AMD's ROCm OpenCL driver is still a bit unstable.

AMD's OpenCL 2.0 support has always been poor. The Windows OpenCL 2.0 stuff didn't have a debugger for example, it really wasn't a good development environment at all. Only OpenCL1.2 had a decent debugger, profilers, or analysis tools.

Frankly, it seems like OpenCL2.0 as a whole is a failure. All the code I've personally seen is OpenCL 1.2. Intel is pushing ICC / autovectorization, NVidia is pushing CUDA, and AMD was pushing HSA, and maybe now HCC / HIP / ROCm. No company wants to champion OpenCL 2.0.

Video Games are written in Vulkan Shaders, DirectX shaders, or GLSL. They exist independently of the dedicated compute (CUDA / OpenCL) world.

CUDA, OpenMP 4.5 device offload, and ROC / HIP / HCC are the compute solutions that seem to have the best chances in the future... since OpenCL 2.0 is just kinda blah. AMD's ROCm stack still needs more development, but it does seem to be improving steadily.

----------

I know everyone wants to just hold hands, sing Kumbaya and load SYCL -> OpenCL -> SPIR-V neutral code on everyone's GPUs, but that's just not how the world works right now. And I have my doubts that it will ever be a valid path forward.

The hidden message is that CUDA -> CLang -> NVidia is a partially shared stack with HCC -> CLang -> AMD. So LLVM seems to be the common denominator.

[+] bufferoverflow|7 years ago|reply
RTX isn't crap. It's an innovation. Yes, it's at its early stages, but nevertheless. True reflections alone will result in new game mechanics. It will accelerate traditional 3D rendering.
[+] alanaktion|7 years ago|reply
I love AMD's innovation in this space, but for high-end gaming Nvidia is still destroying them in raw performance. RTX and G-Sync are definitely stupid, though they are adding limited Freesync compatibility to recent cards now.

If AMD made something that'd beat my 1080 Ti for a reasonable price, I'd definitely buy it. I certainly don't like Nvidia's Linux drivers, but the majority of my non-IGPU needs are Windows-based, so it's not as much of an issue. If I exclusively used Linux on my high-end PCs, I'd likely be more willing to lose some raw performance to go with AMD.

[+] twtw|7 years ago|reply
Your rhetoric is a bit out of date. I have no problem with AMD (their hardware is good!), but I don't think your presentation is accurate.

> CUDA

Implemented by AMD too, under the moniker "hip."

> their RTX crap

Vendor-independent via DXR, soon to be available through Vulkan as well.

> Gsync

Nvidia GPUs now work with freesync monitors

> Physx

Open source, as of december.

I want to feel good about AMD, but they have thus far failed to build a stable platform around their GPGPU stack(s). Nvidia has done a pretty good job with making CUDA a stable platform for SW development, however anti-competitive you might think it is.

[+] swoorup|7 years ago|reply
I regret purchasing Nvidia, i run linux for day to day usage. X frequently has issues even with compositor at times. My intel-only laptop is buttery smooth with sway, while i am forced to use X just because of nvidia not supporting wayland properly.

Point is if you are Nvidia and user of open source software stay away from nvidia products

[+] brandonjm|7 years ago|reply
> their RTX crap

I was hyped about RTX when it came out and I'm all for more performant raytracing however my hype has seriously waned since the RTX release due to the lack of support. Until we have more games that support it I'm inclined to agree that there is no reason to included it when deciding between NVIDIA and AMD at this time. I would argue that by the time raytracing in gaming is more widespread there will be a more open and accessible solution, likely supported (or built) by AMD.

[+] idonotknowwhy|7 years ago|reply
> For gaming though, theres no reason not to get an AMD GPU.

Cemu, yuzu and any other cpu-intense emulators which only support opengl. The mesa drivers are much faster (you can get 40% more performance out of cemu my running it on Linux via wine) but this doesn't help windows AMD users.

[+] deelowe|7 years ago|reply
Whats wrong with rtx (other than it being a bleeding edge tech that isn't well supported yet)?
[+] glglwty|7 years ago|reply
> they work with the inbuilt drivers on every distro out of the box

No they don't work with any distro that uses linux-libre.

[+] TomVDB|7 years ago|reply
> CUDA, their RTX crap, Gsync, Physx, Nvidia "Gameworks"

Do you have similar issues with the vast majority of software companies out there that don't open source their product?

Whether it's Microsoft, SAS, Wolfram Research or Adobe. Synposys, Autodesk, or Blizzard or any mom-and-pop software company that solves some niche problem. It's all closed source and "anti-competitive".

Are they just as monopolist, exploitative and user-hostile?

If not, what's the difference? Just the fact that they sell hardware along with their software?

[+] tombert|7 years ago|reply
I can't speak for anyone else, but because AMD has been opening up their drivers, the laptop I purchased six months ago was AMD based.

I haven't done any kind of elaborate benchmarks, but as someone who runs Linux full-time, I want to support companies that make my life a bit easier.

That said, I have had some issue with my computer having some weird graphical glitches, and then crashing...I don't know if that's the drivers fault but I never had this with my NVidia or Intel cards...

[+] dpwm|7 years ago|reply
October 2016 I built an AMD-based desktop with integrated GPU. I was seriously impressed at the out-the-box support in Linux compared with the support for their earlier chipsets.

I seem to remember at around the same time that the Intel open source drivers went through a number of regressions.

In the past I've had really bad experiences with ATI's GPUs. My 2016 experience would certainly allay my fears about buying AMD.

[+] tatref|7 years ago|reply
I supported AMD several years because of this... Then I got tired of the low quality of both the open source, and the closed driver. Crashes, glitches in movies, flickering...

Some time ago, I bought an Nvidia. It works like charm with the closed driver on Linux and windows. I do mainly games on Linux/windows, some gpgpu (machine learning with tensor flow), and the usual stuff. I couldn't be happier... Except if it was open source ;-)

[+] zanny|7 years ago|reply
I've been exclusively buying AMD discrete graphics for the better part of a decade since they started developing their open driver.

Between a 4850, 7870, 290, and 580 I've been a satisfied customer. It was rough waters in 2012, but nowadays its flawless.

On the CPU side though... I do want to make a big upgrade this year. I've had a 4770k since release. 8 cores sounds pretty juicy. But AMD still has their proprietary PSP and unlike with the Intel ME I have no way to disable it. While it sucks giving Intel money when they have been no help disabling their government backdoor into my computer the fact the community has disabled it (assuming ME cleaner will work properly on whatever Intel CPUs come out this year) makes me lean towards buying another Intel chip. Not because I want to support them, but because AMD hasn't given me an alternative yet.

[+] Symmetry|7 years ago|reply
The sad truth is that it takes a while for the open source drivers to solidify after any new release and going open source means not getting the newest hardware.

Well, Intel actually seems to get their open source driver support in far enough ahead of time these days that you can just load the newest Ubuntu with them and it works, but that wasn't the case 5 years ago.

[+] Jnr|7 years ago|reply
I built new media box last year and thought I would try AMD Ryzen 2400G APU. Turns out it was a bad choice. Those graphics drivers are extremely unstable, it keeps crashing frequently, kernel bug reports have many reports from multiple people with info on how to reproduce them but those cases are still in status "NEW" almost 1 year later. And while their Windows benchmarks are decent, anything 3D related on Linux is a glitching disaster with poor performance.

My friend bought latest Intel NUC with AMD Vega graphics and he could not even get Linux to boot with that.

Meanwhile I have Nvidia GTX970 on my desktop PC and everything works fine, even G-Sync works. I have used Nvidia cards with Linux for 10 years now and I have not had any issues like I have with AMD now.

To me it seems like AMD dumping their drivers as open source is a call for help on maintaining them rather than being all friendly to community.

[+] chrisper|7 years ago|reply
Yet I can still not read CPU core temperatures of my ryzen 2600 on Linux (5.0-rc2). I am not sure what is going on but I think next time I'll go with Intel again. I read this may be related to some NDA by AMD but not sure.
[+] mrweasel|7 years ago|reply
Sadly I constantly hear people say that you should get an Nvidia card for both Linux and FreeBSD, because the drivers are better. While I'm sure that Nvidias driver a good, it's kinda sad that the attitude is that AMD is a better friend of the open source community, but yeah, we're going with Nvidia.

I get why, you have stuff to do and Nvidia performs better, but still it a little annoying.

OpenBSD seems to be the only open source operating system that suggests that you get an AMD card (or use Intel integrated graphics).

[+] marcosdumay|7 years ago|reply
If you are ok with a proprietary driver and all the headaches that come with it, NVidia drivers are better for some 3-4 years after you buy a high-end GPU or 1-2 years after you buy a low-end one. After this time, NVidia drops support and you are stuck with a free driver that is much worse than the AMD ones (not by fault of the free drivers developers, mind you, but because NVidia makes their life hard).

Personally, I do prefer to avoid the headaches from day 1, so it's AMD or Intel.

[+] Athas|7 years ago|reply
I strongly recommend AMD. After a long time of using NVIDIA due to their superior Linux drivers, I got myself a Vega 64 when I built a new desktop computer last year. After so many years of driver woes, it was almost unreal having accelerated 3D graphics work out-of-the-box after installing Fedora. For my personal machines, I don't see myself going back to NVIDIA anytime soon.
[+] chme|7 years ago|reply
You mean the proprietary Nvidia driver?

Because( no offense to the nouveau guys, you do great job, all things considered) but the open source one is in pretty bad shape and that is completely the fault of Nvidia.

Having to extra compile their driver (that does not conform to kernel standards) delivers a subpar experience for Linux users and taints the kernel. If they don't care about Linux users and help develop the open source driver, they I don't see any reason for buying their hardware. I rather spend it on hardware manufacturers that try to support me as a customer.

[+] nas|7 years ago|reply
After years of having AMD video cards, I recently got a high end Nvidia card, GeForce GTX 1070 Ti. For 3-D gaming, Nvidia cards were clearly better performance vs price. However, dealing with the proprietary driver is just a pain in the ass. With an AMD card, the open source driver just worked. With Nvidia, I have to keep re-installing the proprietary driver. Sometimes it doesn't compile with the current kernel (e.g. Debian testing). Finding the correct driver to download and install is a pain (try using the 'links' on nvidia's site).

If I build another PC, I'm going to very strongly prefer an AMD card.

[+] floatboth|7 years ago|reply
FreeBSD is definitely better with AMD. No one should be recommending nvidia in 2019.

There is unfortunately a little boot issue currently (amdgpu conflicts with the EFI framebuffer, so when booting with UEFI you have to turn efifb off, resulting in no display after the bootloader and until the GPU driver loads). But other than that, I'm very happy with amdgpu & Mesa.

[+] kllrnohj|7 years ago|reply
I've gone through 3 different desktops and 4 different Nvidia GPUs in my Linux workstation over the last ~8 years and Nvidia's proprietary driver has never once been what I'd describe as "good"

There's regular display corruption and flickering on the desktop, most significantly on the second display.

All I need/want is basic 2D composition of the desktop, so maybe their 3D acceleration works better. But there doesn't seem to be any reason to put up with the crappy re-compilation path just to get kinda OK desktop performance with a heap of bugs.

[+] bjoli|7 years ago|reply
I have other values. I dont need the absolute best performance and I'd rather spend money on a product from an OSS-friendly company. AMD is probably what will finally make me abandon intel integrated graphics for my Linux computers
[+] pimeys|7 years ago|reply
Just built my new work workstation with 2970WX and RX 590. This is my first AMD workstation since the Thunderbird and everything has worked just great with Arch Linux using the open source drivers.

And my god it is fast...

[+] vorpalhex|7 years ago|reply
I'm glad AMD has consistently put in work to keep their drivers available to the Linux community, even if sometimes it's been less than perfect. I really hope that Nvidia eventually also open sources it's drivers.
[+] xvilka|7 years ago|reply
When hell freezes over. Their management seems stuck to agressive anti-FOSS stance forever. Shame to every developer who works for them - it is like working for the evil.
[+] chme|7 years ago|reply
Nvidia will properly never do that. Since they don't see themselves as just hardware manufacturers.

They want to bind customers to their hardware and cause them to buy newer hardware versions in high frequency and there seems to be no better way to do that than via software that they can artificially age if need be and lock to prevent alternative solutions.

[+] notus|7 years ago|reply
It seems like this repo has existed for over a year and no commits within the past couple days, I'm not sure what the discussion is supposed to be about when there is just a link to a repo.
[+] boudin|7 years ago|reply
Indeed, AMDVLK was part of the AMDGPU pro driver first and was opensourced in december 2017, so it's not new.
[+] joshuarubin|7 years ago|reply
Nvidia refuses to support GBM for Wayland and instead came out with a completely different buffer API, EGLStreams. This is pretty arrogant. As I use sway, and it doesn't support Nvidia, I chose an AMD Vega 64, which works great.

https://drewdevault.com/2017/10/26/Fuck-you-nvidia.html

[+] beatgammit|7 years ago|reply
How do you like sway? I'm still on an Nvidia GPU, but I might upgrade this year to an AMD GPU, and I've been hesitant to get back into tiling window managers untill I can use one on Wayland.
[+] turblety|7 years ago|reply
So does anyone know now if AMD Vulkan GPU's are fully open sourced? i.e. can we build everything from source, firmware, drivers, app and then use it without having to trust any blobs?
[+] bayindirh|7 years ago|reply
AMD beta tester here.

AMD separated HDCP and DRM related silicon from video acceleration units some time ago to be able to open source their GPUs completely sans the NDA bound stuff. Even this is a very big generosity and step from them for the Linux community.

I'm sure that the firmware contains some highly proprietary and revealing information about some of their secret sauce. So, they won't be able to do it even if they want to.

[+] boudin|7 years ago|reply
Firmware isn't opensource. Kernel and userland drivers are. There's RADV as an alternative to AMDVLK which was created while AMDVLK was closed source. Both are maintained.
[+] monocasa|7 years ago|reply
Some of the firmware has been reverse engineered, with community supplied patches, but that's not supported at all by AMD.

https://github.com/fail0verflow/radeon-tools/tree/master/f32

What's interesting is there's not a clear reason for the firmware to not be opened other than it's probably a huge amount of work to document. It looks like an unexpected house design so there shouldn't be IP issues, and it's pretty mundane stuff so there shouldn't be trade secret issues either. : /

[+] vardump|7 years ago|reply
I think open source GPU firmware will be very unlikely to happen for any high-performance part in the near-medium term future.
[+] cr0sh|7 years ago|reply
I'd love to try AMD video cards again, but what's recently held me back is that I sometimes play around with stuff like Tensorflow and other ML libraries.

They all seem to be geared toward CUDA, which of course is an NVidia only thing.

I've never really looked deeply into it, but are there performant options, close to CUDA, that would allow me or others to use such ML libraries on AMD GPUs?

[+] novaRom|7 years ago|reply
I have recently moved my home PC to latest AMD APU (latest Athlon). No CPU Fan because it's passive, no proprietary closed source binary blobs anymore because AMD open source drivers work out of the box (latest Ubuntu).
[+] newnewpdro|7 years ago|reply
The more people support AMD by buying their hardware, the better the drivers will become. Obviously we should support the more open of the options, it's not like AMD can't deliver satisfactory hardware.
[+] ab5tract|7 years ago|reply
“But mah FPS!!” I have never understood the relative lack of loyalty amongst nerds. Demand more FLOSS, but buy NVIDIA for a few frames per second. Use Chrome instead of Firefox for a few milliseconds on render. Rejoice at clang while maintaining that GCC never did anything good for anybody.

The whole point of libre software is that the choice of what you use matters, but I rarely see ethical considerations trump hot rodding.

[+] novaRom|7 years ago|reply
Nvidia will be forced to do the same pretty much soon. The real thread for this oligopoly (AMD, Nvidia) will be from Asia. Look what's happening with SoCs in mobile phones in general and project it to all different types of silicon including dedicated accelerators.