دنیل آلمیدا، که در شرکت Collabora روی توسعه کدکهای ویدیویی کار میکند، در فهرست ایمیل توسعهدهندگان پستی منتشر کرد. Linux- پیادهسازی اولیه درایور Tyr برای پردازندههای گرافیکی ARM Mali که از فناوری Command Stream Frontend (CSF) استفاده میکنند، مانند Mali G310، G510 و G710. کد درایور با زبان Rust نوشته شده و شامل کمی بیش از ۶۰۰ خط کد است. کار بر روی درایور Tyr به طور مشترک توسط Collabora، Arm و Google انجام میشود.
چارچوب ایجاد درایور جدید از اجزای درایور انتزاعی rust_platform_driver و درایور Nova که برای پردازندههای گرافیکی NVIDIA توسعه داده شده، با زبان Rust نوشته شده و تا حدی به هسته ۶.۱۵ اضافه شده است، استفاده میکند. قابلیت تعامل با پردازنده گرافیکی Mali از درایور DRM موجود Panthor (Direct Rendering Manager) که با زبان C نوشته شده است، منتقل شده است. uAPI درایور Tyr با uAPI درایور Panthor یکسان است، که امکان استفاده از اجزای فضای کاربری موجود را با آن فراهم میکند.
فناوری CSF که از نسل دهم پردازندههای گرافیکی Mali استفاده میشود، به دلیل انتقال برخی از توابع درایور به سمت میانافزار و استفاده از یک مدل جدید برای سازماندهی اجرای کار در پردازنده گرافیکی (GPU) قابل توجه است. در پردازندههای گرافیکی با رابط CSF، به جای مدلی مبتنی بر ارسال زنجیرهای از کارها، از مدلی مبتنی بر جریان فرمان با زمانبندی صف جریان فرمان در سمت میانافزار استفاده میشود. برای سازماندهی کار زمانبند، یک میکروکنترلر جداگانه Cortex-M10 در پردازنده گرافیکی تعبیه شده است و یک واحد اجرای فرمان ویژه (واحد اجرای فرمان) برای اجرای دستورالعملهای CSF ارائه شده است.
عملکرد Tyr هنوز از درایور Panthor عقب مانده است، اما توسعهدهندگان قصد دارند به تدریج این فاصله را کاهش دهند تا برابری در قابلیتهای درایور حاصل شود. ویژگیهای از دست رفته نیاز به ادغام انتزاعات اضافی در هسته برای ایجاد درایورها در Rust دارند، بنابراین توسعه درایور Tyr با افزودن این انتزاعات به هسته هماهنگ خواهد شد. به عنوان مثال، هسته هنوز قابلیتهای نگاشت حافظه در درایورهای Rust برای GPUها را ندارد، که در مجموعه وصلههای GPUVM در حال توسعه هستند و هنوز پذیرفته نشدهاند.
منبع: opennet.ru
