Rust GPU, satu set alat untuk mengembangkan shader di Rust

Syarikat pembangunan permainan Embark Studios telah mengeluarkan siaran percubaan pertama projek GPU karat, yang bertujuan untuk menggunakan bahasa Rust untuk membangunkan kod GPU. 

Keinginan untuk menggunakan Rust untuk menulis program untuk GPU berpunca bukan sahaja dari ciri keselamatan dan prestasi tinggi, tetapi juga keperluan untuk mendapatkan alat moden untuk bekerja dengan pakej dan modul untuk meningkatkan kecekapan proses pembangunan.

Syarikat pembangunan Gust Rust Embark Studios juga menggunakan Rust dalam enjin permainannya dan ia berfungsi untuk memudahkan pertukaran kod Rust antara CPU dan GPU.

Menurut mereka, mengikut sejarah, dalam permainan, pengaturcaraan GPU telah dilakukan dengan menulis HLSL atau, pada tahap yang lebih rendah, GLSL. Ini adalah bahasa pengaturcaraan sederhana yang telah berkembang bersama rendering API selama bertahun-tahun.

Namun, ketika mesin permainan telah berkembang, bahasa-bahasa ini tidak menyediakan mekanisme untuk menangani pangkalan kod yang besar, dan secara umum mereka ketinggalan berbanding bahasa pengaturcaraan yang lain.

Walaupun ada alternatif yang lebih baik untuk kedua-dua bahasa, kedua-duanya tidak dapat menggantikan HLSL atau GLSL.

Sama ada kerana mereka disekat oleh penyedia atau kerana tidak disokong dengan saluran grafik tradisional. Contohnya termasuk CUDA dan OpenCL. Dan sementara usaha telah dibuat untuk membuat bahasa di ruang ini, tidak ada satupun dari mereka yang mendapat daya tarikan yang nyata dalam komuniti gamedev.

Rust GPU terus mengembangkan idea dari projek RLSL, di mana percubaan dibuat untuk membuat pengkompil Rust ke SPIR-V generik shader perantaraan, yang diusulkan dalam API Vulkan dan didukung dalam OpenGL 4.6.

Pada tahap perkembangannya sekarang, Rust GPU telah membolehkan anda menjalankan shader grafik sederhana dan menyusun sebahagian besar pustaka standard asas Rust. Pada masa yang sama, projek ini masih belum siap untuk digunakan secara meluas, contohnya gelung belum disokong oleh shader.

Di Embark, kami telah membina mesin permainan kami sendiri dari awal di Rust. Kami mempunyai pengalaman sebelumnya dalam pengembangan dalaman prototaip RLSL dan kami mempunyai pasukan jurutera rendering yang sangat baik yang memahami masalah bahasa shader masa kini, baik dari permainan, mesin permainan dan industri lain. Oleh itu, kami percaya bahawa kami berada dalam kedudukan yang unik untuk berusaha menyelesaikan masalah ini.

Kami ingin menyelaraskan pengembangan dalaman kami sendiri dengan satu bahasa hebat, membina komuniti grafik dan ekosistem sumber terbuka, memudahkan perkongsian kod antara GPU dan CPU, dan yang paling penting, membolehkan pengguna (masa depan) dan rakan pemaju kami mempunyai lebih cepat Membuat pengalaman menarik dan menarik.

Berdasarkan kod dalam bahasa Rust, representasi shader SPIR-V dibentuk, untuk generasi mana backend khas untuk penyusun Rust telah dikembangkan, yang berfungsi dengan analogi dengan penjana kod cranelift yang digunakan untuk menyusun menjadi representasi Perhimpunan Web.

Pendekatan semasa adalah untuk menyokong API grafik Vulkan dan pandangan SPIR-V, tetapi penjana dirancang untuk masa depan paparan shader DXIL (DirectX) dan WGSL (WebGPU). Dengan menggunakan Cargo dan crates.io, alat sedang dikembangkan untuk mengembangkan dan menerbitkan paket dengan shader dalam format SPIR-V.

Akhirnya, jika anda ingin mengetahui lebih lanjut mengenai projek ini, anda boleh menyemak butirannya di repositori projek, pautan adalah ini.

Bagi mereka yang berminat untuk mengetahui kodnya, mereka harus mengetahui bahawa kod tersebut diterbitkan di bawah lesen MIT dan Apache 2.0 dan ada kemungkinan untuk mendapatkannya dari pautan di bawah.

Dan mereka juga dapat melihat dokumentasi, yang sudah disiapkan untuk pembangun agar mereka dapat bekerja di Linux, Windows dan Mac. rujuk panduan di pautan ini.


Kandungan artikel mematuhi prinsip kami etika editorial. Untuk melaporkan ralat, klik di sini.

Komen, tinggalkan komen anda

Tinggalkan komen anda

Alamat email anda tidak akan disiarkan.

*

*

  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.   Autopilot kata

    Karat berlepas, mudah-mudahan bukan "Scala yang mematikan."

bool(benar)