A partire da oggi con il nuovo codice Mesa 23.2-devel, l’opzione della variabile d’ambiente AMD_DEBUG=useaco è ora disponibile per indicare al driver RadeonSI Gallium3D di utilizzare il back-end del compilatore shader ACO di Valve anziché il back-end del compilatore shader AMDGPU LLVM per i tipi di shader supportati.

Valve ha passato anni a lavorare sul back-end del compilatore ACO come alternativa più veloce al compilatore shader ufficiale basato su LLVM di AMD utilizzato da RadeonSI, precedentemente da RADV, e anche allo stack di calcolo ROCm, ecc. Il back-end del compilatore ACO è stato fondamentale per il successo del driver RADV e lo ha reso un ottimo driver per i giocatori Linux su Steam Deck e per quelli sul desktop Linux che si godono la grafica Radeon open source.

Per anni si è parlato di portare ACO su RadeonSI e sta lentamente accadendo. Grazie a questa richiesta di unione di Qiang Yu l’ultimo pezzo del puzzle da mettere insieme consente di abilitare il Compilatore ACO con l’opzione AMD_DEBUG=useaco per i tipi di shader supportati.

Ma con questa fusione iniziale, il supporto del compilatore ACO con RadeonSI è solo per pixel shader monolitici. Qiang spiegato nel MR:

“La compilazione ACO può essere abilitata con AMD_DEBUG=useaco. Attualmente è supportato solo il PS monolitico. Sarebbe un enorme cambiamento passare tutti gli shader ad ACO contemporaneamente, quindi il mio piano è abilitare uno per uno per facilitare la revisione e il debug.”

Ha elaborato le note regressioni che originariamente esistevano per il compilatore ACO con pixel shader rispetto al back-end del compilatore LLVM.

È bello vedere questo ultimo lotto di codice ACO + RadeonSI arrivare con diverse centinaia di righe di nuovo codice. Si spera che presto altri tipi di shader inizieranno a funzionare per ACO con RadeonSI. Altri lavori ACO in attesa per Mesa possono essere trovati tramite questa query GitLab.

Categories: IT Info