واجهات برمجة التطبيقات الرسومية الحديثة. واجهة برمجة تطبيقات الرسومات

22.05.2019

كانت المفاجأة تنتظرنا جميعًا في مؤتمر WWDC 2014: الإعلان عن واجهة برمجة تطبيقات جديدة للرسومات ثلاثية الأبعاد تسمى Metal. لكننا هذه المرة لا نتعامل مع واجهة برمجة تطبيقات جديدة عالية المستوى فوق OpenGL ES (كما كان الحال مع Scene Kit)، ولكن مع واجهة برمجة تطبيقات جديدة منخفضة المستوى للعرض والحوسبة يمكن أن تكون بمثابة بديل لـ OpenGL في الألعاب. وفقًا لشركة Apple، يمكن أن يكون Metal أسرع بما يصل إلى 10 مرات من OpenGL ES (بشكل أكثر دقة، يمكنه إنشاء مكالمات سحب [ رسم المكالمات; نقل البيانات إلى وحدة معالجة الرسومات] أسرع بعشر مرات) وهو متاح فقط على أجهزة iOS المزودة بأحدث جيل من معالج A7.

أثار هذا الإعلان موجة جديدة من النقاش والجدل حول الحاجة إلى واجهات برمجة تطبيقات رسومية جديدة، والتي ينبغي (أو لا ينبغي - من يدري) أن تحل محل OpenGL. المنشور الذي نلفت انتباهك إليه لا ينوي المشاركة في هذه المناقشة - بل الغرض منه هو شرح كيفية اختلاف Metal عن OpenGL ES، الذي يحل محله. لفهم ما هو مميز جدًا (أو، على العكس، لا يوجد شيء مميز) في Metal API، سيتعين علينا أن ننظر قليلاً تحت غطاء واجهة برمجة تطبيقات الرسومات ووحدة معالجة الرسومات.

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

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

خطأ آخر في افتراضنا الساذج هو افتراض ما تفعله دعوات تغيير الحالة.

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

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

يمكنك قراءة المزيد حول كيفية عمل خط أنابيب رسومات الكمبيوتر الحديث في سلسلة من المقالات التي كتبها فابيان جيسينز - "رحلة عبر خط أنابيب الرسومات".

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

تحاول بعض واجهات برمجة التطبيقات الرسومية اليوم إزالة معظم هذه الحيل، وكشف "التعقيدات" التي تخفيها - وفي بعض الحالات تترك الأمر للبرنامج لحل جميع المشكلات المعنية. ذهبت واجهة برمجة تطبيقات رسومات PS3 في هذا الاتجاه، كما تسير AMD أيضًا في هذا الاتجاه من خلال Mantle، كما أن DirectX 12 القادم وApple Metal يسيران هناك أيضًا.

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

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

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

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

هناك أيضًا فارق بسيط في تصميم A7 - فبفضله، تم تصميم Metal للعمل على الأنظمة ذات الذاكرة المشتركة، أي. يمكن لوحدة المعالجة المركزية ووحدة معالجة الرسومات الوصول مباشرة إلى نفس البيانات دون الحاجة إلى نقلها عبر ناقل PCI. يمنح المعدن البرنامج إمكانية الوصول المباشر إلى المخازن المؤقتة من وحدة المعالجة المركزية، وتقع مسؤولية ضمان عدم استخدام وحدة معالجة الرسومات لهذه البيانات في وقت واحد على عاتق المبرمج. تتيح لك هذه الميزة المفيدة مزج ناتج حسابات GPU ووحدة المعالجة المركزية.

وكيف يكون أسرع 10 مرات؟
تكلف كل مكالمة سحب بعض الوقت على وحدة المعالجة المركزية وبعض الوقت على وحدة معالجة الرسومات. تعمل واجهة برمجة تطبيقات Metal على تقليل وقت وحدة المعالجة المركزية عن طريق تبسيط مراقبة الحالة وبالتالي تقليل عدد عمليات التحقق من الأخطاء من برنامج التشغيل للتأكد من صحة مجموعات الحالة. يساعد أيضًا حساب الحالات مسبقًا: لا يمكنك فقط التحقق من الأخطاء أثناء الإنشاء، ولكن تغيير الحالة نفسها سيتطلب عددًا أقل من استدعاءات واجهة برمجة التطبيقات (API). القدرة على إنشاء مخازن مؤقتة للأوامر بشكل متوازٍ تزيد من عدد مكالمات السحب عندما يكون التطبيق مرتبطًا بوحدة المعالجة المركزية (CPU).

لكن عرض وحدة معالجة الرسومات (GPU) من ناحية أخرى لا يصبح أسرع، وهو تطبيق يقوم بإجراء عدد قليل جدًا من مكالمات السحب للشبكات الكبيرة ( شبكة- جزء من النموذج يتكون من رؤوس الكائن] لن يحصل على أي فائدة من التحول إلى المعدن.

هل يمكن فعل الشيء نفسه على OpenGL؟
في GDC 14، كان هناك عرض تقديمي ممتاز حول "الاقتراب من الصفر للسائقين" قدمه كاس إيفريت، وجون ماكدونالد، وجراهام سيلرز، وتيم فولي. كانت الفكرة الرئيسية هي تقليل عمل برنامج التشغيل في OpenGL عن طريق زيادة مقدار العمل المنجز في استدعاءات السحب واستخدام كائنات GL الجديدة واستدعاءات GL أقل لتحسين الكفاءة.

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

ما هي احتمالية رؤية ذلك في المستقبل؟ نظرًا لدعم التوافق مع الإصدارات السابقة، لا يمكننا إلا أن نأمل في ظهور مجموعة من الوظائف التي يمكن أن يطلق عليها "النواة الحديثة"، ولكن من المرجح أن يكون هذا متوافقًا مع كل شيء وصولاً إلى وظيفة glBegin() الأصلية . سيظل هذا القيد ساريًا طوال المستقبل المحتمل لـ OpenGL وسيحد من تطوره، مما يجعل البدائل مثل Metal API مفضلة بشكل متزايد...

العلامات:

  • واجهة برمجة التطبيقات المعدنية
  • تفاحة
  • opengl
