Valve telah membuka kompiler shader baru untuk GPU AMD

Perusahaan Katup disarankan Milis pengembang Mesa memiliki kompiler shader baru ACO untuk driver Vulkan RADV, dapat diposisikan sebagai alternatif kompiler shader AMDGPU yang digunakan pada driver OpenGL dan Vulkan RadeonSI dan RADV untuk chip grafis AMD.
Setelah pengujian selesai dan fungsionalitas diselesaikan, ACO direncanakan akan ditawarkan untuk dimasukkan dalam komposisi utama Mesa.

Kode yang diusulkan Valve bertujuan untuk menyediakan pembuatan kode yang seoptimal mungkin untuk shader aplikasi game, serta mencapai kecepatan kompilasi yang sangat tinggi. Kompiler shader Mesa menggunakan komponen LLVM, yang tidak memberikan kecepatan kompilasi yang diinginkan dan tidak memungkinkan kontrol penuh atas aliran kontrol, yang telah menyebabkan kesalahan serius di masa lalu. Selain itu, beralih dari LLVM memungkinkan penerapan analisis perbedaan yang lebih agresif dan kontrol beban register yang lebih baik, sehingga menghasilkan executable yang lebih efisien.

ACO ditulis dalam C++, dirancang dengan mempertimbangkan kompilasi JIT, dan menggunakan struktur data berulang yang cepat, menghindari struktur berbasis pointer seperti daftar tertaut dan rantai penggunaan def. Representasi kode perantara sepenuhnya didasarkan pada SSA (Penugasan Tunggal Statis) dan memungkinkan alokasi register dengan menghitung terlebih dahulu register secara akurat tergantung pada shadernya.

Saat ini, hanya piksel (fragmen) dan shader komputasi yang didukung pada GPU AMD diskrit (dGPU VI+). Namun, ACO sudah mengumpulkan shader dengan benar untuk semua game yang diuji, termasuk shader kompleks dari Shadow of the Tomb Raider dan Wolfenstein II. Prototipe ACO yang diusulkan untuk pengujian hampir dua kali lebih cepat dari kompiler shader AMDGPU dalam hal kecepatan kompilasi dan menunjukkan peningkatan FPS di beberapa game saat dijalankan pada sistem dengan driver RADV.

Valve telah membuka kompiler shader baru untuk GPU AMD

Valve telah membuka kompiler shader baru untuk GPU AMD

Sumber: opennet.ru

Tambah komentar