A emulator RISC-V ni irisi shader pixel ti o fun ọ laaye lati ṣiṣe Linux ni VRChat

Awọn abajade ti idanwo lori siseto ifilọlẹ Linux ni aaye 3D foju foju ti ere ori ayelujara pupọ VRChat, eyiti o fun laaye ikojọpọ awọn awoṣe 3D pẹlu awọn iboji tiwọn, ti ṣe atẹjade. Lati ṣe imuse ero ti o loyun, a ṣẹda emulator ti faaji RISC-V, ti a ṣe ni ẹgbẹ GPU ni irisi piksẹli (ajẹku) shader (VRChat ko ṣe atilẹyin awọn shaders iṣiro ati UAV). Koodu emulator ti wa ni atẹjade labẹ iwe-aṣẹ MIT.

Emulator da lori imuse ni ede C, ẹda eyiti, lapapọ, lo awọn idagbasoke ti minimalistic emulator riscv-rust, ti o dagbasoke ni ede Rust. Awọn koodu C ti a pese silẹ ni itumọ sinu shader pixel ni HLSL, o dara fun ikojọpọ sinu VRChat. Emulator n pese atilẹyin ni kikun fun eto eto ilana rv32imasu, ẹyọ iṣakoso iranti SV32, ati eto awọn agbeegbe kekere (UART ati aago). Awọn agbara ti a pese silẹ ti to lati fifuye ekuro Linux 5.13.5 ati agbegbe laini aṣẹ BusyBox ipilẹ, pẹlu eyiti o le ṣe ajọṣepọ taara lati agbaye foju VRChat.

A emulator RISC-V ni irisi shader pixel ti o fun ọ laaye lati ṣiṣe Linux ni VRChat
A emulator RISC-V ni irisi shader pixel ti o fun ọ laaye lati ṣiṣe Linux ni VRChat

A ṣe imuṣe emulator ni shader ni irisi ọrọ-ara ti o ni agbara ti ara rẹ (Unity Custom Render Texture), ni afikun nipasẹ awọn iwe afọwọkọ Udon ti a pese fun VRChat, ti a lo lati ṣakoso emulator lakoko ipaniyan rẹ. Awọn akoonu ti Ramu ati ipo ero isise ti eto emulated ti wa ni ipamọ ni irisi ohun elo, 2048x2048 awọn piksẹli ni iwọn. Awọn isise emulate ṣiṣẹ ni a igbohunsafẹfẹ ti 250 kHz. Ni afikun si Lainos, emulator tun le ṣiṣẹ Micropython.

A emulator RISC-V ni irisi shader pixel ti o fun ọ laaye lati ṣiṣe Linux ni VRChat

Lati ṣẹda ibi ipamọ data itẹramọṣẹ pẹlu atilẹyin kika/kikọ, ẹtan ni lati lo ohun elo Kamẹra kan ti o so mọ agbegbe onigun mẹrin ti ipilẹṣẹ nipasẹ shader ki o taara abajade ti sojurigindin ti a ṣe si titẹ sii shader. Ni ọna yii, eyikeyi ẹbun ti a kọ lakoko ipaniyan shader pixel le ṣee ka nigbati fireemu atẹle ba ti ni ilọsiwaju.

Nigbati o ba n lo awọn shaders ẹbun, apẹẹrẹ shader lọtọ ti ṣe ifilọlẹ ni afiwe fun ẹbun awoara kọọkan. Ẹya yii ṣe idiju imuse ni pataki ati nilo isọdọkan lọtọ ti ipo ti gbogbo eto imudara ati lafiwe ti ipo ti ẹbun ti a ṣe ilana pẹlu ipo Sipiyu ti o wa ninu rẹ tabi awọn akoonu ti Ramu ti eto apẹẹrẹ (piksẹli kọọkan le ṣe koodu 128 awọn alaye diẹ). Koodu shader nilo ifisi nọmba nla ti awọn sọwedowo, lati rọrun imuse eyiti eyiti a ti lo perl preprocessor perlpp.



orisun: opennet.ru

Fi ọrọìwòye kun