اضف اشارة

تتمتع بنسبة ضغط أعلى من الصور ذات المحتوى المنخفض من هذه العناصر (على سبيل المثال، الرسوم البيانية والمخططات والأنسجة البسيطة). يمكن ضغط الصور عالية الدقة بنسبة ضغط عالية دون التأثير على جودتها. للحفاظ على جودة عالية للصور ذات الدقة المنخفضة، يجب أن تكون نسبة الضغط الناتجة أقل بكثير. يتم ضغط الصور ذات عمق الألوان العالي (مثل صور Truecolor ذات 24 بت) بكفاءة أكبر من الصور ذات البتات الأقل لكل بكسل (مثل التدرج الرمادي 8 بت).

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

نناقش بإيجاز بعض الأشكال الأكثر شيوعًا أدناه:

واجهات برمجة التطبيقات (GUI) الحديثة

يرتبط تطوير برامج الرسومات المعقدة الحديثة، وخاصة التطبيقات ثلاثية الأبعاد، ارتباطًا وثيقًا باستخدام واجهات برمجة التطبيقات

(واجهة برمجة تطبيق).

API عبارة عن مجموعة من المكتبات التي تمثل واجهة جاهزة للبرنامج للعمل مع المسرعات ثلاثية الأبعاد. حاليا، مماثلة في-

هناك الكثير من الواجهات، ولكن يمكن تقسيمها جميعًا إلى فئتين: عالمية ومتخصصة.

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

تم تصميم واجهات برمجة التطبيقات المتخصصة للعمل مع مسرعات الرسومات المبنية على شرائح ثلاثية الأبعاد محددة؛ وأشهرها Glide API - واجهة للعمل مع شرائح VooDoo® Metal - لشرائح Savage3D، وما إلى ذلك. تعمل البرامج المكتوبة باستخدام واجهات برمجة التطبيقات المتخصصة فقط على تلك المسرعات التي تم إنشاء واجهات برمجة التطبيقات هذه من أجلها. توفر معظم واجهات برمجة التطبيقات المتخصصة واجهة برمجة منخفضة المستوى فقط، ولكن في الآونة الأخيرة، تتضمن الإصدارات الجديدة من DirectX واجهات دعم عالية المستوى، مثل DirectX لـ VisualBasic، الذي يوفر دعم اللغة لتطبيقات الوسائط المتعددة المكتوبة في بيئة البرمجة المرئية Visual Basic.

واجهة برمجة تطبيقات Microsoft DirectX

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

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

تامي ورسوم متحركة ثلاثية الأبعاد وصوت ستريو. تم إنشاء واجهة DirectX مباشرة في نواة نظام التشغيل Windows، وهي عبارة عن خدمة متكاملة

نظامي التشغيل Windows 98 وWindows 2000، بالإضافة إلى Microsoft Internet Explorer. عناصر

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

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

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

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

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

يقع DirectX Media على رأس مؤسسة DirectX ويوفر خدمات عالية المستوى - دعم الرسوم المتحركة وإخراج البث (القدرة على نقل وعرض معلومات الصوت والفيديو أثناء تنزيلها من الإنترنت) والتفاعل. يعمل التكامل التلقائي للخدمات ذات المستوى المنخفض التي تقدمها مؤسسة DirectX والخدمات عالية المستوى التي تقدمها DirectX Media على تبسيط عملية إنشاء عناصر الوسائط المتعددة وتشغيلها، مما يسمح للمطورين بتضمينها في تطبيقاتهم وصفحات الويب الخاصة بهم، وبالتالي توفير محتوى الوسائط المتعددة التفاعلي الذي لم يكن متاحا من قبل. بالإضافة إلى ذلك، يساعد DirectX Media في حل مشكلة تنسيق أنواع مختلفة من تأثيرات الوسائط المتعددة، مما يسهل مزامنة تشغيلها. بالإضافة إلى هذين المكونين الأساسيين، يتضمن Microsoft DirectX أيضًا مكونات عالية المستوى توفر وظائف الوسائط المتعددة لتطبيقات الويب. وتشمل هذه: NetMeeting - أداة لتنظيم المناقشات الجماعية عبر الإنترنت وWindows Media Player - أداة لنقل محتوى الوسائط المتعددة عبر الإنترنت. دعونا نفكر بإيجاز في المكونات الرئيسية

مكونات مؤسسة DirectX. وتشمل هذه مايكروسوفت دايركت درو، دايركت 3D(الوضعين الفوري والمحفوظ)، DirectInput، DirectMusic، DirectSound،

DirectSound 3D و DirectPlay. واجهات البرمجة على مستوى النظام هذه

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

Microsoft Direct3D عبارة عن واجهة للعمل مع بطاقات الفيديو ثلاثية الأبعاد. تظهر بنية Direct3D في الشكل 1.5.

تطبيق Win32

يدعم Direct3D وضعي تشغيل - الوضع الفوري والوضع المحتفظ به. في الوضع الفوري، يوفر Direct3D للمطورين دعم الأجهزة لتطبيقات الألعاب والوسائط المتعددة في بيئة Microsoft Windows. فهو يتيح لك تحقيق استقلالية الأجهزة، ويدعم التخزين المؤقت Z القابل للتحويل وبنية معالج Intel MMX. في هذا الوضع، يتم تنفيذ أساسيات الرسومات الأساسية مباشرةً، دون استخدام مخازن التنفيذ المؤقتة.

يُسهل الوضع المُحتفظ به إنشاء عوالم ثلاثية الأبعاد وتحريكها، ويدعم ميزتين جديدتين: مُحرفات الرسوم المتحركة مع مزج الألوان، وحركات الكائنات السلسة والعديد من أنواع التحويل المختلفة، بالإضافة إلى التعبئة التسلسلية لبنية الشبكة ثلاثية الأبعاد.

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

