Driver Vulkan sekarang menggunakan backend build ACO Valve

Dalam basis kode yang digunakan untuk membentuk versi Mesa 20.2, pengemudi RADV, Vulkan untuk chip AMD beralih ke backend default untuk dikompilasi shaders »ACO«, dikembangkan oleh Valve sebagai alternatif dari compiler shader LLVM.

Perubahan yang ditentukan ini dilakukan dengan akhir mendapatkan peningkatan produktivitas game dan pengurangan waktu peluncurannya.

Perubahan dari pengontrol RADV ke backend baru dimungkinkan setelah mencapai paritas dalam fungsionalitas ACO dengan backend AMD lama yang dikembangkan untuk driver AMDGPU, yang terus digunakan di driver RadeonSI OpenGL.

Pengujian oleh Valve menunjukkan bahwa ACO hampir dua kali lebih cepat dari kompiler build shader AMDGPU dan menunjukkan peningkatan FPS di beberapa game saat dijalankan pada sistem dengan driver RADV.

Driver AMD OpenGL dan Vulkan saat ini menggunakan kompiler shader yang merupakan bagian dari proyek hulu LLVM. Proyek itu sangat besar dan memiliki banyak tujuan yang berbeda, dan kompilasi online shader game hanyalah salah satunya. 

Hal itu dapat mengarah pada pengorbanan pengembangan, di mana meningkatkan fungsionalitas khusus game lebih sulit daripada yang seharusnya, atau di mana fitur khusus game sering secara tidak sengaja rusak oleh pengembang LLVM yang mengerjakan hal-hal lain.

Bagian belakang ACO bertujuan untuk memastikan bahwa kode dibuat dengan cara yang paling optimal mungkin untuk shader aplikasi game dan mencapai kecepatan kompilasi yang sangat tinggi.

ACO itu ditulis dalam C ++, dikembangkan dengan mengingat penerapan untuk kompilasi JIT, dan menggunakan yang cepat untuk mengulangi struktur data, menghindari struktur berbasis pointer seperti daftar tertaut dan string menggunakan def. Representasi perantara kode sepenuhnya didasarkan pada SSA (Alokasi Statis Tunggal) dan memungkinkan alokasi catatan, dengan tepat menghitung catatan berdasarkan shader.

Representasi perantara kode sepenuhnya didasarkan pada SSA (Alokasi Statis Tunggal) dan memungkinkan alokasi catatan, dengan tepat menghitung catatan berdasarkan shader.

Saat ini hanya piksel yang didukung (fragmen) dan menghitung shader pada GPU AMD yang terpisah (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 ujian hampir dua kali lebih cepat dari kompiler shader AMDGPU dan mendemonstrasikan peningkatan FPS di beberapa game ketika dijalankan pada sistem dengan pengontrol RADV.

Untuk memahami lebih banyak tentang relevansi mengadopsi kode Valve, penting untuk mengedepankannya tujuannya adalah untuk menjamin pembuatan kode yang paling optimal untuk shader aplikasi game serta kecepatan kompilasi yang sangat tinggi.

Kompiler shader yang tersedia di Mesa menggunakan komponen LLVM, Mereka tidak memungkinkan untuk mencapai kecepatan kompilasi yang diinginkan dan tidak memungkinkan kontrol penuh atas aliran kontrol, yang di masa lalu telah menyebabkan kesalahan serius.

Selain itu, menghindari LLVM memungkinkan penerapan analisis yang lebih agresif perbedaan dan manajemen beban log yang lebih baik, memungkinkan pembuatan file yang dapat dieksekusi lebih efisien.

Akhirnya, itu juga Penting untuk dicatat bahwa saat ini ACO hanya berfungsi untuk pengontrol Mesa RADV Vulkan. Tetapi pengembang ACO telah mengkonfirmasi bahwa langkah mereka selanjutnya adalah mulai bekerja untuk memperluas kemampuan ACO untuk mendukung driver OpenGL RadeonSI, sehingga di masa mendatang dan untuk driver ini, ACO dapat menggantikan kompiler shader LLVM default. .

Berapa banyak mereka yang lebih suka melanjutkan backend yang digunakan sebelumnya dari compiler shader LLVM, mereka dapat kembali ke sana, mereka hanya perlu mengubah variabel.

Variabel lingkungan yang disediakan untuk melakukan perubahan ini adalah "RADV_DEBUG = llvm".


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   BervariasiBerat dijo

    Dan bagaimana cara pengguna memilih backend untuk menjalankan game? File apa yang harus dimodifikasi?