Im Code-Basis, die zur Erstellung der Mesa 20.2-Version verwendet wird, das RADV umgeschaltet, den Vulkan-Treiber fĂŒr AMD-Chips, auf die standardmĂ€Ăige Nutzung des "" Backends zur Shaderkompilierung, das von Valve als Alternative zum LLVM-Shader-Compiler entwickelt wird. Diese Ănderung wird die Leistung von Spielen erhöhen und die Ladezeiten verkĂŒrzen. Um zum alten Backend zurĂŒckzukehren, ist die Umgebungsvariable "RADV_DEBUG=llvm" vorgesehen.
Das Umschalten des RADV-Treibers auf das neue Backend wurde möglich, nachdem ACO in Bezug auf die FunktionalitĂ€t ParitĂ€t mit dem alten Backend erreicht hat, das von AMD fĂŒr den AMDGPU-Treiber entwickelt wurde und weiterhin im OpenGL-Treiber RadeonSI verwendet wird. Die von Valve durchgefĂŒhrte Testung , dass ACO den AMDGPU-Shader-Compiler in Bezug auf die Kompilierungsgeschwindigkeit fast um das Doppelte ĂŒbertrifft und in einigen Spielen eine Erhöhung der FPS auf Systemen mit dem RADV-Treiber zeigt.
Das ACO-Backend zielt darauf ab, eine möglichst optimale Codegenerierung fĂŒr Shader von Spielanwendungen zu gewĂ€hrleisten und eine sehr hohe Kompilierungsgeschwindigkeit zu erreichen. ACO ist in C++ geschrieben, wird mit Blick auf die mögliche Anwendung fĂŒr JIT-Kompilierung entwickelt und nutzt schnelle Datenstrukturen zum Durchsuchen, um pointerbasierte Strukturen zu vermeiden. Die ZwischenreprĂ€sentation des Codes basiert vollstĂ€ndig auf SSA (Static Single Assignment) und ermöglicht eine prĂ€zise Registerzuteilung, indem sie die Register entsprechend dem Shader vorab berechnet.
Zusatz: Derzeit funktioniert ACO nur fĂŒr den Vulkan-Treiber Mesa RADV. Aber die Entwickler von ACO , dass ihr nĂ€chster Schritt sein wird, mit der Erweiterung der Funktionen von ACO zu beginnen, um die UnterstĂŒtzung des OpenGL-Treibers RadeonSI zu gewĂ€hrleisten, damit ACO in Zukunft auch fĂŒr diesen Treiber den LLVM-Shader-Compiler standardmĂ€Ăig ersetzen kann.
Quelle: opennet.ru
