Pemandu Vulkan kini menggunakan backend build ACO Valve

Dalam pangkalan kod yang digunakan untuk membentuk versi Mesa 20.2, pemacu RADV, Vulkan untuk cip AMD beralih ke backend lalai untuk menyusun shader »ACO«, yang dikembangkan oleh Valve sebagai alternatif kepada penyusun shader LLVM.

Perubahan yang ditentukan ini dilakukan dengan berakhirnya peningkatan produktiviti permainan dan pengurangan masa pelancarannya.

Perubahannya dari pengawal RADV ke backend baru adalah mungkin setelah mencapai keseimbangan dalam fungsi ACO dengan backend yang dikembangkan AMD lama untuk pemacu AMDGPU, yang terus digunakan dalam pemacu OpenGL RadeonSI.

Pengujian oleh Valve menunjukkan bahawa ACO hampir dua kali lebih cepat daripada pengkompil build shader AMDGPU dan menunjukkan peningkatan FPS dalam beberapa permainan ketika berjalan pada sistem dengan pemacu RADV.

Pemacu AMD OpenGL dan Vulkan kini menggunakan shader compiler yang merupakan sebahagian daripada projek hulu LLVM. Projek itu sangat besar dan mempunyai banyak tujuan yang berbeza, dan penyusunan permainan shader permainan dalam talian adalah salah satu daripadanya. 

Itu boleh menyebabkan pertukaran pembangunan, di mana meningkatkan fungsi khusus permainan lebih sukar daripada yang lain, atau di mana ciri khusus permainan sering dipatahkan secara tidak sengaja oleh pemaju LLVM yang mengerjakan perkara lain.

Latar belakang ACO bertujuan untuk memastikan bahawa kod dihasilkan dengan cara yang paling optimum mungkin untuk shader aplikasi permainan dan mencapai kelajuan penyusunan yang sangat tinggi.

Aco ia ditulis dalam C ++, dibangunkan dengan memperhatikan kesesuaian untuk penyusunan JIT, dan gunakan yang cepat untuk mengulang struktur data, mengelakkan struktur berdasarkan penunjuk seperti senarai terpaut dan rentetan daripada menggunakan def. Perwakilan perantaraan kod sepenuhnya berdasarkan SSA (Single Static Allocation) dan memungkinkan untuk memperuntukkan rekod, dengan tepat mengira rekod berdasarkan shader.

Perwakilan pertengahan kod sepenuhnya berdasarkan SSA (Single Static Allocation) dan memungkinkan untuk peruntukan rekod, dengan tepat mengira rekod berdasarkan shader.

Pada masa ini hanya piksel yang disokong (serpihan) dan mengira shader pada GPU AMD yang diskrit (dGPU VI +). Walau bagaimanapun, ACO telah mengumpulkan shader dengan betul untuk semua permainan yang diuji, termasuk shader kompleks dari Shadow of the Tomb Raider dan Wolfenstein II.

Prototaip ACO yang dicadangkan untuk ujian ia hampir dua kali lebih cepat daripada pengkompil shader AMDGPU dan menunjukkan peningkatan FPS dalam beberapa permainan ketika dijalankan pada sistem dengan pengawal RADV.

Untuk memahami lebih sedikit mengenai kesesuaian penggunaan kod Valve, adalah mustahak untuk mendahulukannya objektifnya adalah untuk menjamin penghasilan kod yang paling optimum untuk shader aplikasi permainan serta kelajuan penyusunan yang sangat tinggi.

Penyusun shader yang terdapat di Mesa menggunakan komponen LLVM, yang tidak memungkinkan untuk mencapai kelajuan kompilasi yang diinginkan dan tidak membenarkan kawalan penuh aliran kawalan, yang pada masa lalu telah menyebabkan kesalahan serius.

Selain itu, mengelakkan LLVM memungkinkan untuk melaksanakan analisis yang lebih agresif percanggahan dan pengurusan beban log yang lebih baik, memungkinkan penjanaan fail pelaksanaan yang lebih cekap.

Akhirnya, ia juga Penting untuk diperhatikan bahawa pada masa ini ACO hanya berfungsi untuk pengawal Mesa RADV Vulkan. Tetapi pembangun ACO telah mengesahkan bahawa langkah seterusnya adalah memulakan usaha mengembangkan keupayaan ACO untuk menyokong pemacu OpenGL RadeonSI, sehingga pada masa akan datang dan untuk pemacu ini, ACO dapat menggantikan penyusun shader LLVM lalai. .

Berapa banyak mereka yang lebih suka meneruskan backend yang pernah digunakan sebelumnya dari penyusun shader LLVM, mereka dapat kembali ke sana, mereka hanya perlu menukar pemboleh ubah.

Pemboleh ubah persekitaran yang disediakan untuk membuat perubahan ini adalah "RADV_DEBUG = llvm".


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   VaryHeavy kata

    Dan bagaimana pengguna memilih backend untuk menjalankan permainan? Fail apa yang perlu diubah suai?