Radeon Linux Driver Has A Huge Optimization Two Decades Later For ATI R300~R500 GPUs
The change by longtime open-source graphics driver developer Emma Anholt is for the ATI R300 Gallium3D drivers to request NIR shaders from the Mesa state tracker and to use the NIR-to-TGSI path.
By having the old R300g driver use NIR shaders, this brings the driver closer to parity with the other (newer) drivers and allows for sharing of many performance optimization passes across the drivers thanks to the common NIR intermediate representation. In turn those running the newest open-source driver code on the old ATI GPUs should see faster shader load times and in most cases more efficient shaders that should yield for better gaming performance -- for whatever OpenGL games / applications you still enjoy that can run on such vintage GPUs.
Shader-DB shader testing results with this NIR'ing of R300g is showing very nice improvements.
This should yield better performance for old Radeon 9500/9700/9800 (R300) era graphics cards up through the Radeon X1000 series (R500) graphics cards. It was with the Radeon HD 2000 series where the Mesa R600g driver was introduced for handling the HD 2000 (through HD 6000) series OpenGL driver support while R300g spans R300/R400/R500 generations.
There is some talk of potentially restricting this NIR usage to just the R500 / X1000 series graphics cards though since R300/R400 is already more pressed at its hardware limits. The pending patches also introduce a "use_tgsi" debug option for forcing the older code path for debugging/comparison purposes.
See this merge request for the details of this R300g driver change. Anholt is hoping to land this big improvement for Mesa 22.0 but is hoping to see the community carry out some additional testing to ensure everything is in order for this big improvement to R300g nearly twenty years after the ATI Radeon R300 graphics cards first launched.