إصدار Mesa 21.2 ، وهو تطبيق مجاني لبرنامج OpenGL و Vulkan

بعد ثلاثة أشهر من التطوير، تم نشر إصدار التطبيق المجاني لـ OpenGL وVulkan APIs، Mesa 21.2.0. يتمتع الإصدار الأول من فرع Mesa 21.2.0 بحالة تجريبية - بعد التثبيت النهائي للكود، سيتم إصدار نسخة مستقرة 21.2.1.

يتمتع Mesa 21.2 بدعم OpenGL 4.6 الكامل لبرامج تشغيل 965 وiris (Intel) وradeonsi (AMD) وzink وllvmpipe. يتوفر دعم OpenGL 4.5 لوحدات معالجة الرسومات AMD (r600) وNVIDIA (nvc0)، وOpenGL 4.3 لـ Virgl (وحدة معالجة الرسومات الافتراضية Virgil3D لـ QEMU/KVM). يتوفر دعم Vulkan 1.2 لبطاقات Intel وAMD، وكذلك في وضع المحاكي (vn)، ويتوفر دعم Vulkan 1.1 لوحدات معالجة الرسوميات Qualcomm وبرنامج ravapip، وVulkan 1.0 لوحدات معالجة الرسومات Broadcom VideoCore VI (Raspberry Pi 4).

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

  • يتم تضمين برنامج التشغيل asahi OpenGL مع الدعم الأولي لوحدة معالجة الرسومات المتوفرة في شرائح Apple M1. يستخدم برنامج التشغيل واجهة Gallium ويدعم معظم ميزات OpenGL 2.1 وOpenGL ES 2.0، ولكنه ليس مناسبًا بعد لتشغيل معظم الألعاب. يعتمد رمز برنامج التشغيل على برنامج تشغيل Gallium المرجعي noop، مع بعض التعليمات البرمجية المنقولة من برنامج تشغيل Panfrost الذي تم تطويره لوحدة معالجة الرسومات ARM Mali.
  • برنامج تشغيل Crocus OpenGL متضمن مع دعم وحدات معالجة الرسومات Intel الأقدم (استنادًا إلى البنى الدقيقة Gen4-Gen7) غير المدعومة بواسطة برنامج تشغيل Iris. على عكس برنامج التشغيل i965، يعتمد برنامج التشغيل الجديد على بنية Gallium3D، التي تقوم بالاستعانة بمصادر خارجية لمهام إدارة الذاكرة إلى برنامج تشغيل DRI في Linux kernel ويوفر أداة تعقب حالة جاهزة مع دعم ذاكرة التخزين المؤقت لإعادة استخدام كائن الإخراج.
  • تم تضمين برنامج التشغيل PanVk، مما يوفر الدعم لواجهة برمجة تطبيقات الرسومات Vulkan لوحدات معالجة الرسوميات ARM Mali Midgard وBifrost. تم تطوير PanVk بواسطة موظفي Collabora ويتم وضعه كاستمرار لتطوير مشروع Panfrost، الذي يوفر الدعم لـ OpenGL.
  • يدعم برنامج تشغيل Panfrost لـ GPU Midgard (Mali T760 والأحدث) وGPU Bifrost (Mali G31، G52، G76) OpenGL ES 3.1. تتضمن الخطط الإضافية العمل على زيادة الأداء على شرائح Bifrost ودعم وحدات معالجة الرسومات المستندة إلى بنية Valhall (Mali G77 والأحدث).
  • تستخدم إصدارات 32 بت لبنية x86 تعليمات sse87 بدلاً من تعليمات x2 لإجراء العمليات الحسابية.
  • يدعم برنامج التشغيل Nouveau nv50 لوحدة معالجة الرسومات NVIDIA GT21x (GeForce GT 2x0) برنامج OpenGL ES 3.1.
  • يتمتع برنامج تشغيل TURNIP Vulkan وبرنامج تشغيل Freedreno OpenGL الذي تم تطويره لوحدات معالجة الرسوميات Qualcomm Adreno بدعم أولي لوحدات معالجة الرسوميات Adreno a6xx gen4 (a660, a635).
  • تمت إضافة دعم الإعدام البدائي باستخدام محركات التظليل NGG (Next-Gen Geometry) إلى برنامج تشغيل RADV (AMD) Vulkan. تم تنفيذ القدرة على إنشاء برنامج تشغيل RADV على نظام Windows الأساسي باستخدام برنامج التحويل البرمجي MSVC.
  • كان برنامج التشغيل ANV Vulkan (Intel) وبرنامج التشغيل Iris OpenGL تحضيريًا لدعم بطاقات الرسومات Intel Xe-HPG (DG2) القادمة. يتضمن ذلك الميزات الأولية المتعلقة بتتبع الشعاع ودعم التظليل لتتبع الشعاع.
  • يدعم برنامج تشغيل lapapip مع تطبيق برنامج نقطي لـ Vulkan API (على غرار llvmpipe، ولكن لـ Vulkan، الذي يترجم مكالمات Vulkan API إلى Gallium API) وضع "wideLines" (يوفر الدعم للخطوط التي يزيد عرضها عن 1.0). ).
  • تم تنفيذ الدعم للاكتشاف الديناميكي وتحميل الواجهات الخلفية البديلة لـ GBM (Generic Buffer Manager). يهدف التغيير إلى تحسين دعم Wayland على الأنظمة التي تحتوي على برامج تشغيل NVIDIA.
  • يدعم برنامج تشغيل Zink (تطبيق OpenGL API أعلى Vulkan والذي يسمح لك بالحصول على OpenGL المُسرّع للأجهزة عندما يكون لدى النظام برامج تشغيل تقتصر على دعم Vulkan API فقط) امتدادات OpenGL GL_ARB_sample_locations وGL_ARB_sparse_buffer وGL_ARB_shader_group_vote وGL_ARB_texture_filter_minmax وGL_ARB_shader_clock. تمت إضافة معدلات تنسيق DRM (مدير العرض المباشر، ملحق VK_EXT_image_drm_format_modifier متضمن).
  • تمت إضافة دعم للملحقات إلى برامج تشغيل RADV (AMD) وANV (Intel) وLavapipe Vulkan:
    • VK_EXT_provoking_vertex (RADV)؛
    • VK_EXT_extened_dynamic_state2 (RADV)؛
    • VK_EXT_global_priority_query (RADV)؛
    • VK_EXT_physical_device_drm (RADV)؛
    • VK_KHR_shader_subgroup_uniform_control_flow (RADV، ANV)؛
    • VK_EXT_color_write_enable (RADV)؛
    • VK_EXT_acquire_drm_display (RADV، ANV)؛
    • VK_EXT_vertex_input_dynamic_state (لافابيب)؛
    • VK_EXT_line_rasterization (لافابيب)؛
    • VK_EXT_multi_draw(ANV, lapapip, RADV);
    • VK_KHR_separate_deep_stencil_layouts (لافابيب)؛
    • VK_EXT_separate_stencil_usage(lapapip);
    • VK_EXT_extened_dynamic_state2 (لافابيب).

المصدر: opennet.ru

إضافة تعليق