مكتبة DirectX 12، العبأ الذي لا يتحمله أحد!

منذ أربعة أعوام بالضبط كتبنا هنا عن مكتبة DirectX 11 وكيف صارت عبأ علي كل المطورين، وكيف تطلعت شركات العتاد والألعاب معا لمكتبة جديدة تفتح آفاق الأداء علي الحاسب الشخصي PC لما هو أقوي وأفضل.

ومع مطلع عام 2014 بدا وكأن حالة الركود التي أصابت الحاسب الشخصي مع تمترس DX11 وكأنها ستتعرض لانفجار حاد يغير من تضاريس بيئة الحاسب ويقلبها رأسا علي عقب.

أعلنت AMD عن مكتبتها الخاصة Mantle، ثم أعلنت Microsoft عن مكتبة DX12 الجديدة، كما أعلنت رابطة Kronos Group عن مكتبة OpenGL جديدة اسمها Vulkan .. الهدف المباشر من المكتبات الثلاثة هو تبسيط بيئة تطوير الألعاب علي الحاسب الشخصي PC، وجعلها مكافئة للمنصات المنزلية Home Consoles في قوة التطويع Optimizations، كان الهدف هو زيادة أداء عتاد الحاسب الشخصي كله لتستغل الألعاب كل قطرة أداء من المعالج الرسومي GPU والمركزي CPU.

تحمس الجميع، المطورون وشركات العتاد والمستخدمون، تحمسوا وتحمسنا معهم، وأنشدنا القصائد التقنية والأخبار في مدح هذه الخطوات التي طالما بحّت أصواتنا مطالبة بها.

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

وفي هذه الدراسة التفصيلية، سنستعرض ماذا حدث، ولماذا حدث، وكيف حدث .. ولنبدأ بأول الغيث: Mantle.

AMD تمسك زمام المبادرة:

Mantle 1صدرت مكتبة Mantle علي بطاقات AMD حصريا، في جيل معمارية GCN 1 والتي جاءت بها بطاقات HD 7000 تلك البطاقات التي انتشرت حتي في المنصات المنزلية PS4 و Xbox One. كان الأمل عاليا مع المكتبة الجديدة لتحسين الأداء علي كل بطاقات AMD، ولقد اعلنت AMD ان المكتبة يمكنها تقليل استهلاك الذاكرة الرسومية Video RAM، ويمكنها تقليل أزمان تحميل الألعاب Loading Times، كما يمكنها زيادة عدد الأجسام ثلاثية الأبعاد التي يمكن رسمها عن طريق زيادة عدد أوامر الرسم Draw Calls أضعاف ما باستطاعة DX11 .. وأعلنت أيضا أن المكتبة تزيد من أداء المعالج المركزي CPU في الألعاب!

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

لكن الحلم سرعان ما انقلب الي كابوس! فمكتبة Mantle كان لها مشاكلها الخاصة التي جعلتها تأتي برياح عاصفة معاكسة لما اشتهته سفن الآملين.

بداية فان المكتبة لم يكن لها فائدة حقيقة من ناحية الأداء لمعظم اللاعبين الا في حدود ضيقة، ربما اذا كنت تمتلك معالجا مركزيا ضعيفا Low End CPU، أو تحب لعب ألعابك بإعدادت منخفضة أو متوسطة Low ~ Medium Settings، ربما وجدت في هذه الحالات أن الأداء يرتفع عندك مع مكتبة Mantle، غير هذا فلا تتوقع الا تغييرات طفيفة في الأداء!

وحتي مع هذا فان المشكلات تزيد من جهة أخري، فانت تحتاج لذاكرة رسومية Video RAM أكبر اذا أردت اللعب علي Mantle! فالمكتبة تلغي دور تعريف القيادة Driver بدرجة كبيرة، وهو المسئول عن ادارة الذاكرة وما يدخل فيها ويخرج منها، وفي غير وجوده فان المسئولية تنتقل لمطور اللعبة Developer مباشرة، ومطور اللعبة كسول أو مشغول بمسئوليات أخري، ولن تجد عنده اهتماما بادارة أعمال الذاكرة بنفس دقة تعريف القيادة Driver، لذا كان من الطبيعي أن تجد مطور اللعبة يكوم البيانات داخل الذاكرة تكويما، متطلبا ذاكرة أعلي. وفي هذه الحالة فان اللعبة تعمل بشكل أسوأ من DX11، وقد عانت من هذا الأمر كل بطاقات AMD ذات الـ 2جيجا بايت من الذاكرة، وخصوصا في ألعاب محرك Frostbite مثل Planet Vs Zombies Garden Warfare و Battlefield 4 و Battlefield HardLine و Dragon Age Inquisition.

ليس هذا فحسب، بل أن أزمان التحميل Loading Times في الألعاب ازدادت مع مكتبة Mantle كنتيجة مباشرة لزيادة متطلبات الذاكرة!

