Rust GPU, sada nástrojů pro vývoj shaderů v Rustu

Společnost pro vývoj her Společnost Embark Studios vydala první experimentální vydání projektu Rez GPU, jehož cílem je použití jazyka Rust vyvíjet kód GPU. 

Touha používat Rust psát programy pro GPU pramení nejen z bezpečnostních prvků a vysokého výkonu, ale také nutnosti získat moderní nástroje pro práci s balíčky a moduly pro zlepšení efektivity vývojového procesu.

Rust GPU vývojová společnost Embark Studios také používá Rust ve svém herním enginu a pracuje na usnadnění výměny Rustova kódu mezi CPU a GPU.

Podle nich, historicky se ve hrách programování GPU provádělo psaním HLSL nebo v menší míře GLSL. Jedná se o jednoduché programovací jazyky, které se v průběhu let vyvinuly společně s vykreslováním API.

Jak se však herní enginy vyvinuly, tyto jazyky neposkytly mechanismy pro řešení velkých kódových základen a obecně ve srovnání s jinými programovacími jazyky zaostali.

I když obecně existují lepší alternativy pro oba jazyky, žádný z nich není schopen nahradit HLSL nebo GLSL.

Buď proto, že jsou blokovány poskytovatelem, nebo proto, že nejsou podporovány s tradičním grafickým kanálem. Mezi příklady patří CUDA a OpenCL. A přestože byly učiněny pokusy o vytvoření jazyka v tomto prostoru, žádný z nich nezískal v komunitě gamedev znatelné trakce.

Rust GPU nadále vyvíjí nápady z projektu RLSL, ve kterém byl učiněn pokus o vytvoření kompilátoru Rust do generického shaderu SPIR-V meziprodukt, který je navržen v rozhraní Vulkan API a podporován v OpenGL 4.6.

V současné fázi vývoje vám Rust GPU již umožňuje spouštět jednoduché grafické shadery a kompilovat významnou část základní standardní knihovny Rustu. Zároveň projekt ještě zdaleka není připraven k širokému použití, například smyčky ještě nejsou podporovány shadery.

V Embarku jsme v Rustu od nuly budovali vlastní herní engine. Máme předchozí zkušenosti s interním vývojem prototypu RLSL a máme tým vynikajících techniků vykreslování, kteří jsou obeznámeni s problémy dnešních shader jazyků, a to jak z her, herních engine a dalších průmyslových odvětví. Proto věříme, že máme jedinečnou pozici, abychom se pokusili tento problém vyřešit.

Chceme zefektivnit náš vlastní vývoj v jediném skvělém jazyce, vybudovat otevřenou grafickou komunitu a ekosystém, usnadnit sdílení kódu mezi GPU a CPU a co je nejdůležitější, umožnit našim (budoucím) uživatelům a kolegům vývojářům mít více Rychle vytvářet poutavé a poutavé zážitky.

Na základě kódu v jazyce Rust je vytvořena reprezentace shaderů SPIR-V, pro jejichž generování byl vyvinut speciální backend pro kompilátor Rust, který pracuje analogicky s generátorem kódu cranelift použitým k kompilaci do reprezentace WebAssembly.

Současným přístupem je podpora grafického rozhraní API Vulkan a zobrazení SPIR-V, ale generátory jsou plánovány pro budoucnost pohledů shaderu DXIL (DirectX) a WGSL (WebGPU). V návaznosti na Cargo a crates.io se vyvíjejí nástroje pro vývoj a publikování balíčků se shadery ve formátu SPIR-V.

Nakonec, pokud se chcete o tomto projektu dozvědět více, můžete zkontrolovat podrobnosti v úložišti projektu, odkaz je tento.

Pokud jde o ty, kteří mají zájem o znalost kódu, měli by vědět, že kód je publikován pod licencemi MIT a Apache 2.0 a je možné jej získat z níže uvedeného odkazu.

Mohou také nahlédnout do dokumentace, která je již pro vývojáře připravena, aby mohli pracovat na Linuxu, Windows a Macu. konzultujte průvodce na tomto odkazu.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   Autopilot řekl

    Rust vzlétne, doufejme, že ne další „smrtící Scala“.