تجدر الإشارة إلى أن تطبيقات Direct3D تتواصل مع أجهزة الرسومات بنفس الطريقة، بغض النظر عن الوضع. يجوز لهم أو لا يستخدمون مضاهاة البرنامج قبل الوصول إلى HAL. في الواقع، تم دمج Direct3D بإحكام مع مكون DirectDraw، لذلك في الشكل 1.2 تم تعيين طبقة تجريد الأجهزة HAL لـ DirectDraw/Direct3D HAL. يقوم Direct3D Z بتخزين المخازن المؤقتة وعرض الأسطح، بينما يعرضها DirectDraw مباشرة. واجهة Direct3D COM هي واجهة لـ DirectDraw.

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

يوضح الشكل 1.6 التفاعل بين DirectDraw ومكون kernel لنظام التشغيل GDI (واجهة الأجهزة الرسومية) وطبقة تجريد الأجهزة (HAL) وطبقة محاكاة الأجهزة

(طبقة محاكاة الأجهزة، HEL). كما ترون، DirectDraw موجود بشكل مستقل

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

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

تطبيق Win32

طبقة نشوئها (HEL)

طبقة التجريد

بطاقة فيديو

الشكل 1.6 - دمج DirectDraw في النظام

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

تشتمل ميزات DirectInput الجديدة على قائمة موسعة من الأجهزة المدعومة، بما في ذلك: منصات الألعاب والطائرات

نير الطيران، وأغطية رأس الواقع الافتراضي

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

يعد DirectMusic مكونًا جديدًا لعائلة تقنيات DirectX، وهو عبارة عن غلاف برمجي لإنشاء قوالب موسيقية وتعليمات للاستجابة لإجراءات المستخدم. يتيح ذلك للمطورين إنشاء موسيقى خلفية في الوقت الفعلي بناءً على الخوارزميات المحددة في صفحات الويب أو تطبيقات الوسائط المتعددة. يوفر DirectMusic تطبيقًا كاملاً لمعيار DownLoadable Sounds (DLS)، مما يسمح للمطورين بإنشاء قوالب موسيقى يمكن تشغيلها على أي نظام أساسي للأجهزة تقريبًا. يشتمل DirectMusic على DirectMusic Producer - وهو محرر متكامل يسمح لك بالعمل مع جميع كائنات DirectMusic: الأنماط والقوالب وأدوات DLS وما إلى ذلك.

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

في بالإضافة إلى واجهات DirectX Foundation ذات المستوى المنخفض، يتضمن DirectX مجموعة من واجهات البرمجة ذات المستوى الأعلى

ومكونات DirectX Media، التي توفر الدعم لتطبيقات الوسائط المتعددة والرسوم المتحركة ومخرجات المعلومات المتدفقة. يتكون DirectX Media حاليًا من واجهات البرمجة الرئيسية التالية:

عرض مباشر (المسمى سابقا ActiveMovieSDK); الرسوم المتحركة المباشرة (المسمى سابقاالرسوم المتحركة اكتف اكس)؛ تحويل دايركت اكس. لاحظ أن خدمات DirectX Media تستخدم خدمات DirectX Foundation.

في الأسبوع الماضي، تم تقديم Vulkan API، وأعلنت AMD وNVIDIA عن دعم واسع النطاق لها. تم تطوير الواجهة الرسومية الجديدة من قبل مجموعة Khronos، وهو اتحاد تأسس في عام 2000. تتولى مجموعة Khronos مسؤولية تطوير والحفاظ على المعايير المفتوحة لتطبيقات الوسائط المتعددة عبر المنصات والأجهزة. ويحظى الكونسورتيوم بدعم AMD وNVIDIA، بالإضافة إلى العديد من الشركات الأخرى.

تمت المصادقة في الأسبوع الماضي على الإصدار النهائي 1.0 من Vulkan API. قدمت AMD وNVIDIA برامج التشغيل التجريبية الخاصة بهما. أصدرت AMD مسبقًا نسخة تجريبية من برنامج Radeon في 14 فبراير. قدمت NVIDIA برنامج التشغيل GeForce 356.39، والذي يركز أيضًا على دعم Vulkan API.

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

يتم دعم Vulkan API في الإصدار 1.0 على أنظمة التشغيل Windows 7 وWindows 8.1 وWindows 10 وAndroid وLinux. ولم يعلن مطورو الألعاب بعد عن دعمهم لألعاب معينة، ولكن من الجدير انتظار مؤتمر مطوري الألعاب، الذي سيعقد في الفترة من 14 إلى 18 مارس في سان فرانسيسكو. من محركات الألعاب، لا تزال هناك معلومات حول المصدر 2، الذي يدعم بالفعل واجهة برمجة تطبيقات Vulkan. أصبحت عملية تصحيح الأخطاء أسهل بفضل الدعم المقدم من Valve وLunarG وCodeplay.

مبدأ تالوس

حسنًا، ولكن ما هي اللعبة أو المحرك الذي يدعم Vulkan API؟ تم تطوير مبدأ Talos بواسطة شركة Croteam، والتي اشتهرت بدعم العديد من واجهات برمجة التطبيقات الرسومية في الماضي. وفي الإصدار الأخير، لم يكن مبدأ Talos استثناءً - فهو يدعم DirectX 9 وDirectX 11 وOpenGL والآن Vulkan. بالنسبة لاستوديو التطوير، يعد Vulkan بالونًا تجريبيًا، على الرغم من توفر Vulkan API في الإصدار 1.0، إلا أن الدعم لا يزال في مرحلة تجريبية. قضى مطورو Croteam حوالي ثلاثة أشهر في إضافة الدعم. لكن الطبيعة العالمية لواجهة برمجة التطبيقات (API) تجعل من الممكن تقديم متغير Linux قريبًا.

تتوافق واجهة برمجة تطبيقات Vulkan من الناحية النظرية مع العديد من الأنظمة الأساسية - ولكن حتى الآن لا يمكن إجراء الاختبارات والمقارنات إلا على نظام التشغيل Windows، وهذا له حدوده. ولا يزال التنفيذ في مرحلة مبكرة للغاية. لقد تم تحسين مسار عرض DirectX 11 لسنوات عديدة، لذلك لا يوجد مجال للتحسين. هنا يعتمد الوضع أكثر على مطوري برامج التشغيل، وهم AMD و NVIDIA. كانت لعبة Talos Principle أول لعبة تدعم Vulkan. لذلك، ليس من الممكن حتى الآن إجراء اختبار مقارن لتقييم التنفيذ الجيد أو السيئ للدعم.

