Seppia: accelerazione grafica GPU

La modalità grafica accelerata di Seppia utilizza le risorse fisiche del computer host Graphic Processing Unit (GPU) per il rendering tramite trasmissione di comandi di rendering guest alla macchina host, eseguendo le chiamate dei comandi di rendering sulla macchina host, e ritrasmette i risultati visualizzati all'ospite.

Un dispositivo Seppia con Android 11 o versioni successive rileva e utilizza grafica accelerata. Se la macchina host non supporta una grafica accelerata o la versione per Android Android 10 o versioni precedenti, rendering lato ospite (ad esempio, UI e riproduzione video) sul tuo dispositivo Cuttlefish è gestita da SwiftShader. SwiftShader è un'implementazione software delle API OpenGL e Vulkan. Poiché SwiftShader è un'implementazione software, fornisce un'accessibilità universalmente soluzione di rendering per Seppia in grado di essere eseguita su qualsiasi macchina host.

Tuttavia, l'utilizzo di SwiftShader non offre le prestazioni di un normale dispositivo. Il rendering è un problema parallelo che può essere massicciamente parallelizzato, come possono essere calcolati in modo indipendente. Le GPU (Graphics Processing Unit) sono unità hardware che risolvono questo problema accelerando il rendering.

Requisiti

La modalità grafica accelerata richiede che l'host abbia:

  • Driver con funzionalità EGL che supporta l'estensione GL_KHR_surfaceless_context
  • Driver compatibile con OpenGL ES
  • Conducente Vulkan

Usa le modalità grafiche accelerate

GfxStream

Per utilizzare la modalità grafica accelerata GfxStream, avvia il tuo Seppia locale dispositivo con il flag --gpu_mode=gfxstream. Con questa modalità, OpenGL e Vulkan Le chiamate API vengono inoltrate direttamente all'host.

launch_cvd --gpu_mode=gfxstream

Vergine

Per usare la modalità grafica accelerata da Virgl, avvia il tuo dispositivo Cuttlefish locale con il flag --gpu_mode=drm_virgl.

launch_cvd --gpu_mode=drm_virgl

Quando utilizzi la modalità grafica accelerata da Virgl, le chiamate API OpenGL vengono tradotte. in una rappresentazione intermedia (vedi Gallium3D). La una rappresentazione intermedia viene comunicata all'host, libreria virglrenderer attiva l'host ritraduce la rappresentazione intermedia in chiamate API OpenGL.