Vulkan Driver benotzt elo Valve's ACO Build Backend

An der Code Base benotzt fir d'Mesa 20.2 Versioun ze bilden, de RADV Chauffer, Vulkan fir AMD Chips op Backend gewiesselt Standard ze kompiléieren shaders »ACO«, entwéckelt vum Valve als Alternativ zum LLVM Shader Compiler.

Dës spezifizéiert Ännerung gouf mam Enn gemaach fir eng Erhéijung vun der Produktivitéit vun de Spiller ze kréien an eng Reduktioun vun hirer Startzäit.

D'Ännerung vum RADV Controller zum neie Backend war méiglech nodeems d'Paritéit an der ACO Funktionalitéit mam alen AMD entwéckelt Backend erreecht gouf fir den AMDGPU Driver, dee weider am RadeonSI OpenGL Driver benotzt gëtt.

Test vu Valve huet gewisen datt ACO bal duebel sou séier ass wéi den AMDGPU Shader Build Compiler a weist eng Erhéijung vun der FPS an e puer Spiller beim Lafen op Systemer mam RADV Driver.

D'AMD OpenGL a Vulkan Treiber benotzen de Moment e Shader Compiler deen Deel vum LLVM Upstream Projet ass. Dëse Projet ass enorm an huet vill verschidden Ziler, an d'Online Kompiléierung vu Spill Shader ass just ee vun hinnen. 

Dat kann zu Entwécklungsofschloss féieren, wou d'Verbesserung vun der Spillspezifescher Funktionalitéit méi schwéier ass wéi et anescht wier, oder wou spillspezifesch Features dacks versehentlech vun de LLVM Entwéckler gebrach ginn, déi un aner Saache schaffen.

De Backend vum ACO soll dofir suergen datt de Code op déi optimal Manéier generéiert gëtt méiglech fir Spill App Shader an erreechen ganz héich Kompiléierungsgeschwindegkeet.

Aco et ass an C ++ geschriwwen, entwéckelt am Aklang mat der Uwendbarkeet fir JIT Kompiléierung, a benotzt déi séier fir iwwer Datestrukturen ze iteréieren, Vermeit vu Pointer-baséiert Strukturen wéi verlinkt Lëschten a Saiten aus der Benotzung vun def. Déi mëttlerweil Representatioun vum Code baséiert komplett op SSA (Single Static Allocation) an erméiglecht d'Allocatioun vun Opzeechnungen, präzis Berechnung vum Rekord baséiert op der Shader.

Déi mëttlerweil Representatioun vum Code baséiert komplett op SSA (Single Static Allocation) an erméiglecht d'Allocatioun vun Opzeechnungen, präzis Berechnung vum Rekord baséiert op der Shader.

De Moment ginn nëmmen Pixel ënnerstëtzt (Fragmenter) a berechnen Shader op diskret AMD GPUs (dGPU VI +). Wéi och ëmmer, ACO sammelt scho richteg Shaders fir all getest Spiller, dorënner komplex Shader vum Shadow of the Tomb Raider a Wolfenstein II.

De proposéierten ACO Prototyp fir den Test et ass bal duebel sou séier wéi den AMDGPU Shader Compiler a weist eng Erhéijung vun der FPS an e puer Spiller wann se op Systeme mam RADV Controller lafen.

Fir e bësse méi iwwer d'Relevanz vun der Adoptioun vum Valve Code ze verstoen, ass et wichteg dat ze virgrënnen d'Zil ass déi optimalst Code Generatioun méiglech ze garantéieren fir Spill App Shader, souwéi ganz héich Kompiléierungsgeschwindegkeet.

De Shader Compiler verfügbar a Mesa benotzt LLVM Komponenten, déi et net erlaben déi gewënschte Kompiléierungsgeschwindegkeet z'erreechen an erlaben net voll Kontroll vum Kontrollfloss, wat an der Vergaangenheet scho grave Feeler verursaacht huet.

Och, vermeiden LLVM mécht et méiglech eng méi aggressiv Analyse ëmzesetzen Ënnerscheeder a méi feine Protokolllastmanagement, fir méi effizient ausführbar Dateigeneratioun z'erméiglechen.

Endlech ass et och Et ass wichteg ze bemierken datt de Moment ACO nëmme fir de Mesa RADV Vulkan Controller funktionnéiert. Awer d'ACO Entwéckler hunn bestätegt datt hiren nächste Schrëtt ass fir un d'Ausbau vun de Fäegkeete vun ACO ze starten fir den OpenGL RadeonSI Treiber z'ënnerstëtzen, sou datt an Zukunft a fir dëse Chauffer den ACO de Standard LLVM Shader Compiler ersetze kann.

Wéivill déi, déi léiwer mam Backend weiderfuere wat virdru benotzt gouf vum LLVM Shader Compiler kënne se drop zréckgoen, se musse just eng Variabel änneren.

D'Ëmweltvariabel déi zur Verfügung gestallt gëtt fir dës Ännerung ze maachen ass "RADV_DEBUG = llvm".


Den Inhalt vum Artikel hält sech un eis Prinzipie vun redaktionnell Ethik. Fir e Feeler ze mellen klickt hei.

E Kommentar, loosst ären

Gitt Äre Kommentar

Är Email Adress gëtt net publizéiert ginn. Néideg Felder sinn markéiert mat *

*

*

  1. Responsabel fir d'Daten: Miguel Ángel Gatón
  2. Zweck vun den Donnéeën: Kontroll SPAM, Kommentarmanagement.
  3. Legitimatioun: Är Zoustëmmung
  4. Kommunikatioun vun den Donnéeën: D'Donnéeë ginn net un Drëttubidder matgedeelt ausser duerch legal Verpflichtung.
  5. Datenspeicher: Datebank gehost vun Occentus Networks (EU)
  6. Rechter: Zu all Moment kënnt Dir Är Informatioun limitéieren, recuperéieren an läschen.

  1.   VaryHeavy sot

    A wéi wielt e Benotzer mat wéi engem Backend e Spill leeft? Wéi eng Dateie muss et änneren?