يتم تطبيق التقنيات الجديدة لأول مرة في الأمثلة التي أعدتها الشركات المصنعة. في حالة DirectX 12، كان التركيز على Draw Calls، نفس اختبار 3DMark DirectX 12 يعتمد فقط على قياس أداء Draw Calls، كما تحاول ألعاب DirectX 12 مثل Star Wars استخدام حمل مماثل. لكن مبدأ Talos لا يعتمد كثيرًا على سرعة Draw Call العالية لواجهة برمجة التطبيقات ذات المستوى المنخفض لإحداث فرق كبير.

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

للاختبارات، أخذنا نظام الاختبار الخاص بنا لبطاقات الفيديو. لقد وصفنا بالفعل برامج تشغيل بطاقات الفيديو AMD وNVIDIA أعلاه. لقد قمنا بضبط إعدادات الرسومات على المستوى الأقصى، ولكننا اختبرنا أيضًا دقة منخفضة تصل إلى 1280 × 720 بكسل لزيادة أداء Draw Call.

اختبار مبدأ تالوس - 1.280 × 720 بكسل

اختبار مبدأ تالوس - 2.560 × 1.440 بكسل

اختبار مبدأ تالوس - 3.840 × 2.160 بكسل

كما ترون من النتائج، فإن واجهة Vulkan API تعطي زيادة كبيرة مقارنة بـ OpenGL. لكن واجهة برمجة التطبيقات الجديدة لا تصل إلى أداء DirectX 11. هناك عدة أسباب لذلك. من ناحية أخرى، لا يزال تطوير Vulkan في مرحلة مبكرة. ينطبق هذا على واجهة برمجة التطبيقات (API) نفسها وبرنامج التشغيل ولعبة The Talos Principle. بالمقارنة مع OpenGL، تتيح لك الواجهة الجديدة تحرير بعض الموارد وتجنب الاختناقات. لكن DirectX يتحسن لسنوات عديدة ليصل إلى مستواه الحالي. على أية حال، فإن إمكانات Vulkan API جيدة جدًا.

إذا تعمقنا في التفاصيل، لم نجد أي اختلافات مرئية بين Vulkan API وDirectX 11. لذلك تم تكييف مسار العرض بشكل جيد للغاية. مع التطبيق الحالي لمبدأ Talos، تواجه بطاقات الفيديو ذات الذاكرة التي تبلغ سعتها 2 جيجابايت انخفاضًا في الأداء، ربما بسبب عدم العمل الأكثر كفاءة مع الذاكرة. مثل Mantle وDirectX 12، يمكن لـ Vulkan API الوصول إلى موارد الذاكرة على مستوى أعمق - يمكن اعتبار هذه الحقيقة ميزة، ولكنها يمكن أن تصبح أيضًا عيبًا إذا لم يتمكن المطورون من استخدام الذاكرة بكفاءة.

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

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

AMD عباءة | أساسيات واجهة برمجة التطبيقات

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

ما هي واجهة برمجة التطبيقات؟

يشير اختصار API إلى واجهة برمجة التطبيقات. والكلمة الأساسية هي واجهة برمجة التطبيقات (API) المصممة للتواصل بين التطبيقات.

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

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

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

ما هي واجهة برمجة تطبيقات واجهة المستخدم الرسومية؟

نظرًا لأن واجهة برمجة التطبيقات (API) هي واجهة الاتصال بين التطبيقات، فإن واجهة برمجة تطبيقات الرسومات تتصل بين التطبيق وبرنامج تشغيل الفيديو الخاص بمحول الرسومات.

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

إذا كان الهدف الرئيسي لواجهة برمجة التطبيقات هو البساطة والراحة، فلماذا توجد واجهات برمجة تطبيقات متعددة؟

تكمن أصول OpenGL في واجهة Iris GL الخاصة بشركة SGI، والتي ظهرت في أوائل الثمانينيات. والمثير للدهشة أن الشركة جعلته معيارًا مفتوحًا يسمى OpenGL API (مكتبة الرسومات المفتوحة). تم منح منافسي SGI إمكانية الوصول بشرط المشاركة المتساوية في صيانة وتحديث الكود.

حتى مايكروسوفت كان لها مقعد في مجلس مراجعة بنية OpenGL حتى عام 2003، عندما تحولت الشركة إلى واجهة DirectX الخاصة بها، والتي أصبحت الآن أكثر شعبية. يتم استخدام DirectX حاليًا على نظامي التشغيل Windows وXbox، لذلك من السهل تبرير اختيار واجهة برمجة تطبيقات Microsoft إذا كان المطور يريد تحقيق أقصى استفادة من الموارد المتاحة.

تجدر الإشارة إلى أن المبرمج والمطور الشهير John Carmack أثبت أنه لا يزال من الممكن استخدام OpenGL لتشغيل ألعاب الكمبيوتر الحديثة (مثل Rage). بالإضافة إلى ذلك، يحتفظ OpenGL بمكانته نظرًا لدعمه لمنصات متعددة: Windows وMac وLinux. يستخدم Android وWindows Phone وiPhone برنامج OpenGL ES (Open GL للأنظمة المدمجة). مع تزايد شعبية الألعاب على منصات الأجهزة المحمولة، تزداد أيضًا شعبية OpenGL.

ما هو الخطأ في DirectX 11 وOpenGL؟ لماذا كانت هناك حاجة إلى واجهة برمجة تطبيقات رسومية أخرى؟

هناك اختلافات خطيرة بين كلا المعيارين، ويبدو من غير المنطقي تقديم معيار آخر. فلماذا لا تناسب المعايير الحالية المطورين؟

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

