Rust GPU, en uppsättning verktyg för att utveckla shaders i Rust

Spelutvecklingsföretaget Embark Studios har släppt den första experimentella utgåvan av projektet Rost GPU, som syftar till att använda Rust-språket för att utveckla GPU-kod. 

Lusten att använda Rust för att skriva program för GPU beror inte bara på säkerhetsfunktionerna och höga prestanda, men också av behovet av att skaffa moderna verktyg för att arbeta med paket och moduler för att förbättra utvecklingsprocessens effektivitet.

Rust GPU utvecklingsföretag Embark Studios använder också Rust i sin spelmotor och det arbetar för att underlätta utbytet av Rust-kod mellan CPU och GPU.

Enligt dem, historiskt sett har GPU-programmering i spel gjorts genom att skriva HLSL eller, i mindre utsträckning, GLSL. Dessa är enkla programmeringsspråk som har utvecklats tillsammans med rendering av API: er under åren.

Men eftersom spelmotorer har utvecklats har dessa språk inte tillhandahållit mekanismer för hantering av stora kodbaser och i allmänhet de har släpat efter jämfört med andra programmeringsspråk.

Även om det i allmänhet finns bättre alternativ för båda språken, är ingen av dem i stånd att ersätta HLSL eller GLSL.

Antingen för att de blockeras av leverantören eller för att de inte stöds med den traditionella grafikpipelinen. Exempel på detta inkluderar CUDA och OpenCL. Och medan försök har gjorts för att skapa språk i detta utrymme, har ingen av dem fått märkbar dragkraft i gamedev-samhället.

Rust GPU fortsätter att utveckla idéer från RLSL-projektet, där ett försök gjordes för att skapa en Rust-kompilator till SPIR-V generiska shader-mellanprodukten, vilket föreslås i Vulkan API och stöds i OpenGL 4.6.

I sitt nuvarande utvecklingsstadium tillåter Rust GPU dig redan att köra enkla grafiska skuggor och sammanställa en betydande del av Rust grundläggande standardbibliotek. Samtidigt är projektet fortfarande långt ifrån klart för utbredd användning, till exempel slingor stöds ännu inte av shaders.

På Embark har vi byggt vår egen spelmotor från grunden i Rust. Vi har tidigare erfarenhet av den interna utvecklingen av RLSL-prototypen och vi har ett team av utmärkta renderingstekniker som är bekanta med problemen med dagens skuggspråk, både från spel, spelmotorer och andra industrier. Därför tror vi att vi har en unik position för att försöka lösa detta problem.

Vi vill effektivisera vår egen interna utveckling med ett enda bra språk, bygga en öppen källkodsgrafikgemenskap och ekosystem, underlätta koddelning mellan GPU och CPU och viktigast av allt - möjliggöra våra (framtida) användare och andra utvecklare har mer snabbt skapa engagerande och engagerande upplevelser.

Baserat på koden på Rust-språket bildas en representation av SPIR-V-skuggarna, för vars generation en speciell backend för Rust-kompilatorn har utvecklats, som fungerar analogt med kranlyftkodgeneratorn som används för att kompilera till en representation WebAssemble.

Den nuvarande metoden är att stödja Vulkan Graphics API och SPIR-V-vyer, men generatorer är planerade för framtiden för DXIL (DirectX) och WGSL (WebGPU) skuggvyer. Baserat på Cargo och crates.io utvecklas verktyg för att utveckla och publicera paket med shaders i SPIR-V-format.

Slutligen, om du vill veta mer om detta projekt, kan du kontrollera detaljerna i projektets förvar, länken är den här.

När det gäller dem som är intresserade av att kunna koden bör de veta att koden publiceras under MIT- och Apache 2.0-licenser och det är möjligt att få den från länken nedan.

Och att de också kan läsa dokumentationen som redan är förberedd för utvecklare så att de kan arbeta på Linux, Windows och Mac. se guiden på den här länken.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   Autopilot sade

    Rust tar fart, förhoppningsvis inte ännu en "dödlig Scala".