لكن الأمر لم يتوقف عند هذا وفقط، بل امتد الي ما هو أخطر بمراحل! ألعاب مكتبة Mantle لا تعمل جيدا مع العتاد الأحدث منها، فكل البطاقات الرسومية التي صدرت بعد Mantle بعام احتاجت الي ترقيعات Patches لتعمل بشكل جيد علي Mantle، وفي الأحيان التي لم يكن فيها ترقيعات فان اللعبة لا تعمل بشكل مرضي مع المكتبة، أما البطاقات التي صدرت بعد Mantle بعامين فلا تصلح لتشغيل المكتبة اطلاقا (بطاقات Fury و Vega و R 300)! والمشكة ببساطة تنشأ من طبيعة مكتبة Mantle نفسها، فهي مكتبة تخاطب العتاد Hardware بلغة قريبة من الآلة Machine Language بشكل مباشر، بدون  وسطاء أو مترجمين أو ملٌقنين (وتلك هي وظيفة التعريف Driver)، وفي حالة تغير العتاد ولو بنحو طفيف، فان لغة التخاطب تحتاج الي تغيير هي كذلك!

في السابق كان تعريف القيادة Driver هو الوسيط بين اللعبة والعتاد، وكان يتولي مهمة الترجمة حتي في حالة تغيير العتاد، لكن مع انتهاء هذا الدور مع مقدم Mantle، اصبحت المخاطبة المباشرة مع العتاد الجديد مستحيلة!

باختصار، بدا بجلاء أن المكتبة لم تحقق غالبية الوعود التي قطعتها علي نفسها، وفي عدد من الأحيان تسببت في زيادة سوء الموقف علي الحاسب الشخصي، كما أنها لم تكن كافية لجعل بطاقات AMD تتفوق علي نظيراتها من بطاقات NVIDIA.

NVIDIA_INTER_PART1_2     حتي مع Mantle، تفوقت بطاقات NVIDIA بمكتبة DX11 علي بطاقات AMD بالمكتبة الجديدة.

لكل هذه الاسباب، لم يدم عمر مكتبة Mantle طويلا، في البداية وعدت AMD أن المكتبة ستتضمن 15 لعبة، لكنها نجحت في الوصول الي سبعة فقط، قبل أن يتم الغاؤها وتركها للموت كلية، البعض قال أن السبب كان مقدم مكتبة DX12، لكن هذا غير صحيح، فحتي الألعاب التي وعدت باستخدام Mantle، لم تهتم باستخدام DX12 بعده، Plants Vs Zombies Garden Warfare استخدمت Mantle، لكن الاصدار الثاني منها Plants Vs Zombies Garden Warfare 2 لم يستخدم لا Mantle ولا DX12، ألعاب StarWars Battlefront و Need For Speed و Mirror’s Edge Catalyst وعدوا باستخدام Mantle لكنهم تخلوا عنها ولم يفكروا حتي في استخدام DX12، وكذا الأمر مع Mass Effect Andromeda. ومن هنا نفهم أن عيوب الابقاء علي Mantle كانت أكثر من فوائده.

أكثر من 15 لعبة وعدت بهم Mantle ولم توف بأغلبهم

لكن الأمور ليست بهذه البساطة والسطحية، لمكتبة Mantle فائدة وحيدة لدي AMD، وهي تقليل عبأ التطويع والتطوير لتعريف القيادة Driver الخاص بها، وتحديدا فيما يتعلق بالمكتبة الأشهر DX11، حيث أثبتت الاختبارات والتجارب أن AMD تعاني بقوة في هذا الشأن مقارنة بـ NVIDIA.

كانت هناك اختبارات نظرية مثل DX12 Overhead Test، واختبار StarSwarm، و هؤلاء أظهروا تأخر أداء مكتبة DX11 لدي AMD مقارنة بـ NVIDIA. (انقر هنا للاختبارات)، وكانت هناك اختبارات فعلية بألعاب مثل Ryse و Far Cry 4 و Far Cry Primal و The Crew و Call Of Duty Advanced Warfare و GTA 5 و OverWatch و The Witcher 3 و Fallout 4 و Just Cause 3 و Rise Of The Tomb Raider، وهو الأمر الذي كان يكفي لتكوين صورة عامة عن وضع DX11 المتأخر مع AMD، حيث أظهرت تلك الألعاب تأخر بطاقات AMD الدنيا والمتوسطة في الأداء عند جمعها مع معالجات متواضعة (Core i3 مثلا)، مقارنة بمثيلاتها من بطاقات NVIDIA التي لا تتأثر مطلقا! (انقر هنا للاختبارات)

بل إن الأمر امتد الي أداء مكتبة OpenGL أيضا، وظهر هذا في ألعاب حديثة مثل Doom و No Man Sky، حيث تحقق بطاقات AMD أداءا مريعا في هذه المكتبة مقارنة بـ NV. (انقر هنا للاختبارات) وكذا الأمر مع تطبيقات الواقعية الافتراضية Virtual Reality، التي عكست نفس السلوك. (انقر هنا للاختبارات)

حجم تعريف القيادة في DX11 أكبر بكثير من DX12

