Rust GPU, isang hanay ng mga tool para sa pagbuo ng mga shader sa Rust

Ang kumpanya ng pag-unlad ng laro Inilabas ng Embark Studios ang unang pang-eksperimentong paglabas ng proyekto Kalawang GPU, na naglalayong gamitin ang wikang Rust upang bumuo ng GPU code. 

Ang pagnanais na gamitin ang Rust upang sumulat ng mga programa para sa GPU Nagmumula hindi lamang mula sa mga tampok sa kaligtasan at mataas na pagganap, ngunit din ng pangangailangan upang makakuha ng mga modernong tool upang gumana sa mga pakete at modyul upang mapabuti ang kahusayan ng proseso ng pag-unlad.

Ang kumpanya ng pag-unlad ng kalawang GPU na Embark Studios gumagamit din ng Rust sa game engine nito at ito ay gumagana upang mapadali ang palitan ng Rust code sa pagitan ng CPU at ng GPU.

Ayon sa kanila, sa kasaysayan, sa mga laro, ang pagprograma ng GPU ay nagawa sa pamamagitan ng pagsulat ng HLSL o, sa isang mas mababang lawak, GLSL. Ang mga ito ay simpleng mga wika sa pagprograma na umunlad kasama ang pag-render ng mga API sa mga nakaraang taon.

Gayunpaman, habang ang mga engine ng laro ay umunlad, ang mga wikang ito ay hindi nagbigay ng mga mekanismo para sa pagharap sa malalaking mga base ng code, at sa pangkalahatan na-atraso sila kumpara sa ibang mga wika ng programa.

Habang sa pangkalahatan ay may mas mahusay na mga kahalili para sa parehong wika, alinman sa mga ito ay nasa posisyon upang palitan ang HLSL o GLSL.

Alinman dahil na-block sila ng provider o dahil hindi sila sinusuportahan gamit ang tradisyonal na pipeline ng graphics. Kasama sa mga halimbawa nito ang CUDA at OpenCL. At habang ang mga pagtatangka ay ginawa upang lumikha ng wika sa puwang na ito, wala sa kanila ang nakakuha ng kapansin-pansin na traksyon sa pamayanan ng gamedev.

Ang Rust GPU ay patuloy na bumuo ng mga ideya mula sa proyekto ng RLSL, kung saan isang pagtatangka ay ginawa upang lumikha ng isang Rust compiler sa SPIR-V generic shader intermediate, na iminungkahi sa Vulkan API at suportado sa OpenGL 4.6.

Sa kasalukuyang yugto ng pag-unlad na ito, pinapayagan ka ng Rust GPU na magpatakbo ng simpleng mga graphic shader at mag-ipon ng isang makabuluhang bahagi ng pangunahing pamantayang aklatan ng Rust. Sa parehong oras, ang proyekto ay malayo pa rin sa handa para sa laganap na paggamit, halimbawa ang mga loop ay hindi pa sinusuportahan ng mga shader.

Sa Embark, nagtatayo kami ng aming sariling engine ng laro mula sa simula sa Rust. Mayroon kaming naunang karanasan sa panloob na pag-unlad ng prototype ng RLSL at mayroon kaming isang koponan ng mahusay na mga inhinyero sa pag-render na pamilyar sa mga problema ng mga wikang shader ngayon, kapwa mula sa mga laro, game engine at iba pang mga industriya. Samakatuwid, naniniwala kami na nasa isang natatanging posisyon kami upang subukang lutasin ang problemang ito.

Nais naming i-streamline ang aming sariling in-house development na may isang solong mahusay na wika, bumuo ng isang bukas na mapagkukunan ng graphic na komunidad at ecosystem, mapadali ang pagbabahagi ng code sa pagitan ng GPU at CPU, at pinakamahalaga - paganahin ang aming (hinaharap) mga gumagamit at kapwa developer magkaroon ng higit na Mabilis na lumikha ng nakakaengganyo at nakakaengganyong mga karanasan.

Batay sa code sa wikang Rust, isang representasyon ng SPIR-V shaders ay nabuo, para sa kaninong henerasyon ay isang espesyal na backend para sa Rust compiler ang binuo, na gumagana sa pamamagitan ng pagkakatulad sa cranelift code generator na ginamit upang bumuo sa isang representasyon WebAss Assembly.

Ang kasalukuyang diskarte ay upang suportahan ang Vulkan Graphics API at mga pagtingin sa SPIR-V, ngunit ang mga generator ay pinlano para sa hinaharap ng mga pagtingin sa shader ng DXIL (DirectX) at WGSL (WebGPU). Pagbuo sa Cargo at crates.io, ang mga tool ay binuo upang makabuo at mai-publish ang mga pakete na may shader sa format na SPIR-V.

Panghuli, kung nais mong malaman ang tungkol sa proyektong ito, maaari mong suriin ang mga detalye sa lalagyan ng proyekto, ang link ay ito

Tulad ng para sa mga interesadong malaman ang code, dapat nilang malaman na ang code ay nai-publish sa ilalim ng mga lisensya ng MIT at Apache 2.0 at posible na makuha ito mula sa link sa ibaba.

At maaari rin silang kumunsulta sa dokumentasyon, na handa na para sa mga developer upang magtrabaho sila sa Linux, Windows at Mac. kumunsulta sa gabay sa link na ito.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   autopilot dijo

    Ang kalawang ay aalis, sana ay hindi isa pang "nakamamatay na Scala."