The Many Open-Source Radeon Linux Driver Advancements Of 2017
Given the latest round of Windows vs. Linux Radeon gaming tests yesterday and the end of the year quickly approaching, I figured I would provide a list now about some of the major feats reached this year for the open-source Radeon graphics driver stack.
- Not only is AMDGPU+RadeonSI now competing with AMDGPU-PRO and the Radeon Software OpenGL driver on Windows, but this also means there is finally better competition between Radeon graphics cards on Linux and the GeForce hardware with NVIDIA's long-standing high-class (but proprietary) Linux graphics driver. The RX 580 vs. GTX 1060 battle has become especially hot while the RX Vega Linux support continues to mature, etc.
- AMDGPU DC landed for providing this modern display stack in the AMDGPU Direct Rendering Manager driver in the mainline kernel. It's been a multi-year effort getting this display code -- which is also used by the Radeon Software driver -- ready for mainline acceptance. This provides atomic mode-setting, HDMI/DP audio for newer GPUs, FreeSync support is nearly in place, RX Vega/Raven display support, and other modern display features to build off now and in the future.
- Work has been coming together on the RadeonSI NIR back-end as will be needed for the driver's SPIR-V/Vulkan ingestion support and to wrap up its OpenGL 4.6 compliance.
- While old, more OpenGL 4 work on R600g. Select GPUs supported by the R600 Gallium3D driver can finally expose up to OpenGL 4.3 support.
- RadeonSI hitting OpenGL 4.5 conformance and nearly to OpenGL 4.6 except for the SPIR-V ingestion extensions.
- Getting GCN 1.0/1.1 into better AMDGPU shape so that eventually these original "Southern Islands" and "Sea Islands" graphics cards may switch to using the AMDGPU kernel driver rather than the Radeon DRM driver.
- Prepping well in advance for Raven Ridge APUs including VCN encode.
- RADV has matured a lot including performance optimizations for many different games/apps. RADV has also worked on other features like better hang detection and new extensions.
- The open-source RADV driver is now considered a Vulkan 1.0 conformant driver.
- Open-source FreeSync/AdaptiveSync planning though unfortunately not quite all in place as of writing.
- The open-source Radeon driver stack is now working with SteamVR for VR Linux gaming. As part of this and landing in 2017 is the AMDGPU priority scheduling support and other OpenGL/Vulkan extensions enabled.
- The RadeonSI OpenGL on-disk shader cache was enabled to help game load times among other significant optimizations.
- Mesa OpenGL threading and RadeonSI threading came together for more performance wins.
- Preparations for 10-bit color visual support.
- AMD managed launch-day RX Vega open-source support (albeit relying upon an RC kernel and the DC display support wasn't mainlined until Linux 4.15, but open-source patches were available in time for the dGPU launch).
- The ROCm OpenCL runtime was open-sourced albeit as of writing still depends on patches not yet merged to the Linux kernel and LLVM/Clang.
There were a lot of small improvements and many bigger items, so I may have missed a few highlights from the year, if there was anything that excited you about open-source Radeon in 2017 be sure to share in the forums. I'll still be having some more recaps/comparisons/highlight benchmarks in December as well as what I'd like to see in 2018. It's certainly been a hell of a year for the open-source Radeon team with how well their work has ended up coming together for competing with NVIDIA on Linux and the open-source code becoming comparable to their binary driver efforts.