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.