તેઓ VRChat પર RISC-V ઇમ્યુલેટર પર Linux ચલાવવામાં સફળ રહ્યા

કેટલાક દિવસો પહેલા એક પ્રયોગના પરિણામો જાહેર થયા ના લોન્ચિંગ પર આધારિત સંસ્થા 3D વર્ચ્યુઅલ સ્પેસમાં લિનક્સ કર્નલ multipનલાઇન મલ્ટિપ્લેયર રમતની.

આ પ્રયોગ તે VRChat પર કરવામાં આવ્યું હતું જે 3D મોડેલોને તેમના પોતાના શેડર્સ સાથે લોડ કરવાની મંજૂરી આપે છે. કલ્પના કરેલ વિચારને અમલમાં મૂકવા માટે, RISC-V આર્કિટેક્ચર પર આધારિત ઇમ્યુલેટર બનાવવામાં આવ્યું હતું જે GPU બાજુ પર પિક્સેલ શેડરના રૂપમાં ચલાવવામાં આવે છે.

પ્રોજેક્ટ વિશે

ઇમ્યુલેટર સી ભાષામાં અમલીકરણ પર આધારિત છે, જેની રચના, બદલામાં, ન્યૂનતમ રિસ્કવી-રસ્ટ ઇમ્યુલેટરના વિકાસનો ઉપયોગ કરે છે, જે બદલામાં રસ્ટ ભાષામાં વિકસિત થાય છે. તૈયાર કરેલો સી કોડ એચએલએસએલ ભાષામાં પિક્સેલ શેડરમાં અનુવાદિત થાય છે, જે વીઆરચેટમાં લોડ કરવા માટે યોગ્ય છે.

ઇમ્યુલેટર rv32imasu સૂચના સમૂહ સ્થાપત્ય માટે સંપૂર્ણ આધાર પૂરો પાડે છે, એસવી 32 મેમરી કંટ્રોલ યુનિટ અને પેરિફેરલ્સનો ન્યૂનતમ સમૂહ (UART અને ટાઈમર). લિનક્સ કર્નલ 5.13.5 અને BusyBox મૂળભૂત કમાન્ડ લાઇન પર્યાવરણને લોડ કરવા માટે તૈયાર ક્ષમતાઓ પૂરતી છે, જેની સાથે તમે VRChat વર્ચ્યુઅલ વર્લ્ડથી સીધો સંપર્ક કરી શકો છો.

માર્ચ 2021 ની આસપાસ, મેં વીઆરચેટમાં સંપૂર્ણ લિનક્સ કર્નલ ચલાવવા માટે સક્ષમ ઇમ્યુલેટર લખવાનું નક્કી કર્યું. તે પ્લેટફોર્મની અંતર્ગત મર્યાદાઓને કારણે, પસંદ કરેલ સાધન શેડર હોવું જરૂરી હતું. અને થોડા મહિનાના કામ પછી હવે હું HLSL પિક્સેલ શેડરમાં વિશ્વનું પ્રથમ RISC-V CPU / SoC ઇમ્યુલેટર (જે હું જાણું છું) રજૂ કરવામાં ગર્વ અનુભવું છું, જે 250 kHz (2080 Ti પર) ચલાવવા માટે સક્ષમ છે અને MMU સપોર્ટ સાથે Linux 5.13.5 ને બુટ કરો.

ઇમ્યુલેટરને શેડરમાં તેના પોતાના ડાયનેમિક ટેક્સચર (યુનિટી કસ્ટમ રેન્ડર ટેક્સચર) ના રૂપમાં અમલમાં મૂકવામાં આવે છે, જે વીઆરચેટ માટે પૂરી પાડવામાં આવેલ ઉડોન સ્ક્રિપ્ટો દ્વારા પૂરક છે, જેનો ઉપયોગ રનટાઇમ પર ઇમ્યુલેટરને નિયંત્રિત કરવા માટે થાય છે.

મુખ્ય મેમરી સામગ્રી અને ઇમ્યુલેટેડ સિસ્ટમની પ્રોસેસર સ્થિતિ 2048 × 2048 પિક્સેલ્સના કદ સાથે ટેક્સચર તરીકે સાચવવામાં આવે છે, ત્યાં ઇમ્યુલેટેડ પ્રોસેસરને 250 કેએચઝેડ પર ઓપરેટ કરે છે. લિનક્સ ઉપરાંત, માઇક્રોપાયથોન પણ ઇમ્યુલેટર પર ચલાવી શકાય છે.

