Rust GPU, seperangkat alat untuk mengembangkan shader di Rust

Perusahaan pengembang game Embark Studios telah merilis rilis eksperimental pertama dari proyek tersebut GPU karat, yang bertujuan untuk menggunakan bahasa Rust untuk mengembangkan kode GPU. 

Keinginan untuk menggunakan Rust untuk menulis program untuk GPU tidak hanya berasal dari fitur keselamatan dan kinerja tinggi, tetapi juga kebutuhan untuk mendapatkan alat modern untuk bekerja dengan paket dan modul untuk meningkatkan efisiensi proses pengembangan.

Perusahaan pengembangan GPU Rust, Embark Studios juga menggunakan Rust di mesin gimnya dan berfungsi untuk memfasilitasi pertukaran kode Rust antara CPU dan GPU.

Menurut mereka, Secara historis, dalam game, pemrograman GPU dilakukan dengan menulis HLSL atau, pada tingkat yang lebih rendah, GLSL. Ini adalah bahasa pemrograman sederhana yang telah berkembang seiring dengan rendering API selama bertahun-tahun.

Namun, seiring berkembangnya mesin game, bahasa-bahasa ini belum menyediakan mekanisme untuk menangani basis kode yang besar dan, secara umum, mereka tertinggal dibandingkan dengan bahasa pemrograman lainnya.

Meskipun secara umum ada alternatif yang lebih baik untuk kedua bahasa tersebut, tidak satu pun dari keduanya yang dapat menggantikan HLSL atau GLSL.

Entah karena diblokir oleh penyedia atau karena tidak didukung dengan pipeline grafik tradisional. Contohnya termasuk CUDA dan OpenCL. Dan sementara upaya telah dilakukan untuk menciptakan bahasa di ruang ini, tidak satupun dari mereka mendapatkan daya tarik yang nyata di komunitas gamedev.

Rust GPU terus mengembangkan ide dari proyek RLSL, di mana upaya telah dilakukan untuk membuat kompiler Rust ke perantara shader generik SPIR-V, yang diusulkan di Vulkan API dan didukung di OpenGL 4.6.

Pada tahap pengembangannya saat ini, Rust GPU telah memungkinkan Anda untuk menjalankan shader grafis sederhana dan mengkompilasi sebagian besar pustaka standar dasar Rust. Pada saat yang sama, proyek ini masih jauh dari siap untuk digunakan secara luas, misalnya loop belum didukung oleh shader.

Di Embark, kami telah membangun mesin game kami sendiri dari awal di Rust. Kami memiliki pengalaman sebelumnya dalam pengembangan in-house prototipe RLSL dan kami memiliki tim insinyur rendering yang sangat baik yang akrab dengan masalah bahasa shader saat ini, baik dari game, mesin game, dan industri lainnya. Oleh karena itu, kami yakin bahwa kami berada dalam posisi unik untuk mencoba memecahkan masalah ini.

Kami ingin merampingkan pengembangan in-house kami sendiri dengan satu bahasa yang hebat, membangun komunitas dan ekosistem grafis open source, memfasilitasi berbagi kode antara GPU dan CPU, dan yang terpenting - memungkinkan pengguna (masa depan) kami dan sesama pengembang untuk membuat lebih cepat pengalaman yang menarik dan menarik.

Berdasarkan kode dalam bahasa Rust, representasi dari shader SPIR-V dibentuk, yang pembuatan backend khusus untuk kompiler Rust telah dikembangkan, yang bekerja dengan analogi dengan generator kode cranelift yang digunakan untuk mengkompilasi menjadi representasi WebAssembly .

Pendekatan saat ini adalah untuk mendukung API grafik Vulkan dan tampilan SPIR-V, tetapi generator direncanakan untuk masa depan tampilan shader DXIL (DirectX) dan WGSL (WebGPU). Berdasarkan Cargo dan crates.io, alat sedang dikembangkan untuk mengembangkan dan menerbitkan paket dengan shader dalam format SPIR-V.

Terakhir, jika Anda ingin mengetahui lebih banyak tentang proyek ini, Anda dapat memeriksa detailnya di repositori proyek, tautannya adalah ini.

Sedangkan bagi mereka yang tertarik untuk dapat mengetahui kode tersebut, mereka harus mengetahui bahwa kode tersebut diterbitkan di bawah lisensi MIT dan Apache 2.0 dan memungkinkan untuk mendapatkannya. dari tautan di bawah.

Dan mereka juga dapat melihat dokumentasi, yang telah disiapkan untuk pengembang sehingga mereka dapat bekerja di Linux, Windows dan Mac. konsultasikan panduan di tautan ini.


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.   autopilot dijo

    Rust lepas landas, semoga bukan "Scala mematikan" lainnya.