לאחר שלושה חודשים של פיתוח, פורסם שחרור הטמעה חינמית של OpenGL ו-Vulkan API - Mesa 21.2.0. המהדורה הראשונה של ענף Mesa 21.2.0 היא בעלת סטטוס ניסיוני - לאחר התייצבות סופית של הקוד, תשוחרר גרסה יציבה 21.2.1.
Mesa 21.2 כולל תמיכה מלאה ב-OpenGL 4.6 עבור מנהלי ההתקן של 965, איריס (Intel), radeonsi (AMD), zink ו-llvmpipe. תמיכה ב-OpenGL 4.5 זמינה עבור GPUs של AMD (r600) ו-NVIDIA (nvc0), ותמיכה ב-OpenGL 4.3 עבור virgl (GPU וירטואלי Virgil3D עבור QEMU/KVM). תמיכה ב-Vulkan 1.2 זמינה עבור כרטיסי Intel ו-AMD, כמו גם במצב אמולטור (vn), תמיכה ב-Vulkan 1.1 זמינה עבור GPUs Qualcomm ו-Lavapipe תוכנת rasterizer, ו-Vulkan 1.0 זמין עבור Broadcom VideoCore VI GPUs (Raspberry Pi 4) .
חידושים עיקריים:
- מנהל ההתקן של asahi OpenGL כלול בתמיכה ראשונית ב-GPU הכלול בשבבי Apple M1. הדרייבר משתמש בממשק Gallium ותומך ברוב התכונות של OpenGL 2.1 ו-OpenGL ES 2.0, אך עדיין אינו מתאים להרצת רוב המשחקים. קוד מנהל ההתקן מבוסס על מנהל ההתקן של Gallium reference noop, כאשר קוד מסוים מועבר ממנהל ההתקן של Panfrost שפותח עבור ה-ARM Mali GPU.
- מנהל ההתקן של Crocus OpenGL כלול בתמיכה במעבדי Intel GPU ישנים יותר (מבוססים על מיקרו-ארכיטקטורות Gen4-Gen7), שאינן נתמכות על ידי מנהל ההתקן של Iris. בניגוד לדרייבר ה-i965, הדרייבר החדש מבוסס על ארכיטקטורת Gallium3D, אשר מוציאה משימות ניהול זיכרון למיקור חוץ למנהל התקן DRI בליבת הלינוקס ומספקת מעקב מצב מוכן עם תמיכה במטמון לשימוש חוזר של אובייקטי פלט.
- מנהל ההתקן PanVk כלול, המספק תמיכה עבור ה-API הגרפי של Vulkan עבור ARM Mali Midgard ו-Bifrost GPUs. PanVk מפותחת על ידי עובדי Collabora וממוקמת כהמשך לפיתוח פרויקט Panfrost, המספק תמיכה ב-OpenGL.
- מנהל ההתקן של Panfrost עבור Midgard GPUs (Mali T760 ואילך) ו-Bifrost GPUs (Mali G31, G52, G76) תומך ב-OpenGL ES 3.1. תוכניות עתידיות כוללות עבודה להגברת הביצועים בשבבי Bifrost ויישום תמיכה ב-GPU המבוססת על ארכיטקטורת Valhall (Mali G77 ואילך).
- בניית 32 סיביות של x86 משתמשת בהוראות sse87 במקום הוראות x2 לחישובים מתמטיים.
- מנהל ההתקן של Nouveau nv50 עבור NVIDIA GT21x GPU (GeForce GT 2×0) תומך ב-OpenGL ES 3.1.
- למנהל התקן Vulkan TURNIP ולמנהל התקן OpenGL Freedreno, שפותח עבור ה-Qualcomm Adreno GPU, יש תמיכה ראשונית ב-Adreno a6xx gen4 GPU (a660, a635).
- מנהל ההתקן של RADV (AMD) Vulkan הוסיף תמיכה בחילוץ פרימיטיבי באמצעות מנועי הצללה של NGG (Next-Gen Geometry). הוטמעה היכולת לבנות את מנהל ההתקן RADV בפלטפורמת Windows באמצעות מהדר MSVC.
- עבודת הכנה בוצעה במנהל ההתקן של ANV Vulkan (Intel) ובמנהל ההתקן של Iris OpenGL כדי לספק תמיכה לכרטיסי המסך Intel Xe-HPG (DG2) הקרובים. זה כולל תכונות ראשוניות הקשורות למעקב אחר קרניים ותמיכה בהצללות למעקב אחר קרניים.
- מנהל ההתקן lavapipe, המטמיע רסטרייזר תוכנה עבור 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_filter_ARB_maxure ו-GL_filter_ARB_maxure. נוספו משנה פורמט DRM (מנהל העיבוד הישיר, סיומת VK_EXT_image_drm_format_modifier מופעלת).
- תמיכה בהרחבות נוספה למנהלי ההתקן של Vulkan RADV (AMD), ANV (Intel) ו-lavapipe:
- VK_EXT_provoking_vertex (RADV);
- VK_EXT_extended_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(lavapipe);
- VK_EXT_line_rasterization(lavapipe);
- VK_EXT_multi_draw(ANV, lavapipe, RADV);
- VK_KHR_separate_depth_stencil_layouts(lavapipe);
- VK_EXT_separate_stencil_usage(lavapipe);
- VK_EXT_extended_dynamic_state2 (lavapipe).
מקור: OpenNet.ru