લિનક્સ ચલાવવા માટે મેં વિચાર્યું કે અમને ઓછામાં ઓછી 32 MiB મેઈન મેમરી (RAM) ની જરૂર પડશે, પરંતુ ચાલો સલામત રહીએ અને 64 બનાવીએ - કામગીરીનો તફાવત મોટો નહીં હોય અને ત્યાં પૂરતું VRAM હોવું જોઈએ.

શરૂઆતમાં, મુખ્ય કામગીરીની ચિંતા ઘડિયાળની ગતિ હતી. એટલે કે, એક ફ્રેમમાં કેટલા CPU ચક્ર ચલાવી શકાય છે.

ડેટા સ્ટોરેજ ગોઠવવા માટે વાંચન અને લેખન માટે સમર્થન સાથે સતત, લંબચોરસ વિસ્તાર સાથે જોડાયેલ કેમેરા usingબ્જેક્ટનો ઉપયોગ કરવા સંબંધિત યુક્તિનો ઉપયોગ થાય છે શેડર દ્વારા પેદા થાય છે અને રેન્ડર કરેલા ટેક્સચરના આઉટપુટને શેડરના ઇનપુટ પર નિર્દેશિત કરે છે. તેથી, પિક્સેલ શેડરના એક્ઝેક્યુશન દરમિયાન લખાયેલ કોઈપણ પિક્સેલ આગળની ફ્રેમને પ્રોસેસ કરીને વાંચી શકાય છે.

જ્યારે પિક્સેલ શેડર્સ લાગુ કરવામાં આવે છે, ત્યારે ટેક્સચરમાં દરેક પિક્સેલ માટે સમાંતર શેડરનો અલગ દાખલો કાવામાં આવે છે.

આ સુવિધા અમલીકરણને નોંધપાત્ર રીતે જટિલ બનાવે છે અને સમગ્ર ઇમ્યુલેટેડ સિસ્ટમની સ્થિતિનું અલગ સંકલન અને પ્રોસેસ્ડ પિક્સેલની સ્થિતિની સરખામણી CPU ની સ્થિતિ સાથે અથવા તેમાં એન્કોડ કરેલી ઇમ્યુલેટેડ સિસ્ટમની રેમ સામગ્રી (દરેક પિક્સેલ 128 બિટ્સને એન્કોડ કરી શકે છે. માહિતી).

આ કિસ્સામાં, શેડર કોડને મોટી સંખ્યામાં ચેકનો સમાવેશ કરવાની જરૂર છે, જેના અમલીકરણને સરળ બનાવવા માટે, જેના પરલ પ્રિપ્રોસેસર પર્લપનો ઉપયોગ કરવામાં આવ્યો હતો.

જેઓ છે સ્પેક્સમાં રસ છે તે ઉલ્લેખિત છે કે:

  • કોડ GitHub પર છે
  • 64 એમઆઇબી રેમ માઇનસ સીપીયુ સ્ટેટ 2048 × 2048 પિક્સેલ (128 બીપીપી) પૂર્ણાંક ફોર્મેટ ટેક્સચરમાં સંગ્રહિત છે
  • બફર સ્વેપિંગ સાથે યુનિટી કસ્ટમ રેન્ડર ટેક્સચર ફ્રેમ્સ વચ્ચે એન્કોડિંગ / ડીકોડિંગ સ્ટેટસને મંજૂરી આપે છે
  • એક પિક્સેલ શેડરનો ઉપયોગ ઇમ્યુલેશન માટે ગણતરી તરીકે થાય છે અને UAV શેડર્સ VRChat દ્વારા સપોર્ટેડ નથી

છેલ્લે જો તમને તેના વિશે વધુ જાણવામાં રસ છે, તમે વિગતો ચકાસી શકો છો નીચેની કડીમાં


તમારી ટિપ્પણી મૂકો

તમારું ઇમેઇલ સરનામું પ્રકાશિત કરવામાં આવશે નહીં. આવશ્યક ક્ષેત્રો સાથે ચિહ્નિત થયેલ છે *

*

*

  1. ડેટા માટે જવાબદાર: મિગ્યુએલ gelંજેલ ગેટóન
  2. ડેટાનો હેતુ: નિયંત્રણ સ્પામ, ટિપ્પણી સંચાલન.
  3. કાયદો: તમારી સંમતિ
  4. ડેટાની વાતચીત: કાયદાકીય જવાબદારી સિવાય ડેટા તૃતીય પક્ષને આપવામાં આવશે નહીં.
  5. ડેટા સ્ટોરેજ: cસેન્ટસ નેટવર્ક્સ (ઇયુ) દ્વારા હોસ્ટ કરેલો ડેટાબેઝ
  6. અધિકાર: કોઈપણ સમયે તમે તમારી માહિતીને મર્યાદિત, પુન recoverપ્રાપ્ત અને કા deleteી શકો છો.