Rust GPU,一套用於在Rust中開發著色器的工具

遊戲開發公司 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上工作。 請參閱此鏈接上的指南。


本文內容遵循我們的原則 編輯倫理。 要報告錯誤,請單擊 這裡.

發表評論,留下您的評論

發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   自動駕駛儀 他說:

    Rust起飛了,希望不會再有“致命的Scala”了。