Ventilunternehmen
Nach Abschluss der Tests und Verfeinerung der Funktionalität soll ACO zur Aufnahme in die Hauptzusammensetzung von Mesa angeboten werden.
Der von Valve vorgeschlagene Code zielt darauf ab, sicherzustellen, dass die Codegenerierung für Spielanwendungs-Shader so optimal wie möglich ist, und sehr hohe Kompilierungsgeschwindigkeiten zu erreichen. Der Shader-Compiler von Mesa verwendet LLVM-Komponenten, die nicht die gewünschte Kompilierungsgeschwindigkeit erreichen und keine vollständige Kontrollflusskontrolle ermöglichen, was in der Vergangenheit bereits zu schwerwiegenden Fehlern geführt hat. Darüber hinaus ermöglicht die Abkehr von LLVM eine aggressivere Diskrepanzanalyse und eine detailliertere Kontrolle über das Laden von Registern, wodurch effizientere ausführbare Dateien generiert werden können.
ACO ist in C++ geschrieben, wurde unter Berücksichtigung der JIT-Kompilierung entwickelt und verwendet schnell zu iterierende Datenstrukturen, wobei zeigerbasierte Strukturen wie verknüpfte Listen und Def-Use-Ketten vermieden werden. Die Darstellung des Zwischencodes basiert vollständig auf
Derzeit werden auf diskreten AMD-GPUs (dGPU VI+) nur Pixel- (Fragment-) und Compute-Shader unterstützt. Allerdings erstellt ACO bereits korrekt Shader für alle getesteten Spiele, einschließlich komplexer Shader aus Shadow of the Tomb Raider und Wolfenstein II. Der zum Test vorgeschlagene ACO-Prototyp ist fast doppelt so schnell wie der AMDGPU-Shader-Compiler und zeigt bei einigen Spielen eine Steigerung der FPS, wenn sie auf Systemen mit dem RADV-Treiber laufen.
Source: opennet.ru