Vulkan-driveren bruker nå Valves ACO build-backend

I kodebasen som brukes til å danne Mesa 20.2-versjonen, RADV-sjåføren, Vulkan for AMD-sjetonger byttet til backend standard å kompilere shaders »ACO«, utviklet av Valve som et alternativ til LLVM shader-kompilatoren.

Denne spesifiserte endringen ble gjort med slutten på å oppnå en økning i produktiviteten til spillene og en reduksjon i lanseringstiden.

endring fra RADV-kontroller til ny backend var mulig etter å ha oppnådd paritet i ACO-funksjonalitet med den gamle AMD-utviklede backend for AMDGPU-driveren, som fortsatt brukes i RadeonSI OpenGL-driveren.

Testing av Valve viste at ACO er nesten dobbelt så rask som AMDGPU shader build-kompilatoren og viser en økning i FPS i noen spill når du kjører på systemer med RADV-driveren.

AMD OpenGL og Vulkan-driverne bruker for øyeblikket en skyggekompilator som er en del av LLVM-oppstrøms-prosjektet. Det prosjektet er stort og har mange forskjellige mål, og den online samlingen av game shaders er bare en av dem. 

Det kan føre til kompromisser for utvikling, der forbedring av spillspesifikk funksjonalitet er vanskeligere enn ellers, eller hvor spillspesifikke funksjoner ofte blir ødelagt av LLVM-utviklere som jobber med andre ting.

Bakenden av ACO har som mål å sikre at koden genereres på den mest optimale måten mulig for sky-app-spillere og oppnår veldig høy kompileringshastighet.

ACO det er skrevet i C ++, utviklet med tanke på anvendeligheten for JIT-kompilering, og bruk de raske til å iterere over datastrukturer, unngå pekerbaserte strukturer som koblede lister og strenger fra å bruke def. Den mellomliggende representasjonen av koden er helt basert på SSA (Single Static Allocation) og tillater tildeling av poster, nøyaktig beregning av posten basert på skyggen.

Den mellomliggende representasjonen av koden er helt basert på SSA (Single Static Allocation) og tillater tildeling av poster, nøyaktig beregning av posten basert på skyggen.

Foreløpig støttes bare piksler (fragmenter) og bereg skyggeleggere på diskrete AMD-GPUer (dGPU VI +). ACO samler imidlertid allerede riktig skyggeleggere for alle spill som er testet, inkludert komplekse skyggelister fra Shadow of the Tomb Raider og Wolfenstein II.

Den foreslåtte ACO-prototypen for testen det er nesten dobbelt så raskt som AMDGPU shader-kompilatoren og viser en økning i FPS i noen spill når de kjøres på systemer med RADV-kontrolleren.

For å forstå litt mer om relevansen av å ta i bruk Valves kode, er det viktig å forgrense det målet er å garantere en mest mulig optimal kodegenerering for game app shaders, samt veldig høy kompileringshastighet.

Shader-kompilatoren tilgjengelig i Mesa bruker LLVM-komponenter, som ikke tillater å oppnå ønsket kompileringshastighet og ikke tillater full kontroll av kontrollflyten, noe som tidligere allerede har forårsaket alvorlige feil.

Videre å unngå LLVM gjør det mulig å implementere en mer aggressiv analyse avvik og finere loggstyringsadministrasjon, noe som muliggjør mer effektiv generering av kjørbar fil.

Endelig er det også Det er viktig å merke seg at ACO for øyeblikket bare fungerer for Mesa RADV Vulkan-kontrolleren. Men ACO-utviklere har bekreftet at deres neste skritt vil være å begynne å jobbe med å utvide ACOs muligheter for å støtte OpenGL RadeonSI-driver, slik at ACO i fremtiden og for denne driveren kan erstatte standard LLVM-skyggekompilator.

Hvor mye de som foretrekker å fortsette med backend som tidligere ble brukt fra LLVM shader-kompilatoren, kan de gå tilbake til det, de må bare endre en variabel.

Miljøvariabelen som er gitt for å gjøre denne endringen er "RADV_DEBUG = llvm".


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   Varierende sa

    Og hvordan velger en bruker hvilken backend de skal kjøre et spill med? Hvilke filer har den å endre?