Mątwa: akceleracja grafiki GPU

Tryb graficzny mątwy korzysta z procesor graficzny (GPU) do renderowania przez przekazywanie poleceń renderowania gościa i uruchamia polecenia renderowania na komputerze hosta, i przekazywanie renderowanych wyników gościowi.

urządzenie mątwy z Androidem 11 lub nowszym; wykrywa i wykorzystuje akcelerowaną grafikę. Jeśli host nie obsługuje z przyspieszoną grafiką lub Android 10 lub starszy, renderowanie po stronie gościa (np. UI i odtwarzanie filmu) na urządzeniu Cuttlefish jest obsługiwane przez SwiftShader. SwiftShader to implementacja interfejsów API OpenGL i Vulkan. Ponieważ SwiftShader to implementacja oprogramowania. Zapewnia uniwersalny które może działać na dowolnym hoście.

Jednak SwiftShader nie jest tak wydajny jak zwykłe urządzenie. Obecne renderowanie problem równoległy, który może być bardzo równoległy, można obliczyć niezależnie. Jednostki procesora graficznego (GPU) są które pozwalają rozwiązać 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 lokalną mątwę urządzenie z flagą --gpu_mode=gfxstream. Za pomocą tego trybu Wywołania interfejsu API są przekierowywane bezpośrednio do hosta.

launch_cvd --gpu_mode=gfxstream

Panna

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

launch_cvd --gpu_mode=drm_virgl

Gdy używasz trybu grafiki z akceleracją Virgl, wywołania interfejsu OpenGL API są przekształcane do reprezentacji pośredniej (zobacz Gallium3D). pośrednia reprezentacja jest przekazywana do hosta, a funkcja biblioteka virglrenderer jest włączona host tłumaczy reprezentację pośrednią z powrotem na wywołania interfejsu API OpenGL.