Rust GPU, un set de instrumente pentru dezvoltarea umbrelor în Rust

Compania de dezvoltare a jocurilor Embark Studios a lansat prima versiune experimentală a proiectului Rugină GPU, care are ca scop utilizarea limbajului Rust pentru a dezvolta codul GPU. 

Dorința de a folosi Rugina pentru a scrie programe pentru GPU provine nu numai din caracteristicile de siguranță și performanțe ridicate, dar și a necesității de a obține instrumente moderne pentru a lucra cu pachete și module pentru a îmbunătăți eficiența procesului de dezvoltare.

Compania de dezvoltare Rust GPU Embark Studios folosește și Rust în motorul său de joc și lucrează pentru a facilita schimbul de cod Rust între CPU și GPU.

Dupa parerea lor, istoric, în jocuri, programarea GPU a fost realizată prin scrierea HLSL sau, într-o măsură mai mică, GLSL. Acestea sunt limbaje de programare simple care au evoluat alături de API-urile de redare de-a lungul anilor.

Cu toate acestea, pe măsură ce motoarele de jocuri au evoluat, aceste limbaje nu au oferit mecanisme pentru gestionarea bazelor de coduri mari și, în general, au rămas în urmă comparativ cu alte limbaje de programare.

Deși există în general alternative mai bune pentru ambele limbi, niciuna dintre acestea nu este în măsură să înlocuiască HLSL sau GLSL.

Fie pentru că sunt blocate de furnizor, fie pentru că nu sunt acceptate cu conducta grafică tradițională. Exemple în acest sens includ CUDA și OpenCL. Și, deși s-au încercat să creeze limbaj în acest spațiu, niciunul dintre ei nu a câștigat o tracțiune vizibilă în comunitatea gamedev.

Rust GPU continuă să dezvolte idei din proiectul RLSL, în care s-a încercat crearea unui compilator Rust la intermediarul generic de umbrire SPIR-V, care este propus în API Vulkan și acceptat în OpenGL 4.6.

În stadiul său actual de dezvoltare, Rust GPU vă permite deja să rulați shadere grafice simple și să compilați o porțiune semnificativă din biblioteca standard de bază Rust. În același timp, proiectul este încă departe de a fi gata de utilizare pe scară largă, de exemplu buclele nu sunt încă acceptate de umbrere.

La Embark, ne-am construit propriul motor de joc de la zero în Rust. Avem experiență anterioară în dezvoltarea internă a prototipului RLSL și avem o echipă de ingineri de redare excelenți, care sunt familiarizați cu problemele limbajelor shader actuale, atât din jocuri, motoare de jocuri, cât și din alte industrii. Prin urmare, credem că suntem într-o poziție unică pentru a încerca să rezolvăm această problemă.

Vrem să ne eficientizăm propria dezvoltare internă cu un singur limbaj excelent, să construim o comunitate grafică și un ecosistem open source, să facilităm partajarea codului între GPU și CPU și, cel mai important, să permitem utilizatorilor noștri (viitori) și colegilor dezvoltatori creați mai rapid experiențe captivante și captivante.

Pe baza codului în limbajul Rust, se formează o reprezentare a umbrelor SPIR-V, pentru a căror generație a fost dezvoltat un backend special pentru compilatorul Rust, care funcționează prin analogie cu generatorul de cod cranelift utilizat pentru a compila într-o reprezentare WebAssembly.

Abordarea actuală este de a sprijini API-urile grafice Vulkan și vizualizările SPIR-V, dar generatoarele sunt planificate pentru viitorul vizualizărilor shader DXIL (DirectX) și WGSL (WebGPU). Bazându-se pe Cargo și crates.io, sunt dezvoltate instrumente pentru a dezvolta și publica pachete cu umbrere în format SPIR-V.

În cele din urmă, dacă doriți să aflați mai multe despre acest proiect, puteți verifica detaliile din depozitul de proiecte, link-ul este acesta.

Cât despre cei care sunt interesați să poată cunoaște codul, ar trebui să știe că codul este publicat sub licențele MIT și Apache 2.0 și este posibil să îl obțineți din linkul de mai jos.

Și pot consulta, de asemenea, documentația, care este deja pregătită pentru dezvoltatori, astfel încât să poată lucra pe Linux, Windows și Mac. consultați ghidul de la acest link.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   Autopilot el a spus

    Rugina decolează, sperăm că nu o altă „Scala mortală”.