Vulkan vadītājs tagad izmanto Valve ACO būvēšanas aizmuguri

Kodu bāzē, ko izmanto Mesa 20.2 versijas veidošanai, RADV vadītājs, Vulkan par AMD mikroshēmām pārslēdzās uz aizmugurējo pēc noklusējuma kompilēt ēnotāji »ACO«, ko izstrādājusi Valve kā alternatīva LLVM shader kompilatoram.

Šīs norādītās izmaiņas tika paveikts ar spēļu produktivitātes pieauguma beigām un tā palaišanas laika samazināšana.

Izmaiņas no RADV kontroliera uz jauno aizmuguri bija iespējams pēc paritātes sasniegšanas ACO funkcionalitātē ar veco AMD izstrādāto aizmuguri AMDGPU draiverim, kuru turpina izmantot RadeonSI OpenGL draiverī.

Pārbaude ar Valve parādīja, ka ACO ir gandrīz divreiz ātrāks nekā AMDGPU shader build kompilators un parāda FPS pieaugumu dažās spēlēs, darbojoties sistēmās ar RADV draiveri.

AMD OpenGL un Vulkan draiveri pašlaik izmanto ēnotāja kompilatoru, kas ir daļa no LLVM augšpusējā projekta. Šis projekts ir milzīgs, un tam ir daudz dažādu mērķu, un spēļu ēnotāju tiešsaistes kompilācija ir tikai viens no tiem. 

Tas var novest pie attīstības kompromisiem, kur uzlabot spēles specifisko funkcionalitāti ir grūtāk, nekā tas būtu citādi, vai kur LLVM izstrādātāji, strādājot pie citām lietām, bieži nejauši pārkāpj spēles specifiskās funkcijas.

Programmas aizmugure ACO mērķis ir nodrošināt, ka kods tiek ģenerēts optimālākajā veidā iespējams lietotņu ēnotājiem un sasniegt ļoti lielu kompilācijas ātrumu.

ACO tas ir rakstīts C ++, izstrādāta, paturot prātā JIT apkopošanas piemērotību un izmantojiet ātros, lai atkārtotu datu struktūras, izvairoties no rādītājbāzētām struktūrām, piemēram, saistītajiem sarakstiem un virknēm, no def. Koda starpposma attēlojums pilnībā balstās uz SSA (Single Static Allocation) un ļauj piešķirt ierakstus, precīzi aprēķinot ierakstu, pamatojoties uz ēnotāju.

Koda starpposma attēlojums pilnībā balstās uz SSA (Single Static Allocation) un ļauj piešķirt ierakstus, precīzi aprēķinot ierakstu, pamatojoties uz ēnotāju.

Pašlaik tiek atbalstīti tikai pikseļi (fragmenti) un aprēķināt ēnotājus uz atsevišķiem AMD GPU (dGPU VI +). Tomēr ACO jau pareizi savāc ēnotājus visām pārbaudītajām spēlēm, ieskaitot sarežģītus ēnotājus no Shadow of the Tomb Raider un Wolfenstein II.

Piedāvātais ACO prototips testam tas ir gandrīz divreiz ātrāk nekā AMDGPU shader kompilators un parāda FPS pieaugumu dažās spēlēs, ja tās darbojas sistēmās ar RADV kontrolieri.

Lai nedaudz vairāk izprastu Valve koda pieņemšanas nozīmi, ir svarīgi to priekšplānā norādīt mērķis ir garantēt pēc iespējas optimālāku koda ģenerēšanu spēļu lietotņu ēnotājiem, kā arī ļoti liels kompilēšanas ātrums.

Mesā pieejamais ēnotāja kompilators izmanto LLVM komponentus, Tie neļauj sasniegt vēlamo sastādīšanas ātrumu un neļauj pilnībā kontrolēt vadības plūsmu, kas agrāk jau ir izraisījusi nopietnas kļūdas.

Turklāt, izvairīšanās no LLVM ļauj veikt agresīvāku analīzi neatbilstības un precīzāka žurnāla slodzes pārvaldība, ļaujot efektīvāk izpildāmo failu ģenerēšanu.

Visbeidzot, tas ir arī Ir svarīgi atzīmēt, ka šobrīd ACO darbojas tikai ar Mesa RADV Vulkan kontrolieri. Bet ACO izstrādātāji ir apstiprinājuši, ka viņu nākamais solis būs sākt strādāt pie ACO iespēju paplašināšanas, lai atbalstītu OpenGL RadeonSI draiveri, lai nākotnē un šim draiverim ACO varētu aizstāt noklusējuma LLVM ēnotāja kompilatoru.

Cik daudz tie, kuri dod priekšroku turpināt izmantot iepriekš izmantoto aizmuguri no LLVM shader kompilatora viņi var atgriezties pie tā, viņiem vienkārši jāmaina mainīgais.

Vides mainīgais, kas tiek sniegts, lai veiktu šīs izmaiņas, ir "RADV_DEBUG = llvm".


Komentārs, atstāj savu

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   DažādiSmags teica

    Un kā lietotājs izvēlas, ar kuru aizmuguri spēlēt spēli? Kādi faili tai ir jāpārveido?