Valve hat einen neuen Shader-Compiler für AMD-GPUs vorgestellt

Ventilunternehmen vorgeschlagen Neuer Shader-Compiler auf der Mesa-Entwickler-Mailingliste ACO für den RADV Vulkan-Treiber, positioniert als Alternative zum AMDGPU-Shader-Compiler, der in den RadeonSI- und RADV-OpenGL- und Vulkan-Treibern für AMD-Grafikchips verwendet wird.
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 SSA (Static Single Assignment) und ermöglicht Ihnen die Registerzuweisung durch genaue Vorberechnung des Registers abhängig vom Shader.

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.

Valve hat einen neuen Shader-Compiler für AMD-GPUs vorgestellt

Valve hat einen neuen Shader-Compiler für AMD-GPUs vorgestellt

Source: opennet.ru

Kommentar hinzufügen