Il driver RADV Vulkan è stato modificato per utilizzare il backend di compilazione dello shader ACO

Nella codebase utilizzata per formare la versione Mesa 20.2, effettuata passaggio a RADV, il driver Vulkan per i chip AMD, per utilizzare il backend predefinito per la compilazione degli shader "ACO“, che è stato sviluppato da Valve come alternativa al compilatore shader LLVM. Questa modifica comporterà un aumento delle prestazioni del gioco e una riduzione dei tempi di lancio. Per restituire il vecchio backend, viene fornita la variabile di ambiente "RADV_DEBUG=llvm".

Il passaggio dal driver RADV al nuovo backend è diventato possibile dopo che ACO ha raggiunto la parità di funzionalità con il vecchio backend sviluppato da AMD per il driver AMDGPU, che continua ad essere utilizzato nel driver RadeonSI OpenGL. Test di Valve rivelatoche ACO è quasi due volte più veloce del compilatore shader AMDGPU in termini di velocità di compilazione e dimostra un aumento di FPS in alcuni giochi quando vengono eseguiti su sistemi con il driver RADV.

Il driver RADV Vulkan è stato modificato per utilizzare il backend di compilazione dello shader ACO

Il driver RADV Vulkan è stato modificato per utilizzare il backend di compilazione dello shader ACO

Il backend ACO ha lo scopo di fornire una generazione di codice quanto più ottimale possibile per gli shader delle applicazioni di gioco, oltre a raggiungere una velocità di compilazione molto elevata. ACO è scritto in C++, progettato pensando alla compilazione JIT e utilizza strutture dati iterative veloci, evitando strutture basate su puntatori. La rappresentazione intermedia del codice è interamente basata su SSA (Static Single Assignment) e consente l'allocazione dei registri precalcolando accuratamente il registro in funzione dello shader.

Aggiunta: al momento, ACO funziona solo per il driver Mesa RADV Vulkan. Ma gli sviluppatori ACO confermato, che il prossimo passo sarà iniziare a lavorare sull'espansione delle capacità di ACO per fornire supporto per il driver RadeonSI OpenGL, in modo che in futuro, per questo driver, ACO possa sostituire il compilatore shader LLVM predefinito.

Fonte: opennet.ru

Aggiungi un commento