RADV Vulkan-driveren er blevet skiftet til at bruge ACO shader-kompileringsbackend

I kodebasen, der blev brugt til at danne Mesa 20.2-udgivelsen, implementeret skifter RADV, Vulkan-driveren til AMD-chips, for at bruge standard-backend til kompilering af shaders "ACO“, som udvikles af Valve som et alternativ til LLVM shader compileren. Denne ændring vil føre til øget spilydelse og reduceret lanceringstid. For at returnere den gamle backend, leveres miljøvariablen "RADV_DEBUG=llvm".

Det blev muligt at skifte RADV-driveren til den nye backend, efter at ACO opnåede paritet i funktionalitet med den gamle backend udviklet af AMD til AMDGPU-driveren, som fortsat bruges i RadeonSI OpenGL-driveren. Test med ventil afsløretat ACO er næsten dobbelt så hurtig som AMDGPU shader compileren med hensyn til kompileringshastighed og demonstrerer en stigning i FPS i nogle spil, når de kører på systemer med RADV driveren.

RADV Vulkan-driveren er blevet skiftet til at bruge ACO shader-kompileringsbackend

RADV Vulkan-driveren er blevet skiftet til at bruge ACO shader-kompileringsbackend

ACO-backend er rettet mod at levere kodegenerering, der er så optimal som muligt for spilapplikations-shaders, samt at opnå meget høj kompileringshastighed. ACO er skrevet i C++, designet med JIT-kompilering i tankerne og bruger hurtige iterative datastrukturer, der undgår pointerbaserede strukturer. Den mellemliggende repræsentation af koden er udelukkende baseret på SSA (Static Single Assignment) og tillader registerallokering ved nøjagtigt at forudberegne registret afhængigt af shaderen.

Tilføjelse: I øjeblikket fungerer ACO kun for Mesa RADV Vulkan-driveren. Men ACO udviklere bekræftet, at deres næste skridt vil være at påbegynde arbejdet med at udvide ACOs muligheder for at yde support til RadeonSI OpenGL-driveren, så ACO i fremtiden for denne driver kan erstatte standard LLVM shader-kompileren.

Kilde: opennet.ru

Tilføj en kommentar