والسبب في ذلك بسيط، تعريف القيادة الخاص بـ DX11 و OpenGL معقد ومكلف، ويتطلب تلقينا مكثفا وتجميعا للتعليمات والأوامر في حزم وتطويعها لتقدم أداء جيدا في كل الظروف، كان لـ NV الامكانيات والمال لتحقيق هذا الأمر المكلف، بينما لم يتحقق لـ AMD مثل تلك الامكانيات، لهذا كان أداء تعريف القيادة الخاص بها معتمدا علي قوة المعالج المركزي ليعينه علي التطويع المباشر، وكلما ازداد المعالج المركزي قوة، كلما كانت فرصة التعريف أقوي لتقديم أداء جيد، والعكس كلما ازداد المعالج المركزي ضعفا، كلما قلت قوة التعريف في التطويع ومن ثم الأداء!

وقد ظهر هذا أكثر في أداء بطاقة مثل FuryX علي دقة 1080p، والذي جاء منخفضا بدرجة ملحوظة عن باقي الدقات العليا مثل 2160p، والسبب في في ذلك أن بطاقة FuryX جاءت بعدد كبير من الأنوية، تلك الأنوية تتطلب مهارة خاصة من تعريف القيادة لتغذيتها بالبيانات والاستفادة القصوي منها، ويزداد هذا أكثر علي دقة 1080p وهي الدقة التي تعتمد أكثر علي المعالج المركزي.

لهذا حاولت AMD التركيز علي مكتبات جديدة، لترفع عنها عبأ التطويع الباهظ الثمن للمكتبات القديمة DX11 و OpenGL. وقد بدأت هذا الأمر مع Mantle، ثم انتقلت الي DirectX 12 مع موت Mantle. لكن هل حققت المكتبات الجديدة هذا الغرض؟ إنني هنا لأخبرك أيها القارئ المتلهف للمعرفة أنه لا، لم تحقق شيئا، بل زادت الطين بلة.

Microsoft تتدخل لانقاذ الوضع:

بعدما ازداد الجدل واحتدت الشكوي وارتفعت أصوات اللاعبين والمطورين علي حد سواء، قررت Microsoft تحديث مكتبة DirectX 11 الي الاصدار الـ 12 مع مقدم Windows 10، وجاء الاصدار الجديد حاملا تغييرات بدت كبيرة وشاملة حينها، جاء حاملا لكل وعود مكتبة Mantle القديمة بل وأكثر. قالت الشركة أنها دمجت عدد كبيرا من تقنيات المعالجة في المكتبة الجديدة، وأن تلك التقنيات ستزيد من أداء البطاقات الرسومية.

لكن مكتبة DX12 بدأت بداية متعثرة للغاية، فقد أحجم عنها المطورين بشكل عام، الا من بعض المطورين الذين دفعتهم AMD لذلك دفعا، وحتي هؤلاء لم يصدروا ألعابهم بدعم DX12 الا بعد عدة شهور من صدور تلك الألعاب، بل أنهم أصدروها في هيئات ترقيعات أولية Beta Patches ممتلئة بالأخطاء والمشكلات Bugs! وبدا الأمر غريبا، ما السر يا تري وراء هذا الإحجام، ألم يكن الجميع متحمسا ومٌفعما بالأمل؟ هل حلت عليهم لعنة من الكسل؟

ثم برز ما هو اغرب، أداء ألعاب DX12 كان سيئا للغاية علي معظم البطاقات، ربما كان ناجحا في البداية علي بعض بطاقات AMD، لكنه لم يكن كذلك بالنسبة لبقية البطاقات الرسومية، كما أن الآية انقلبت حتي علي بطاقات AMD نفسها!

في البداية صالت AMD وجالت في البقاع متحدثة عن عظمة أداء مكتبتها مع DX12 وعن دعم بطاقاتها الصريح لتقنية جديدة في مكتبة DX12 تسمي المعالجة المختلطة Asynchronous Compute والتي تفتقر اليها بطاقات NVIDIA .. وان تلك التقنية هي اهم تقنية في مكتبة DX12. لكن الحقيقة كانت أن الألعاب التي تعمل جيدا علي بطاقات AMD مع DX12 هي ألعاب مطوعة لبطاقات AMD بالأساس ولا علاقة للأمر بمكتبة DX12 ولا Asynchronous Compute.

وتقنية Asynchronous Compute هي تقنية للمعالجة الغير متماثلة أو المختلطة علي المعالجات الرسومية GPUs. والمعالجات الرسومية تعمل علي بيانات رسومية Graphics او بيانات حوسبية Compute كالتعدين وفك الشفرات وحساب المعادلات العلمية وخلافه. والبطاقة الرسومية اما ان تعمل في وضعية الرسوم او وضعية الحوسبة. ولا يمكن لها ان تعمل علي الوضعين معا. أي انها تعمل فقط علي بيانات متماثلة في كل مرة، رسومية فقط او حوسبية فقط.

لكن مع مقدم تقنية المعالجة غير المتماثلة (او لنسمها المعالجة المختلطة) تغير هذا الامر، واتاحت التقنية تشغيل النوعين معا. ولما كان جزء من بيانات الالعاب في هيئة معادلات حسابية Compute بالفعل.. فان التقنية تمثل فرصة عظيمة لتشغيل النوعين بسرعة معا اذا توفرت الظروف الملائمة. والظروف الملائمة هنا هي كون المعالج الرسومي شاغرا بالطبع! فبفرض كون المعالج مشغولا بنسبة 100% في معالجة بيانات رسومية.. فكيف يمكن للبيانات الحوسبية ان تعمل عليه؟ والعكس صحيح، اذا ما كان المعالج الرسومي منشغلا بنسبة 100% في بيانات حوسبية، فكيف يمكن للبيانات الرسومية ان تعمل؟

