In de codebase die is gebruikt voor het genereren van de Mesa 20.2 release, de overschakeling van RADV, de Vulkan-driver voor AMD-chips, op de standaard backend voor shadercompilatie "", dat door Valve wordt ontwikkeld als alternatief voor de LLVM shadercompiler. Deze wijziging zal leiden tot een hogere gameprestaties en kortere laadtijden. Voor het terugschakelen naar de oude backend is er een omgevingsvariabele "RADV_DEBUG=llvm" ingesteld.
De overschakeling van de RADV-driver naar de nieuwe backend werd mogelijk nadat ACO pariteit in functionaliteit bereikte met de oude backend die door AMD voor de AMDGPU-driver werd ontwikkeld, die nog steeds wordt gebruikt in de OpenGL-driver RadeonSI. De tests uitgevoerd door Valve , dat ACO bijna twee keer zo snel is in shadercompilatie ten opzichte van de AMDGPU compiler en toont een stijging van de FPS in sommige games wanneer ze draaien op systemen met de RADV-driver.
De ACO backend is gericht op het genereren van zo optimaal mogelijke code voor shaders van gameapplicaties, evenals het bereiken van een zeer hoge compilatiesnelheid. ACO is geschreven in C++, ontwikkelt zich met het oog op JIT-compilatie en maakt gebruik van efficiƫnte doorzoekstructuren, waarbij pointer-gebaseerde structuren worden vermeden. De tussentijdse representatie van de code is volledig gebaseerd op SSA (Static Single Assignment) en maakt registerdistributie mogelijk door de registertoewijzing op basis van de shader precies vooraf te berekenen.
Aanvulling: Op dit moment werkt ACO alleen voor de Vulkan-driver Mesa RADV. Maar de ACO-ontwikkelaars , dat hun volgende stap het uitbreiden van de mogelijkheden van ACO zal zijn om ondersteuning te bieden voor de OpenGL-driver RadeonSI, zodat in de toekomst ACO ook de LLVM shadercompiler als standaard kan vervangen voor deze driver.
Bron: opennet.ru
