It’s been a while since I had to use the Radeon graphics cards on linux. It seems like a lot has changed since and I’m a bit confused.
Can someone explain to me the concepts of it ?
Before if was simple, there was a fglrx and it sucked and that’s all I had to know and get myself nvidia.
Now there is :
- radeon: drivers ( I believe this came after fglrx and sucked less ? )
- amdgpu: the new good stuff, the grass is green and the girls are pretty
- amdgpu-pro: ?
- mesa: amgdpu but only glass is green ?
- mesa NEW: ?
- mesa-libOpenCL: ?
- mesa-libGL: ?
- mesa-dri: ?
It would be nice if there would be some guide explaining those and probably more of what do I need to get installed on my system to get it flying on the latest rDNA/rDNA2 cards?
If you know about any article explaining it or some YouTube video, I would appreciate it.
Fedora but I guess the dri/libOpenCL/libGl/vulkan bits are distro agnostic.
Recently they’ve back-ported the drivers into f33 5.9 kernel so the graphics works out of the box I am just not sure if I should be installing the libGL, dri, vulkan, opencl bits etc or if they are mutually exclusive.
libva info: VA-API version 1.9.0
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_9
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.9 (libva 2.9.0)
vainfo: Driver version: Mesa Gallium driver 20.2.6 for AMD SIENNA_CICHLID (DRM 3.39.0, 5.9.15-200.fc33.x86_64, LLVM 11.0.0)
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointEncSlice
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
I’m not sure, but aren’t the drivers baked into 5.9 already?
They are so I don’t have the issue with the driver as of now, it’s just I am confused about the other drivers/implementations etc.
Mesa Gallium driver 20.2.6 for AMD SIENNA_CICHLID the so called “Mesa new” driver?
Do I need amdgpu-pro driver from AMD site to get things like freesync working etc…
To add even more confusion, apparently a
amdgpu-next is a thing…
radeon - Open source kernel driver for radeon cards, primarily for cards before GCN.
amdgpu - Open source kernel driver for amd/radeon cards, supports GCN and RDNA cards.
amdgpu-pro - Closed source userland driver that afaik sits on top of/borrows from
amdgpu stuff. It provides the AMD official support for OpenGL, OpenCL and Vulcan, and maybe some more stuff? Needed to use hardware acceleration with some programs (Davinci resolve for example I think)
amdgpu-next- Development/unstable version of
amdgpu. So more buggy (sometimes), or at least not as tested yet.
mesa - Open source userland driver to support OpenGL, OpenCL, Vulcan, and a couple of other APIs. Basically a open source
amdgpu-pro, in some ways but not made by AMD. It is a go-between for going between a program making an API call and the driver sending information to the hardware.
mesa-dri - All basically versions or components of
mesa. Perhaps split up for some packaging reason, or so you only have to install what you need.
vulkan - A graphics API. So you can use vulkan in your game, tell vulkan to draw a something, and vulkan will go ahead and take care of it. Similar purpose to OpenGL, but but newer.
I think freesync is built into
Wow thanks, that’s exactly what I was looking for, much appreciated.
Looks like sticking to built-in amdgpu/Mesa would be the choice for most.
To add the the cake’s post:
Mesa is not a driver, it is the implementation of various graphics APIs in a unified way. It implements OpenGL, Vulkan, OpenCL, among other things.
From a program perspective, the program talks to mesa, and mesa talks to the GPU driver. That’s also why it is not AMD specific, it can talk to any GPU driver that is made to work with it. This is so that not every GPU driver has to implement the various graphics APIs individually, but have one single project that handles that.
The Intel GPU driver uses Mesa, and so does the Open Source nvidia driver
It does, but it still has some limitations. To my knowledge FreeSync still does not work when using multiple monitors. I don’t know if it works when running multiple X Servers (i.e. one per Monitor).