تملأ تقنية المعالجة المختلطة فراغات المعالج الرسومي بالبيانات، ليستطيع معالجة بيانات الحوسبة Compute والرسوم Graphics معا

 

ومن هنا نفهم ان التقنية تعمل لسد الفراغات في المعالج الرسومي.. فمثلا اذا كان منشغلا بنسبة 70% ببيانات رسومية، فيمكن للبيانات للحوسبية ان تعمل الي جوارها في مساحة ال 30% الشاغرة. والتقنية هنا تعمل وكانها مسارات ثانوية HyperThreading. لكن المشكلة تبدأ في الظهور حينما يكون المعالج الرسومي مكتظا بالبيانات علي نحو دائم بسبب انه ينجح في تغذية نفسه بنسبة 100% باستمرار . هنا تصبح التقنية بلا فائدة في غالبية الاحوال. بل ويصبح تفعيلها قسرا امرا مضرا للاداء لانها تقطع سيل المعالجة الحالية!

وهذا ديدن معالجات NVIDIA الرسومية.. والتي تنجح تعريفات القيادة فيها في امدادها بكم كبير من البيانات الرسومية يكفي لابقاءها مشغولة بنسب تتخطي ال90%. لذا فاستفادة NVIDIA من تقنية المعالجة المختلطة محدودة للغاية. اما معالجات AMD فالحال فيها مختلف، فهي لا تستطيع تغذية نفسها بشكل دائم، وتعاني دوما من وحود فقاقيع شاغرة bubbles بداخل المعالج الرسومي، لهذا تكون تقنية المعالجة المختلطة بمثابة المنقذ الذي يبقي معالجاتها مستغلة بنسب تقترب من ال 90%. من هنا نفهم ان عبارة دعم المعالجة المختلطة Asynchronous Compute هي عبارة مضللة، فكل البطاقات تدعمها، لكن ليس كلها من يستفيد منها علي النحو الامثل. وعلي هذا فلا ينبغي التفاخر باستفادة بطاقة ما من التقنية.. فهي ليست مزية تفضيلية، وانما تعني عجز تلك البطاقة عن العمل بنسبة 100% دونها. وما ينبغي فعله هو تقييم الاداء الكلي بغض النظر عن فائدة التقنية من عدمه.

وتقييم الأداء الكلي لم يكن في صالح تقنية المعالجة المختلطة، ولا في صالح AMD، والدليل هي ترسانة من ألعاب DX12 التي تعمل بشكل أفضل علي بطاقات NVIDIA! من دون الحاجة الي المعالجة المختلطة. وسنسوق الأمثلة لهذا حالا. (لاحظ أن الأمثلة كلها تركز علي معماريات الجيل السابق وتحديدا بطاقتي FuryX و GTX 980Ti، وسيتم الحديث عن الجيل الحالي GTX 1080 و Vega 64 في مقال لاحق باذن الله).

 Rise Of Tomb Raider :تعمل بشكل أفضل علي بطاقات NVIDIA سواء في DX11 أو DX12 (انقر هنا للاختبارات)
Gears Of War Ultimate Edition:تعمل بشكل أفضل علي بطاقات NVIDIA باستخدام DX12 (انقر هنا للاختبارات)
Gears Of War 4:تعمل بشكل أفضل علي بطاقات NVIDIA باستخدام DX12 (انقر هنا للاختبارات)

Forza 6 Apex: تعمل بشكل أفضل علي بطاقات NVIDIA باستخدام DX12 (انقر هنا للاختبارات)
Forza Horizon 3:تعمل بشكل أفضل علي بطاقات NVIDIA باستخدام DX12 (انقر هنا للاختبارات)
Halo Wars 2:تعمل بشكل أفضل علي بطاقات NVIDIA باستخدام DX12 (انقر هنا للاختبارات)
  Civilization 6: تعمل بشكل أفضل علي بطاقات NVIDIA باستخدام DX12 (انقر هنا للاختبارات)

لكن المثير للذهول هو ظهور العديد من ألعاب DX12 التي تعمل علي DX11 بشكل أفضل كثيرا من DX12!  وهو الامر الذي هو أشبه بالفضيحة! والتي جاءت بعد ما ظهر أن عددا من ألعاب DX12 تعمل بشكل ردئ للغاية، رغم عملها بشكل جيد مع DX11. وهو الامر الذي صار مثارا للسخرية، فكيف يمكن للمكتبة القديمة ان تعمل بشكل اسرع من الجديدة رغم التحسينات التي وعدت بها الجديدة؟

