Het RADV Vulkan-stuurprogramma is overgeschakeld naar het gebruik van de ACO shader-compilatie-backend

In de codebasis die werd gebruikt om de Mesa 20.2-release te vormen, geïmplementeerd het overschakelen van RADV, het Vulkan-stuurprogramma voor AMD-chips, om de standaard backend te gebruiken voor het compileren van shaders "ACO“, dat door Valve wordt ontwikkeld als alternatief voor de LLVM-shader-compiler. Deze verandering zal leiden tot betere spelprestaties en een kortere opstarttijd. Om de oude backend te retourneren, is de omgevingsvariabele “RADV_DEBUG=llvm” opgegeven.

Het overschakelen van de RADV-driver naar de nieuwe backend werd mogelijk nadat ACO qua functionaliteit gelijkheid bereikte met de oude backend ontwikkeld door AMD voor de AMDGPU-driver, die nog steeds wordt gebruikt in de RadeonSI OpenGL-driver. Testen door Valve onthulddat ACO bijna twee keer zo snel is als de AMDGPU shader-compiler in termen van compilatiesnelheid en een toename in FPS laat zien in sommige games wanneer deze worden uitgevoerd op systemen met het RADV-stuurprogramma.

Het RADV Vulkan-stuurprogramma is overgeschakeld naar het gebruik van de ACO shader-compilatie-backend

Het RADV Vulkan-stuurprogramma is overgeschakeld naar het gebruik van de ACO shader-compilatie-backend

De ACO-backend is gericht op het genereren van code die zo optimaal mogelijk is voor shaders voor gaming-applicaties, en op het bereiken van een zeer hoge compilatiesnelheid. ACO is geschreven in C++, ontworpen met JIT-compilatie in gedachten, en maakt gebruik van snelle iteratieve datastructuren, waarbij pointer-gebaseerde structuren worden vermeden. De tussenweergave van de code is volledig gebaseerd op SSA (Static Single Assignment) en maakt registertoewijzing mogelijk door het register nauwkeurig vooraf te berekenen, afhankelijk van de shader.

Toevoeging: ACO werkt momenteel alleen voor de Mesa RADV Vulkan-chauffeur. Maar ACO-ontwikkelaars bevestigddat hun volgende stap zal zijn om te gaan werken aan het uitbreiden van de mogelijkheden van ACO ter ondersteuning van het RadeonSI OpenGL-stuurprogramma, zodat ACO in de toekomst voor dit stuurprogramma de standaard LLVM-shader-compiler kan vervangen.

Bron: opennet.ru

Voeg een reactie