במצב הגרפיקה המואץ של הדיונון משתמש במכונה הפיזית יחידת עיבוד גרפי (GPU) לעיבוד על ידי העברת פקודות רינדור לאורחים במחשב המארח, הרצת קריאות פקודות הרינדור במחשב המארח שלכם ומעבירים את התוצאות המוצגות בחזרה לאורחים.
מכשיר Cuttlefish עם Android מגרסה 11 ואילך מזהה גרפיקה מואצת ומשתמש בה. אם המחשב המארח לא תומך הגרפיקה מואצת, או שגרסת Android ב-Android מגרסה 10 ומטה, רינדור בצד האורח (לדוגמה, הפעלת ממשק משתמש וסרטונים) במכשיר Cuttlefish מטופל על ידי SwiftShader. SwiftShader היא הטמעה של תוכנה של ממשקי ה-API של OpenGL ו-Vulkan. SwiftShader הוא הטמעת תוכנה, ולכן הוא מספק פתרון עיבוד גרפיקה (רנדר) שזמין לכולם עבור Cuttlefish, ויכול לפעול בכל מחשב מארח.
עם זאת, הביצועים של SwiftShader נמוכים יותר מאשר הביצועים של מכשיר רגיל. עיבוד תמונה הוא בעיה במקביל שאפשר לבצע בה מקביליות רבה, כי אפשר לחשב את ערכי הפיקסלים בנפרד. יחידות עיבוד גרפיקה (GPU) יחידות חומרה שמטפלות בבעיה זו על ידי האצת העיבוד.
הדרישות
מצב גרפיקה מואצת מחייב שהמארח:
- מנהל התקן EGL שתומך בתוסף
GL_KHR_surfaceless_context
- מנהל התקן עם תמיכה ב-OpenGL ES
- מנהל התקן עם תמיכה ב-Vulkan
שימוש במצבי גרפיקה מואצים
GfxStream
כדי להשתמש במצב הגרפיקה המואצת של GfxStream, צריך להפעיל את הדיונון המקומי
מכשיר עם הדגל --gpu_mode=gfxstream
. שימוש במצב הזה, ב-OpenGL וב-Vulkan
הקריאות ל-API מועברות ישירות למארח.
launch_cvd --gpu_mode=gfxstream
Virgl
כדי להשתמש במצב הגרפיקה המואצת של Virgl, צריך להפעיל את מכשיר Cuttlefish המקומי
עם הדגל --gpu_mode=drm_virgl
.
launch_cvd --gpu_mode=drm_virgl
כשמשתמשים במצב הגרפיקה המואצת של Virgl, קריאות ל-OpenGL API מתורגמות לייצוג ביניים (ראו Gallium3D). של ייצוג ביניים מועבר למארח ספריית virglrenderer מופעלת המארח מתרגם את ייצוג הביניים בחזרה לקריאות ל-OpenGL API.