Bermula hari ini dengan kod Mesa 23.2-devel yang terbaharu, pilihan pembolehubah persekitaran AMD_DEBUG=useaco kini tersedia untuk memberitahu pemacu RadeonSI Gallium3D untuk menggunakan bahagian belakang pengkompil shader ACO Valve dan bukannya bahagian belakang pengkompil shader AMDGPU LLVM untuk jenis shader yang disokong.
Valve telah menghabiskan masa bertahun-tahun mengusahakan bahagian belakang pengkompil ACO sebagai alternatif yang lebih pantas kepada pengkompil shader berasaskan LLVM rasmi AMD yang digunakan oleh RadeonSI, dahulunya oleh RADV, dan juga susunan pengiraan ROCm, dsb. Bahagian belakang pengkompil ACO telah menjadi penting kepada kejayaan pemacu RADV dan menjadikannya pemacu yang hebat untuk pemain Linux di Steam Deck dan mereka yang berada di desktop Linux menikmati grafik Radeon sumber terbuka.
Selama bertahun-tahun terdapat perbincangan untuk membawa ACO ke RadeonSI dan ia perlahan-lahan berlaku. Terima kasih kepada permintaan penggabungan ini oleh Qiang Yu, bahagian teka-teki terbaharu disatukan membolehkan membolehkan Pengkompil ACO dengan pilihan AMD_DEBUG=useaco untuk jenis shader yang disokong.
Tetapi dengan gabungan awal ini, sokongan pengkompil ACO dengan RadeonSI hanyalah untuk pelorek piksel monolitik. Qiang menjelaskan dalam MR:
“Kompilasi ACO boleh didayakan dengan AMD_DEBUG=useaco. Pada masa ini hanya PS monolitik yang disokong. Ini akan menjadi satu perubahan besar untuk menukar semua shader kepada ACO sekaligus, jadi rancangan saya mendayakan satu demi satu untuk semakan dan nyahpepijat yang lebih mudah.”
Dia telah bekerja melalui regresi yang diketahui yang pada asalnya ada untuk pengkompil ACO dengan pelorek piksel berbanding dengan pengkompil LLVM bahagian belakang.
Seronok melihat kumpulan terbaharu kod ACO + RadeonSI yang terdiri daripada beberapa ratus baris kod baharu. Semoga lebih banyak jenis shader akan mula berfungsi tidak lama lagi untuk ACO dengan RadeonSI. Kerja ACO lain yang belum selesai untuk Mesa boleh didapati melalui pertanyaan GitLab ini.