دوی وکولی شول په VRChat کې د RISC-V ایمولیټر کې لینکس پرمخ بوځي

څو ورځې وړاندې د یوې تجربې پایلې خپرې شوې سازمان د پیل په اساس د 3D مجازی ځای کې د لینکس کرنل د آنلاین ملټي پلیر لوبې څخه.

دا تجربه دا په VRChat کې ترسره شوی کوم چې اجازه ورکوي د 3D ماډلونه د خپلو شیډرونو سره بار کړي. د تصور شوي نظر پلي کولو لپاره ، د RISC-V معمارۍ پراساس یو ایمولیټر رامینځته شوی چې د GPU اړخ کې د پکسل شیډر په ب executه اجرا کیږي.

د پروژې په اړه

ایمولیټر په C ژبه کې د پلي کیدو پراساس دی ، د چا رامینځته کول ، په پایله کې ، د لږترلږه ریسک-زنګ ایمولیټر پرمختګونه کارولي ، کوم چې په پایله کې د زنګ ژبې کې رامینځته شوی. چمتو شوی C کوډ په HLSL ژبه کې د پکسل شیډر ته ژباړل شوی ، په VRChat کې د بارولو لپاره مناسب دی.

ایمولیټر د rv32imasu لارښوونې سیټ معمارۍ لپاره بشپړ ملاتړ چمتو کوي ، د SV32 حافظې کنټرول واحد او د لوازمو لږترلږه سیټ (UART او ټایمر). چمتو شوي ظرفیتونه د لینکس کرنل 5.13.5 او لومړني بوسي بوکس کمانډ لاین چاپیریال بارولو لپاره کافي دي ، پدې سره تاسو کولی شئ مستقیم د VRChat مجازی نړۍ څخه متقابل عمل وکړئ.

د مارچ 2021 شاوخوا ، ما پریکړه وکړه چې یو ایمولیټر ولیکم چې په VRChat کې د بشپړ لینکس کرنل چلولو وړ وي. د دې پلیټفارم مادي محدودیتونو له امله ، غوره شوې وسیله باید سیوری وي. او د څو میاشتو کار وروسته زه اوس ویاړم چې د HLSL پکسل شیډر کې د نړۍ لومړی RISC-V CPU / SoC ایمولیټر (چې زه یې پیژنم) معرفي کړم ، چې 250 kHz (په 2080 Ti) کې د چلولو وړتیا لري او د MMU ملاتړ سره لینکس 5.13.5 بوټ کړئ.

ایمولیټر په شیډر کې د خپل متحرک جوړښت (یووالي ګمرک رینډر جوړښت) په ب implementedه پلي کیږي ، د VRChat لپاره چمتو شوي اډون سکریپټونو لخوا تکمیل شوي ، کوم چې په رنټیم کې د ایمولیټر کنټرول لپاره کارول کیږي.

د اصلي حافظې مینځپانګه او د ایمولیټ شوي سیسټم پروسیسر حالت د جوړښت په توګه خوندي شوی د 2048 × 2048 پکسلز اندازې سره ، پدې توګه په 250 kHz کې ایمولیټ پروسیسر چلوي. د لینکس سربیره ، مایکروپیتون هم په ایمولیټر کې پرمخ وړل کیدی شي.

د لینکس چلولو لپاره ما فکر کاوه چې موږ به لږترلږه 32 MiB اصلي حافظه (رام) ته اړتیا ولرو ، مګر راځئ خوندي اوسئ او 64 جوړ کړئ - د فعالیت توپیر به لوی نه وي او باید کافي VRAM شتون ولري.

په لومړي سر کې ، د فعالیت اصلي اندیښنه د ساعت سرعت و. دا دی ، څومره CPU دورې په یوه چوکاټ کې اجرا کیدی شي.

د معلوماتو ذخیره کولو تنظیم کول د لوستلو او لیکلو ملاتړ سره دوامداره ، د مستطیل ساحې سره تړلي د کیمرې څیز کارولو پورې اړوند چال کارول کیږي د شیډر لخوا رامینځته شوی او د چمتو شوي جوړښت محصول د شیډر ننوت ته لارښوونه کوي. له همدې امله ، د پکسل شیډر اجرا کولو پرمهال لیکل شوی هر پکسل د راتلونکي چوکاټ پروسس کولو سره لوستل کیدی شي.

کله چې د پکسل شیډر پلي کیږي ، د شیډر جلا بیلګه په جوړښت کې د هر پکسل لپاره موازي ډزې کیږي.

دا ب featureه د پام وړ پلي کول پیچلي کوي او د ټول ایمولیټ شوي سیسټم جلا جلا همغږۍ ته اړتیا لري او د پروسس شوي پکسل موقعیت د CPU حالت سره پرتله کول یا پدې کې کوډ شوي ایمولیټ سیسټم رام رام مینځپانګه (هر پکسل کولی شي 128 بټس کوډ کړي. معلومات).

پدې حالت کې ، د شیډر کوډ د لوی شمیر چیکونو شمولیت ته اړتیا لري ، ترڅو پلي کول ساده کړي چې د perl preprocessor perlpp کارول شوی و.

د هغوی لپاره څوک دي په مشخصاتو کې لیوالتیا دا یادونه شوې چې:

  • کوډ په GitHub کې دی
  • 64 د RAM منفي CPU حالت د 2048 × 2048 پکسل (128 bpp) انټيجر فارمیټ جوړښت کې زیرمه شوی
  • د بفر سویپ کولو سره د یووالي دودیز رینډر جوړښت د چوکاټونو ترمینځ د کوډ کولو / کوډ کولو حالت ته اجازه ورکوي
  • د پکسل شیډر د تقلید لپاره د کمپیوټ په توګه کارول کیږي او د UAV شیډر د VRChat لخوا نه ملاتړ کیږي

وروستی که تاسو د دې په اړه د نورو پوهیدو سره علاقه لرئ، تاسو کولی شئ توضیحات وګورئ په لاندې لینک کې


د مقالې مینځپانګه زموږ د اصولو سره سمون لري ایډیټیک اخلاق. د غلطۍ راپور ورکولو لپاره کلیک وکړئ دلته.

لومړی د تبصره کولو لپاره وئ

خپله نظر پرېږدئ

ستاسو د بریښنا لیک پته به خپره نه شي. اړین برخو سره په نښه شوي دي *

*

*

  1. د معلوماتو لپاره مسؤل: میګیوانجل ګاتین
  2. د معلوماتو هدف: د سپیم کنټرول ، د نظر مدیریت.
  3. قانونیت: ستاسو رضایت
  4. د معلوماتو راټولول: معلومات به د قانوني مکلفیت پرته دریمې ډلې ته نه لیږدول کیږي.
  5. د معلوماتو ذخیره: ډیټابیس د Occentus شبکې (EU) لخوا کوربه شوی
  6. حقونه: په هر وخت کې تاسو کولی شئ خپل معلومات محدود ، له سره تنظیم او حذف کړئ.