تم نشر معيار الرسومات Vulkan 1.3

بعد عامين من العمل، نشر اتحاد معايير الرسومات Khronos مواصفات Vulkan 1.3، التي تحدد واجهة برمجة التطبيقات (API) للوصول إلى إمكانيات الرسومات والحوسبة لوحدات معالجة الرسومات. تتضمن المواصفات الجديدة تصحيحات وإضافات تراكمت على مدار عامين. تجدر الإشارة إلى أن متطلبات مواصفات Vulkan 1.3 مصممة لمعدات الرسومات من فئة OpenGL ES 3.1، والتي ستضمن دعم واجهة برمجة التطبيقات الرسومية الجديدة في جميع وحدات معالجة الرسومات التي تدعم Vulkan 1.2. ومن المقرر نشر أدوات Vulkan SDK في منتصف شهر فبراير. بالإضافة إلى المواصفات الرئيسية، من المخطط تقديم امتدادات إضافية للأجهزة المحمولة وأجهزة سطح المكتب متوسطة المدى والمتطورة، والتي سيتم دعمها كجزء من إصدار "Vulkan Milestone".

وفي الوقت نفسه، يتم تقديم خطة لتنفيذ الدعم للمواصفات الجديدة والإضافات الإضافية في بطاقات الرسومات وبرامج تشغيل الأجهزة. تستعد Intel وAMD وARM وNVIDIA لإصدار منتجات تدعم Vulkan 1.3. على سبيل المثال، أعلنت شركة AMD أنها ستدعم قريبًا Vulkan 1.3 في سلسلة بطاقات الرسوميات AMD Radeon RX Vega، وكذلك في جميع البطاقات المبنية على بنية AMD RDNA. تستعد NVIDIA لنشر برامج التشغيل بدعم Vulkan 1.3 لنظامي التشغيل Linux وWindows. ستضيف ARM دعمًا لـ Vulkan 1.3 إلى وحدات معالجة الرسوميات Mali.

