This repository contains scripts for repacking the AMD proprietary drivers into Fedora-usable packages. It includes both 64 and 32 bit drivers.
- Proprietary drivers on AMD? thought those guys were open source ??
AMD's proprietary drivers only support a few linux distributions: Ubuntu, OpenSUSE, RHEL, CentOS. Other distributions have to repackage their drivers.
While yes AMD driver stack is mostly open-source , as some parts remains proprietary like :
- The legacy/pal/orca OpenCL drivers. (required for darktable , resolve & blender (< 3.0) , they also behave better than the ROCm OpenCL implentation when using wine .)
- The industrial OpenGL drivers (required for resolve.)
- The Advanced Media Framework (required for GPU H.264/H.265 encoding)
- Vulkan drivers with ray tracing capabilities
"IMPORTANT BUILD NOTES" :
- Occasionally, the mock build may fail on 32 bit packages with the following issue:
Failed:
shadow-utils-2:4.11.1-2.fc36.i686
Error: Transaction failed
This is a known issue. You can just ignore it and re-run the build.
-
It seems like AMD maintainers forgot enable rdna2 AMF encoding support in amdvlk-pro starting from amdgpu-pro 21.50 and onwards , so please use amdvlk-pro-rdna2 if you have a rdna2 GPU. (6000 series or higher):
GPUOpen-LibrariesAndSDKs/AMF#334 -
We have repackaged the offficial "libdrm" library for better performance and stability , it also solves the RDNA2 issue.
-
We have made these libdrm libraries load using system wrappers (vk_pro, gl_pro, cl_pro)
We include a package builder script which uses mock to build packages with minimal dependencies. It will auto install the dependencies it needs (mock pykickstart fedpkg libvirt)
Use the package builder to build specific packages:
$ ./package-builder.sh
-------------------------------------
Usage: <package-name> <architecture>
-------------------------------------
You must specify a package name and an architecture.
Achitecture options are "32" for 32 bit and "64" for 64 bit
-------------------------------------
64 bit package names are:
libdrm-pro
amdamf-pro-runtime
amdocl-legacy
amdogl-pro
amdvlk
amdvlk-pro
amdvlk-pro-legacy
-------------------------------------
32 bit package names are:
libdrm-pro
amdocl-legacy
amdogl-pro
amdvlk
amdvlk-pro
amdvlk-pro-legacy
Resulting packages are placed in the "package" subfolder. Install packages like so:
$ cd packages
$ sudo dnf install *.rpm
-
install amdgpu-vulkan-switcher from https://copr.fedorainfracloud.org/coprs/gloriouseggroll/amdgpu-vulkan-switcher/
-
Run the program with
vk_pro {THE_PROGRAM}
- install amdgpu-vulkan-switcher from https://copr.fedorainfracloud.org/coprs/gloriouseggroll/amdgpu-vulkan-switcher/
AMDVLK
- Run the program with
vk_amdvlk {THE_PROGRAM}
- The only requirement to use the AMF encoder is that it requires the PRO driver to be used, so you must run the application (such as obs or ffmpeg) with vk_pro:
vk_pro {THE_PROGRAM}
Note : H265 AMF is supported only on RDNA1 cards and higher (RX 5XXX) , the rest shall use H264.
-
install amdgpu-opengl-switcher from https://copr.fedorainfracloud.org/coprs/gloriouseggroll/amdgpu-vulkan-switcher/
-
Run the program with
gl_pro {THE_PROGRAM}
- You can also use the open source zink driver:
gl_zink {THE_PROGRAM}
-
install amdgpu-opencl-switcher from https://copr.fedorainfracloud.org/coprs/gloriouseggroll/amdgpu-vulkan-switcher/
-
Run the program with
cl_pro {THE_PROGRAM}