RISC-V keppinautur í formi pixlaskyggingar sem gerir þér kleift að keyra Linux í VRChat

Niðurstöður tilraunar um að skipuleggja kynningu á Linux inni í sýndar þrívíddarrými fjölspilunarleiksins VRChat, sem gerir kleift að hlaða þrívíddarlíkönum með eigin skyggingum, hafa verið birtar. Til að hrinda hugmyndinni í framkvæmd var búið til keppinautur af RISC-V arkitektúr, framkvæmdur á GPU hliðinni í formi pixla (brota) skyggingar (VRChat styður ekki tölvuskyggingar og UAV). Hermikóði er birtur undir MIT leyfinu.

Hermirinn er byggður á útfærslu á C tungumálinu, sem aftur á móti notaði þróunina á naumhyggjuhermi riscv-rust, þróað á Rust tungumálinu. Tilbúinn C-kóði er þýddur í pixelskyggingu í HLSL, hentugur til að hlaða inn í VRChat. Keppinauturinn veitir fullan stuðning fyrir rv32imasu kennslusetta arkitektúr, SV32 minnisstjórnunareininguna og lágmarks sett af jaðartækjum (UART og tímamælir). Tilbúinn hæfileikinn er nóg til að hlaða Linux kjarna 5.13.5 og grunn BusyBox skipanalínuumhverfið, sem þú getur haft samskipti við beint frá VRChat sýndarheiminum.

RISC-V keppinautur í formi pixlaskyggingar sem gerir þér kleift að keyra Linux í VRChat
RISC-V keppinautur í formi pixlaskyggingar sem gerir þér kleift að keyra Linux í VRChat

Keppinauturinn er útfærður í skyggingunni í formi eigin kraftmikilla áferðar (Unity Custom Render Texture), bætt við Udon forskriftir sem veittar eru fyrir VRChat, notaðar til að stjórna keppinautnum meðan á framkvæmd hans stendur. Innihald vinnsluminni og örgjörvaástand hermdarkerfisins er geymt í formi áferðar, 2048x2048 pixlar að stærð. Herma örgjörvinn starfar á tíðninni 250 kHz. Auk Linux getur keppinauturinn einnig keyrt Micropython.

RISC-V keppinautur í formi pixlaskyggingar sem gerir þér kleift að keyra Linux í VRChat

Til að búa til viðvarandi gagnageymslu með stuðningi við lestur og ritun er bragð að nota myndavélarhlut sem er bundinn við rétthyrnt svæði sem myndast af skyggingunni og beina úttakinu af sýndu áferðinni að skyggingarinntakinu. Þannig er hægt að lesa hvaða pixla sem er skrifaður við framkvæmd pixelskyggingar þegar næsti rammi er unninn.

Þegar pixelskygging er beitt er sérstakt skyggingartilvik sett af stað samhliða fyrir hvern áferðarpixla. Þessi eiginleiki flækir útfærsluna verulega og krefst sérstakrar samhæfingar á ástandi alls hermakerfisins og samanburðar á stöðu unnu pixlans við CPU ástandið sem er umritað í því eða innihaldi vinnsluminni líkikerfisins (hver pixel getur umritað 128 smá upplýsingar). Skyggingakóðinn krefst þess að fjöldi athugana sé tekinn inn, til að einfalda útfærsluna sem perl forvinnsluforritið perlpp var notað á.



Heimild: opennet.ru

Bæta við athugasemd