Collabora הודיעה כי הביאה את מנהל ההתקן הפתוח NVK עבור כרטיסי מסך NVIDIA מוכן לשימוש יומיומי על ידי מגוון רחב של משתמשים ואישרה דרייבר זה בקונסורציום Khronos, המפתחת תקני גרפיקה. הנהג מוכר כתואם באופן מלא למפרט Vulkan 1.3, עבר בהצלחה את כל הבדיקות מ-CTS (Khronos Conformance Test Suite) ונכלל ברשימת הנהגים המוסמכים.
הושלמה הסמכה עבור כרטיסי מסך של NVIDIA המבוססים על המיקרו-ארכיטקטורות Turing (סדרות GeForce GTX 16xx, RTX 20xx ו-Quadro RTX), Ampere (סדרות GeForce RTX 30xx ו-RTX A2000/4000/5000/6000), ו-Ada (סדרות GeForce RTX 4xxx, RTX 4000 SFF, RTX 4xxx/5000/6000 Ada). האימות בוצע בסביבת ליבה. Linux 6.5 ו-6.8rc1. קבלת ההסמכה מאפשרת לנו להצהיר רשמית על עמידה בתקני הגרפיקה הללו ולהשתמש בסימנים המסחריים של Khronos הנלווים. השינויים כבר אומצו בבסיס הקוד של Mesa וייכללו במהדורת Mesa 24.1.
בנוסף לשיפורים ב-NVK, חלה התקדמות משמעותית במתן תמיכת OpenGL עבור כרטיסי מסך של NVIDIA. Mesa אימצה שינוי המאפשר שימוש במנהל ההתקן Zink כדי לספק תמיכה ל-OpenGL 4.6 במערכות עם סדרה חדשה של כרטיסי מסך של NVIDIA (החל מ-GeForce RTX 20xx), שעלולים להיתקל בבעיות במנהל ההתקן של Nouveau OpenGL (NVC0). כדי להפעיל את Zink במקום NVC0 ב-Mesa 24.1, פשוט הגדר את משתנה הסביבה "NOUVEAU_USE_ZINK=1".
השינויים שבוצעו ב-Mesa מספקים גם את היכולת להשתמש ב-Zink כדי לתמוך ב-OpenGL במנהלי התקנים אחרים כחלופה למעבדי GPU שאינם נתמכים על-ידי מנהלי ההתקן המקוריים של OpenGL של Mesa. לדוגמה, גישה דומה כבר נמצאת בשימוש כדי לספק תמיכה ב-OpenGL במנהל ההתקן של freedreno עבור ה-Qualcomm Adreno 700 GPU ומנהל התקן powervr עבור ה-Imagination PowerVR GPU המבוסס על המיקרו-ארכיטקטורה של Rogue.
Zink מספקת מימוש OpenGL על גבי Vulkan המאפשר לך לקבל OpenGL מואץ בחומרה במכשירים התומכים רק ב-Vulkan API. במהדורה הבאה של Mesa, מנהל ההתקן Zink יופעל כברירת מחדל בעת הבנייה. הביצועים של Zink קרובים לביצועים של יישומי OpenGL מקוריים, מה שמאפשר, במקום לבזבז משאבים על תחזוקת דרייברים בודדים של OpenGL, להתמקד בתמיכה באיכות גבוהה עבור Vulkan API, ולהטמיע תמיכת OpenGL על גבי Vulkan.
אין עדיין תוכניות להסיר את מנהל ההתקן הישן של Nouveau OpenGL, אבל בצורתו הנוכחית השילוב של Zink + NVK מפגין ביצועים גבוהים יותר בבדיקות רבות. בשלב הפיתוח הנוכחי, כאשר מריצים משחקים רבים, השילוב של Zink + NVK מאפשר לך להשיג ביצועים של 60 FPS ומעלה בדגמי GPU חדשים, אך יש עדיין כמה בעיות לא פתורות ואזורים לא אופטימליים שייפתרנו עם הזמן.
כמו כן צוין עבודה לייצוב העבודה של שכבת ה-DXVK על גבי מנהל ההתקן של NVK, המספק יישום של Direct3D 9, 10 ו-11, עובד דרך תרגום קריאות ל-Vulkan API. לא כל משחקי D3D11 עדיין מובטחים לעבוד עם שילוב NVK+DXVK ללא שינוי מבית Mesa, אך היכולות הבסיסיות זמינות והפגמים שזוהו מתבטלים בהדרגה. באופן דומה, חיבור NVK עם VKD3D-Proton מפותח כדי לספק תמיכה עבור D3D12, אך מעמדו עדיין מאחורי NVK+DXVK ויש ליישם כמה יכולות חסרות.
הדרייבר של NVK נבנה מאפס על ידי צוות הכולל את Karol Herbst (מפתח נובו ב-Red Hat), David Airlie (מתחזק DRM ב-Red Hat), וג'ייסון/פיית' אקסטרנד (מפתח Mesa פעיל) מ-Collabora). בעת יצירת מנהל ההתקן, המפתחים השתמשו בקבצי כותרות רשמיים ובמודולי ליבה פתוחים שפורסמו על ידי NVIDIA. קוד ה-NVK השתמש בכמה רכיבים בסיסיים של מנהל ההתקן של נובו OpenGL במקומות מסוימים, אך בשל ההבדלים בשמות בקבצי הכותרות של NVIDIA ובשמות מהונדסים לאחור בנובו, ההשאלה הישירה של הקוד היא קשה ולרוב. היה צורך לחשוב מחדש על דברים רבים וליישם אותם מאפס.
הפיתוח בוצע במטרה ליצור דרייבר Vulkan חדש עבור Mesa, שקודו יוכל להיות מושאל עבור דרייברים אחרים. לשם כך, NVK ניסתה לשלב את כל ניסיון פיתוח דרייברים קיים של Vulkan, לשמור על בסיס הקוד במצב אופטימלי ולמזער את העברת הקוד מדרייברים אחרים של Vulkan, תוך יישום הגישה הנדרשת לביצועים אופטימליים ואיכותיים במקום להעתיק באופן עיוור יישומים קיימים. הדרייבר כבר כלול ב-Mesa, והשינויים הדרושים ב-API של דרייבר Nouveau DRM כלולים בליבת המערכת. Linux 6.6.
מקור: OpenNet.ru
