A partire dal 27 marzo 2025, ti consigliamo di utilizzare android-latest-release anziché aosp-main per compilare e contribuire ad AOSP. Per ulteriori informazioni, vedi Modifiche ad AOSP.
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
La modalità grafica accelerata di Cuttlefish utilizza l'unità di elaborazione grafica (GPU) fisica della macchina host per il rendering passando i comandi di rendering guest alla macchina host, eseguendo le chiamate dei comandi di rendering sulla macchina host e passando i risultati del rendering all'ospite.
Un dispositivo Cuttlefish con Android 11 o versioni successive
rileva e utilizza la grafica accelerata. Se la macchina host non supporta la grafica accelerata o la versione di Android è 10 o precedente, il rendering lato guest (ad esempio l'interfaccia utente e la riproduzione di video) nel dispositivo Cuttlefish è gestito da SwiftShader.
SwiftShader è un'implementazione software delle API OpenGL e Vulkan. Poiché
SwiftShader è un'implementazione software, fornisce una soluzione di rendering universalmente accessibile per Cuttlefish in grado di funzionare su qualsiasi macchina host.
Tuttavia, l'utilizzo di SwiftShader non è così efficace come su un normale dispositivo. Il rendering è un problema parallelo che può essere parallelizzato in modo massiccio, poiché i valori dei pixel possono essere calcolati in modo indipendente. Le GPU (unità di elaborazione grafica) sono unità hardware che risolvono questo problema accelerando il rendering.
Requisiti
La modalità grafica accelerata richiede che l'host disponga di:
Driver compatibile con EGL che supporta l'estensione GL_KHR_surfaceless_context
Driver compatibile con OpenGL ES
Driver compatibile con Vulkan
Utilizzare le modalità di grafica accelerata
GfxStream
Per utilizzare la modalità grafica accelerata GfxStream, avvia il tuo dispositivo Cuttlefish locale con il flag --gpu_mode=gfxstream. In questa modalità, le chiamate alle API OpenGL e Vulkan vengono inoltrate direttamente all'host.
launch_cvd --gpu_mode=gfxstream
Virgl
Per utilizzare la modalità grafica accelerata Virgl, avvia il dispositivo Cuttlefish locale con il flag --gpu_mode=drm_virgl.
launch_cvd --gpu_mode=drm_virgl
Quando si utilizza la modalità grafica accelerata Virgl, le chiamate all'API OpenGL vengono tradotte in una rappresentazione intermedia (vedi Gallium3D). La representatione intermedia viene comunicata all'host e la libreria virglrenderer sull'host la traduce nuovamente in chiamate all'API OpenGL.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-07-27 UTC."],[],[],null,["# Cuttlefish: GPU graphics acceleration\n\nCuttlefish's accelerated graphics mode uses your host machine's physical\ngraphics processing unit (GPU) for rendering by passing guest rendering commands\nto your host machine, running the rendering commands calls on your host machine,\nand passing the rendered results back to the guest.\n\nA Cuttlefish device running in Android 11 or higher\ndetects and uses accelerated graphics. If the host machine doesn't support\naccelerated graphics or the Android version is\nAndroid 10 or lower, guest-side rendering (for example,\nUI and video playback) in your Cuttlefish device is handled by SwiftShader.\nSwiftShader is a software implementation of the OpenGL and Vulkan APIs. Because\nSwiftShader is a software implementation, it provides a universally accessible\nrendering solution for Cuttlefish capable of running on any host machine.\n\nHowever, using SwiftShader isn't as performant as a normal device. Rendering is\na parallel problem that can be massively parallelized, as pixel\nvalues can be computed independently. Graphics processing units (GPUs) are\nhardware units that address this problem by accelerating rendering.\n\nRequirements\n------------\n\nAccelerated graphics mode requires that the host have:\n\n- EGL capable driver supporting the `GL_KHR_surfaceless_context` extension\n- OpenGL ES capable driver\n- Vulkan capable driver\n\nUse accelerated graphics modes\n------------------------------\n\n### GfxStream\n\nTo use the GfxStream accelerated graphics mode, launch your local Cuttlefish\ndevice with the `--gpu_mode=gfxstream` flag. Using this mode, OpenGL and Vulkan\nAPI calls are forwarded directly to the host. \n\n```\nlaunch_cvd --gpu_mode=gfxstream\n```\n\n### Virgl\n\nTo use the Virgl accelerated graphics mode, launch your local Cuttlefish device\nwith the `--gpu_mode=drm_virgl` flag. \n\n```\nlaunch_cvd --gpu_mode=drm_virgl\n```\n\nWhen using the Virgl accelerated graphics mode, OpenGL API calls are translated\ninto an intermediate representation (see\n[Gallium3D](https://www.freedesktop.org/wiki/Software/gallium/)). The\nintermediate representation is communicated to the host and the\n[virglrenderer](https://gitlab.freedesktop.org/virgl/virglrenderer) library on\nthe host translates the intermediate representation back to OpenGL API calls.\n| **Note:** Vulkan isn't supported."]]