RADV Vulkan-driveren byttet til å bruke ACO shader-kompileringsbackend

I kodebasen som ble brukt til å danne Mesa 20.2-utgivelsen, implementert bytte RADV, Vulkan-driveren for AMD-brikker, for å bruke standard backend for kompilering av shaders "ACO", som utvikles av Valve som et alternativ til LLVM shader-kompilatoren. Denne endringen vil føre til økt spillytelse og redusert lanseringstid. For å returnere den gamle backend, er miljøvariabelen "RADV_DEBUG=llvm" gitt.

Å bytte RADV-driveren til den nye backend ble mulig etter at ACO oppnådde paritet i funksjonalitet med den gamle backend utviklet av AMD for AMDGPU-driveren, som fortsatt brukes i RadeonSI OpenGL-driveren. Testing med ventil avslørtat ACO er nesten dobbelt så rask som AMDGPU shader-kompilatoren når det gjelder kompileringshastighet og demonstrerer en økning i FPS i noen spill når de kjøres på systemer med RADV-driveren.

RADV Vulkan-driveren byttet til å bruke ACO shader-kompileringsbackend

RADV Vulkan-driveren byttet til å bruke ACO shader-kompileringsbackend

ACO-backend er rettet mot å gi kodegenerering som er så optimal som mulig for spillapplikasjonsskyggere, i tillegg til å oppnå svært høy kompileringshastighet. ACO er skrevet i C++, designet med tanke på JIT-kompilering, og bruker raske iterative datastrukturer, og unngår pekerbaserte strukturer. Den mellomliggende representasjonen av koden er helt basert på SSA (Static Single Assignment) og tillater registerallokering ved å forhåndsberegne registeret nøyaktig avhengig av skygge.

Tillegg: For øyeblikket fungerer ACO kun for Mesa RADV Vulkan-driveren. Men ACO-utviklere bekreftetat deres neste skritt vil være å begynne arbeidet med å utvide ACOs muligheter for å støtte RadeonSI OpenGL-driveren, slik at ACO i fremtiden, for denne driveren, kan erstatte standard LLVM shader-kompilatoren.

Kilde: opennet.ru

Legg til en kommentar