A love song for Linux gamers with old GPUs
4 months ago
- #Linux
- #AMD GPU
- #Kernel Development
- AMD GPUs are well-supported on Linux, but older GCN1 (Southern Islands) and GCN2 (Sea Islands) GPUs had issues.
- The author worked on improving the amdgpu kernel driver for these older GPUs to enhance the default Linux user experience.
- RADV (Vulkan driver) already supported GFX6-7 GPUs, but the kernel driver (amdgpu) was not enabled by default, leading to poor user experiences.
- Key issues included display features (analog connectors, DP/HDMI audio), VCE1 video encoding, and power management.
- The author fixed analog connector support in DC (Display Core), addressing issues like flickering, black screens, and incorrect display clocks.
- DP/HDMI audio support was improved, with DP audio now working on Tahiti GPUs for the first time on Linux.
- Power management fixes were implemented, including disabling ASPM on SI GPUs to prevent random hangs.
- VCE1 video encoding support was added, enabling H264 encoding up to 2048 x 1152 on SI GPUs.
- The author acquired multiple SI and CIK GPUs for testing, ensuring broad compatibility.
- The work ensures that older GPUs remain supported, benefiting users who rely on older hardware.
- Future work includes supporting DRM format modifiers, TRAVIS/NUTMEG display bridges, and retiring legacy code.
- The author learned that kernel development is approachable and maintainers are supportive, despite development latency challenges.