הם מציעים יישום של מנהל התקן GPU שנכתב ב-Rust, עבור ה-Apple AGX G13 ו-G14

Linux Apple Rust

זהו מנהל התקן מקיף למדי עבור ה-GPUs של Apple AGX G13 ו-G14.
הבקר של היום תואם ל-SoCs

הידיעה פורסמה לאחרונה הוצע יישום ראשוני של הנהג drm-asahi עבור GPUs מסדרה Apple AGX G13 ו-G14 בשימוש בשבבי Apple M1 ו-M2 ברשימת התפוצה של מפתחי ליבת לינוקס.

הבקר כתוב ב- Rust ועוד, כולל קבוצה של קישורים אוניברסליים על תת-מערכת ה-DRM (מנהל עיבוד ישיר) שניתן להשתמש בו לפיתוח דרייברים גרפיים אחרים ב- Rust.

ערכת התיקון ששוחררה עד עכשיו הוצע לדיון בלבד על ידי מפתחי הליבה (RFC), אך עשויים להתקבל לצוות הליבה לאחר השלמת הבדיקה והסרת ליקויים שזוהו.

זוהי הגרסה הראשונה שלי של ההפשטות Rust עבור DRM תת מערכת. כולל את ההפשטות עצמן, חלקן קטנות שינויים מוקדמים בצד C וכן במנהל ההתקן של drm-asahi GPU (לעיון על אופן השימוש בהפשטות, אך לא בהכרח התכוונו לנחות ביחד).

טלאים אלה מיושמים בחלק העליון של העץ ב-[1], המבוסס על 6.3-rc1 עם הרבה הפשטה/תמיכה ב-Rust commits מֵעַל. רובם אינם תנאים מוקדמים להפשטות DRM. עצמם, אבל רק מהנהג.

מאז דצמבר, הבקר כלול ב החבילה עם הקרנל להפצת Asahi Linux ונבדק על ידי המשתמשים בפרויקט זה.

ניתן להשתמש במנהל ההתקן בהפצות לינוקס ל לארגן את הסביבה הגרפית ב-dמכשירי אפל עם SoC M1, M1 Pro, M1 Max, M1 Ultra ו-M2. בעת פיתוח הדרייבר, נעשה ניסיון לא רק להגביר את האבטחה על ידי מזעור שגיאות בעבודה עם זיכרון בקוד המופעל בצד המעבד, אלא גם להגן חלקית מפני בעיות המתעוררות בעת אינטראקציה עם קושחה.

בפרט הדרייבר מספק כריכות מסוימות עבור מבני זיכרון משותפים לא בטוח עם מחרוזות מורכבות של מצביעים המשמשים בקושחה לאינטראקציה עם הבקר. הדרייבר המוצע משמש בשילוב עם מנהל ההתקן asahi Mesa, המספק תמיכה ב-OpenGL במרחב המשתמש ועובר בדיקות תאימות של OpenGL ES 2. והוא כמעט מוכן לתמוך ב-OpenGL ES 3.0.

במקביל, הדרייבר שעובד ברמת הקרנל פותחה בתחילה מתוך מחשבה על תמיכה עתידית ב-Vulkan API, וממשק התכנות לאינטראקציה עם מרחב המשתמש תוכנן תוך התחשבות ב-UAPI שמספק מנהל ההתקן החדש של Intel Xe.

מעבר ל בעיות ידועות הדברים מוזכרים:

  • אינטגרציית Rust הקיימת כרגע אינה תומכת בבניית הפשטות כמודולים, כך שהפשטות Rust זמינות רק עבור רכיבי DRM משובצים.
  • DRM מסתמך במידה רבה על דפוס "סיווג המשנה" עבור אובייקטים של בקר, וזה לא מתיישב עם Rust.
  • נכון לעכשיו, רק מה שנחוץ לבקר מיושם (בתוספת כמות קטנה של
    תוספות ברורות שבהן שלמות API טובה יותר הגיונית).
  • drm::mm בסופו של דבר דורש mutex מובנה בהפשטה, במקום זאת
    להאציל זאת למשתמש עם הכללים הרגילים של חלודה.
    הסיבה לכך היא שניתן לשחרר צמתים בכל עת ופעולות אלו
    זה צריך להיות מסונכרן.
  • בצד של Mesa יש לך כרגע את הדרייבר של Gallium שברובו כבר נמצא במעלה הזרם (חלקי UAPI חסרים בעיקר) ו
    עובר את מבחני dEQP GLES2/EGL, כאשר רוב ה-GLES3.0 עוברים
    ענפי עבודה במעלה הזרם. מדובר בהנדסה לאחור של נהגים קהילתיים, ולכן מוזכר שיש עוד הרבה מה לעשות בהיבט הזה.

סוף סוף אם אתה מעוניין לדעת יותר על זה, אתה יכול לבדוק את הפרטים ב הקישור הבא.


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי על הנתונים: AB Internet Networks 2008 SL
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.