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

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

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

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

דרישות

מצב גרפי מואץ דורש שלמארח יהיו:

  • מנהל התקן בעל יכולת EGL התומך בהרחבה GL_KHR_surfaceless_context
  • מנהל התקן בעל יכולת OpenGL ES
  • נהג בעל יכולת וולקן

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

GfxStream

כדי להשתמש במצב הגרפיקה המואצת של GfxStream, הפעל את מכשיר ה-Cuttlefish המקומי שלך עם הדגל --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.