Ovladač Vulkan nyní používá back-end build ACO od Valve

V kódové základně použité k vytvoření verze Mesa 20.2 ovladač RADV, Vulkan pro čipy AMD přepnuto na backend standardně kompilovat shadery »ACO«, vyvinuté společností Valve jako alternativa ke kompilátoru shaderu LLVM.

Tato specifikovaná změna bylo provedeno s koncem získání zvýšení produktivity her a zkrácení doby spuštění.

Změnit z řadiče RADV do nového backendu bylo možné po dosažení parity ve funkčnosti ACO se starým backendem vyvinutým AMD pro ovladač AMDGPU, který se nadále používá v ovladači RadeonSI OpenGL.

Testování společností Valve ukázalo, že ACO je téměř dvakrát rychlejší než kompilátor sestavování shaderů AMDGPU a demonstruje nárůst FPS v některých hrách, když běží na systémech s ovladačem RADV.

Ovladače AMD OpenGL a Vulkan aktuálně používají překladač shaderů, který je součástí upstreamového projektu LLVM. Tento projekt je obrovský a má mnoho různých cílů a online kompilace shaderů her je jen jedním z nich. 

To může vést k vývojovým kompromisům, kde je zdokonalení funkce specifické pro hru obtížnější, než by tomu bylo jinak, nebo kde jsou funkce specifické pro hru často náhodně porušeny vývojáři LLVM pracujícími na jiných věcech.

Backend z Cílem ACO je zajistit, aby byl kód generován nejoptimálnějším způsobem možné pro shadery herních aplikací a dosáhnout velmi vysoké rychlosti kompilace.

ACO je napsán v C ++, vyvinut s ohledem na použitelnost pro kompilaci JIT, a použít ty rychlé k iteraci přes datové struktury, vyhýbání se tomu, aby struktury založené na ukazatelích, jako jsou propojené seznamy a řetězce, používaly def. Mezilehlá reprezentace kódu je zcela založena na SSA (Single Static Allocation) a umožňuje alokaci záznamů, což přesně spočítá záznam na základě shaderu.

Mezilehlá reprezentace kódu je zcela založena na SSA (Single Static Allocation) a umožňuje alokaci záznamů, což přesně spočítá záznam na základě shaderu.

V současné době jsou podporovány pouze pixely (fragmenty) a vypočítat shadery na samostatných grafických procesorech AMD (dGPU VI +). ACO však již správně sbírá shadery pro všechny testované hry, včetně komplexních shaderů Shadow of the Tomb Raider a Wolfenstein II.

Navrhovaný prototyp ACO pro zkoušku je téměř dvakrát rychlejší než kompilátor shader AMDGPU a demonstruje zvýšení FPS v některých hrách, když běží na systémech s řadičem RADV.

Abychom pochopili trochu více o důležitosti přijetí kódu Valve, je důležité to popředit cílem je zaručit co nejoptimálnější generování kódu pro shadery herních aplikací a také velmi vysokou rychlost kompilace.

Kompilátor shaderu dostupný v Mesa používá komponenty LLVM, Neumožňují dosáhnout požadované rychlosti kompilace a neumožňují plnou kontrolu nad regulačním tokem, který v minulosti již způsobil vážné chyby.

Navíc, vyhýbání se LLVM umožňuje provádět agresivnější analýzu nesrovnalosti a jemnější správa zatížení protokolu, což umožňuje efektivnější generování spustitelných souborů.

Konečně je to také Je důležité si uvědomit, že v tuto chvíli ACO funguje pouze pro řadič Mesa RADV Vulkan. Vývojáři ACO však potvrdili, že jejich dalším krokem bude začít pracovat na rozšíření schopností ACO o podporu ovladače OpenGL RadeonSI, aby v budoucnu a pro tento ovladač mohl ACO nahradit výchozí kompilátor shaderu LLVM. .

Jak moc ti, kteří dávají přednost pokračování backendu, který byl použit dříve z kompilátoru shaderu LLVM se k němu mohou vrátit, stačí změnit proměnnou.

Proměnná prostředí, která je poskytnuta k provedení této změny, je "RADV_DEBUG = llvm".


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   VaryTěžké řekl

    A jak si uživatel vybere, s jakým back-endem bude hra spuštěna? Jaké soubory musí upravit?