يقترحون تنفيذ برنامج تشغيل GPU مكتوب في Rust ، لـ Apple AGX G13 و G14

لينكس أبل روست

هذا هو برنامج تشغيل شامل إلى حد ما لوحدات معالجة الرسومات من سلسلة Apple AGX G13 و G14.
وحدة التحكم الحالية متوافقة مع SoCs

صدر الخبر مؤخرا أن تم اقتراح تنفيذ أولي لبرنامج drm-asahi لسلسلة وحدات معالجة الرسومات تستخدم Apple AGX G13 و G14 في شرائح Apple M1 و M2 في القائمة البريدية لمطور Linux kernel.

وحدة التحكم مكتوبة في Rust زائد، يتضمن مجموعة من الارتباطات العالمية حول النظام الفرعي DRM (مدير التقديم المباشر) الذي يمكن استخدامه لتطوير برامج تشغيل رسومات أخرى في Rust.

مجموعة التصحيح الصادرة حتى الآن تم اقتراحه للمناقشة فقط من قبل المطورين الأساسيين (RFC) ، ولكن قد يتم قبولهم في الفريق الأساسي بعد اكتمال المراجعة وإزالة أوجه القصور المحددة.

هذا هو الإصدار الأول لي من تجريدات Rust لـ DRM النظام الفرعي. يشمل التجريدات نفسها ، بعضها ثانوي التغييرات المطلوبة على الجانب C بالإضافة إلى برنامج تشغيل GPU drm-asahi (للإشارة إلى كيفية استخدام التجريدات ، ولكن ليس بالضرورة تهدف إلى الهبوط معًا).

يتم تطبيق هذه الرقع في الجزء العلوي من الشجرة في [1] ، والتي تعتمد على 6.3-rc1 مع الكثير من عمليات التجريد / دعم الصدأ المضافة فوق. معظم هذه ليست شروط مسبقة لتجريد DRM. أنفسهم ، ولكن فقط من السائق.

منذ ديسمبر ، تم تضمين وحدة التحكم في الحزمة مع النواة لتوزيع Asahi Linux وتم اختباره من قبل مستخدمي هذا المشروع.

يمكن استخدام برنامج التشغيل على توزيعات Linux إلى تنظيم البيئة الرسومية في دأجهزة Apple المزودة بـ SoC M1 و M1 Pro و M1 Max و M1 Ultra و M2. عند تطوير برنامج التشغيل ، تم إجراء محاولة ليس فقط لزيادة الأمان عن طريق تقليل الأخطاء عند العمل مع الذاكرة في التعليمات البرمجية المنفذة على جانب وحدة المعالجة المركزية ، ولكن أيضًا للحماية جزئيًا من المشكلات التي تنشأ عند التفاعل مع البرامج الثابتة.

على وجه الخصوص ، يوفر برنامج التشغيل روابط معينة لهياكل الذاكرة المشتركة غير آمن مع سلاسل معقدة من المؤشرات المستخدمة في البرامج الثابتة للتفاعل مع وحدة التحكم. يتم استخدام برنامج التشغيل المقترح جنبًا إلى جنب مع برنامج تشغيل asahi Mesa ، والذي يوفر دعم OpenGL لمساحة المستخدم ويجتاز اختبار توافق OpenGL ES 2. وهو جاهز تقريبًا لدعم OpenGL ES 3.0.

في نفس الوقت ، السائق الذي يعمل على مستوى النواة تم تطويره في البداية مع وضع الدعم المستقبلي لـ Vulkan API في الاعتبار، وتم تصميم واجهة البرمجة للتفاعل مع مساحة المستخدم مع وضع UAPI الذي يوفره برنامج التشغيل Intel Xe الجديد في الاعتبار.

على مدار مشاكل معروفة تم ذكر ما يلي:

  • لا يدعم تكامل Rust الحالي حاليًا تجريدات البناء كوحدات نمطية ، لذا فإن تجريدات Rust متاحة فقط لمكونات DRM المضمنة.
  • يعتمد DRM بشكل كبير على نمط "التصنيف الفرعي" لكائنات وحدة التحكم ، وهذا لا يتوافق جيدًا مع Rust.
  • حاليًا ، يتم تنفيذ ما هو ضروري فقط لوحدة التحكم (بالإضافة إلى كمية صغيرة من
    إضافات واضحة حيث يكون تكامل واجهة برمجة التطبيقات (API) الأفضل منطقيًا).
  • ينتهي الأمر بـ drm :: mm بالمطالبة بمفتاح مزامنة مضمن في التجريد ، بدلاً من ذلك
    لتفويض ذلك للمستخدم بقواعد قابلية تغيير الصدأ المعتادة.
    وذلك لأنه يمكن إسقاط العقد في أي وقت وتلك العمليات
    يجب أن تكون متزامنة.
  • على جانب Mesa ، لديك حاليًا برنامج تشغيل Gallium الذي يكون في الغالب بالفعل في اتجاه المنبع (وحدات بت UAPI مفقودة في الغالب) و
    اجتاز اختبارات dEQP GLES2 / EGL ، مع مرور معظم GLES3.0
    فروع المنبع للعمل قيد التقدم. هذه هندسة عكسية للسائق المجتمعي ، لذلك يُذكر أنه لا يزال هناك الكثير الذي يتعين القيام به في هذا الجانب.

أخيرًا إذا كنت كذلك مهتم بمعرفة المزيد عنها، يمكنك التحقق من التفاصيل في الرابط التالي.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: AB Internet Networks 2008 SL
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.