بالإضافة إلى ذلك، كانت هناك شائعات بأن مايكروسوفت ستتوقف عن تطوير برنامج DirectX في عام 2013. في مقابلة مع نائب رئيس AMD، روي تايلور، قيل إن "البطاقة الجديدة تدفع الصناعة إلى الأمام، وتحتاج بطاقات الفيديو الجديدة إلى المزيد من المعالجات وذاكرة الوصول العشوائي. لكن DirectX 12 لم يظهر. هذا كل شيء. على حد علمنا". ، لا توجد خطط لـ DirectX 12 حتى الآن." بالإضافة إلى ذلك، من تسرب البريد الإلكتروني مايكروسوفتنحن ندرك أن بيئة التطوير عبر الأنظمة الأساسية XNA Game Studio ليست حاليًا قيد التطوير النشط، وقد تم الانتهاء من تطوير DirectX كتقنية. تراجعت Microsoft لاحقًا عن هذه الادعاءات وادعت أن الأمر كان مجرد سوء فهم، ولكن بدون خطط منشورة لـ DirectX 12، أصبح مجتمع المطورين قلقًا.

تدعي AMD أنها قد توصلت إلى تطوير واجهة برمجة تطبيقات جديدة من شأنها أن تحل المشكلات الحالية مع DirectX وOpenGL والتي تسبب عدم الرضا بين المطورين. مع وجود وحدات APU ووحدات معالجة الرسومات من AMD التي تعمل على تشغيل أجهزة Xbox One وPlayStation 4 والعديد من أجهزة الكمبيوتر، تضطر الشركة إلى تقديم واجهة برمجة تطبيقات يمكن استخدامها عبر منصات متعددة.

التحسينات المفترضة على Mantle عبر OpenGL وDirectX

AMD عباءةالمرتبطة بمفهوم "المستوى المنخفض". و لكن ماذا يعني ذلك؟ باختصار، إنه مرادف للبساطة. واجهة برمجة التطبيقات (API) أصغر وأبسط وبالتالي أسرع من DirectX 11 وOpenGL. من المفترض أن تضع واجهة برمجة التطبيقات (API) الجديدة الخاصة بـ AMD قيودًا أقل على عرض مشهد معين. بهذه الطريقة، يتحكم المطور، وليس واجهة برمجة التطبيقات (API)، في الموارد، مما يؤدي إلى تحسين أكبر.

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

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

تضع AMD نفسها كمؤيد للمصدر المفتوح. هل Mantle عبارة عن واجهة برمجة تطبيقات مفتوحة المصدر؟

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

يجب أن يكون واضحًا أن الوصول إلى SDK ليس هو نفسه الوصول إلى المصدر المفتوح. ومع ذلك، من الناحية النظرية، يمكن لـ Nvidia وIntel كتابة شيء متوافق مع AMD عباءةسائق. ومع ذلك، في الواقع يبدو هذا غير مرجح بالنسبة لنا. ولكن من الأفضل حفظ التحليل للنتيجة. الحقيقة هي أن AMD تريد الحفاظ على سيطرتها AMD عباءة، لتحسين واجهة برمجة التطبيقات (API) لبنية GCN والسماح للمطورين بتبني ميزات الأجهزة الجديدة بسرعة أكبر والتي تعتبر غير عملية لواجهات برمجة التطبيقات (APIs) الشائعة مثل DirectX وOpenGL.

لقد قمنا بتغطية أساسيات Mantle. ماذا بعد؟

نريد اختبار API AMD عباءةوتحليل قدرات الواجهة. AMD يقسمأن عددًا من المطورين يعملون على الدعم AMD عباءةفي ألعاب مثل الحضارة: ما وراء الأرض، ستار سيتيزن وعصر التنين: محاكم التفتيش. في وقت كتابة هذا التقرير، هناك ثلاث ألعاب فقط في السوق تدعم واجهة برمجة تطبيقات AMD: ميدان المعركة 4 , لصوالنباتات مقابل. الزومبي: حرب الحدائق. منذ لعبة Plants vs. Zombies: Garden Warfare ليس لديها وظيفة اختبار AMD عباءةويستخدم محرك Frostbite المستخدم في ميدان المعركة 4، سنقوم باختبار أول مباراتين.

AMD عباءة | كيف اختبرنا واجهة برمجة تطبيقات Mantle API الخاصة بشركة AMD

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

لذلك في أحسن الأحوال AMD عباءةيزيل الاختناقات النموذجية عند استخدام معالجات الميزانية (على سبيل المثال، تلك التي تنتجها AMD). كمثال، لنأخذ هذا السيناريو: مع DirectX، يمكن لبطاقة فيديو Radeon أن توفر أداءً أعلى عند إقرانها بمعالج عائلة Intel Core i7 مقارنةً بمعالج Intel Core i7. فكس-4170. لو AMD عباءةيعمل على النحو المنشود، يمكنك أن تتوقع ذلك مع فكس-4170سيرتفع الأداء ويقترب من مستوى Core i7. من غير المرجح أن تزيد سرعة Core I7 بشكل ملحوظ، لأن المعالج سريع بالفعل بما يكفي لتغطية عيوب DirectX.

لاختبار ذلك، نستخدم مجموعة واسعة من المنصات وبطاقات الفيديو (ترد القائمة في الجدول أدناه). يتم اختبار كافة بطاقات الفيديو Radeon في وضع DirectX و AMD عباءةلتحديد الاختلافات. أضفنا أيضًا بطاقات GeForce إلى التحديد للمقارنة.

نستخدم عادةً برنامج Fraps أو FCAT للحصول على درجات الاختبار. تم تصميم كلا الحلين لـ DirectX، وبالتالي لا يعملان AMD عباءة. ونتيجة لذلك، كان علينا استخدام أدوات الاختبار المدمجة التي تأتي مع الألعاب لصو ميدان المعركة 4. ولحسن الحظ، فإن وحدة التحكم في أوامر محرك Frostbite موجودة ميدان المعركة 4قوي للغاية ويسمح لك بالحصول على بيانات مفصلة عن تقلبات وقت تغذية الإطار. متى لصيمكننا فقط الحصول على مؤشرات معدل الإطارات من الأداة المساعدة المضمنة في اللعبة، لكن مؤشرات تقلب معدل الإطارات غير متوفرة.

