דיונון: האצת גרפיקה של GPU

במצב הגרפיקה המואץ של הדיונון משתמש במכונה הפיזית יחידת עיבוד גרפי (GPU) לעיבוד על ידי העברת פקודות רינדור לאורחים במחשב המארח, הרצת קריאות פקודות הרינדור במחשב המארח שלכם ומעבירים את התוצאות המוצגות בחזרה לאורחים.

מכשיר דיונון עם Android 11 ואילך מזהה גרפיקה מואצת ומשתמש בה. אם המחשב המארח לא תומך הגרפיקה מואצת, או שגרסת Android ב-Android מגרסה 10 ומטה, רינדור בצד האורח (לדוגמה, הפעלת ממשק משתמש וסרטונים) במכשיר Cuttlefish מטופל על ידי SwiftShader. SwiftShader היא הטמעת תוכנה של ממשקי OpenGL ו-Vulkan API. כי SwiftShader היא הטמעת תוכנה, היא מספקת גישה עיבוד תמונה דיונון שמסוגל לפעול בכל מכונה מארחת.

עם זאת, השימוש ב-SwiftShader לא פחות טוב ממכשיר רגיל. הרינדור הוא בעיה מקבילה שיכולה להיות מקבילה להדרגתית, שאפשר לחשב בנפרד. יחידות עיבוד גרפיקה (GPU) יחידות חומרה שמטפלות בבעיה זו על ידי האצת העיבוד.

הדרישות

מצב גרפיקה מואצת מחייב שהמארח:

  • מנהל התקן עם תמיכה ב-EGL שתומך בתוסף GL_KHR_surfaceless_context
  • מנהל התקן עם OpenGL ES
  • נהג/ת עם יכולות Vulkan

שימוש במצבי גרפיקה מואצים

GfxStream

כדי להשתמש במצב הגרפיקה המואצת של GfxStream, צריך להפעיל את הדיונון המקומי מכשיר עם הדגל --gpu_mode=gfxstream. שימוש במצב הזה, ב-OpenGL וב-Vulkan הקריאות ל-API מועברות ישירות למארח.

launch_cvd --gpu_mode=gfxstream

וירגל

כדי להשתמש במצב הגרפיקה המואצת של Virgl, צריך להפעיל את מכשיר Cuttlefish המקומי עם הדגל --gpu_mode=drm_virgl.

launch_cvd --gpu_mode=drm_virgl

כשמשתמשים במצב הגרפיקה המואצת של Virgl, קריאות OpenGL API מתורגמות לייצוג ביניים Gallium3D). של ייצוג ביניים מועבר למארח ספריית virglrenderer מופעלת המארח מתרגם את ייצוג הביניים בחזרה לקריאות ל-OpenGL API.