إزالة الغموض عن دعم DirectX 12 في نظام التشغيل Windows 10: ما تفعله AMD و Intel و Nvidia وما لا تقدمه

شعار DirectX 12

الآن بعد أن تم شحن Windows 10 أخيرًا، ستنتقل مسألة توافق DirectX من نقطة تسويقية إلى مشكلة ملموسة للمستخدمين. لأكثر من عام ، كانت AMD و Nvidia تعلن أن العديد من عائلات GPU الأقدم ستدعم DirectX 12 عند الإطلاق. في الآونة الأخيرة ، كان هناك بعض الالتباس حول مستوى الدعم الذي ستقدمه Intel و AMD و Nvidia لواجهة برمجة التطبيقات الجديدة والمنتجات التي ستشغل الألعاب القادمة التي تعتمد عليها. يبدو أن الارتباك الحالي نتج عن تعليقات روبرت هالوك من AMD ، الذي أقر بأن وحدات معالجة الرسومات من فئة AMD GCN المختلفة تدعم مستويات ميزات مختلفة من DirectX 12. وقد تم تحويل هذا إلى مزاعم بأن AMD لا تدعم DirectX 12 'الكامل' في الواقع ، تدعم كل من Intel و Nvidia و AMD DirectX 12 على مستويات مختلفة من الميزات ، ولا تدعم أي وحدة معالجة رسومات غرافيك في السوق اليوم كل إمكانات DirectX 12 الاختيارية.

مستويات ميزة DirectX وتحديثات النقاط ليست هي نفسها

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



في المقابل ، يحدد مستوى ميزة DirectX مستوى الدعم الذي تقدمه وحدة معالجة الرسومات مع استمرار دعم المواصفات الأساسية. تم تقديم هذه الإمكانية لأول مرة في DirectX 11. تحدد Microsoft مستوى الميزةباعتبارها 'مجموعة محددة جيدًا من وظائف GPU. على سبيل المثال ، ينفذ مستوى الميزة 9_1 الوظائف التي تم تنفيذها في Microsoft Direct3D 9 ، والتي تكشف عن إمكانات نماذج shader ps_2_x و vs_2_x ، بينما ينفذ مستوى الميزة 11_0 الوظائف التي تم تنفيذها في Direct3D 11. '



الرسم البياني أدناه هو مثال جزئي على مستويات ميزات DirectX 11 ، فقط لتوضيح النقطة:

DX11- FeatureLevels



الغرض من وظيفة مستوى الميزة هو السماح للمطورين باستهداف واجهة برمجة تطبيقات واحدة بدلاً من تطوير قواعد رموز منفصلة بالتوازي لضمان تشغيل اللعبة بسلاسة على أجيال متعددة من أجهزة GPU بدلاً من كتابة رمز منفصل لـ DX12 و DX11 و DX10 و وما إلى ذلك وهلم جرا. لا يمكن لوحدة DirectX 11 GPU ذات المستوى 9_3 أداء تأثيرات DirectX 11 بطريقة سحرية ، لكنها استطاع قم بتشغيل الألعاب في وضع DirectX 9 دون أن يحتاج المطور إلى كتابة تنفيذ محرك منفصل تمامًا للسماح بذلك. هذه هي الطريقة التي تمكنت بها ألعاب مثل Civilization V من العمل في أوضاع DX11 أو DX9 من قاعدة رمز مشتركة.

AMD و Intel و Nvidia: من يدعم ماذا؟

تتمثل إحدى مشكلات تحديد وحدات معالجة الرسومات التي تدعم الميزات في الالتباس بين دعم DirectX API ودعم مستوى الميزة. صفحة الدعم هذه من Nvidia ، على سبيل المثال ، توضح بالتفصيل كيف يمكن لوحدات معالجة الرسومات Fermi و Kepler دعم DirectX 11.1 في مستوى الميزة 11_0. السبب في عدم دعم Kepler و Fermi لـ DirectX 11.1 على مستوى الميزة 11_1 هو أن اثنتين من الإمكانيات المطلوبة لـ 11_1 غير متوفرة في وحدة معالجة الرسومات. تذهب Nvidia إلى بعض المتاعب للإشارة إلى أن تحديث 11.1 DirectX يضيف بالفعل دعمًا لبعض القدرات التي قدمها Fermi في عام 2010.

