Emulator RISC-V ing wangun shader piksel sing ngidini sampeyan mbukak Linux ing VRChat

Asil eksperimen babagan ngatur peluncuran Linux ing ruang 3D virtual saka game online multiplayer VRChat, sing ngidini ngemot model 3D kanthi shader dhewe, wis diterbitake. Kanggo ngleksanakake gagasan sing disusun, emulator arsitektur RISC-V digawe, dieksekusi ing sisih GPU ing wangun shader piksel (fragmen) (VRChat ora ndhukung shaders komputasi lan UAV). Kode emulator diterbitake miturut lisensi MIT.

Emulator adhedhasar implementasine ing basa C, nggawe sing, ing siji, nggunakake pangembangan minimalistic emulator riscv-karat, dikembangakΓ© ing basa Rust. Kode C sing disiapake diterjemahake menyang shader piksel ing HLSL, cocok kanggo dimuat menyang VRChat. Emulator nyedhiyakake dhukungan lengkap kanggo arsitektur pesawat instruksi rv32imasu, unit manajemen memori SV32, lan piranti periferal minimal (UART lan timer). Kapabilitas sing disiapake cukup kanggo mbukak kernel Linux 5.13.5 lan lingkungan baris perintah BusyBox dhasar, sing sampeyan bisa sesambungan langsung saka jagad virtual VRChat.

Emulator RISC-V ing wangun shader piksel sing ngidini sampeyan mbukak Linux ing VRChat
Emulator RISC-V ing wangun shader piksel sing ngidini sampeyan mbukak Linux ing VRChat

Emulator diimplementasikake ing shader kanthi tekstur dinamis dhewe (Unity Custom Render Texture), ditambah karo skrip Udon sing kasedhiya kanggo VRChat, digunakake kanggo ngontrol emulator sajrone eksekusi. Isi RAM lan negara prosesor saka sistem emulated disimpen ing wangun tekstur, ukuran 2048x2048 piksel. Prosesor sing ditiru beroperasi kanthi frekuensi 250 kHz. Saliyane Linux, emulator uga bisa mbukak Micropython.

Emulator RISC-V ing wangun shader piksel sing ngidini sampeyan mbukak Linux ing VRChat

Kanggo nggawe panyimpenan data sing terus-terusan kanthi dhukungan kanggo maca lan nulis, trik nggunakake obyek Kamera sing diikat menyang area persegi dowo sing digawe dening shader lan ngarahake output tekstur sing diwenehake menyang input shader. Kanthi cara iki, piksel apa wae sing ditulis sajrone eksekusi shader piksel bisa diwaca nalika pigura sabanjure diproses.

Nalika nglamar shaders piksel, conto shader kapisah dibukak ing podo karo kanggo saben piksel tekstur. Fitur iki rumit banget implementasine lan mbutuhake koordinasi sing kapisah saka negara kabeh sistem sing ditiru lan perbandingan posisi piksel sing diproses karo negara CPU sing dienkode utawa isi RAM sistem sing ditiru (saben piksel bisa encode 128 bit informasi). Kode shader mbutuhake akeh mriksa, kanggo nyederhanakake implementasine sing digunakake perlpp preprocessor perl.



Source: opennet.ru

Add a comment