ستلاحظ لاحقًا أننا سنحتاج، لإجراء هذا الاختبار المتخصص، إلى بطاقة فيديو متوسطة الحجم بذاكرة سعة 4 جيجابايت. لهذه الأغراض، أرسلت لنا MSI راديون R9270X Gaming 4G، مزود بمبرد Twin Frozr IV وثلاثة أوضاع تشغيل: "هادئ" (1050 ميجاهرتز)، و"ألعاب" (1080 ميجاهرتز)، و"فيركلوكيد" (1120 ميجاهرتز).

تتطلب بطاقات الرسومات المتطورة طاقة كافية، وقد أرسلت لنا شركة XFX مصدر الطاقة PRO850W المعتمد بشهادة 80 PLUS Bronze. يستخدم مصدر الطاقة المعياري سكة واحدة +12 فولت بتيار 70 أمبير. وفقًا لـ XFX، يوفر هذا الطراز طاقة مستمرة (غير الذروة) تصل إلى 850 واط عند درجة حرارة 50 درجة مئوية (أعلى بشكل ملحوظ من معظم الحالات ).

في مختبرنا، قمنا تقريبًا بإزالة محركات الأقراص الصلبة الميكانيكية، واستخدمنا بدلاً من ذلك محركات الأقراص ذات الحالة الصلبة، والتي لا تتميز بزمن الوصول المرتبط بعمليات الإدخال/الإخراج. أرسلت شركة Samsung محركات أقراص Samsung 840 Pro بسعة 256 جيجابايت إلى مكاتبنا، لذلك نستخدمها بشكل قياسي.

نظام FM2+ ايه ام 3 + إل جي إيه 1155 إل جي إيه 1150
اللوحة الأم آسروك FM2A88X-ITX+، مقبس FM2+ جيجابايت GA-990FXA-UDS، مقبس AM3+ أسوس P8Z77-V LX، LGA 1155 آسروك Z87 Pro3، LGA 1150
وحدة المعالجة المركزية AMD A10-7850K، رباعي النواة، 3.7 جيجا هرتز (4 جيجا هرتز بحد أقصى توربو كور) AMD FX-8350، ثماني النواة، 4 جيجا هرتز (4.2 جيجا هرتز كحد أقصى. Turbo Core)
AMD FX-4170، رباعي النواة، 4.2 جيجا هرتز (4.3 جيجا هرتز بحد أقصى Turbo Core)
Intel Core i3-3220، ثنائي النواة، Hyper-Threading، 3.3 جيجا هرتز Intel Core i7-4770K، رباعي النواة، Hyper-Threading، 3.5 جيجا هرتز (3.9 جيجا هرتز بحد أقصى Turbo Boost)

ذاكرة 8 جيجابايت Corsair Vengeance LP (2 × 4 جيجابايت) 1600 ميجابايت/ثانية، CAS 9-9-9-24-1T
بطاقات الفيديو جي فورس جي تي اكس 650 2 جيجابايت GDDR5
جي فورس جي تي اكس 660 2 جيجابايت GDDR5
بطاقة جي فورس جي تي اكس 780 تي آي 3 جيجا بايت GDDR5
راديون R7 250X 1 جيجابايت GDDR5
راديون R9 270 2 جيجابايت GDDR5
راديون R9 270X 4 جيجابايت GDDR5
راديون R9 290X 4 جيجابايت GDDR5
تخزين النظام سامسونج 840 برو، 256 جيجابايت SSD، ساتا 6 جيجابايت/ثانية
وحدة الطاقة XFX PRO850W، 850 واط، شهادة 80 PLUS
البرامج وبرامج التشغيل
نظام التشغيل مايكروسوفت ويندوز 8 برو x64
دايركت اكس دايركت اكس 11
برامج تشغيل الفيديو AMD Catalyst 14.3 Beta (أظهر 14.4 Beta بعض النجاح في الأداء)
نفيديا جي فورس 337.88 WHQL

معلومات تفصيلية عن الاختبارات:

تكوين الاختبار
ألعاب ثلاثية الأبعاد
لص المعيار المدمج
ميدان المعركة 4 اختبار THG الخاص، 90 ثانية

AMD عباءة | اختبارات اللص على APU وبطاقات الفيديو للمبتدئين

لقد بدأنا بدعم GPU للمبتدئين AMD عباءة، بما في ذلك معالج الرسومات المدمج في APU A10-7850K. كما قلنا سابقا، اللعبة لصلا يسجل التقلبات في توقيت الإطارات، لذلك ننشر معدل الإطارات فقط.

AMD عباءة | اختبارات اللص على بطاقات الفيديو المتوسطة والعالية

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

AMD عباءة | اختبارات Battlefield 4 على رسومات APU المدمجة

مع أداة التقاط مدمجة لقياس التغيرات في وقت الإطار ميدان المعركة 4يمكننا الحصول على معلومات مفصلة عن الأداء. لنبدأ بإعدادات رسومات مسبقة منخفضة جدًا بدقة 1600 × 900 بكسل على وحدة APU المدمجة A10-7850K .


AMD عباءةيوفر ميزة طفيفة، على الرغم من أنه من غير المرجح أن يؤثر على قرار الشراء. لقد فوجئنا أكثر بأن APU كان قادرًا على الانسحاب ميدان المعركة 4بدقة 1600 × 900 بكسل بمعدل إطارات لا يقل عن 30 إطارًا في الثانية.


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

AMD عباءة | اختبارات Battlefield 4 على بطاقات الفيديو للمبتدئين

الآن راديون R7 250Xو جيفورس جي تي اكس 650سوف يوضح لنا ما هي بطاقات الفيديو المنفصلة الرخيصة القادرة على فعله. بالنسبة لهم، نقوم بزيادة مستوى التفاصيل إلى مستوى عالٍ ونزيد الدقة إلى 1920 × 1080 بكسل.


في المخططين أعلاه يمكنك رؤية الكثير من الخطوط والمشارب. ولكن في هذه الحالة نرى كيف AMD عباءةيضر الأداء بدلا من أن يساعد.

