تمت إضافة محركات عرض جديدة لـ OpenGL وVulkan إلى GTK

أعلن مطورو مكتبة GTK عن توفر محركين جديدين للعرض - "ngl" و"vulkan"، باستخدام OpenGL (GL 3.3+ وGLES 3.0+) وواجهات برمجة تطبيقات الرسومات Vulkan. تم تضمين محركات جديدة في الإصدار التجريبي من GTK 4.13.6. في فرع GTK التجريبي، يتم الآن استخدام محرك ngl بشكل افتراضي، ولكن إذا تم تحديد مشاكل كبيرة في الفرع المستقر التالي 4.14، فسيتم إرجاع محرك العرض القديم "gl".

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

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

الميزات الجديدة المفقودة في محرك gl القديم:

  • تنعيم الكفاف - يسمح لك بالحفاظ على التفاصيل الدقيقة وتحقيق خطوط أكثر سلاسة.
    تمت إضافة محركات عرض جديدة لـ OpenGL وVulkan إلى GTK
  • تشكيل تدرجات عشوائية، والتي يمكن أن تستخدم أي عدد من الألوان والصقل (في محرك gl، تم دعم التدرجات الخطية والشعاعية والمخروطية فقط مع 6 ألوان توقف).
    تمت إضافة محركات عرض جديدة لـ OpenGL وVulkan إلى GTK
  • مقياس كسري، والذي يسمح لك بتعيين قيم مقياس غير صحيحة، على سبيل المثال، عند استخدام مقياس 125٪ لنافذة 1200 × 800، سيتم تخصيص مخزن مؤقت 1500 × 1000، وليس 2400 × 1600 كما في المحرك القديم.
  • دعم تقنية DMA-BUF لاستخدام وحدات معالجة رسومات متعددة وتفريغ العمليات الفردية إلى وحدة معالجة رسومات أخرى.
  • تتم معالجة العديد من عقد العرض التي واجهت مشكلات في التنفيذ القديم بشكل صحيح.

تشمل قيود المحركات الجديدة عدم دعم تحديد المواقع بواسطة القيم غير الصحيحة (الموضع الكسري) وعقد glshader، التي كانت مرتبطة بشكل كبير بميزات المحرك القديم، والتي لم تعد ضرورية بعد إضافة دعم لـ العقد ذات الأقنعة (القناع) والأنسجة ذات الشفافية. يُذكر أيضًا أن هناك احتمالًا لحدوث مشكلات محتملة في برامج تشغيل الرسومات بسبب التغييرات في طريقة العمل مع برامج التشغيل.

في المستقبل، واستنادًا إلى النموذج الموحد الجديد، لا يتم استبعاد إنشاء محركات عرض باستخدام Metal في macOS وDirectX في Windows، ولكن إنشاء مثل هذه المحركات يكون معقدًا بسبب استخدام لغات أخرى للتظليل (“ngl”) تستخدم محركات "" و"vulkan" لغة GLSL، لذا سيتعين على Metal وDirect إما تكرار التظليل أو استخدام طبقة تعتمد على مجموعة أدوات SPIRV-Cross).

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

المصدر: opennet.ru

إضافة تعليق