遊戲開發公司 Embark Studios發布了第一個實驗版本 項目的 Rust GPU, 旨在使用Rust語言 開發GPU代碼。
使用Rust的願望 為GPU編寫程序 不僅源於安全功能和高性能, 而且還需要獲得與軟件包和模塊一起使用的現代工具,以提高開發過程的效率。
Rust GPU開發公司Embark Studios 在遊戲引擎中也使用Rust 並且它正在努力促進CPU和GPU之間的Rust代碼交換。
根據他們, 歷史上,在遊戲中,GPU編程是通過編寫HLSL完成的 或在較小程度上包括GLSL。 這些是簡單的編程語言,這些年來隨著渲染API一起發展。
但是,隨著遊戲引擎的發展,這些語言還沒有提供處理大型代碼庫的機制,總的來說, 與其他編程語言相比,它們已經落後了。
雖然通常兩種語言都有更好的替代方法,但是它們都不能代替HLSL或GLSL。
是因為它們被提供程序阻止,還是因為它們不受支持 與傳統的圖形管道。 這樣的示例包括CUDA和OpenCL。 儘管已嘗試在此空間中創建語言,但沒有一個在gamedev社區中獲得明顯的吸引力。
Rust GPU繼續根據RLSL項目開發思想,其中嘗試為SPIR-V通用著色器中間件創建Rust編譯器,該編譯器在Vulkan API中提出,並在OpenGL 4.6中得到支持。
在目前的開發階段,Rust GPU已經允許您運行簡單的圖形著色器並編譯Rust基本標準庫的重要部分。 同時,該項目還沒有為廣泛使用做好準備,例如,著色器尚不支持循環。
在Embark,我們一直在Rust中從頭開始構建自己的遊戲引擎。 我們在RLSL原型的內部開發方面擁有先前的經驗,我們擁有一支由出色的渲染工程師組成的團隊,他們熟悉遊戲,遊戲引擎和其他行業中當今著色器語言的問題。 因此,我們認為我們處於解決這一問題的獨特位置。
我們希望使用一種出色的語言簡化我們自己的內部開發,建立一個開源圖形社區和生態系統,促進GPU和CPU之間的代碼共享,最重要的是-使我們(未來的)用戶和其他開發人員擁有更多快速創建引人入勝的體驗。
基於Rust語言的代碼,形成了SPIR-V著色器的表示形式,為此生成了一個Rust編譯器的特殊後端,該類後端類似於用於編譯成表示形式的Cranelift代碼生成器WebAssembly。
當前的方法是支持Vulkan圖形API和SPIR-V視圖, 但是計劃在未來的DXIL(DirectX)和WGSL(WebGPU)著色器視圖中使用生成器。 基於Cargo和crates.io,正在開發工具來開發和發布帶有SPIR-V格式的著色器的程序包。
最後,如果您想進一步了解該項目,可以在項目存儲庫中查看詳細信息, 鏈接是這個。
對於那些對知道代碼感興趣的人,他們應該知道該代碼是根據MIT和Apache 2.0許可發布的,並且有可能獲取它 從下面的鏈接。
他們還可以查閱已經為開發人員準備的文檔,以便他們可以在Linux,Windows和Mac上工作。 請參閱此鏈接上的指南。
Rust起飛了,希望不會再有“致命的Scala”了。