دروس

▷ Directx 12 مقابل فولكان: القتال من أجل أفضل محرك رسومات؟

جدول المحتويات:

Anonim

حاليًا ، بالنسبة لعالم الكمبيوتر الشخصي ، هناك واجهتا API رسميتان من الدرجة الأولى تديران السوق بسلطة. لهذا السبب نقدم لك مقارنة DirectX 12 Vs Vulkan.

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

فهرس المحتويات

واجهة برمجة تطبيقات رسومية منخفضة المستوى و "برنامج تشغيل علوي"

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

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

كل من DirectX 12 و Vulkan 1.1 عبارة عن واجهات برمجة تطبيقات موجهة لتطوير الألعاب والتطبيقات التي تتطلب مساعدة محركات الرسومات الحديثة. في الوقت نفسه ، فهي واجهات برمجة تطبيقات مدعومة من قبل السائقين لأهم مصممي الشرائح الرسومية وبالتالي طريقة سريعة واقتصادية للوصول إلى ميزاتهم دون الحاجة إلى معرفة تصميمهم بمستوى منخفض جدًا.

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

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

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

مايكروسوفت دايركت

ينشأ DirectX كضرورة لتوحيد الأنظمة الفرعية المختلفة للوسائط المتعددة في Windows وهو بديل لـ WinG لـ Windows 3.1. تم اعتماده في نظام التشغيل Windows 95 كحزمة إضافية ، وإصداره الثاني ، DirectX 2.0 ، أصبح مكونًا أساسيًا لنظام التشغيل Windows 95 OSR2.

في DirectX ، نجد العديد من واجهات برمجة التطبيقات المستقلة مثل Direct3D ، وهو في الواقع واحد في السؤال ، DirectDraw و DirectMusic و DirectPlay و DirectSound. كان DirectX طريقة لتسمية التطورات الشائعة عبر جميع واجهات برمجة التطبيقات الفرعية هذه. إنها واجهة برمجة تطبيقات لنظام التشغيل Windows ولكنها تستخدم أيضًا لتطوير الألعاب على وحدات تحكم Xbox الخاصة بها حتى نتمكن من اعتبارها واجهة برمجة تطبيقات متعددة المنصات ولكنها ليست مجانية ، كما هو الحال مع Vulkan.

DirectX 12 ، أحدث إصدار له ، كان معنا منذ عام 2014 ولم يقف ساكنًا وقبل بضعة أشهر حصل على تحسينات مهمة مثل روتين تتبع Direct Ray (DXR) الذي تم تضمينه في إصدار تحديث أكتوبر 1809 من Windows 10.

تتميز واجهات برمجة التطبيقات منخفضة المستوى مثل DirectX 12 بميزة أساسية ، وهي تقليل حمل السائق. المبرمجون الآن مفوضون لتصميم كيفية تصرف GPU في برامجهم ويمكنهم إدارة موارد GPU بشكل أفضل ، خاصة من خلال الاستفادة من موازاة العملية. يتضمن هذا دعمًا أفضل لوحدات معالجة رسومات متعددة في نظام واحد وحتى إذا لم تكن من نفس الشركة المصنعة.

يمكنهم تنفيذ أنواع مختلفة من العمليات ، عادة "عدد صحيح" أو "نقطة عائمة" الاستفادة من إمكانات الرسومات المتوافقة وتقسيم العمليات المعقدة إلى عمليات أبسط عن طريق معالجتها بالتوازي مع تلك الحافلات الكبيرة. مثال جيد هو كيف يمكن لـ AMD أو Nvidia الآن معالجة عمليات 16 بت على حافلات 32 بت ، مما يحسن بشكل كبير من كفاءة رسوماتهم.

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

يتوفر DirectX 12 حاليًا ، على حين غرة ، لنظامي التشغيل Windows 7 و Windows 10 وعلى الرغم من أنه غير متوافق بشكل مباشر مع Xbox One ، فإن الحقيقة هي أنه يتم استخدام 90٪ من وظائفه تقريبًا للكمبيوتر الشخصي ، ولكن الاختلافات ضئيلة وقد سمح ذلك للمطورين تعديلات سريعة على ألعاب الكمبيوتر الخاصة بهم لـ Xbox One والعكس.

فولكان خرونوس