والحقيقة المخزية هي أن أداء DX12 كان سيئا للغاية في ألعاب مثل Quantum Break و Deus Ex Mankind Divided و Battlefield 1، الي الحد الذي يجعل لعب هذه الألعاب بمكتبة DX11 القديمة مسألة لا مفر منها. ويتراوح الاداء السئ ما بين اطارات اقل الي خلل في ايقاع الاطارات Frame Pacing وتقطعات ووقفات Stutters في سلاسة العرض. والغريب أن الكثيرين يختبرون تلك الألعاب في وضعية DX12 رغم كونها وضعية معطوبة، يشوبها خلل كبير. وهو ما يبين خطر الانسياق الأعمي وراء التقنيات الجديدة اللامعة حتي ولو كانت تضر ولا تفيد.

Deus Ex Mankind Divided: تعمل بشكل سئ في DX12 سواء علي بطاقات AMD او NVIDIA.. وتجربة اللعب باستخدام DX11 هي الافضل لكلاهما، أداء AMD  علي هذه الوضعية أعلي (انقر هنا للاختبارات)
Battlefield 1: تعمل بشكل سئ في DX12 سواء علي بطاقات AMD او NVIDIA.. وتجربة اللعب باستخدام DX11 هي الافضل لكلاهما، لكن أداء NVIDIA أعلي من AMD في DX11 (انقر هنا للاختبارات)  
  Quantum Break:تعمل بشكل سئ في DX12 سواء علي بطاقات AMD او NVIDIA.. وتجربة اللعب باستخدام DX11 هي الافضل لكلاهما ، لكن أداء NVIDIA أكبر من AMD في هذه الوضعية (انقر هنا للاختبارات)
Total War Warhammer:تعمل بشكل سئ في DX12 علي بطاقات NVIDIA، وتجربة اللعب باستخدام DX11 هي الافضل، الي درجة أنها أفضل من DX12 لدي AMD (انقر هنا للاختبارات)

 

الأسوأ من هذا كله أن DX12 يخسف الأداء علي البطاقات دونما أدني تحسن في جودة الصورة، تجد هذا واضحا في ألعاب أخري مثل Rise Of Tomb Raider و Civilization 6. ولطالما انتقدت AMD تحسينات الصورة التي تضيفها NVIDIA علي ألعاب عديدة، علي أساس أنها مضرة بالأداء .. لكنها غضت الطرف عن اضرار مكتبة DX12 بالكامل بالاداء من دون أي تحسن في جودة الرسوميات.

وتلك هي الحقيقة المخزية الأخري، أن مكتبة DX12 لم تقدم أي جودة صورة اضافية في أي لعبة من الألعاب التي تدعمها، بينما تفوقت عنها مكتبة DX11 في جودة الصورة في لعبتين وهما The Division و Rise Of Tomb Raider، حيث تعمل اللعبتين بمؤثرات ظلال أعلي حصريا علي بطاقات NVIDIA.

 وهنا يدرك القارئ ان حال مكتبة DirectX 12 كان بنفس مستوي سوء Mantle او ربما اسوا..  فبعد عامين من اصداره، لم تدعمه سوي 16 لعبة فقط، أربعة منهم فقط في عام 2017، ولم تعلن اي شركة العاب عن المزيد في 2018 حتي الان.

والسبب الرئيسي في هذا هو عدم حب المطورين للمكتبة من الاصل..  فالمكتبة اتت ببعض العيوب التي اتت بها مكتبة Mantle مثل استهلاك الذاكرة الرسومية العال، ومثل الاداء المحدود بل والسلبي. كما ان المطورون اشتكوا من صعوبة التطويع والتطوير علي المكتبة الجديدة مقارنة ب DX11..  بل ان بعضهم ذهب الي ابعد من ذلك قائلا ان المرء يجب ان يشعر بالرضا اذا ما وصل اداء DX12 الي مستوي اداء DX11.


أحد المطورين يحذر من السعي خلف زيادة الأداء في DX12، علي أساس أنها محاولة غير مجدية

 

اشتكي البعض ايضا من زيادة تعقيد تصميم اللعبة علي DX12 بسبب تولي المطور مسئولية كل شئ، واشتكوا ايضا زيادة تعقيد تعريفات القيادة Driver مع DX12. باختصار كان من الواضح كراهية المطورين للمكتبة الجديدة، وهو الامر الذي لم يكن من المتوقع اطلاقا.


مطور آخر يشكو صعوبة التطوير علي DX12 ويطالب بتقليل التوقعات المطلوبة منه، وبعدم مقارنته بأداء DX11

وجزء من المشكلة يتعلق باعتماد محركات الالعاب حاليا علي اسس مكتبات DX11 و DX9 وهي الاسس التي تتعارض في اغلب الاحيان مع اسس مكتبة DX12..  لذا يضطر المطورون الي عمل محاكاة لطبقة DX12 فوق طبقة DX11، وهو الامر الذي ياتي بنتائج عكسية علي الاداء، وهذا هو السبب الرئيسي في تخلف سرعة مكتبة DX12 عن DX11، فالمحاكاة Emulation لا يمكنها ابدا العمل بنفس سرعة التعليمات الاصلية. والمعضلة ان تطوير محركات جديدة باسس DX12 يستغرق اعواما طويلة وتكاليف باهظة لا يرغب فيها المطورون حاليا. الذين يرون ان مكتبة DX11 اكثر من كافية في الظروف الحالية.

