Renderowanie grafiki w SDV Media

SDV Media udostępnia interfejsy API EGL i OpenGL ES do renderowania grafiki w trybie bez powierzchni. Nie ma integracji z systemem okien. Aplikacja sama przydziela i zarządza buforami graficznymi oraz konfiguruje kontekst renderowania na ich podstawie.

Omówienie oczekiwanego przepływu konfiguracji kontekstu renderowania OpenGL znajdziesz w artykule Zarządzanie wyświetlaczami.

Vulkan

Implementacja referencyjna SDV Media zapewnia eksperymentalną obsługę zwirtualizowanego interfejsu Vulkan. Aby włączyć Vulkan, uruchom element docelowy sdv_media_cf z dodatkowym argumentem wiersza poleceń --gpu_mode=gfxstream_guest_angle:

cvd start --gpu_mode=gfxstream_guest_angle

Dzięki temu SDV Media będzie obsługiwać zwirtualizowany interfejs Vulkan i tłumaczyć wywołania EGL i OpenGL ES na Vulkan za pomocą biblioteki ANGLE.

Znane ograniczenia

Zachowanie na docelowym urządzeniu referencyjnym SDV różni się w zależności od procesora graficznego hosta.

  • Karty graficzne NVIDIA (w tym maszyny Google Cloud) nie są obsługiwane.

  • Karty graficzne Intel wymagają, aby aplikacje przydzielały bufory GPU z GBM_BO_USE_LINEAR flagą, aby uniknąć nieprawidłowego renderowania. Jeśli używasz sdv_multi_display_sample_rust, ustaw zmienną środowiskową GBM_USE_LINEAR, aby wymusić użycie tej flagi w próbce:

    GBM_USE_LINEAR=1 sdv_multi_display_sample_rust
    
  • Karty graficzne AMD nie są obsługiwane z powodu otwartego błędu jądra.