الابتكارات الرئيسية:

  • تم تنفيذ دعم تمريرات العرض المبسطة (تبسيط تمريرات العرض، VK_KHR_dynamic_rendering)، مما يسمح لك ببدء العرض دون إنشاء ممرات عرض وكائنات مخزن مؤقت للإطارات.
  • تمت إضافة ملحقات جديدة لتبسيط إدارة تجميع خطوط أنابيب الرسومات (خط الأنابيب، مجموعة من العمليات التي تحول أساسيات الرسومات المتجهة والأنسجة إلى تمثيلات بكسل).
    • VK_EXT_extened_dynamic_state، VK_EXT_extened_dynamic_state2 - إضافة حالات ديناميكية إضافية لتقليل عدد كائنات الحالة المترجمة والمرفقة.
    • VK_EXT_pipeline_creation_cache_control - يوفر عناصر تحكم متقدمة حول متى وكيف يتم تجميع خطوط الأنابيب.
    • VK_EXT_pipeline_creation_feedback - يوفر معلومات حول خطوط الأنابيب المترجمة لتسهيل عملية التوصيف وتصحيح الأخطاء.
  • تم نقل عدد من الميزات من اختيارية إلى إلزامية. على سبيل المثال، أصبح تنفيذ مراجع المخزن المؤقت (VK_KHR_buffer_device_address) ونموذج ذاكرة Vulkan، الذي يحدد كيفية وصول الخيوط المتزامنة إلى البيانات المشتركة وعمليات المزامنة، إلزاميًا الآن.
  • يتم توفير التحكم الدقيق في المجموعة الفرعية (VK_EXT_subgroup_size_control) حتى يتمكن البائعون من توفير الدعم لأحجام المجموعات الفرعية المتعددة ويمكن للمطورين تحديد الحجم الذي يحتاجون إليه.
  • تم توفير ملحق VK_KHR_shader_integer_dot_product، والذي يمكن استخدامه لتحسين أداء أطر التعلم الآلي بفضل تسريع الأجهزة لعمليات منتج النقطة.
  • تم تضمين إجمالي 23 توسعة جديدة:
    • VK_KHR_copy_commands2
    • VK_KHR_dynamic_rendering
    • VK_KHR_format_feature_flags2
    • VK_KHR_maintenance4
    • VK_KHR_shader_integer_dot_product
    • VK_KHR_shader_non_semantic_info
    • VK_KHR_shader_terminate_invocation
    • VK_KHR_synchronization2
    • VK_KHR_zero_initialize_workgroup_memory
    • VK_EXT_4444_formats
    • VK_EXT_extened_dynamic_state
    • VK_EXT_extened_dynamic_state2
    • VK_EXT_image_robustness
    • VK_EXT_inline_uniform_block
    • VK_EXT_pipeline_creation_cache_control
    • VK_EXT_pipeline_creation_feedback
    • VK_EXT_private_data
    • VK_EXT_shader_demote_to_helper_invocation
    • VK_EXT_subgroup_size_control
    • VK_EXT_texel_buffer_alignment
    • VK_EXT_texture_compression_astc_hdr
    • VK_EXT_tooling_info
    • VK_EXT_ycbcr_2plane_444_formats
  • تمت إضافة نوع كائن جديد VkPrivateDataSlot. تم تنفيذ 37 أمرًا جديدًا وأكثر من 60 هيكلًا.
  • تم تحديث مواصفات SPIR-V 1.6 لتحديد تمثيل تظليل متوسط ​​يكون عالميًا لجميع الأنظمة الأساسية ويمكن استخدامه لكل من الرسومات والحوسبة المتوازية. يتضمن SPIR-V فصل مرحلة تجميع تظليل منفصلة إلى تمثيل متوسط، مما يسمح لك بإنشاء واجهات أمامية للعديد من اللغات عالية المستوى. استنادًا إلى العديد من التطبيقات عالية المستوى، يتم إنشاء رمز وسيط واحد بشكل منفصل، والذي يمكن استخدامه بواسطة برامج تشغيل OpenGL وVulkan وOpenCL دون استخدام مترجم التظليل المدمج.
  • تم اقتراح مفهوم ملفات تعريف التوافق. تعد Google أول من قام بإصدار ملف تعريف أساسي لمنصة Android، مما سيسهل تحديد مستوى الدعم لإمكانيات Vulkan المتقدمة على جهاز يتجاوز مواصفات Vulkan 1.0. بالنسبة لمعظم الأجهزة، يمكن توفير دعم الملف الشخصي دون تثبيت تحديثات OTA.

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

يمتد Vulkan على جميع المنصات المتاحة ويوفر واجهة برمجة تطبيقات واحدة لسطح المكتب والهاتف المحمول والويب، مما يسمح باستخدام واجهة برمجة تطبيقات مشتركة واحدة عبر وحدات معالجة الرسومات والتطبيقات المتعددة. بفضل بنية Vulkan متعددة الطبقات، والتي تعني الأدوات التي تعمل مع أي وحدة معالجة رسومات، يمكن لمصنعي المعدات الأصلية استخدام أدوات متوافقة مع معايير الصناعة لمراجعة التعليمات البرمجية وتصحيح الأخطاء وإنشاء ملفات تعريف أثناء التطوير. لإنشاء التظليل، يُقترح تمثيل وسيط محمول جديد، SPIR-V، استنادًا إلى LLVM ومشاركة التقنيات الأساسية مع OpenCL. للتحكم في الأجهزة والشاشات، يقدم Vulkan واجهة WSI (تكامل نظام النوافذ)، والتي تحل تقريبًا نفس المشكلات التي تحلها EGL في OpenGL ES. يتوفر دعم WSI بشكل جاهز في Wayland - يمكن تشغيل جميع التطبيقات التي تستخدم Vulkan في بيئة خوادم Wayland غير المعدلة. يتم أيضًا توفير القدرة على العمل عبر WSI لأنظمة Android وX11 (مع DRI3) وWindows وTizen وmacOS وiOS.

المصدر: opennet.ru

إضافة تعليق