Der RADV Vulkan-Treiber wurde auf die Verwendung des ACO-Shader-Kompilierungs-Backends umgestellt

In der Codebasis, die zur Bildung der Mesa 20.2-Version verwendet wurde, umgesetzt Umstellung von RADV, dem Vulkan-Treiber für AMD-Chips, auf die Verwendung des Standard-Backends zum Kompilieren von Shadern.ACO„, der von Valve als Alternative zum LLVM-Shader-Compiler entwickelt wird. Diese Änderung führt zu einer höheren Spielleistung und einer kürzeren Startzeit. Um das alte Backend zurückzugeben, wird die Umgebungsvariable „RADV_DEBUG=llvm“ bereitgestellt.

Die Umstellung des RADV-Treibers auf das neue Backend wurde möglich, nachdem ACO die gleiche Funktionalität wie das alte Backend erreicht hatte, das von AMD für den AMDGPU-Treiber entwickelt wurde, der weiterhin im RadeonSI OpenGL-Treiber verwendet wird. Tests durch Valve zeigtendass ACO in Bezug auf die Kompilierungsgeschwindigkeit fast doppelt so schnell ist wie der AMDGPU-Shader-Compiler und in einigen Spielen einen Anstieg der FPS zeigt, wenn es auf Systemen mit dem RADV-Treiber läuft.

Der RADV Vulkan-Treiber wurde auf die Verwendung des ACO-Shader-Kompilierungs-Backends umgestellt

Der RADV Vulkan-Treiber wurde auf die Verwendung des ACO-Shader-Kompilierungs-Backends umgestellt

Ziel des ACO-Backends ist es, eine möglichst optimale Codegenerierung für Gaming-Applikations-Shader zu ermöglichen und gleichzeitig eine sehr hohe Kompilierungsgeschwindigkeit zu erreichen. ACO ist in C++ geschrieben, mit Blick auf die JIT-Kompilierung konzipiert und verwendet schnelle iterative Datenstrukturen, wobei zeigerbasierte Strukturen vermieden werden. Die Zwischendarstellung des Codes basiert vollständig auf SSA (Static Single Assignment) und ermöglicht die Registerzuweisung durch genaue Vorberechnung des Registers abhängig vom Shader.

Ergänzung: Derzeit funktioniert ACO nur für den Mesa RADV Vulkan-Treiber. Aber ACO-Entwickler bestätigt, dass ihr nächster Schritt darin bestehen wird, mit der Arbeit an der Erweiterung der ACO-Funktionen zu beginnen, um Unterstützung für den RadeonSI OpenGL-Treiber bereitzustellen, sodass ACO in Zukunft für diesen Treiber den standardmäßigen LLVM-Shader-Compiler ersetzen kann.

Source: opennet.ru

Kommentar hinzufügen