تُفصِّل شريحة Microsoft التالية بالضبط مستويات ميزات DirectX 12 المدعومة بواسطة تكرارات الأجهزة:

DX12FeatureLEvels

ليس من الواضح سبب إدراج Microsoft Kepler على أنه يدعم DirectX 11_1 بينما توضحه Nvidia أنه يقتصر على DirectX 11_0 أدناه ، ولكن في كلتا الحالتين ، يتم توضيح النقطة: دعم DirectX 12 متنوع ويختلف بين مجموعات البطاقات المختلفة من كل مصنع. تشتمل رقائق GCN 1.0 من AMD على Cape Verde و Pitcairn و Tahiti وتدعم مستوى 11_1 ، بينما ستدعم كل من Bonaire و Hawaii و Tonga (ربما أولاند) وفيجي المستوى 12_0. ستدعم عائلات Nvidia المختلفة من 4xx و 5xx و 6xx و 7xx DirectX 12 على مستوى 11_0 أو 11_1 ، مع تقديم GTX 750 Ti لدعم FL 12_0. لاحظ أن Oland هو نوع غريب من الشرائح الهجينة - قد يكون لديه دعم ميزة DirectX 12_0 ، لكنه يفتقر إلى ميزات مثل TrueAudio وربما دعم XDMA.

لقد تم إرباك المشكلة بشكل أكبر من خلال الادعاءات القائلة بأن Maxwell هو GPU الوحيد في السوق الذي يدعم DirectX 12. بينما من الصحيح أن Maxwell هو GPU الوحيد الذي يدعم DirectX 12_1 ، فإن AMD هي الشركة الوحيدة التي تقدم خدمات كاملة ربط موارد المستوى 3 ومظلات غير متزامنة للرسومات والحسابات المتزامنة. هذا لا يعني أن AMD أو Nvidia تكذب - فهذا يعني أن بعض الميزات والإمكانيات للبطاقات المختلفة يتم التقاطها بشكل غير كامل من خلال مستويات الميزات وأن استدعاء وحدة معالجة الرسومات أو DX12 'كاملة' أخرى يخطئ هذا التمييز. تقدم Intel ، على سبيل المثال ، ROV بمستوى 11_1 - وهو شيء لا يمكن لـ AMD ولا Nvidia مطابقته.

لماذا يبدو DirectX 12 على هذا النحو

أحد الشواغل الشائعة للاعبين هو أنه إذا كانت بطاقاتهم تدعم DirectX 12 11_1 أو 12_0 فقط ، فسوف يفوتهم ما يقدمه DirectX 12. من المهم أن تتذكر أن إمكانيات خيوط المعالجة المتعددة ووحدات معالجة الرسومات المتعددة لـ DirectX 12 التي رأيناها تمت معاينتها حتى الآن (وتم توضيحها عبر Mantle) لا تزال متاحة تمامًا لكل مستوى من مستويات الميزات. ستستفيد كبلر ووحدات معالجة الرسومات الأقدم من GCN تمامًا من الإمكانات الجديدة التي يوفرها DirectX 12. مع ذلك ، هناك بعض الإمكانات المحددة المخبأة في DirectX 12_0 و 12_1 والتي لن يتمكن اللاعبون الذين لديهم بطاقات قديمة من الوصول إليها - ولكن كما تظهر الرسوم البيانية أعلاه ، هذه ليست مشكلة خاصة بـ AMD أو Nvidia أو Intel. لا يدعم معالج Intel IGP الحالي DirectX 12_0 ، بينما تدعم أجهزة Maxwell فقط من Nvidia 12_0 أو 12_1.

