Grâce au pilote open-source, le pilote ATI (AMD) R300 Gallium3D au sein de Mesa voit encore de nouvelles optimisations (occasionnelles) pour les cartes graphiques Radeon lancées il y a près de deux décennies.
Le développeur open-source indépendant Pavel Ondračka a décidé d’apporter quelques optimisations au pilote Mesa R300g avec un accent particulier sur l’optimisation des charges de registre A0 (ARR/ARL). L’intention est d’aider les applications/jeux WineD3D, les logiciels Windows qui s’exécutent sur Wine pour la compatibilité Linux et avec le code WineD3D qui redirige les appels Direct3D vers OpenGL. Ces optimisations aident également certains logiciels natifs OpenGL.
Les tests sur les anciennes cartes graphiques ATI RV370 et RV530 ont apporté quelques améliorations dans les shaders générés pour le pilote R300g.
Ces quelques centaines de lignes de refonte du code surviennent près de deux décennies après la première livraison des cartes graphiques de la série Radeon X300. Le pilote R300g a commencé dans les années qui ont suivi, lorsque l’effort graphique open source d’ATI était principalement une affaire d’ingénierie inverse par la communauté et avant qu’AMD ne lance ce qui allait devenir sa stratégie open source de pilote graphique bien considérée.
Ces dernières optimisations du pilote R300 sont maintenant fusionnées dans Mesa 23.2 pour la version stable du trimestre prochain.
Au-delà du code fusionné de Pavel Ondračka, il y a aussi une autre demande de fusion autour copier NTT sur le compilateur R300 pour obtenir plus d’utilisation NIR dans cet ancien pilote plutôt que sa dépendance TGSI. Cela peut ouvrir plus d’optimisations et rendre globalement le pilote R300g plus utile. Bien que gardez à l’esprit que même avec toute l’optimisation de ce pilote, le pilote R300g avec sa prise en charge des cartes graphiques Radeon X300 à Radeon X1000 (R500) sera toujours assez lent par rapport aux normes d’aujourd’hui et ne vous attendez pas à pouvoir tout exécuter comme par magie. le dernier logiciel OpenGL sur ces GPU vintage.