A RISC-V emulator muchimiro chepixel shader iyo inokutendera kuti umhanye Linux muVRChat.

Mhedzisiro yekuyedza kuronga kuvhurwa kweLinux mukati meiyo chaiyo 3D nzvimbo yevazhinji online game game VRChat, iyo inobvumira kurodha 3D modhi neayo shaders, yakaburitswa. Kuti iite iyo pfungwa yakaumbwa, emulator yeRISC-V architecture yakagadzirwa, yakaurayiwa padivi reGPU nenzira yepixel (fragment) shader (VRChat haitsigire computational shader uye UAV). Iyo emulator kodhi inoburitswa pasi peMIT rezinesi.

Iyo emulator yakavakirwa pakuitwa mumutauro weC, kusikwa kwayo, kwakashandisa kuvandudzwa kweiyo minimalistic emulator riscv-rust, yakagadzirwa mumutauro weRust. Iyo C code yakagadzirirwa inoshandurirwa mu pixel shader muHLSL, yakakodzera kurodha muVRChat. Iyo emulator inopa izere rutsigiro rweiyo rv32imasu yekuraira seti yekuvaka, iyo SV32 memory manejimendi unit, uye shoma seti yemaperipherals (UART uye timer). Izvo zvakagadzirirwa zvinokwana zvakakwana kurodha Linux kernel 5.13.5 uye yakakosha BusyBox yekuraira mutsara nharaunda, iyo iwe yaunogona kutaurirana zvakananga kubva kuVRChat chaiyo nyika.

A RISC-V emulator muchimiro chepixel shader iyo inokutendera kuti umhanye Linux muVRChat.
A RISC-V emulator muchimiro chepixel shader iyo inokutendera kuti umhanye Linux muVRChat.

Iyo emulator inoiswa mu shader muchimiro cheyayo dhizaini mameseji (Kubatana Kwetsika Render Texture), inowedzerwa neUdon zvinyorwa zvakapihwa VRChat, inoshandiswa kudzora emulator panguva yekuitwa kwayo. Zviri mukati me RAM uye processor mamiriro emulated system zvakachengetwa muchimiro chechimiro, 2048x2048 pixels muhukuru. Iyo emulated processor inoshanda pane frequency ye250 kHz. Pamusoro peLinux, emulator inogona zvakare kumhanya Micropython.

A RISC-V emulator muchimiro chepixel shader iyo inokutendera kuti umhanye Linux muVRChat.

Kugadzira inopfuurira kuchengetedza data nerutsigiro rwekuverenga nekunyora, hunyengeri kushandisa chinhu cheKamera chakasungirirwa kune rectangular nzvimbo inogadzirwa ne shader uye kutungamira kubuda kweiyo yakashandurwa mameseji kune iyo shader yekuisa. Nenzira iyi, chero pixel yakanyorwa panguva yepixel shader execution inogona kuverengwa kana furemu inotevera ichigadziriswa.

Paunenge uchiisa pixel shaders, imwe shader muenzaniso inotangwa inofananidzwa kune yega yega pixel yekugadzirwa. Ichi chiitiko chinoomesa zvakanyanya kuita uye chinoda kurongeka kwakasiyana kweiyo yese emulated system uye kuenzanisa chinzvimbo chepixel yakagadziridzwa neCPU state yakavharirwa mairi kana zviri mukati me RAM yeiyo emulated system (pixel yega yega inogona encode 128. zvishoma ruzivo). Iyo shader kodhi inoda kuverengerwa kwenhamba hombe yecheki, kurerutsa kuita iyo perl preprocessor perlpp yakashandiswa.



Source: opennet.ru

Voeg