Firma Valve
Po zakończeniu testów i sfinalizowaniu funkcjonalności planuje się zaoferowanie ACO do włączenia do głównego zestawu Mesa.
Kod zaproponowany przez Valve ma na celu zapewnienie możliwie optymalnej generacji kodu dla shaderów aplikacji do gier, a także osiągnięcie bardzo dużej szybkości kompilacji. Kompilator shaderów Mesy wykorzystuje komponenty LLVM, które nie zapewniają pożądanej szybkości kompilacji i nie pozwalają na pełną kontrolę nad przepływem sterowania, co w przeszłości powodowało poważne błędy. Ponadto odejście od LLVM umożliwia wdrożenie bardziej agresywnej analizy rozbieżności i dokładniejszej kontroli obciążenia rejestru, co pozwala na generowanie bardziej wydajnych plików wykonywalnych.
ACO jest napisany w C++, zaprojektowany z myślą o kompilacji JIT i wykorzystuje szybkie iteracyjne struktury danych, unikając struktur opartych na wskaźnikach, takich jak połączone listy i łańcuchy def-use. Pośrednia reprezentacja kodu jest w całości oparta na
Obecnie na dyskretnych procesorach graficznych AMD (dGPU VI+) obsługiwane są tylko shadery pikseli (fragmentów) i obliczeń obliczeniowych. Jednak ACO już poprawnie zbiera shadery dla wszystkich testowanych gier, w tym złożone shadery z Shadow of the Tomb Raider i Wolfenstein II. Zaproponowany do testów prototyp ACO jest prawie dwukrotnie szybszy od kompilatora shaderów AMDGPU pod względem szybkości kompilacji i wykazuje wzrost FPS w niektórych grach przy uruchomieniu na systemach ze sterownikiem RADV.
Źródło: opennet.ru