Cuttlefish:GPU 圖形加速

Cuttlefish 的加速圖形模式會使用主機機器的實體 透過傳送訪客轉譯指令來進行轉譯的圖形處理器 (GPU) 在主體機器上執行轉譯指令呼叫 然後將轉譯後的結果傳回給訪客。

搭載 Android 11 以上版本的 Cuttlefish 裝置 能夠偵測並使用加速圖形如果主體機器不支援 加速圖形或 Android 版本 Android 10 以下版本:訪客端轉譯 (例如 UI 和影片播放) 是由 SwiftShader 負責處理。 SwiftShader 是 OpenGL 和 Vulkan API 的軟體實作。由於 SwiftShader 是一款軟體實作,可供所有人使用 能夠在任何主機機器上執行的 Cuttlefish 算繪解決方案。

不過,使用 SwiftShader 的效能不如一般裝置。算繪為 能大規模平行處理的平行問題 因此可以獨立計算圖形處理器 (GPU) 為 加速轉譯即可解決這類問題

需求條件

加速圖形模式要求主機必須具備:

  • 支援「GL_KHR_surfaceless_context」擴充功能的 EGL 驅動程式
  • OpenGL ES 功能驅動程式
  • 支援 Vulkan 的驅動程式

使用加速圖形模式

GfxStream

如要使用 GfxStream 加速圖形模式,請啟動本機 Cuttlefish 加上 --gpu_mode=gfxstream 旗標的裝置。使用這個模式、OpenGL 和 Vulkan API 呼叫會直接轉送至主機。

launch_cvd --gpu_mode=gfxstream

處女座

如要使用 Virgl 加速圖形模式,請啟動本機 Cuttlefish 裝置 取代為 --gpu_mode=drm_virgl 旗標。

launch_cvd --gpu_mode=drm_virgl

使用 Virgl 加速圖形模式時,系統會翻譯 OpenGL API 呼叫 轉換為中繼表示法 Gallium3D)。 將中繼表示法傳遞給主機 virglrenderer 程式庫 主機會將中繼表示法轉譯為 OpenGL API 呼叫。