Rust GPU, un set di strumenti per lo sviluppo di shader in Rust

La società di sviluppo del gioco Embark Studios ha rilasciato la prima versione sperimentale progetto GPU ruggine, che mira a utilizzare il linguaggio Rust per sviluppare codice GPU. 

Il desiderio di usare Rust per scrivere programmi per GPU deriva non solo dalle caratteristiche di sicurezza e dalle alte prestazioni, ma anche della necessità di ottenere strumenti moderni per lavorare con pacchetti e moduli per migliorare l'efficienza del processo di sviluppo.

Azienda di sviluppo GPU Rust Embark Studios usa anche Rust nel suo motore di gioco e sta lavorando per facilitare lo scambio di codice Rust tra la CPU e la GPU.

In accordo con loro, storicamente, nei giochi, la programmazione GPU è stata eseguita scrivendo HLSL o, in misura minore, GLSL. Si tratta di semplici linguaggi di programmazione che si sono evoluti insieme alle API di rendering nel corso degli anni.

Tuttavia, con l'evoluzione dei motori di gioco, questi linguaggi non hanno fornito meccanismi per trattare basi di codice di grandi dimensioni e in generale sono rimasti indietro rispetto ad altri linguaggi di programmazione.

Sebbene ci siano generalmente alternative migliori per entrambe le lingue, nessuna delle due è in grado di sostituire HLSL o GLSL.

O perché sono bloccati dal provider o perché non sono supportati con la pipeline grafica tradizionale. Esempi di questo includono CUDA e OpenCL. E sebbene siano stati fatti tentativi per creare un linguaggio in questo spazio, nessuno di loro ha guadagnato una notevole trazione nella comunità di gamedev.

Rust GPU continua a sviluppare idee dal progetto RLSL, in cui si è tentato di creare un compilatore Rust per l'intermedio shader generico SPIR-V, proposto nell'API Vulkan e supportato in OpenGL 4.6.

Nella sua attuale fase di sviluppo, la GPU Rust consente già di eseguire semplici shader grafici e compilare una parte significativa della libreria standard di base di Rust. Allo stesso tempo, il progetto è ancora lontano dall'essere pronto per un uso diffuso, ad esempio i loop non sono ancora supportati dagli shader.

In Embark, abbiamo creato il nostro motore di gioco da zero in Rust. Abbiamo una precedente esperienza nello sviluppo interno del prototipo RLSL e abbiamo un team di eccellenti ingegneri di rendering che hanno familiarità con i problemi dei linguaggi shader odierni, sia da giochi, motori di gioco e altri settori. Pertanto, crediamo di essere in una posizione unica per cercare di risolvere questo problema.

Vogliamo ottimizzare il nostro sviluppo interno con un unico grande linguaggio, costruire una comunità grafica ed ecosistema open source, facilitare la condivisione del codice tra GPU e CPU e, soprattutto, consentire ai nostri (futuri) utenti e colleghi sviluppatori avere di più Crea rapidamente esperienze coinvolgenti e coinvolgenti.

Sulla base del codice in linguaggio Rust, si forma una rappresentazione degli shader SPIR-V, per la cui generazione è stato sviluppato uno speciale backend per il compilatore Rust, che funziona per analogia con il generatore di codice cranelift utilizzato per compilare una rappresentazione. WebAssembly.

L'approccio attuale è supportare l'API grafica Vulkan e le viste SPIR-V, ma i generatori sono pianificati per il futuro delle viste shader DXIL (DirectX) e WGSL (WebGPU). Basandosi su Cargo e crates.io, sono in fase di sviluppo strumenti per sviluppare e pubblicare pacchetti con shader in formato SPIR-V.

Infine, se vuoi saperne di più su questo progetto, puoi controllare i dettagli nel repository del progetto, il collegamento è questo.

Per quanto riguarda coloro che sono interessati a poter conoscere il codice, dovrebbero sapere che il codice è pubblicato sotto le licenze MIT e Apache 2.0 ed è possibile ottenerlo dal link sottostante.

E possono anche consultare la documentazione, che è già predisposta per gli sviluppatori in modo che possano lavorare su Linux, Windows e Mac. consulta la guida a questo link.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   Autopilota suddetto

    La ruggine decolla, speriamo non un altro "micidiale Scala".