RISC-V emuladorea, pixel itzaltzaile baten moduan, Linux VRChat-en exekutatzeko aukera ematen duena

VRChat joko anitzeko online jokoaren 3D espazio birtualean Linux-en abiaraztearen antolatzeko esperimentu baten emaitzak argitaratu dira, 3D ereduak beren itzalekin kargatzeko aukera ematen duena. Ideia ezartzeko, RISC-V arkitekturaren emuladore bat sortu zen, GPU aldean exekutatuta pixel (fragmentua) itzaltzaile moduan (VRChat-ek ez du konputaziozko itzalarik eta UAV onartzen). Emulatzaile kodea MIT lizentziapean argitaratzen da.

Emuladorea C lengoaian inplementazio batean oinarritzen da, eta horren sorrerak, berriz, Rust hizkuntzan garatutako riscv-rust emulatzaile minimalistaren garapenak erabili zituen. Prestatutako C kodea HLSL-ko pixel-shader batera itzultzen da, VRChat-en kargatzeko egokia. Emuladoreak rv32imasu instrukzio-multzoaren arkitekturarako, SV32 memoria kudeatzeko unitaterako eta periferikoen (UART eta tenporizadorea) gutxieneko multzorako laguntza osoa eskaintzen du. Prestatutako gaitasunak nahikoak dira Linux kernel 5.13.5 eta BusyBox komando-lerroko oinarrizko ingurunea kargatzeko, zeinekin zuzenean elkarreragin dezakezun VRChat mundu birtualetik.

RISC-V emuladorea, pixel itzaltzaile baten moduan, Linux VRChat-en exekutatzeko aukera ematen duena
RISC-V emuladorea, pixel itzaltzaile baten moduan, Linux VRChat-en exekutatzeko aukera ematen duena

Emuladorea itzalean inplementatzen da bere testura dinamikoaren moduan (Unity Custom Render Texture), VRChat-erako emandako Udon scriptekin osatua, emuladorea bere exekuzioan kontrolatzeko erabiltzen dena. RAMaren edukia eta emulatutako sistemaren prozesadorearen egoera ehundura moduan gordetzen dira, 2048x2048 pixeleko tamainan. Emulatutako prozesadoreak 250 kHz-ko maiztasunean funtzionatzen du. Linuxez gain, emuladoreak Micropython ere exekutatu dezake.

RISC-V emuladorea, pixel itzaltzaile baten moduan, Linux VRChat-en exekutatzeko aukera ematen duena

Datu-biltegiratze iraunkorrak irakurtzeko eta idazteko laguntzarekin sortzeko, trikimailu bat da itzalak sortutako eremu angeluzuzenari lotuta Kamera objektu bat erabiltzea eta errendatutako ehunduraren irteera itzalgailuaren sarrerara zuzentzea. Horrela, pixel shader exekuzioan idatzitako edozein pixel irakur daiteke hurrengo fotograma prozesatzen denean.

Pixel-haderak aplikatzean, testura-pixel bakoitzerako itzal-instantzia bereizi bat abiarazten da paraleloan. Ezaugarri honek inplementazioa nabarmen zailtzen du eta emulatutako sistema osoaren egoeraren koordinazio bereizia eskatzen du eta prozesatutako pixelaren posizioa bertan kodetutako PUZaren egoerarekin edo emulatutako sistemaren RAM edukiarekin (pixel bakoitzak 128 kodetu dezake). informazio zatiak). Shader kodeak egiaztapen kopuru handi bat sartzea eskatzen du, perl aurreprozesadorea perlpp erabili den inplementazioa errazteko.



Iturria: opennet.ru

Gehitu iruzkin berria