Wọn ṣakoso lati ṣiṣẹ Lainos lori emulator RISC-V lori VRChat

Orisirisi awọn ọjọ seyin awọn abajade idanwo kan ti tu silẹ agbari ti o da lori ifilọlẹ ti Ekuro Linux inu aaye foju 3D ti ere elere pupọ lori ayelujara.

Idanwo yii O ti ṣe lori VRChat eyiti ngbanilaaye ikojọpọ awọn awoṣe 3D pẹlu awọn ojiji tiwọn. Lati ṣe imuse ero ti a loyun, emulator ti o da lori faaji RISC-V ni a ṣẹda eyiti o ṣe ni apa GPU ni irisi shader ẹbun kan.

Nipa ise agbese na

Emulator da lori imuse ni ede C, ẹniti ẹda rẹ, lapapọ, lo awọn idagbasoke ti emulator riscv-rust minimalist, eyiti o jẹ idagbasoke ni ede Rust. Koodu C ti a ti pese ti wa ni itumọ sinu shader ẹbun ni ede HLSL, o dara fun ikojọpọ sinu VRChat.

Alakoso n pese atilẹyin ni kikun fun faaji eto ẹkọ rv32imasu, ẹrọ iṣakoso iranti iranti SV32 ati ki o kan pọọku ṣeto ti awọn pẹẹpẹẹpẹ (UART ati aago). Awọn agbara ti a mura silẹ ti to lati fifuye ekuro Linux 5.13.5 ati agbegbe laini aṣẹ ipilẹ BusyBox, pẹlu eyiti o le ṣe ajọṣepọ taara lati VRChat agbaye foju.

Ni ayika Oṣu Kẹta Ọjọ 2021, Mo pinnu lati kọ emulator kan ti o lagbara lati ṣiṣẹ ekuro Linux ni kikun ni VRChat. Nitori awọn idiwọn atorunwa ti pẹpẹ yẹn, ọpa ti o yan gbọdọ jẹ shader. Ati lẹhin awọn oṣu diẹ ti iṣẹ Mo ni igberaga bayi lati ṣafihan RISC-V CPU / SoC emulator akọkọ agbaye (eyiti Mo mọ) ninu shader ẹbun HLSL kan, ti o lagbara lati ṣiṣẹ to 250 kHz (lori 2080 Ti) ati bata Linux 5.13.5 pẹlu atilẹyin MMU.

A ṣe imuse emulator ni shader ni irisi ti ara ti o ni agbara (Iṣọkan Iṣaṣe Aṣa Iṣọkan), ni afikun nipasẹ awọn iwe afọwọkọ Udon ti a pese fun VRChat, eyiti a lo lati ṣakoso emulator ni akoko asiko.

Akoonu iranti akọkọ ati ipo ero isise ti eto emulated ti wa ni fipamọ bi awoara pẹlu iwọn awọn piksẹli 2048 × 2048, nitorinaa ṣiṣẹ ẹrọ isise ti o farawe ni 250 kHz. Yato si Lainos, Micropython tun le ṣiṣẹ lori emulator.

Lati ṣiṣẹ Lainos Mo ro pe a yoo nilo o kere ju 32 MiB ti iranti akọkọ (Ramu), ṣugbọn jẹ ki a wa ni ailewu ati ṣe 64 - iyatọ iṣẹ ṣiṣe kii yoo tobi ati pe o yẹ ki VRAM to.

Ni akọkọ, ibakcdun iṣẹ ṣiṣe akọkọ jẹ iyara aago. Iyẹn ni, bawo ni ọpọlọpọ awọn iyipo Sipiyu le ṣe pa ni fireemu kan.

Lati ṣeto ibi ipamọ data jubẹẹlo pẹlu atilẹyin fun kika ati kikọ, ẹtan ti o jọmọ lilo ohun Kamẹra ti o sopọ mọ agbegbe onigun mẹrin ni a lo ti ipilẹṣẹ nipasẹ shader ati darí iṣelọpọ ti iṣelọpọ ti a ṣe si titẹ sii ti shader. Nitorina, Eyikeyi ẹbun ti a kọ lakoko ipaniyan ti piksẹli ẹbun le ka nipasẹ sisẹ fireemu atẹle.

Nigbati a ba lo awọn ojiji ẹbun, apẹẹrẹ lọtọ ti shader ti wa ni ina ni afiwe fun ẹbun kọọkan ninu awoara.

Ẹya yii ṣe idiju imuse ni pataki ati nilo isọdọkan lọtọ ti ipinlẹ ti gbogbo eto ti o farawe ati lafiwe ipo ti ẹbun ti a ṣe ilana pẹlu ipo ti Sipiyu tabi akoonu Ramu ti eto emulated ti o wa ninu rẹ (piksẹli kọọkan le fi koodu 128 ti alaye).

Ni ọran yii, koodu shader nilo ifisi ti nọmba nla ti awọn sọwedowo, lati jẹ ki imuse rọrun eyiti a lo perlpp preprocessor perlpp.

Fun awon ti o wa nife ninu awọn alaye lẹkunrẹrẹ a darukọ rẹ pe:

  • koodu naa wa lori GitHub
  • 64 MiB ti Ramu iyokuro ipo Sipiyu ti wa ni ipamọ ni piksẹli 2048 × 2048 (128 bpp) ọna kika odidi
  • Aṣa iṣọkan n ṣe awoara pẹlu ṣiṣiparọ ifipamọ ngbanilaaye aiyipada / ipo iyipada laarin awọn fireemu
  • a lo shader ẹbun fun iṣapẹẹrẹ bi iṣiro ati awọn ojiji UAV ko ni atilẹyin nipasẹ VRChat

Níkẹyìn ti o ba nifẹ lati mọ diẹ sii nipa rẹ, o le ṣayẹwo awọn alaye naa Ni ọna asopọ atẹle.


Awọn akoonu ti nkan naa faramọ awọn ilana wa ti awọn ilana olootu. Lati jabo aṣiṣe kan tẹ nibi.

Jẹ akọkọ lati sọ ọrọ

Fi ọrọ rẹ silẹ

Adirẹsi imeeli rẹ yoo ko le ṣe atejade. O beere aaye ti wa ni samisi pẹlu *

*

*

  1. Lodidi fun data naa: Miguel Ángel Gatón
  2. Idi ti data naa: SPAM Iṣakoso, iṣakoso ọrọ asọye.
  3. Ofin: Iyọọda rẹ
  4. Ibaraẹnisọrọ data: Awọn data kii yoo ni ifọrọhan si awọn ẹgbẹ kẹta ayafi nipasẹ ọranyan ofin.
  5. Ibi ipamọ data: Alaye data ti o gbalejo nipasẹ Awọn nẹtiwọọki Occentus (EU)
  6. Awọn ẹtọ: Ni eyikeyi akoko o le ni opin, gba pada ki o paarẹ alaye rẹ.