يعمل برنامج D7VK 2.2 على تحسين دعم Direct3D 3 لتشغيل ألعاب ويندوز الكلاسيكية على نظام لينكس

  • يعمل الإصدار D7VK 2.2 على تحسين دعم Direct3D 3 بشكل كبير، حيث يقوم بإصلاح مشكلات الجهاز، ومخازن التنفيذ، وتحويلات الرؤوس.
  • كما يعمل التحديث على تحسين إدارة النسيج وشفافية مفتاح اللون ويقلل من الحمل الزائد على بعض مسارات Direct3D 5 و 6.
  • يعتمد D7VK 2.2 على DXVK 3.1 ويواصل تحسين تشغيل ألعاب Windows الكلاسيكية باستخدام Wine و Proton على Linux.

D7VK 2.2

يتوفر الآن D7VK 2.2 كإصدار جديد من طبقة ترجمة الرسومات، مصمم لتشغيل ألعاب ويندوز الكلاسيكية على لينكس. يركز هذا المشروع، المشتق من DXVK، على ترجمة واجهات برمجة تطبيقات Direct3D 7 و6 و5 و3 القديمة إلى Vulkan لاستخدامها مع Wine وProton، ويُخصص هذا الإصدار الجديد جزءًا كبيرًا من جهوده لأحد المجالات التي كانت لا تزال تعاني من أكبر أوجه القصور: دعم Direct3D 3.

يأتي هذا التحديث بعد أسابيع قليلة من إصدار D7VK 2.1، ويُواصل مسيرة تطوير هذه التقنية التي تُعدّ مثيرة للاهتمام بشكل خاص لمن يرغبون في تشغيل ألعاب أواخر التسعينيات وأوائل الألفية على أنظمة لينكس الحديثة. إلى جانب تحسين Direct3D 3، يتضمن D7VK 2.2 العديد من إصلاحات الأخطاء والتعديلات الداخلية، وهو مبني على الإصدار الأخير DXVK 3.1.

يركز D7VK 2.2 على Direct3D 3

تتمثل الميزة الجديدة الرئيسية في D7VK 2.2 في دعم Direct3D 3، وهي واجهة برمجة تطبيقات كانت متأخرة نوعًا ما عن التقنيات القديمة الأخرى التي يدعمها المشروع. على الرغم من أن ألعاب Direct3D 3 التي تمكن المطور من جمعها واختبارها كانت تعمل بالفعل مع D7VK، إلا أنه لا تزال هناك بعض الحالات الشاذة والسلوكيات التي لم يتم تنفيذها بشكل صحيح.

كان هذا الأمر إشكاليًا بشكل خاص لأن إعادة بناء قائمة الألعاب التي تستخدم Direct3D 3 أمرٌ صعب. فهذه عناوين قديمة جدًا، والعديد منها لم يعد متوفرًا تجاريًا أو يصعب العثور عليه، مما يجعل اختبار جميع التطبيقات المحتملة التي قد تُصادف في الواقع العملي أمرًا صعبًا.

في هذا الإصدار، قام المطور بمراجعة جزء كبير من تطبيق Direct3D 3 لجعله أقرب إلى مستوى النضج الذي حققته واجهات برمجة التطبيقات الأخرى المتوافقة مع D7VK.

يتوافق سلوك أجهزة D3D3 مع السلوك الأصلي

يتضمن أحد التغييرات التقنية إعادة تصميم نظام عد المراجع لأجهزة Direct3D 3. يقوم D7VK 2.2 بتعديل هذه الآلية بحيث يتطابق سلوكها مع سلوك تطبيق واجهة برمجة التطبيقات الأصلية.

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

وبالتالي فإن التنفيذ الجديد يقلل من احتمالات فشل بعض العناوين في إدارة أجهزة الرسومات الخاصة بها بطريقة لم يتوقعها D7VK.

يقدم الإصدار D7VK 2.2 تحسينات على الشفافية باستخدام مفتاح اللون

يُجري الإصدار D7VK 2.2 تعديلات على إدارة مفتاح اللون في أجهزة Direct3D 3 النقية. وحتى الآن، كان المشروع يستخدم نموذجًا بسيطًا للغاية حيث تبقى هذه الوظيفة مُفعّلة دائمًا في ظروف معينة.

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

بالإضافة إلى ذلك، تم تحسين الحسابات المتعلقة بنطاقات الألوان المعيارية. يتم الآن تحديث هذه القيم فقط عند تغيير وصف السطح، مما يسمح بتخزينها مؤقتًا وإعادة استخدامها لاحقًا.

ينبغي أن تكون النتيجة تحسناً طفيفاً إلى متوسط ​​في الأداء في الألعاب التي تستخدم شفافية مفتاح اللون، بالإضافة إلى سلوك أكثر صحة.

تم تصحيح حالات الحدود في مخازن التنفيذ المؤقتة.

من الجوانب المهمة الأخرى في D7VK 2.2 مراجعة عمليات التحقق من صحة مخزن التنفيذ في Direct3D 3. وقد أعاد المشروع تنظيم جزء من هذه الآلية لمعالجة حالات استثنائية مختلفة تم تحديدها أثناء الاختبار.

وللتحقق من السلوك المتوقع لواجهة برمجة التطبيقات، تمكن المطور أيضًا من الاعتماد على اختبارات Wine المتعلقة تحديدًا بـ Direct3D 3. تسمح هذه الاختبارات بمقارنة سلوك D7VK مع السلوك المتوقع من تطبيق متوافق، والكشف عن الاختلافات التي قد لا تُلاحظ عند استخدام الألعاب المعروفة فقط.

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

