Rust GPU, een set tools voor het ontwikkelen van shaders in Rust

Het spelontwikkelingsbedrijf Embark Studios heeft de eerste experimentele release uitgebracht van het project Roestige GPU, die tot doel heeft de Rust-taal te gebruiken om GPU-code te ontwikkelen. 

De wens om Rust te gebruiken om programma's voor GPU te schrijven komt niet alleen voort uit de veiligheidsvoorzieningen en hoge prestaties, maar ook over de noodzaak om moderne tools te krijgen om met pakketten en modules te werken om de efficiëntie van het ontwikkelingsproces te verbeteren.

Rust GPU-ontwikkelingsbedrijf Embark Studios gebruikt ook Rust in zijn game-engine en het werkt aan het vergemakkelijken van de uitwisseling van Rust-code tussen de CPU en de GPU.

Volgens hen, Historisch in games werd GPU-programmering gedaan door HLSL te schrijven of, in mindere mate, GLSL. Dit zijn eenvoudige programmeertalen die in de loop der jaren samen met rendering-API's zijn geëvolueerd.

Naarmate game-engines zijn geëvolueerd, hebben deze talen echter geen mechanismen geboden voor het omgaan met grote codebases, en in het algemeen, ze zijn achtergebleven in vergelijking met andere programmeertalen.

Hoewel er over het algemeen betere alternatieven zijn voor beide talen, is geen van beide in staat om HLSL of GLSL te vervangen.

Ofwel omdat ze worden geblokkeerd door de provider of omdat ze niet worden ondersteund met de traditionele grafische pijplijn. Voorbeelden hiervan zijn CUDA en OpenCL. En hoewel er pogingen zijn gedaan om in deze ruimte taal te creëren, heeft geen van hen merkbare grip gekregen in de gamedev-gemeenschap.

Rust GPU blijft ideeën uit het RLSL-project ontwikkelen, waarin een poging werd gedaan om een ​​Rust-compiler te maken voor het SPIR-V generieke shader-tussenproduct, dat wordt voorgesteld in de Vulkan API en wordt ondersteund in OpenGL 4.6.

In de huidige ontwikkelingsfase stelt de Rust GPU je al in staat om eenvoudige grafische shaders uit te voeren en een aanzienlijk deel van de standaard standaardbibliotheek van Rust te compileren. Tegelijkertijd is het project nog lang niet klaar voor wijdverbreid gebruik, zo worden loops nog niet ondersteund door shaders.

Bij Embark hebben we onze eigen game-engine helemaal opnieuw gebouwd in Rust. We hebben eerdere ervaring met de in-house ontwikkeling van het RLSL-prototype en we hebben een team van uitstekende rendering-ingenieurs die bekend zijn met de problemen van de hedendaagse shader-talen, zowel uit games, game-engines en andere industrieën. Daarom zijn we van mening dat we ons in een unieke positie bevinden om te proberen dit probleem op te lossen.

We willen onze eigen in-house ontwikkeling stroomlijnen met één geweldige taal, een open source grafische gemeenschap en ecosysteem bouwen, het delen van code tussen GPU en CPU faciliteren en vooral onze (toekomstige) gebruikers en mede-ontwikkelaars in staat stellen heb meer Creëer snel boeiende en boeiende ervaringen.

Op basis van de code in de Rust-taal wordt een weergave van de SPIR-V-shaders gevormd, waarvoor een speciale backend voor de Rust-compiler is ontwikkeld, die naar analogie werkt met de cranelift-codegenerator die wordt gebruikt om te compileren tot een representatie WebAssembly.

De huidige aanpak is om de Vulkan Graphics API- en SPIR-V-weergaven te ondersteunen, maar generatoren zijn gepland voor de toekomst van DXIL (DirectX) en WGSL (WebGPU) shader-weergaven. Voortbouwend op Cargo en crates.io worden tools ontwikkeld om pakketten met shaders in SPIR-V-formaat te ontwikkelen en te publiceren.

Ten slotte, als je meer wilt weten over dit project, kun je de details in de projectrepository bekijken, de link is dit.

Wat betreft degenen die geïnteresseerd zijn in het kennen van de code, ze moeten weten dat de code is gepubliceerd onder de MIT- en Apache 2.0-licenties en dat het mogelijk is om deze te verkrijgen via de onderstaande link.

En ze kunnen ook de documentatie raadplegen, die al is voorbereid voor ontwikkelaars, zodat ze kunnen werken op Linux, Windows en Mac. raadpleeg de gids op deze link.


De inhoud van het artikel voldoet aan onze principes van redactionele ethiek. Klik op om een ​​fout te melden hier.

Een opmerking, laat de jouwe achter

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd.

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   Autopilot zei

    Rust stijgt op, hopelijk niet nog een "dodelijke Scala."