Emulatur RISC-V fil-forma ta' pixel shader li jippermettilek tħaddem Linux f'VRChat

Ġew ippubblikati r-riżultati ta 'esperiment dwar l-organizzazzjoni tat-tnedija ta' Linux ġewwa l-ispazju 3D virtwali tal-logħba online multiplayer VRChat, li tippermetti t-tagħbija ta 'mudelli 3D bi shaders tagħhom stess. Biex timplimenta l-idea maħsuba, inħoloq emulatur tal-arkitettura RISC-V, esegwit fuq in-naħa tal-GPU fil-forma ta 'shader tal-pixel (framment) (VRChat ma jappoġġjax shaders komputazzjonali u UAV). Il-kodiċi emulatur huwa ppubblikat taħt il-liċenzja MIT.

L-emulatur huwa bbażat fuq implimentazzjoni fil-lingwa C, li l-ħolqien tagħha, min-naħa tagħha, uża l-iżviluppi tal-emulatur minimalistic riscv-sadid, żviluppat fil-lingwa Rust. Il-kodiċi C ippreparat huwa tradott fi pixel shader f'HLSL, adattat għat-tagħbija f'VRChat. L-emulator jipprovdi appoġġ sħiħ għall-arkitettura tas-sett ta 'struzzjonijiet rv32imasu, l-unità ta' ġestjoni tal-memorja SV32, u sett minimu ta 'periferali (UART u tajmer). Il-kapaċitajiet ippreparati huma biżżejjed biex jgħabbu l-kernel Linux 5.13.5 u l-ambjent bażiku tal-linja tal-kmand BusyBox, li magħhom tista 'tinteraġixxi direttament mid-dinja virtwali VRChat.

Emulatur RISC-V fil-forma ta' pixel shader li jippermettilek tħaddem Linux f'VRChat
Emulatur RISC-V fil-forma ta' pixel shader li jippermettilek tħaddem Linux f'VRChat

L-emulator huwa implimentat fix-shader fil-forma tan-nisġa dinamika tiegħu stess (Unity Custom Render Texture), supplimentat minn skripts Udon ipprovduti għal VRChat, użati biex jikkontrollaw l-emulator waqt l-eżekuzzjoni tiegħu. Il-kontenut tar-RAM u l-istat tal-proċessur tas-sistema emulata huma maħżuna fil-forma ta 'tessut, 2048x2048 pixels fid-daqs. Il-proċessur emulat jaħdem bi frekwenza ta '250 kHz. Minbarra l-Linux, l-emulatur jista 'wkoll iħaddem Micropython.

Emulatur RISC-V fil-forma ta' pixel shader li jippermettilek tħaddem Linux f'VRChat

Biex toħloq ħażna ta 'dejta persistenti b'appoġġ għall-qari u l-kitba, trick huwa li tuża oġġett Kamera marbut ma' żona rettangolari ġġenerata mix-shader u tidderieġi l-output tan-nisġa mogħtija lill-input tax-shader. Dan il-mod, kwalunkwe pixel miktub waqt l-eżekuzzjoni tal-pixel shader jista 'jinqara meta l-qafas li jmiss jiġi pproċessat.

Meta jiġu applikati pixel shaders, titnieda każ shader separat b'mod parallel għal kull pixel texture. Din il-karatteristika tikkomplika b'mod sinifikanti l-implimentazzjoni u teħtieġ koordinazzjoni separata tal-istat tas-sistema emulata kollha u tqabbil tal-pożizzjoni tal-pixel ipproċessat mal-istat tas-CPU kodifikat fih jew il-kontenut tar-RAM tas-sistema emulata (kull pixel jista 'kodifika 128 bits ta’ informazzjoni). Il-kodiċi shader jeħtieġ l-inklużjoni ta 'numru kbir ta' kontrolli, biex tiġi ssimplifikata l-implimentazzjoni li tagħha ntuża l-perlpp preprocessor perl.



Sors: opennet.ru

Żid kumment