تضيف Microsoft دعم DirectX إلى توزيعات Linux التي تعمل في بيئة WSL 2. يبدأ التغيير مع أول تصميمات 21H1 من فرع Iron (Fe) في Fast Ring ، والتي من المتوقع أن تأتي في يونيو.
إعلانات
وضع الموسيقى على الايبود بدون اي تيونز
مايكروسوفت مقدمة Windows Display Driver Model الإصدار 2.9 ، WDDMv2.9 ، والذي سيجلب تسريع GPU إلى WSL 2. لجعل ذلك ممكنًا ، توجد وحدة Linux kernel خاصة على جانب WSL ،dxgkrnl
.
dxgkrnl
Dxgkrnl هو برنامج تشغيل kernel جديد تمامًا لنظام التشغيل Linux يعرض ملف / ديف / dxg جهاز إلى وضع المستخدم لينكس. / ديف / dxg يعرض مجموعة من IOCTL التي تحاكي عن كثب طبقة خدمة kernel WDDM D3DKMT الأصلية على Windows. يتصل Dxgkrnl داخل Linux kernel عبر VM Bus بأخيه الأكبر على مضيف Windows ويستخدم اتصال ناقل VM هذا للتواصل مع GPU الفعلي.
إذا كان المضيف يحتوي على العديد من وحدات معالجة الرسومات ، فسيتم عرض جميع وحدات معالجة الرسومات وإتاحتها لبيئة Linux (بافتراض أن جميع وحدات معالجة الرسومات هذه تقوم بتشغيل برامج تشغيل WDDMv2.9).
تدعي Microsoft أن البنية لن تحد أو تتدخل في أداء تطبيقات WSL ، وستتم مشاركة موارد GPU بشكل صحيح بين تطبيقات Windows التي تعمل جنبًا إلى جنب مع Linux GUI وتطبيقات وحدة التحكم التي تستخدم DirectX.
أصبح إصدار Dxgkrnl Linux مفتوح المصدر.
لن ينام نظام التشغيل Windows 10 أو يدخل في حالة إسبات
DxCore & D3D12 على نظام Linux
تجلب هذه المشاريع واجهة برمجة تطبيقات D3D12 كاملة إلى Linux بدون أي تقليد. يتم تجميعibd3d12.so من نفس التعليمات البرمجية المصدر مثل d3d12.dll على Windows ولكن لهدف Linux. إنه يوفر نفس المستوى من الوظائف والأداء (مطروحًا منه النفقات الافتراضية). الاستثناء الوحيد هو Present (). لا يوجد حاليًا تكامل للعرض التقديمي مع WSL لأن WSL هي تجربة وحدة تحكم فقط اليوم. يمكن استخدام D3D12 API للعرض والحساب خارج الشاشة ، ولكن لا يوجد دعم swapchain لنسخ وحدات البكسل مباشرةً إلى الشاشة.
DxCore (libdxcore.so) هو نسخة مبسطة من dxgi حيث تم استبدال الجوانب القديمة من API بالإصدارات الحديثة. يتوفر DxCore على كل من Windows و Linux. يستخدم DxCore أيضًا لاستضافة إصدار مسطح من D3DKMT API المستخدم بواسطة برنامج تشغيل يستند إلى WDDM على Windows للتحدث مع وحدة معالجة الرسومات. تلخص واجهة برمجة التطبيقات هذه الاختلافات في كيفية وصول خدمات WDDM المختلفة إلى النواة (جدول الخدمة على Windows مقابل IOCTL على Linux).
libd3d12.so و libdxcore.so هما ثنائيات وضع مستخدم مُجمَّعة مسبقًا ومصدرة مغلقة يتم شحنها كجزء من Windows. تتوافق هذه الثنائيات مع التوزيعات المستندة إلى glibc ويتم تثبيتها تلقائيًا تحتها/ usr / lib / wsl / libوجعلها مرئية للمحمل. بمعنى آخر ، تعمل واجهات برمجة التطبيقات هذه مباشرة خارج الصندوق دون الحاجة إلى تثبيت حزم إضافية أو تعديل تكوين التوزيعة. يقتصر الدعم حاليًا على التوزيعات المستندة إلى glibc بما في ذلك Ubuntu و Debian و Fedora و Centos و SUSE وما إلى ذلك.
لن تتمكن D3D12 من العمل بدون برنامج تشغيل وضع المستخدم المحدد لوحدة معالجة الرسومات (UMD) المقدم من شركاء مصنعي وحدة معالجة الرسومات. يعد UMD مسؤولاً عن أشياء مثل تجميع التظليل إلى كود بايت محدد للأجهزة وترجمة طلبات عرض واجهة برمجة التطبيقات إلى تعليمات GPU فعلية في مخازن الأوامر ليتم تنفيذها بواسطة وحدة معالجة الرسومات. يتم تثبيت حزمة برنامج التشغيل المضيف داخل WSL على / usr / lib / wsl / drivers ويمكن الوصول إليها مباشرةً من خلال واجهة برمجة تطبيقات d3d12. مرة أخرى مطلوب برنامج تشغيل WDDM 2.9.
تعمل Microsoft أيضًا على توفير تسريع GPU لـ OpenGL و OpenCL و Vulkan في WSL من خلال مكتبة Mesa.
كيفية إعداد pvr على kodi
دعم DxCore ، D3D12 ، DirectML و NVIDIA CUDA قادم إلى Windows Insider بناء سريع قريبا. الحلقة السريعة موجودة حاليًا في Manganese (Mn) فرع OS. من المتوقع أن تتحول الحلقة السريعة إلى الحلقة الجديدةفرع الحديد (Fe)
في الجزء الأخير من شهر يونيو والذي سيعرض هذه الوظيفة الجديدة للمطلعين.