Rewritten R600g NIR Backend Merged For Mesa 22.2 - Improves Radeon HD 5000/6000 Series
The rewritten NIR back-end for the R600 Gallium3D driver with a focus on improving performance for old Radeon HD 5000/6000 series hardware has been merged! This also allows proper FP64 usage finally for the Radeon HD 6900 "Cayman" series graphics cards.
Gert Wollny with Collabora has been working on this rewritten NIR back-end for some time, which adds a back-end optimizer and scheduler to ensure better code generation. Ultimately this "r600/sfn" code is about providing better performance for this R600g driver for those still on pre-GCN AMD GPUs.
While the R600 driver goes back to the ATI Radeon HD 2000 series, this rewritten NIR back-end has only been designed and tested for the latter Radeon HD 5000 and HD 6000 series. At this time the testing focus was on Cedar and Cayman GPUs -- with Cayman benefiting from hardware FP64 support with this new back-end. It's possible though this back-end could support older Radeon GPUs, but hasn't yet been the case for lack of testing. See the review comments on the code modifications to make if wanting to test the r600/sfn code on other GPUs -- sadly no global environment variable override to easily test this out for other R600/R700 GPUs without rebuilding Mesa to save on time / make it more accessible to users not wanting to muck around with rebuilding Mesa.
See the merge request for the now-merged R600g NIR back-end. Gert has also published a post over on the Collabora blog with more details and also a few benchmark results. I'll be dusting off some old Radeon HD 5000/6000 series graphics cards as time allows and once any follow-up fixes land to see what the performance is like with Mesa 22.2.