Vulkan هو تطور API ذو المستوى المنخفض لـ OpenGL وهو مدعوم من شركة Khronos Corporation. في عالم الكمبيوتر ، لديهم دور ثانوي عبر DirectX 12 ، لكن تكيفاته المختلفة مع منصات مختلفة ، مثل Android ، جعلت منه معيارًا في الرسومات للتنقل. كما أنه متوافق مع لينكس كونه البديل الرائع للعبة في الأنظمة المجانية.

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

يعود تاريخ Vulkan إلى عام بعد أن تقوم DirectX 12 و Khronos ، وهي شركة غير ربحية ، بالحفاظ عليها بشكل متكرر أو أكثر من Microsoft مع واجهة برمجة التطبيقات الخاصة بها. وهو يعتمد على API Mantle التي طورتها AMD من أجل بنية GCN الخاصة بها والتي كانت API أخرى منخفضة المستوى لـ "برنامج تشغيل علوي" مخفض. تبرعت AMD بتطوراتها إلى Khronos وهذه هي أسس أحد أفضل واجهات برمجة التطبيقات الرسومية في السوق.

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

يقدم Vulkan أيضًا تحسينات API منخفضة المستوى على Android والأنظمة الأساسية الأخرى.

أحدث إصدار لها ، Vulkan 1.1 ، الذي تم تقديمه في نهاية عام 2018 يضيف تحسينات مهمة مثل دعم HLSL ، وهو بديل DirectX 12 لإدارة عمليات تظليل دون تجميع مسبق ، وتوافق أفضل مع DirectX 12 (إلى العديد من الروتينات الفرعية الخاصة به) بصرف النظر عن الرسومات) ، دعم صريح لأنظمة GPU المتعددة بغض النظر عن الشركة المصنعة ، وبطبيعة الحال ، دعم RayTracing.

نقاط القوة والضعف في DirectX 12 vs Vulkan

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

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

تتمتع كلتا واجهات برمجة التطبيقات بدعم كبير من عظماء الرسومات ، تسعى كل من AMD و Nvidia لتقديم واجهات برمجة التطبيقات هذه لتحقيق كل من تقدم لمستخدميها أحدث التحسينات وتعزيز أداء وثبات الألعاب التي تستخدم واحدة أو API أخرى.

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

لقد قصرنا معدل الإطارات على 120 إطارًا في الثانية لعرض تجريبي للسائق. في Dota 2 ، يتم تقليل استهلاك وحدة المعالجة المركزية بشكل كبير مع نفس FPS.

الاختلاف الوحيد الأكثر وضوحًا هو أن Vulkan لديه اعتماد أقل إلى حد ما على وحدة المعالجة المركزية ، مع انخفاض متوسط ​​الاستهلاك وأنه أيضًا أكثر انفتاحًا على المنصات المختلفة ، بما في ذلك Windows و Linux وتجانسه مع OpenGL ES ، وهو إصداره المحمول ، وهي في طريقها لتوحيد المنصات التي تتحرك عليها.

يدعم DirectX 12 القبول الكبير من قبل المطورين ، الذين يبدو أنهم يجدون في واجهة برمجة التطبيقات هذه النظام البيئي المثالي لخفض تكاليفهم نظرًا لأنه يحتوي على تكامل كبير في أطر واسعة الانتشار مثل.NET Framework حيث يدمج ألف عجائب مع فقدان قليل للأداء.

اختلافات الأداء في الألعاب ذات واجهة برمجة التطبيقات المزدوجة

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

برنامج تشغيل برنامج 3DMark. النتائج في ملايين الطلبات ، المزيد أفضل.

رماد التفرد. النتائج في FPS ، أكثر أفضل.

لواء غريب. النتائج في FPS ، أكثر أفضل.

نلخص أفضل أدلة الأجهزة التي تهمك:

  • أفضل المعالجات في السوق أفضل اللوحات الأم في السوق أفضل ذاكرة RAM في السوق أفضل بطاقات الجرافيكس في السوق أفضل محركات الأقراص المزودة بذاكرة مصنوعة من مكونات صلبة في السوق هيكل أفضل أو حواسيب شخصية أفضل مصادر طاقة أفضل خافضات حرارة ومبردات سائلة أفضل

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

دروس

اختيار المحرر

Back to top button