
Vulkan APIs هي واجهات برامج منخفضة المستوى عبر الأنظمة الأساسية توفر أداء رسومات ثلاثية الأبعاد أعلى بسبب انخفاض التكاليف مقارنة بواجهات برمجة التطبيقات الأخرى مثل OpenGL ، خاصة مع وظائف GPU الخاصة (API مناسبة أيضًا للعرض ثنائي الأبعاد). مع التنفيذ الصحيح ، توفر Vulkan "من زيادة سرعة هامشية إلى متعددة الحدود مقارنة بواجهات برمجة التطبيقات الأخرى على نفس الجهاز."
قدم مطور مجموعة Khronos Group Vulkan API في مؤتمر GDC 2015 ، وكان الإصدار الأول في فبراير 2016. في البداية ، كان يسمى Vulkan API "الجيل التالي من OpenGL" أو ببساطة glNext ، ولكن بعد ذلك تم تغيير الاسم إلى Vulkan.
كان الكثيرون ينتظرون بفارغ الصبر إصدار هذه التكنولوجيا الثورية ، والتي تسرع بشكل كبير الرسومات ثلاثية الأبعاد وتقلل الحمل على المعالج ، مثل Direct3D 12 ، Metal and Mantle. لكن المشكلة كانت أن واجهة برمجة تطبيقات Vulkan تتطلب المزيد من العمل من المطور ، في حين أن واجهات برمجة التطبيقات ذات المستوى الأعلى مثل OpenGL و DirectX 11 تبسط العديد من الأشياء ، مثل إدارة الذاكرة. للمساعدة في العمل مع Vulkan ، قامت AMD بتطوير طبقة غلاف وتجريد V-EZ ، ونشرت الآن شفرة المصدر لهذه الأداة بموجب ترخيص MIT المجاني (
مستودع GitHub ).
في البداية ، تم إصدار V-EZ في مارس 2018 بمصادر مغلقة ، والآن تمت إزالة هذا القيد.
Vulkan APIV-EZ هو مستوى متوسط (برنامج وسيط) ، والذي يأخذ العديد من الوظائف الإضافية أثناء التطوير ، لذلك لا يحتاج المطور إلى معرفة جميع تعقيدات Vulkan ومعالجتها يدويًا ، وسوف يقوم V-EZ بأشياء كثيرة بنفسه. تستخدم الصدفة المساعدة نفس الدلالات مثل Vulkan API ، أي أنه يمكن استخدامها كنوع من أدوات التدريب. بدءًا من V-EZ ، يمكن للمطورين التعود عليها تدريجيًا - والانتقال في النهاية إلى استخدام Vulkan مباشرة. هذا يعني أيضًا أنه في كثير من الحالات تنطبق وثائق فولكان على V-EZ.
مزايا Vulkan على واجهات برمجة التطبيقات للجيل السابق:
- تعد Vulkan API مناسبة تمامًا لبطاقات الجرافيكس المتطورة والمعدات الرسومية على الأجهزة المحمولة.
- بخلاف Direct3D 12 ، يتوفر Vulkan في العديد من أنظمة التشغيل الحديثة ، ولا يرتبط بأي نظام تشغيل أو عامل شكل. منذ البداية ، تعمل Vulkan APIs على أنظمة Android و Linux و Tizen و Windows 7 و Windows 8 و Windows 10 ، وهناك دعم من طرف ثالث لنظامي iOS و macOS.
- تقليل حمل السائق ، تقليل حمل وحدة المعالجة المركزية.
- تقليل الحمل على وحدة المعالجة المركزية من خلال استخدام المعالجة المجمعة.
- تحجيم أفضل للمعالجات متعددة النواة.
- يستخدم OpenGL لغة GLSL عالية المستوى لكتابة التظليل ، مما يجبر كل برنامج تشغيل OpenGL على تنفيذ برنامج التحويل البرمجي الخاص به لـ GLSL ، والذي يعمل في وقت التشغيل لترجمة تظليل البرنامج إلى رمز جهاز GPU. بدلاً من ذلك ، يجب أن يقبل سائقو Vulkan التظليل المحول بالفعل إلى تنسيق ثنائي متوسط SPIR-V ، على غرار التنسيق الثنائي الذي يتم فيه تجميع تظليل HLSL في Direct3D.
- بفضل التجميع الأولي للتظليل ، تزداد سرعة التهيئة للتطبيقات ، ويمكنك استخدام عدد أكبر من التظليل لكل مشهد. يحتاج برنامج التشغيل فقط إلى تحسين GPU معين وإنشاء التعليمات البرمجية ، مما يبسط صيانة برنامج التشغيل ويقلل حجمها.
- إدارة موحدة لنوى الحوسبة ومظلات الرسوم ، مما يلغي الحاجة إلى استخدام واجهة برمجة تطبيقات حوسبة منفصلة بالاشتراك مع واجهة برمجة تطبيقات رسومية.
الطبقة المتوسطة V-EZعلى الرغم من أن منشئ Vulkan API هو مجموعة Khronos ، إلا أن التقنية تعتمد على واجهة Mantle API التي تبرعت بها AMD لمجموعة Khronos Group. كانت الفكرة هي إنشاء تقنية أكثر تقدمًا لم تكن مرتبطة بمصنع معين ، بحيث يمكن اعتمادها كمعيار صناعي معترف به بشكل عام ، مثل OpenGL. لذلك ، تساعد AMD الآن في تطوير واجهة برمجة تطبيقات Vulkan وتقوم بإنشاء أدوات دعم مثل V-EZ.
متطلبات التثبيت لـ V-EZ
- 64 بت Windows 7 و 8.1 و 10
- Linux 64 بت (تم اختباره على Fedora و Ubuntu)
- Visual Studio 2015 أو أحدث
- 4.9 أو أحدث
- CMake 3.8 أو أحدث
- LunarG Vulkan SDK 1.1.70
V-EZ غير مرتبط ببائع معين ويجب أن يعمل على معدات غير AMD.
يأمل منشئو V-EZ أن يساهم نشر شفرة المصدر بموجب ترخيص مجاني في زيادة شعبية V-EZ shell ، وبالتالي ، واجهات برمجة جديدة منخفضة المستوى. وهذا بدوره سيساعد المطورين على اعتماد واجهات برمجة تطبيقات جديدة ، مما سيؤدي إلى أداء أفضل للألعاب والمزيد من الألعاب عبر الأنظمة الأساسية.
يدعم Vulkan حاليًا عددًا من محركات الألعاب ، بما في ذلك Source 2 و Serious Engine 4 و Unreal Engine 4 و Torque 3D و id Tech 3 و id Tech 4 و id Tech 6 و Xenko و Unity و CryEngine و Intrinsic و Unigine و Abyss Engine ، Banshee 3D و Godot.