Mątwa: akceleracja grafiki GPU

W trybie z akceleracją grafiki Cuttlefish tryb graficzny w grze Cuttlefish korzysta z fizycznego procesora graficznego (GPU) Twojego hosta do renderowania, przekazując do niego polecenia renderowania gościa, uruchamiając wywołania tych poleceń na hoście i przekazując renderowane wyniki z powrotem do gościa.

Urządzenie Cuttlefish z Androidem 11 lub nowszym wykrywa i używa przyspieszonej grafiki. Jeśli host nie obsługuje akceleracji grafiki lub jeśli masz Androida w wersji 10 lub starszej, renderowanie po stronie gościa (np. interfejs i odtwarzanie filmu) na urządzeniu Cuttlefish będzie obsługiwane przez SwiftShader. SwiftShader to implementacja interfejsów API OpenGL i Vulkan. SwiftShader jest implementacją programową, więc zapewnia uniwersalne rozwiązanie do renderowania grafiki Cuttlefish, które może działać na dowolnym hoście.

Jednak SwiftShader nie jest tak wydajny jak zwykłe urządzenie. Renderowanie to problem równoległy, który można równolegle obliczać w znacznym stopniu, ponieważ wartości pikseli są obliczane niezależnie. Jednostki procesora graficznego (GPU) to jednostki sprzętowe, które rozwiązują ten problem przez przyspieszenie renderowania.

Wymagania

Tryb przyspieszonej grafiki wymaga, by host miał:

  • Sterownik z obsługą EGL, który obsługuje rozszerzenie GL_KHR_surfaceless_context
  • Sterownik z obsługą OpenGL ES
  • Sterownik obsługujący interfejs Vulkan

Użyj przyspieszonej grafiki

GfxStream,

Aby skorzystać z przyspieszonego trybu graficznego GfxStream, uruchom lokalne urządzenie Cuttlefish z flagą --gpu_mode=gfxstream. W tym trybie wywołania interfejsu OpenGL i Vulkan API są przekazywane bezpośrednio do hosta.

launch_cvd --gpu_mode=gfxstream

Panna

Aby użyć trybu grafiki z akceleracją Virgl, uruchom lokalne urządzenie mątwy z flagą --gpu_mode=drm_virgl.

launch_cvd --gpu_mode=drm_virgl

W trybie grafiki z akceleracją Virgl wywołania interfejsu API OpenGL są przekształcane w reprezentację pośrednią (patrz Gallium3D). Reprezentacja pośrednia jest przekazywana do hosta, a biblioteka virglrenderer na hoście przekształca reprezentację pośrednią z powrotem na wywołania interfejsu OpenGL API.