متانة أكبر لنسيج Direct3D 5 و 3

لا يقتصر التحديث على Direct3D 3. كما يعمل D7VK 2.2 على تحسين معالجة الصور المستخدمة بواسطة Direct3D 5 و Direct3D 3 لمنع الأسطح الأساسية من الخروج عن النطاق أثناء استخدامها.

يُحسّن هذا التغيير من كفاءة معالجة موارد الرسومات، ويُمكنه حلّ الأخطاء التي تظهر فقط في ظلّ تسلسلات مُحدّدة من العمليات. ويُشير المُطوّر أيضًا إلى أن هذا التحسين كان له أثر إيجابي على لعبة Frogger ، التي صدرت في الأصل عام 1997.

تُظهر هذه الرقعة كيف يمكن للتغييرات الداخلية التي تهدف إلى معالجة مشكلات إدارة الموارد أن يكون لها آثار واضحة على ألعاب معينة، حتى عندما لا يكون التعديل مصممًا خصيصًا لها.

يقوم برنامج D7VK 2.2 أيضًا بتصحيح مشاكل التحويل والمصفوفات

يُصلح الإصدار D7VK 2.2 أيضًا خطأً متعلقًا بتحويل مخازن تنفيذ Direct3D 3. وقد نتجت المشكلة عن تحديد غير صحيح لتنسيق FVF المستخدم لمدخلات الرؤوس.

تم أيضًا إصلاح مشكلة في حسابات مصفوفة الإسقاط القديمة. تم اكتشاف الخلل من خلال اختبار Wine الذي لم يكن يعمل كما هو متوقع، وكان من الممكن أن يؤثر سلبًا على بعض تطبيقات Direct3D 6 و5 و3.

تُؤكد هذه التغييرات أهمية اختبار التوافق مع D7VK. فالعديد من مشاكل واجهات برمجة التطبيقات الرسومية القديمة لا تظهر بالضرورة في الألعاب الأكثر شيوعًا، بل في مجموعات محددة من الميزات التي قد تبقى خفية لسنوات.

تقليل النفقات العامة على مسارات الرسم القديمة

كما يقوم الإصدار الجديد بإعادة تنظيم مسار الرسم Begin() / Vertex() / End() يستخدم بواسطة Direct3D 6 و Direct3D 5. يقلل التعديل من استهلاك الذاكرة ويوفر تحسينًا طفيفًا في الأداء.

مرة أخرى، تُعدّ لعبة Frogger من بين الألعاب التي يُمكنها الاستفادة من هذا التغيير. ورغم أن هذا التحسين لن يُضاعف معدل الإطارات في الثانية لجميع الألعاب الكلاسيكية، إلا أنه يُساعد في تقليل بعض العبء المُتراكم على المسارات التي تستخدمها واجهات برمجة التطبيقات القديمة.

لقد تلقى D7VK بالفعل تحسينات كبيرة في الأداء في الإصدارات السابقة، لذا يركز العمل الحالي بشكل متزايد على تحسين التنفيذ والقضاء على التكاليف غير الضرورية.

D7VK 2.2 جزء من DXVK 3.1

ومن الميزات المهمة الأخرى لهذا الإصدار استبدال D7VK 2.2 بـ DXVK 3.1 . وهذا يسمح للمشروع بالاستفادة من قاعدة بيانات أحدث والحفاظ على توافق تنفيذه مع تطور DXVK.

تُعدّ العلاقة بين المشروعين بالغة الأهمية. فقد نشأ D7VK كنسخة معدلة من DXVK متخصصة في واجهات برمجة تطبيقات Direct3D القديمة التي لا يغطيها استخدام DXVK القياسي، بينما يستخدم كلاهما Vulkan كوجهة لاستدعاءات الرسومات الصادرة من نظام Windows.

بفضل هذه العلاقة، يمكن أن تكون التحسينات الهيكلية التي تأتي إلى DXVK بمثابة أساس لـ D7VK لمواصلة التطور دون الحاجة إلى تطوير جميع البنية التحتية اللازمة للتواصل مع Vulkan من الصفر.

مشروع مصمم لإحياء الألعاب الكلاسيكية

يهدف D7VK تحديدًا ضمن بيئة لينكس إلى تمكين ألعاب ويندوز التي تستخدم Direct3D 7 و6 و5 و3 من العمل باستخدام Vulkan. وهذا ما يميزه عن DXVK، الذي يركز بشكل أساسي على Direct3D 9 و10 و11.

تزداد أهمية المشروع عندما يتعلق الأمر بالعناوين التي تعتمد على تقنيات الرسومات التي لا ينفذها Wine بشكل مباشر بنفس الطريقة أو التي يمكن أن تستفيد من ترجمة أكثر دقة إلى Vulkan.

من خلال الجمع بين D7VK و Wine أو Proton، يمكن لمستخدمي Linux استعادة كمية كبيرة من البرامج من أواخر القرن العشرين وأوائل القرن الحادي والعشرين دون الحاجة بالضرورة إلى اللجوء إلى تثبيت Windows قديم.

بالنسبة لمستخدمي Wine أو Proton لتشغيل الألعاب على نظام Linux والمهتمين بإعادة إحياء الألعاب الكلاسيكية، يُعزز D7VK 2.2 أحد أهم عناصر بنية التوافق. ورغم أن العديد من تحسيناته قد لا يلاحظها المستخدم، إلا أن كل إصلاح يزيد من فرص تشغيل لعبة أخرى كانت مفقودة في حقبة Direct3D 3 أو 5 أو 6 أو 7 بشكل صحيح على نظام Linux حديث.


أضف كمصدر مفضل في جوجل