Ovládač Vulkan teraz používa backend ACO buildu Valve

V kódovej základni použitej na vytvorenie verzie Mesa 20.2 vodič RADV, Vulkan pre čipy AMD prešiel na backend predvolene kompilovať shadery »ACO«, vyvinuté spoločnosťou Valve ako alternatíva ku kompilátoru shaderov LLVM.

Táto špecifikovaná zmena sa uskutočnilo na konci dosiahnutia zvýšenia produktivity hier a skrátenie času jeho uvedenia.

Zmena z radiča RADV do nového backendu bolo možné po dosiahnutí parity vo funkcii ACO so starým backendom vyvinutým AMD pre ovládač AMDGPU, ktorý sa naďalej používa v ovládači RadeonSI OpenGL.

Testovanie spoločnosťou Valve ukázalo, že ACO je takmer dvakrát rýchlejší ako kompilátor na zostavovanie shaderov AMDGPU a demonštruje zvýšenie FPS v niektorých hrách, keď beží na systémoch s ovládačom RADV.

Ovládače AMD OpenGL a Vulkan v súčasnosti používajú shaderový kompilátor, ktorý je súčasťou projektu LLVM upstream. Tento projekt je obrovský a má veľa rôznych cieľov. Online kompilácia shaderov hier je len jedným z nich. 

To môže viesť k vývojovým kompromisom, pri ktorých je vylepšenie konkrétnej hernej funkcionality ťažšie, ako by to bolo inak, alebo v prípade, že herné herné vlastnosti sú často omylom narušené vývojármi LLVM pracujúcimi na iných veciach.

Backend z Cieľom ACO je zabezpečiť, aby bol kód generovaný najoptimálnejším spôsobom shadery herných aplikácií a dosiahnuť veľmi vysokú rýchlosť kompilácie.

ACO je napísaný v C ++, vyvinuté so zreteľom na použiteľnosť pre kompiláciu JIT, a pomocou rýchlych iterovať nad dátovými štruktúrami, vyhýbanie sa používaniu def. štruktúr založených na ukazovateľoch, ako sú prepojené zoznamy a reťazce Stredná reprezentácia kódu je úplne založená na SSA (Single Static Allocation) a umožňuje alokáciu záznamov s presným výpočtom záznamu na základe shaderu.

Stredná reprezentácia kódu je úplne založená na SSA (Single Static Allocation) a umožňuje alokáciu záznamov s presným výpočtom záznamu na základe shaderu.

Momentálne sú podporované iba pixely (fragmenty) a vypočítať shadery na samostatných grafických procesoroch AMD (dGPU VI +). ACO však už správne zhromažďuje shadery pre všetky testované hry vrátane komplexných shaderov od Shadow of the Tomb Raider a Wolfenstein II.

Navrhovaný prototyp ACO na skúšku je takmer dvakrát rýchlejší ako kompilátor shader AMDGPU a demonštruje zvýšenie FPS v niektorých hrách, keď je spustený na systémoch s radičom RADV.

Aby sme pochopili niečo viac o dôležitosti prijatia kódu spoločnosti Valve, je dôležité to zdôrazniť cieľom je zaručiť čo najoptimálnejšie generovanie kódu pre shadery herných aplikácií, ako aj veľmi vysokú rýchlosť kompilácie.

Kompilátor shaderov dostupný v aplikácii Mesa používa komponenty LLVM, ktoré neumožňujú dosiahnuť požadovanú rýchlosť kompilácie a neumožňujú úplnú kontrolu nad riadiacim tokom, ktorý už v minulosti spôsoboval vážne chyby.

Okrem toho, vyhnúť sa LLVM umožňuje vykonať agresívnejšiu analýzu nezrovnalosti a jemnejšia správa načítania protokolov, čo umožňuje efektívnejšie generovanie spustiteľných súborov.

Nakoniec je to tiež Je dôležité si uvedomiť, že v súčasnosti ACO funguje iba pre radič Mesa RADV Vulkan. Vývojári ACO ale potvrdili, že ich ďalším krokom bude zahájenie prác na rozšírení schopností ACO o podporu OpenGL RadeonSI driveru, aby v budúcnosti a pre tento driver mohol ACO nahradiť predvolený kompilátor shadera LLVM .

Koľko tí, ktorí radšej pokračujú v backende, ktorý bol použitý predtým z kompilátora shaderu LLVM sa k nemu môžu vrátiť, stačí zmeniť premennú.

Premenná prostredia, ktorá sa poskytuje na vykonanie tejto zmeny, je "RADV_DEBUG = llvm".


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   VaryTažké dijo

    A ako si používateľ vyberie, s ktorým backendom bude hrať hru? Aké súbory musí upraviť?