جزء اخر من المشكلة هو وقوع المكتبة ضحية حرب سياسات عنيفة بين AMD و NVIDIA..  ف AMD تريد الخلاص من مكتبة DX11 بسبب تاخرها في تطويعات تلك المكتبة لذا سارعت بتقدم Mantle ثم هرولت لدعم DX12 بقوة وبشكل مبكر رغم علمها بعدم جهوزية المحركات الرسومية لها. اما NVIDIA فقد رات ان المكتبة غير ناضجة مقارنة ب DX11 خصوصا بعد كم التطويعات  Optimizations الهائل الذي حققته فيها والذي ضمن تفوقها الحالي والمستقبلي علي AMD. لذا فقد تباطات جدا في دعم المكتبة او تحفيز المطورين لها. لكنها لم تتوقف عن تقديم التطويعات لها علي الرغم من ذلك، وهو الامر الذي حقق لها عدم التاخر عن AMD ومناطحتها لها راسا براس في العاب DX12. والنتيجة هي تقاسم الشركتين لكعكة الاداء في العاب DX12.

The Division:تعمل بشكل أفضل في DX12 علي بطاقات AMD من أي وضعية لدي NVIDIA (انقر هنا للاختبارات) 
Hitman: تعمل بشكل أفضل علي بطاقات AMD في وضعية DX12 من أي وضعية لدي NVIDIA (انقر هنا للاختبارات) 
Ashes Of Singularity: تعمل بشكل أفضل علي بطاقات AMD سواء في DX11 أو في DX12 (انقر هنا للاختبارات) 

 

Sniper Elite 4: تعمل اللعبة بشكل أفضل علي وضعية DX12، وكلا من AMD و NVIDIA يتبادلان ضربات الفوز فيها (انقر هنا للاختبارات) 

 

وما زاد الطين بلة هو بعض السياسات الانانية من طرف الشركتين..  فقد قامت AMD بدفع المطورين دفعا نحو الاهتمام الكامل بتقنية المعالجة المختلطة Asynchronous Compute لتضمن رفع نسبة الاداء علي بطاقاتها.. كما قامت بحملة دعائية ضخمة للتوعية بتلك التقنية وكانها قلب وروح مكتبة DX12 علي الرغم من كونها جزءا ضئيلا من المكتبة وعلي الرغم من وجود تقنيات اخري محورية ومهمة، وتحسينات في جودة الصورة ممكنة من خلال DX12، لكن AMD تجاهلت كل هذا وركزت اكثر علي التقنية التي ستفيدها بشكل شخصي، بل ان الشركة تجاهلت تماما دعم خواص تحسين الصورة بشكل عتادي علي كل بطاقاتها باستثناء بطاقات Vega الأخيرة.

علي الرغم من هذا لم يبد المطورين حماسة كافية لاستخدام تقنية المعالجة المختلطة كون معظم محركات الالعاب لا تدعمها بشكل كاف، كما ان استفادة بطاقات AMD نفسها منها غير مشجعة في احيان كثيرة، فالتقنية تتطلب توازنا معينا في التعامل مع المعالجات الرسومية من الاجيال المختلفة،  فلا يمكن الاسراف في استخدامها مثلا مع البطاقات الضعيفة او المتوسطة او حتي بطاقات الاجيال الاولي من معمارية GCN. لهذا قامت AMD بتعطيل التقنية بشكل كامل في بطاقات HD 7000 من تعريف القيادة. وهو الامر الذي يحمل خطر تخريب التوافقية الرجعية اذا ما صدرت العاب DX12 بتطويعات مخصصة لمعماريات جديدة. وهو الشان نفسه الذي عانت منه مكتبة Mantle.


أحد المطورين يوضح محدودية الاستفادة من المعالجة المختلطة، وصعوبة ضبطها وتطويعها، وكونها قد تقدم أداء سلبيا

اما NVIDIA فقد دعمت كل خواص تحسين الصورة في DX12 منذ معمارية Maxwell. خواص مثل تقنية Conservative Rasterization و تقنية Raster Ordered Views..  وهي في هذا الدعم متفوقة علي AMD، لكنها لم تسع لاستغلال هذا الدعم وتجسيده باي شكل من الاشكال حتي في العاب DX12 التي دعمتها بنفسها، بل سعت بدلاً  من ذلك لجعل مكتبة DX11 متفوقة بصريا علي DX12 في تلك الالعاب..  عن طريق تزويد DX11 بمؤثرات بصرية حصرية غير موجودة علي DX12.  مما يضمن تفوق DX11 المستمر علي DX12. حدث هذا مرتين في لعبتي Rise Of Tomb Raider و The Division حيث زودتهما NVIDIA بتقنيات ظلال محسنة (VXAO و HFTS) تعمل فقط علي بطاقاتها الاخيرة من معمارية Pascal وفقط علي DX11.


جودة صورة VXAO لا يمكن الحصول عليها الا مع مكتبة DX11

بل توسعت الشركة أيضا في دمج مؤثرات مكتباتها الحصرية مثل مكتبة CUDA و PhysX مع مكتبة DirectX 11 متجاهلة تماما صدور DirectX 12، فدمجت مؤثرات لـ CUDA في ألعاب حديثة مثل Just Cause 3. و سعت الي دمج مؤثرات لـ PhysX في ألعاب أخري مثل Batman Arkham Knight و BombShell و Dangerous Golf و Fallout 4. ولم يكن من نصيب ألعاب DX12 أي من هذه التقنيات.

