Natiijooyinka tijaabada ururka bilaabista ayaa la daabacay Linux Gudaha booska 3D ee internetka ee ciyaarta badan ee VRChat, kaas oo u oggolaanaya rarista moodooyinka 3D iyagoo wata shaders-kooda. Si loo hirgeliyo fikraddan, waxaa la sameeyay emulator qaab dhismeedka RISC-V ah, oo ku shaqeynaya GPU-ga oo ah shader pixel (jajab ah) (VRChat ma taageerto shaders-ka kombiyuutarka ama UAV). Koodhka emulator-ka waxaa lagu daabacay shatiga MIT.
Emulator-ku wuxuu ku salaysan yahay hirgelinta C, kaas oo, isna, u adeegsanaya shaqada emulator-ka riscv-rust-ka minimalist, ee lagu sameeyay Rust. Koodhka C ee la diyaariyey waxaa loo tarjumay shader pixel ah oo ku jira HLSL, oo ku habboon in lagu shubo VRChat. Emulator-ku wuxuu bixiyaa taageero buuxda oo loogu talagalay qaab-dhismeedka tilmaamaha rv32imasu, cutubka maaraynta xusuusta SV32, iyo qalab yar oo loogu talagalay qaybaha (UART iyo saacad). Awoodahani waxay ku filan yihiin rarista kernel-ka. Linux 5.13.5 iyo jawiga aasaasiga ah ee BusyBox line line, kaas oo si toos ah loola falgeli karo adduunka casriga ah ee VRChat.


Emulator-ka waxaa lagu hirgeliyaa qaab shader ah oo qaabaysan oo u gaar ah (Unity Custom Render Texture), oo lagu kabo qoraallada Udon ee loo bixiyay VRChat, kuwaas oo loo isticmaalo in lagu xakameeyo emulator-ka inta lagu jiro fulintiisa. Waxyaabaha ku jira RAM-ka iyo xaaladda processor-ka ee nidaamka la dayacay waxaa lagu kaydiyaa qaab dhismeed cabbirkiisu yahay 2048x2048 pixels. Processor-ka la dayacay wuxuu ku shaqeeyaa inta jeer ee 250 kHz. Intaa waxaa dheer, Linux Micropython waxaa sidoo kale lagu shaqeyn karaa emulator-ka.

Si loo abuuro kayd xog joogto ah oo lagu taageerayo akhriska iyo qorista, khiyaano ayaa ah in la isticmaalo shay kamarad ku xidhan aag leydi ah oo uu soo saaray hadhku oo ku toosiyo wax-soo-saarka qaab-dhismeedka la sameeyay si galinta hadhka. Sidan, pixel kasta oo la qoray inta lagu guda jiro fulinta shader pixel waa la akhriyi karaa marka qaabka soo socda la farsameeyo.
Markaad codsanayso shader pixels, tusaale shader gooni ah ayaa la bilaabay si barbar socda pixel texture kasta. Habkani wuxuu si weyn u adkeynayaa hirgelinta wuxuuna u baahan yahay iskudubarid gaar ah oo ku saabsan xaaladda nidaamka la isku dayay oo dhan iyo isbarbardhigga booska pixel-ka la farsameeyay iyo xaaladda CPU ee ku dhex qoran ama waxa ku jira RAM ee nidaamka ku dayashada ku qor 128-bit oo macluumaad ah). Koodhka hadhka wuxuu u baahan yahay in lagu daro tiro aad u badan oo jeegag ah, si loo fududeeyo hirgelinta kaas oo perl preprocessor perlpp la isticmaalay.

Source: opennet.ru
