How big a modern GPU driver gets
Summary
Michael Larabel puts the enormous AMDGPU share of Linux 5.9 into context and shows the complexity of modern graphics support. AMDGPU was one of the largest driver areas in Linux 5.9. The driver supports numerous AMD GPU generations.
Ideas
- A graphics driver manages memory, display, power and compute units.
- Many generated headers describe the registers of different chip generations.
- New GPUs add code while older hardware continues to be supported.
- Line counts mix hand-written logic with automatically generated data.
Insights
- Driver size reflects both hardware complexity and long compatibility periods.
- The amount of code alone measures neither quality nor actual maintenance effort.
- Open drivers make otherwise hidden platform complexity visible.
Facts
- Part of the volume comes from register definitions.
Recommendations
- Separate generated code from manually maintained logic in statistics.
- Test new GPUs together with older generations that are still supported.
References
Links to the original source and the Web Archive open in a new tab.