وعلي الرغم من السمعة السيئة التي لحقت ب NVIDIA في دعم DX12 الا أنها فعليا تدعم DX12 بشكل أكبر من AMD، فكل بطاقات NVIDIA منذ جيل Fermi تدعمه، علي العكس من AMD التي تدعمه منذ جيل GCN فقط .. (أي أقل من NVIDIA بجيلين)، كما أن مؤثرات جودة الصورة بها غائبة عن كل الأجيال باستثناء Vega كما شرحنا. وهو الأمر الذي يشتت قدرات المكتبة بين أجيال المعالجات الرسومية الموجودة، فتارة جيل يدعم، وتارة جيل آخر لا يدعم، والذي يدعم بالفعل لا يأتي بتحسينات الصورة المطلوبة، أي فوضي كاملة في الدعم لشئ كان من المفترض أن يكون مباشرا وبسيطا.


NVIDIA تدعم DX12 بكل أجيال بطاقات DX11 منذ Fermi الي Pascal، بينما لا تدعم AMD سوي معمارية GCN فقط، وعائلات HD5000 و HD6000 غير مدعومة.

ولكل هذه الاسباب لا يبدو المستقبل مشرقا بالمرة لمكتبة DX12، فهي تعاني من عدم حماسة المطورين لها، وبطء تحول محركات الالعاب نحوها الشديد، كما تعاني من عيوب هائلة في الاداء وجودة الصورة، ودعم الالعاب القليل، وهي ايضا ممزقة بين سياسات لا تعرف المساومة بين AMD و NVIDIA، ومع وضع كل ذلك الاعتبار فان وضع المكتبة الحالي لا يسر لا عدو ولا صديق، بل ويثير الحزن والاسف علي ما آل اليه حال واحد من اكبر الامال التي تعلقت بها الانظار في الاعوام الاخيرة.

ان مكتبة DX12 في وضعها الحالي تشبه كثيرا مكتبة DX10، والتي صدرت ايضا بعدد محدود من الالعاب وبتحسينات صورة محدودة جدا وباداء متواضع وسئ، مما اجبر معظم المطورين علي تجاهلها ودعم DX9 فقط في العابهم. تماما كما يحدث الآن باستحواذ DX11 علي كل الدعم.

بل ان اوجه التشابه تمتد الي دعم نظام التشغيل ايضا. فمكتبة DX10 عملت فقط علي نظام Windows Vista، بينما تعمل DX12 علي نظام Windows 10 بشكل حصري، وهو الامر الذي يٌقيد انتشار تلك المكتبات بين المستخدمين الذين يحتفظون بانظمة تشغيل اقدم، مثل Windows XP و Windows 7. وهذا ايضا يقلل من حماسة المطورين لاستخدام تلك المكتبات، وهو الامر الذي تحقق بحذافيره مع DX10، حتي تم استبداله بسرعة بمكتبة DX11 الافضل والاشمل والتي حققت انتشارا غير مسبوق. وهو الامر الذي ربما يحدث مع DX12 بالفعل ليتم استبدالها بما هو أفضل.


رغم سمعة DX10 السيئة، الا أنه أتي بجودة صورة محسنة عن DX9

لكن كل هذا يتضائل اما خطر احتمالية ان يكسر DX12 التوافقية الرجعية Backward Compatibility مع الالعاب، اذا ما اعتمدت العابه علي الكثير من التقنيات ذات التخصص العالي، مثل المعالجة المختلطة. والتوافقية الرجعية هي حجر الاساس في عمل مكتبات DirectX، حيث يضمن اللاعب ان العابه ستظل تعمل مهما طال الزمن وتقدمت التقنيات. وأي تهديد يعرضها للخطر هو تهديد لا يستحق حتي فرصة التجربة من الأساس.

بدائل DirectX مفتوحة المصدر؟

واما مكتبةOpenGL البديل الاقل شهرة لمكتبة DirectX، فقد عانت من مشكلات مختلفة قليلا، فلكون المكتبة مفتوحة المصدر Open Source، تعرضت لتعديلات مكثفة من قبل شركات العتاد امثال Intel و AMD و NVIDIA و Google وغيرهم، بهدف تحديثها و ادخال خواص وتقنيات جديدة بها، وكانت تلك التعديلات تصدر في هيئة ملحقات  Extensions بالمكتبة..  وكل ملحق يصدر بشكل مخصص لمعمارية الشركة التي تصدره. مما استجلب الفوضي التي ضربت اطنابها في المكتبة، فالمكتبة بطيئة جدا في استيعاب التحسينات الجديدة، وفي نفس الوقت هي تتلقي ملحقات مخصصة من كل شركة دون نظام او ادارة جيدة، مم أدي الي اصابة المطور بالارتباك عندما يتحير في تصميم لعبته طبقا لاي ملحق.

