Le pilote RADV Vulkan a été modifié pour utiliser le backend de compilation du shader ACO.

Dans la base de code utilisée pour former la version Mesa 20.2, réalisé changer RADV, le pilote Vulkan pour les puces AMD, pour utiliser le backend par défaut pour la compilation des shaders "ACO», qui est développé par Valve comme alternative au compilateur de shader LLVM. Ce changement entraînera une augmentation des performances du jeu et une réduction du temps de lancement. Pour renvoyer l'ancien backend, la variable d'environnement « RADV_DEBUG=llvm » est fournie.

Le passage du pilote RADV au nouveau backend est devenu possible après qu'ACO ait atteint la parité de fonctionnalité avec l'ancien backend développé par AMD pour le pilote AMDGPU, qui continue d'être utilisé dans le pilote RadeonSI OpenGL. Test par vanne a montréque l'ACO est presque deux fois plus rapide que le compilateur de shader AMDGPU en termes de vitesse de compilation et démontre une augmentation des FPS dans certains jeux lorsqu'ils sont exécutés sur des systèmes avec le pilote RADV.

Le pilote RADV Vulkan a été modifié pour utiliser le backend de compilation du shader ACO.

Le pilote RADV Vulkan a été modifié pour utiliser le backend de compilation du shader ACO.

Le backend ACO vise à fournir une génération de code aussi optimale que possible pour les shaders d'applications de jeux, ainsi qu'à atteindre une vitesse de compilation très élevée. ACO est écrit en C++, conçu pour la compilation JIT et utilise des structures de données itératives rapides, évitant les structures basées sur des pointeurs. La représentation intermédiaire du code est entièrement basée sur SSA (Static Single Assignment) et permet l'allocation de registre en pré-calculant précisément le registre en fonction du shader.

Ajout : Pour le moment, ACO ne fonctionne que pour le pilote Mesa RADV Vulkan. Mais les développeurs ACO confirmé, que leur prochaine étape sera de commencer à travailler sur l'extension des capacités d'ACO pour fournir la prise en charge du pilote RadeonSI OpenGL, afin qu'à l'avenir, pour ce pilote, ACO puisse remplacer le compilateur de shader LLVM par défaut.

Source: opennet.ru

Ajouter un commentaire