تواصلنا مع AMD لمعرفة النتائج، وأخبرتنا الشركة بذلك ميدان المعركة 4هناك مشكلة خاصة مع AMD عباءة، والذي يحدث على البطاقات ذات ذاكرة الفيديو الأقل من 4 جيجابايت. البطاقة التي تم اختبارها راديون R7 250Xلديه 1 غيغابايت من الذاكرة. جيفورس جي تي اكس 650- 2 جيجابايت، على الرغم من AMD عباءةإنه غير متوافق. سنتعامل مع هذه المشكلة قريبا. ولكن الآن دعونا نلقي نظرة على التقلبات في أوقات تسليم الإطار.


التقلبات ضمن نطاق مقبول. لم تتجاوز أي من البطاقات علامة 3 مللي ثانية عند النسبة المئوية 95. هناك عدد قليل من المسامير، لكنها طفيفة.

AMD عباءة | اختبارات Battlefield 4 على بطاقات الفيديو متوسطة المدى

راديون آر 9270و جيفورس جي تي اكس 660، المجهز بذاكرة GDDR5 بسعة 2 جيجابايت، منحنا الفرصة إما لدحض أو تأكيد ادعاءات AMD فيما يتعلق بالمشكلة AMD عباءةمع بطاقات ذات ذاكرة فيديو أقل من 4 جيجابايت. إذا كان هذا صحيحًا، فيجب أن نرى المشكلة التي تم تحديدها مسبقًا مرة أخرى. لاستيعاب الحمل، قمنا بزيادة مستوى التفاصيل إلى Ultra.


واستمر تراجع الأداء. هل تغيرت التقلبات في أوقات تسليم الإطار؟


ظل الارتعاش منخفضًا، على الرغم من أن التلعثم كان أكثر وضوحًا عندما انخفض معدل الإطارات إلى 25 إطارًا في الثانية.

AMD عباءة | اختبارات Battlefield 4 على بطاقات الرسومات عالية المستوى

حان الوقت للاختبار و جيفورس جي تي اكس 780 تي آي. تأتي بطاقة الرسومات AMD مزودة بذاكرة VRAM بسعة 4 جيجابايت، لذا يجب علينا تجنب مشكلة القياس المذكورة أعلاه AMD عباءة. دفعتنا قوة كلتا البطاقتين إلى زيادة الدقة إلى 2560 × 1440 بكسل.


وأخيرا API AMD عباءةمن AMD تأثيرها من خلال تزويد النظام فكس-8350متوسط ​​معدل الإطارات 51.4 إطارًا في الثانية مقابل 45 إطارًا في الثانية ضمن DirectX. بالإضافة إلى ذلك AMD عباءةيجعلك أقرب إلى مستويات الأداء جيفورس جي تي اكس 780 تي آي(على الرغم من أن بطاقة Nvidia أغلى بكثير).


كما هو الحال في الاختبارات الأخرى ميدان المعركة 4، تُظهر الأداة المساعدة المضمنة في اللعبة لقياس تقلبات وقت الإطار مستوى عالٍ من الأداء.

AMD عباءة | اختبارات Battlefield 4: مشاكل ذاكرة الوصول العشوائي (RAM) وتحديثات برنامج التشغيل

كما ذكرنا أعلاه، قمنا بإبلاغ AMD بالمشكلة. AMD عباءةمع ميدان المعركة 4وقيل لنا أن هناك عائقًا يؤدي إلى انخفاض الأداء على بطاقات الفيديو التي تعمل بذاكرة فيديو أقل من 4 جيجابايت AMD عباءة. لدراسة المشكلة، أخذنا MSI راديون R9270Xمع ذاكرة فيديو GDDR5 بسعة 4 جيجابايت. هل ستساعد الذاكرة الإضافية في التغلب على أوجه القصور؟


على الرغم من أن تدهور الأداء تسبب AMD عباءةفي السابق، لم يعد يُلاحظ، ولا توجد فوائد ملموسة أيضًا.


نرى مرة أخرى اختلافات منخفضة جدًا في متوسط ​​أوقات تسليم الإطارات، تتخللها زيادات مفاجئة.

يبدو أن ذاكرة الفيديو ليست العامل المحدد الوحيد. على الأقل في ميدان المعركة 4 AMD عباءةيوضح ميزة على DirectX على بطاقات الفيديو عالية الأداء مع أكثر من 4 جيجابايت من ذاكرة الفيديو. ذاكرة GDDR5 الإضافية لا تساعد راديون R9270Xتحسين نتائجك باستخدام AMD API.

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

بعد الانتهاء من الاختبار، أمضينا الكثير من الوقت في إجراء أبحاث إضافية. ناقشنا البيانات التي تم الحصول عليها مع AMD. وقال موظفو الشركة إن هناك مشكلة في ذاكرة الفيديو حتى 4 جيجا بايت. كانت هناك بعض الأشياء التي كنت بحاجة إلى معرفتها حول واجهة برمجة التطبيقات (API). بشكل عام، بينما كنا نجمع المواد ل ميدان المعركة 4تم إصدار تحديث بتاريخ 3 يونيو، وأصدرت AMD برنامج التشغيل Catalyst 14.6 Beta.

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

ما الاستنتاج الذي يمكن استخلاصه؟ لا تتلقى مسرعات رسومات Radeon ذات الذاكرة الأقل من 4 جيجابايت تسريعًا عند تمكينها AMD عباءةالخامس ميدان المعركة 4. ومع ذلك، مع برنامج التشغيل الجديد وتصحيح اللعبة، يصبح الفرق أقل مما هو عليه مع الحزمة 14.3 Beta. وهذه نتيجة مشجعة لأنها توضح أن AMD وDICE يعملان على واجهة برمجة التطبيقات (API). ولكننا نرى أيضًا مقدار الجهد المطلوب لمزيد من التحسين. نأمل AMD عباءة راديون R9270Xمع 4 جيجابايت، وعلى الرغم من الواجهة AMD عباءةلم يقلل من الأداء، ولم يقدم أي فوائد. وفقًا لشركة AMD، فإن واجهة برمجة التطبيقات (API) حاليًا في مرحلة التطوير التجريبي، لذا فإن مثل هذه الحالات الشاذة ممكنة تمامًا.