لكن نصيب الاسد كان من حظ NVIDIA، فهي صاحبة العدد الاكبر من الملحقات، كما انها صاحبة التطويعات الاقوي في مكتبة OpenGL، والشركة لم تدخر جهدا في الانفاق علي تطويعات تعريف القيادة لمكتبة OpenGL، ولهذا صارت غالبية العاب OpenGL تستهدف ملحقات NVIDIA، مما ادي الي تحقيقها اداء عاليا للغاية تجاوز المنافسين (بالذات AMD) بأضعاف! وهنا نعود مرة أخري لنقطة ضعف AMD في تعريف وملحقات OpenGL التي تكررت مرة أخري في DX11.

عندما ظهرت Vulkan الي الوجود، ظهرت كفكرة لتوحيد مكتبة OpenGL بين الشركات مرة أخري، من دون أية ملحقات أو اضافات، لتجنب الفوضي السابقة في OpenGL، ولقد تحمس للفكرة الجميع، وأولهم AMD بالطبع، فهي ستتخلص من احدي العثرات في طريقها. وخصوصا بعدما بدا أن Vulkan ستشمل تحسينات مشابهة للتي وعدت بها مكتبتي DirectX 12 و Mantle.

لكن في أول اختبار لـ Vulkan حقيقي علي الـ PC فشلت المكتبة في ذلك فشلا ذريعا، لعبة Doom جاءت بملحق اضافي يسمي Shader Intrinsics، وهو ملحق مخصص لمعمارية GCN في بطاقات AMD وتستخدمه منصات الألعاب المنزلية أيضا Home Consoles، وبسبب ذلك تعمل لعبة Doom بشكل أفضل علي بطاقات AMD. أي أن AMD سعت لخرق أول هدف صدرت من أجله مكتبة Vulkan! وبطبيعة الحال خرقت NVIDIA نفس الهدف وأتبعت بملحقات حصرية خاصة لها فقط!

الآن المكتبة أصبحت ممزقة بين عدد من الملحقات الحصرية الخاصة بـ AMD و NVIDIA، و يبدو أن ملحقات AMD ستستعمل في عدد من الألعاب القادمة من شركة Besthesda، بالطبع تهتم AMD بشكل جدي بمكتبة Vulkan الآن، سعيا منها لعدم تكرار مأساة OpenGL و DX11 الفائتة. لكن Vulkan الآن تتحول ببطء الي مسخ OpenGL القديم بملحقاته كثيرة العدد وفوضاه الهائلة، وللإسف فان الوقت قد تأخر لانقاذ الوضع، فالمكتبة وقعت فريسة السياسات الأنانية بين AMD و NVIDIA كما حدث مع مكتبة DirectX 12. وعدد الألعاب التي تدعمها قليل جدا (لا يتعدي 4)، ولا يبدو أن هذا الأمر سيتغير في المستقبل.


لا يبدو المنظر مشجعا بكل هذه الملحقات، ملحقات NVIDIA الخاصة تبدأ بـ NV ..

والأسوأ من هذا كله أن المكتبة لم تفلح في التفوق أو الاقتراب من أداء مكتبة DirectX 11 الذي لا يزال أعلي بقدر كبير. وقد ظهر هذا بوضوح في لعبتي Talos Principle و Dota 2. وهما اللعبتين اللتين تعملان بشكل أفضل علي بطاقات NVIDIA باستخدام ملحقات NVIDIA. وعلي الرغم من دعم الملحقات الا أن اللعبتين تعملان بشكل أفضل علي DirectX 11 حتي علي بطاقات NVIDIA، وينطبق الأمر كذلك علي بطاقات AMD. (انقر هنا للاختبارات).. ما حدا بعض المراقبين الي اعتبار مكتبة DX11 اللعنة التي لا تستطيع المكتبات الجديدة الخلاص من عدواها. فيم كنا نحتاج تغيير DX11 اذن اذا كانت كل المكتبات الجديدة عاجزة عن مجاراتها فضلا عن التفوق عليها؟

الحال الآن:

اختصارا، ما بدأ بأمل كبير منذ أربعة أعوام بعدما ازداد الضجر من مكتبتي DirectX 11 و OpenGL، تحول الآن الي كابوس مفزع! لقد ضربت الفوضي أطنابها في مكتبات الحاسب الشخصي، وعجت ساحته بكل ما هو مشوه، ميت أو منتظر للموت .. Mantle و DirectX 12 و Vulkan، لم يساهموا في تحسين اي شئ، لا يزال المستخدمون عاجزون عن استغلال معالجاتهم المركزية جيدا، ولا يزالون يعانون من الاداء المتخبط علي بطاقاتهم الرسومية، ويعانون من الرسوميات المتواضعة التي لا تتناسب مع قدرات عتادهم الفائقة، ولا تزال المكتبات القديمة باقية وسائدة ومتحكمة، اما قد ومات Mantle فقد بقي DX12 و Vulkan، لكن البقاء في وضعية الغيبوبة السريرية هو موت فعلي حتي وان بدا غير ذلك. وما يختلف فقط هو كون الميت سريريا عبأ علي من حوله، عبأ لا يريد أن يتحمله أحد!

محمد عبد الحميد

محمد عبد الحميد .. 25 سنة ..
زر الذهاب إلى الأعلى