SDL3 يؤخر دعم Wayland 

SDL

SDL عبارة عن مجموعة من المكتبات المطورة بلغة البرمجة C التي توفر الوظائف الأساسية لأداء عمليات الوسائط المتعددة (الصوت والفيديو) ، بالإضافة إلى تحميل الصور وإدارتها.

SDL هي مكتبة يوفر أدوات مثل إخراج الرسومات ثنائية وثلاثية الأبعاد للأجهزةوالتي سبق أن تحدثنا عنها في مناسبات عديدة هنا في المدونة (عادةً في إصداراتهم الجديدة)، تم العثور على هذه المكتبة تعمل بشكل افتراضي على X11 لفترة طويلة، ولكن مع Wayland كخيار ثانٍ.

حاليا المطورين يعملون على الفرع الجديد لـ SDL3 حيث كانت إحدى الميزات الرئيسية والحداثة (خاصة) هي إزاحة X11 باستخدام Wayland افتراضيًا، وهي خطوة من شأنها من الناحية النظرية تحسين العديد من جوانب المكتبة.

ولكن يبدو (على الأقل في الوقت الحالي) أنه لن يتم تحقيق هذا ولا ذاك في SDL3 منذ وقت قريب تم تقديم طلب للمطورين، والتي في الأساس يتألف من إلغاء التغيير الذي قام بترحيل فرع SDL3 لاستخدام بروتوكول Wayland كإعداد افتراضي في البيئات التي تدعم Wayland وX11 في وقت واحد.

لدى Wayland عدد كبير من المشكلات التي لم يتم حلها والمتعلقة بإدخال حظر السكون السطحي وتنفيذ FIFO (vsync) الذي تم تعطله بشكل أساسي، مما أدى إلى انخفاض أداء وحدة معالجة الرسومات.

هذا لا يعني أنه "يجب علينا إصلاح FIFO في Mesa/برامج التشغيل الأخرى"، ولكن لا يمكن إصلاحه على الإطلاق بدون بروتوكول إضافي، في هذه الحالة fifo-v1 1 .

بدون هذا البروتوكول، يجب أن يتوقف vkQueuePresent أو glSwapBuffers لرد الاتصال "frame" بعد تقديم الصورة. السبب الوحيد الذي يجعلنا نتخلص من هذا على SteamOS هو أن Gamescope ينفذ ما هو في الأساس fifo-v1 ونستخدمه هناك...

ليس هناك أي ميزة للألعاب والتطبيقات المتوسطة التي تفضل Wayland على X11، فقط العديد من تراجعات الأداء وعدم قابلية الاستخدام في هذه المرحلة.
لذلك، نحن بحاجة إلى التراجع عن هذا التغيير حتى يتم إصدار fifo-v1 وcommit-timing-v1 وعلى الأقل في إصدار مستقر لكبار الملحنين.

على الرغم من أن تمت مراجعة طلب السحب والموافقة عليه بواسطة منشئ SDL، لم يتم دمجها بعد في قاعدة التعليمات البرمجية. السبب الرئيسي هو وجود مشكلات لم يتم حلها في بيئة Wayland تتعلق بقفل السطح وتنفيذ FIFO (vsync)، مما أدى إلى انخفاض الأداء. لا يمكن حل هذه المشكلات بشكل كامل دون تنفيذ البروتوكولين الإضافيين fifo-v1 وcommit-timing-v1.

ويبرز أنه، وبدون حل هذه المشكلات، فإن الانتقال من X11 إلى Wayland لا يقدم أي فوائد كبيرة للتطبيقات والألعاب الشائعة، ولكنه يتسبب في انخفاض خطير في الأداء والانحدارات المحتملة. لذلك، يُقترح إعادة النظر في الترحيل من SDL إلى Wayland فقط بعد الموافقة على بروتوكولي fifo-v1 وcommit-timing-v1 وتنفيذهما في الإصدارات المستقرة للمديرين المركبين الرئيسيين.

وفيما يتعلق بالقضية، فمن المهم أن نذكر ذلك حاليا قبول الطلب "مؤجل" نظرًا لأن Sam Lantinga، منشئ SDL، ذكر مراجعة هذا الطلب المتعلق بالانتقال إلى Wayland افتراضيًا، فإنه يذكر أنه سيتم معالجة الحالة لاحقًا (أقرب إلى الإصدار النهائي لـ SDL3)، حيث أنه حاليًا تقرر إعطاء يفضل معالجة المشكلات المذكورة أعلاه وقد يعود الوضع إلى طبيعته بحلول ذلك الوقت. في الوقت الحالي، تظل Wayland ممكنة في إصدارات اختبار SDL 3 لإجراء تقييم أفضل في البيئات المستندة إلى Wayland ولجمع تعليقات المستخدمين.

رغم أن في الوقت الحالي يبدو أن كل شيء يشير إلى أن وايلاند سيكون الخيار النهائيإذا لم يتم حل المشاكل، وقبل كل شيء، لم يتم تحقيق الأداء الأمثل، فإن تأخير وايلاند كتخلف عن السداد قد يصبح حقيقة واقعة.

في هذه اللحظة يمكنك رؤية الوضع الحالي لتطوير فرع SDL 3 الجديد، الذي يتميز بتعديلات على الأنظمة الفرعية المختلفة، وتغييرات واجهة برمجة التطبيقات (API) التي قد تؤثر على التوافق، وتنظيف شامل للميزات المهملة. على سبيل المثال، في SDL 3، تم إعادة تصميم الكود بالكامل للعمل مع الصوت، وتم تقديم واجهة خلفية جديدة للعرض عبر Vulkan API في واجهة برمجة التطبيقات للعرض ثنائي الأبعاد، وتم توسيع دعم HDR، وواجهة برمجة التطبيقات للعمل مع النوافذ الشفافة، من بين أشياء أخرى .

إذا كنت مهتم بمعرفة التقدم في SDL3 يمكنك استخدام الإصدار التجريبي المقدم من الرابط التالي.من ناحية أخرى، إذا كنت تريد متابعة مناقشة تأخير Wayland، فيمكنك القيام بذلك من الرابط أدناه.