على أية حال، وبالنظر إلى معظم اختباراتنا وبيانات المطورين، يصبح من الواضح ذلك AMD عباءةيقدم مزايا معينة مقارنة بـ DirectX 11. ليس لدينا ألعاب تعتمد على OpenGL للمقارنة، ولكن يُذكر أن كلا واجهات برمجة التطبيقات الرسومية لها قيود مقارنة بـ AMD عباءة. ماذا يعني هذا لعشاق الكمبيوتر؟

على المدى القصير والمتوسط AMD عباءةسيكون قادرًا على توفير مكاسب الأداء لأصحاب بطاقات Radeon استنادًا إلى بنية GCN في عدد صغير من ألعاب الفيديو. ستكون الزيادة ضئيلة على الأنظمة الأساسية التي تحتوي على معالجات Intel Core i7. ولكن على الأنظمة ذات المعالجات الرخيصة مثل فكس-4170و APU A10 و Athlon X4، ستكون زيادة السرعة أكثر تعبيرًا.

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

تفضل. متى ستقوم AMD بإصدار SDK؟ AMD عباءة، فمن الناحية النظرية سيكون من الممكن تطوير متوافق AMD عباءةبرامج التشغيل من Intel وNvidia، والتي قد تجتذب مطوري البرامج المستقلين. ولكن هذا يبدو غير محتمل. ليس من المنطقي ربط "عربة التسوق" الخاصة بك بـ "حصان" منافسك. وبحسب ما ورد طلبت Intel الوصول إلى SDK AMD عباءة، ولكن على الأرجح لأغراض الاختبار الداخلي.

تواجه إدارة AMD خيارًا صعبًا. هل سيكون هناك مجال ل AMD عباءةمتى سيصل DirectX 12 بنهجه البسيط والقدرة على أداء مهام العرض في وقت واحد على عدة مراكز لوحدة المعالجة المركزية؟ يبدو من الواضح أن Intel وNvidia ستقبلان قرار Microsoft. ونحن نعتقد أنه إذا AMD عباءةسيكون متوافقًا بشكل جيد مع DirectX 12، وسيرغب مطورو Microsoft في قضاء وقتهم في دعمه. لكن AMD ستدعم حتماً أيضاً DirectX 12، لذلك قد يكون العمل زائداً عن الحاجة. مع انتشار DirectX، الميزة الرئيسية AMD عباءةسيكون من الممكن تزويد المطورين بسرعة بأي ميزات Radeon حصرية، مثل 3dfx Glide.

نتحدث اليوم في الغالب عن أجهزة الكمبيوتر الشخصية، لكن لا تنسَ وحدات التحكم. إذا نفذت مايكروسوفت وسوني AMD عباءةعلى منصاتهم، ثم مع مكونات AMD التي تستخدم نوى جاكوار x86، من المؤكد تقريبًا أن واجهة برمجة التطبيقات هذه ستتلقى دعمًا قويًا من المطورين. يتم نقل العديد من ألعاب الكمبيوتر الشخصي من إصدارات وحدة التحكم أو تطويرها في وقت واحد معها. وبطبيعة الحال، لدى Microsoft حافز للانتظار حتى يصبح DirectX 12 جاهزًا. أما بالنسبة لشركة Sony، فإن جهاز PlayStation 4 لديه واجهة برمجة تطبيقات خاصة به، وهي أكثر تقدمًا من DirectX 11 وOpenGL. قال يوهان أندرسون، مبرمج الرسومات الرئيسي في DICE، إن واجهة برمجة تطبيقات الرسومات الخاصة بـ PS4 جيدة جدًا AMD عباءةعلى PS4 لا يحتاجون إليها.

لا يزال موضع Steambox الخاص بـ Valve مجهولاً. AMD لا يدعم AMD عباءةفي برنامج تشغيل Linux، لكن الشركة ألمحت إلى تنفيذ الدعم في المستقبل. بافتراض أن Valve أنشأت مفهومًا للاستخدام المربح لوحدات APU (لم نر ذلك بعد)، فإن الطلب على AMD عباءةقد يزيد في هذه البيئة. ومع ذلك، أمام SteamOS طريق طويل قبل أن يحدث ذلك.

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

تحسين البرمجيات

تسريع الأجهزة أو البرامج

التصوير بتمرير واحد أو تمرير متعدد

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

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

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

لزيادة الأداء، تحتاج إلى تكوين OpenGL، Direct 3D، رامداكوترددات الساعة وغيرها من المعلمات.

توفر واجهة برمجة التطبيقات (API) لمطوري الأجهزة والبرامج الوسائل اللازمة لإنشاء برامج التشغيل والبرامج التي تعمل بشكل أسرع على مجموعة واسعة من الأنظمة الأساسية.

تم تصميم برامج التشغيل للتفاعل مباشرة مع واجهة برمجة التطبيقات (API)، بدلاً من التفاعل مع نظام التشغيل والبرامج.

يوجد حاليًا واجهتا برمجة تطبيقات للرسومات - OpenGL (SGI) وDirect 3D (Microsoft).

أسئلة التحكم.

1. ما هي الأنواع الرئيسية لأنظمة الفيديو المستخدمة في أجهزة الكمبيوتر؟

2. تعريف محول الفيديو، ما هي أنواع محولات الفيديو الموجودة؟

3. ما هي أنواع الأقنعة الموجودة؟

4. لماذا تعتبر إزالة المغناطيسية ضرورية في شاشات CRT؟

5. ما هو نوع الإشعاع الذي يؤثر على الصحة في شاشات CRT؟

6. ما هي المواد السامة المستخدمة في شاشات CRT؟

7. ما هي الخصائص التقنية الرئيسية المستخدمة لشاشات LCD؟

8. اذكر تقنيات شاشات LCD؟

9. ما هو تصميم ألواح البلازما؟

10. ما هي مميزات شاشات OLED مقارنة بها؟ شاشات الكريستال السائل-يعرض؟

11. ما هي الأجزاء التي تتكون منها بطاقة الفيديو؟

12. ما هي أنواع ذاكرة الفيديو المستخدمة في بطاقات الفيديو؟

13. ما هو استخدام المسرع ثلاثي الأبعاد؟

14. ما هي تقنيات الرسومات ثلاثية الأبعاد الموجودة؟