تشير هذه الشريحة الأخيرة من إطلاق GTX 980 Ti إلى أن Kepler مقصور على المستوى 11_0 ، وليس 11_1.

تشير هذه الشريحة الأخيرة من إطلاق GTX 980 Ti إلى أن Kepler مقصور على المستوى 11_0 ، وليس 11_1.

لفهم سبب قيام Microsoft ببناء DirectX 12 بالطريقة التي قامت بها ، فكر في البديل. قبل DirectX 11 ، كان كل إصدار جديد من DirectX مرتبطًا بمتطلبات الأجهزة الجديدة. من وقت لآخر ، قد تنفذ AMD أو Nvidia ميزة معينة في الأجهزة قبل أن تصبح جزءًا من معيار DirectX في المستقبل ، ولكن تم إصلاح بطاقات الرسومات في DirectX APIs التي دعموها عند الإطلاق. بدون المرونة التي توفرها مستويات الميزات ، اللاعبون الوحيدون الذين يمكنهم ذلك استفد من DX12 سيكونون أولئك الذين اشتروا إما GCN 1.1 أو 1.2 أو Maxwell GPU. أي شخص آخر ، بما في ذلك الملايين من الأشخاص الذين لديهم بطاقات أقدم قليلاً ، سيتم استبعادهم في البرد.

تعني إضافة مستويات الميزات وتنفيذها كجزء من DX12 أن ملايين الأشخاص سيرون فوائد كبيرة من اعتماد واجهة برمجة التطبيقات الجديدة في الوقت الحالي. لا ، قد لا تدعم وحدات معالجة الرسومات الأقدم كل ميزة من ميزات DX12 ، ولكن لن يضطر أي شخص في النهاية إلى الاختيار بين لعبة تبدو رائعة في DX11 أو إصدار DX12 نصف مدروس بسبب مشكلات تنفيذ بطاقة الرسومات. عندما تتحدث AMD و Nvidia و Intel عن دعم DirectX 12 على الأجهزة القديمة ، فإنهم يتحدثون عن الميزات الأكثر أهمية - واجهات برمجة التطبيقات ذات الحمل المنخفض ، واستخدام أفضل لوحدة المعالجة المركزية ، و متعدد وظائف GPU. تعد مستويات الميزات الفعلية التي تحدد 12_1 على أنها مختلفة عن 11_0 مثيرة للاهتمام ومفيدة في سيناريوهات معينة ، ولكنها ليست القدرات التي ستشكل حقًا كيفية تجربة اللاعبين للألعاب باستخدام واجهة برمجة التطبيقات.

مثلما يوجد عدد قليل جدًا من الألعاب التي تتطلب DirectX 11.2 أو 11.1 (مرتجلاً ، لا يمكنني التفكير في أي منها) ، سيكون هناك عدد قليل جدًا من عناوين DirectX 12 التي تتطلب DirectX 12 FL 12_0 أو 12_1. أنا لا أقول أن مثل هذه الألعاب لن تحدث أبدًا ، ولكن هذا سوف يستغرق سنوات من الآن ، بعد فترة طويلة من استبدال وحدات معالجة الرسومات الحالية بأجهزة حديثة. إذا كنت تمتلك بطاقة GCN 1.0 أو Fermi أو Kepler ، فستحصل على ميزات DirectX 12 الأكثر أهمية. لهذا السبب أنشأت Microsoft مستويات ميزات يمكن أن تستخدمها وحدات معالجة الرسومات الأقدم - إذا لم تستفيد بطاقات Fermi و Kepler و GCN 1.0 الأقدم من المزايا الأساسية لـ DirectX 12 ، فلن تؤهلهم Microsoft لاستخدامها في المقام الأول. تم تصميم واجهة برمجة التطبيقات (API) بشكل هادف للسماح بالتوافق مع الإصدارات السابقة من أجل ضمان أن المطورين سيكونون على استعداد لاستهدافها.

Copyright © كل الحقوق محفوظة | 2007es.com