شبیه ساز RISC-V به شکل سایه زن پیکسل که به شما امکان می دهد لینوکس را در VRChat اجرا کنید.

نتایج یک آزمایش در مورد سازماندهی راه اندازی لینوکس در فضای سه بعدی مجازی بازی آنلاین چند نفره VRChat که امکان بارگذاری مدل های سه بعدی با سایه زن های خود را فراهم می کند، منتشر شده است. برای پیاده سازی ایده تصور شده، شبیه ساز معماری RISC-V ایجاد شد که در سمت GPU به شکل سایه زن پیکسل (قطعه) اجرا شد (VRChat از سایه زن محاسباتی و پهپاد پشتیبانی نمی کند). کد شبیه ساز تحت مجوز MIT منتشر شده است.

این شبیه ساز مبتنی بر پیاده سازی به زبان C است که در ایجاد آن به نوبه خود از پیشرفت های شبیه ساز مینیمالیستی riscv-rust که در زبان Rust توسعه یافته است استفاده شده است. کد C آماده شده به یک سایه زن پیکسل در HLSL ترجمه شده است که برای بارگذاری در VRChat مناسب است. شبیه ساز پشتیبانی کامل از معماری مجموعه دستورالعمل rv32imasu، واحد مدیریت حافظه SV32 و حداقل مجموعه ای از تجهیزات جانبی (UART و تایمر) را ارائه می دهد. قابلیت های آماده شده برای بارگذاری هسته لینوکس 5.13.5 و محیط خط فرمان اصلی BusyBox کافی است که می توانید مستقیماً از دنیای مجازی VRChat با آن تعامل داشته باشید.

شبیه ساز RISC-V به شکل سایه زن پیکسل که به شما امکان می دهد لینوکس را در VRChat اجرا کنید.
شبیه ساز RISC-V به شکل سایه زن پیکسل که به شما امکان می دهد لینوکس را در VRChat اجرا کنید.

شبیه ساز در سایه زن به شکل بافت پویا خود (Unity Custom Render Texture)، تکمیل شده توسط اسکریپت های Udon ارائه شده برای VRChat، که برای کنترل شبیه ساز در طول اجرای آن استفاده می شود، پیاده سازی شده است. محتویات رم و وضعیت پردازنده سیستم شبیه سازی شده در قالب یک بافت با اندازه 2048x2048 پیکسل ذخیره می شود. پردازنده شبیه سازی شده در فرکانس 250 کیلوهرتز کار می کند. علاوه بر لینوکس، شبیه ساز می تواند Micropython را نیز اجرا کند.

شبیه ساز RISC-V به شکل سایه زن پیکسل که به شما امکان می دهد لینوکس را در VRChat اجرا کنید.

برای ایجاد ذخیره‌سازی دائمی داده‌ها با پشتیبانی از خواندن و نوشتن، یک ترفند این است که از یک شی دوربین متصل به یک ناحیه مستطیلی ایجاد شده توسط سایه‌زن استفاده کنید و خروجی بافت رندر شده را به ورودی سایه‌زن هدایت کنید. به این ترتیب، هر پیکسلی که در حین اجرای سایه بان پیکسل نوشته شده است، در هنگام پردازش فریم بعدی قابل خواندن است.

هنگام اعمال سایه‌زن‌های پیکسل، یک نمونه سایه‌زن مجزا به صورت موازی برای هر پیکسل بافت راه‌اندازی می‌شود. این ویژگی پیاده سازی را به طور قابل توجهی پیچیده می کند و نیاز به هماهنگی جداگانه وضعیت کل سیستم شبیه سازی شده و مقایسه موقعیت پیکسل پردازش شده با وضعیت CPU رمزگذاری شده در آن یا محتویات RAM سیستم شبیه سازی شده (هر پیکسل می تواند 128 را رمزگذاری کند). بیت اطلاعات). کد سایه زن نیاز به گنجاندن تعداد زیادی بررسی دارد که برای ساده سازی اجرای آنها از پیش پردازنده perl perlpp استفاده شده است.



منبع: opennet.ru

اضافه کردن نظر