SDV Media provides EGL and OpenGL ES APIs to render graphics in a surfaceless mode. There is no window system integration. Instead, the application allocates and manages graphics buffers itself, and sets up the rendering context based on it.
See Managing Displays for an overview of the expected OpenGL rendering context setup flow.
Vulkan
The reference implementation of SDV Media provides experimental support for
virtualized Vulkan. To enable Vulkan, start sdv_media_cf target with an extra
--gpu_mode=gfxstream_guest_angle command line argument:
cvd start --gpu_mode=gfxstream_guest_angle
This makes SDV Media provide support for virtualized Vulkan, and translate EGL and OpenGL ES calls to Vulkan using the ANGLE library.
Known limitations
The behavior on the SDV reference target varies depending on the host GPU.
NVIDIA graphics cards (including Google Cloud machines) are not supported.
Intel graphics cards require applications to allocate their GPU buffers with the
GBM_BO_USE_LINEARflag to avoid incorrect rendering. When using thesdv_multi_display_sample_rust, set theGBM_USE_LINEARenvironment variable to force the sample to use this flag:GBM_USE_LINEAR=1 sdv_multi_display_sample_rustAMD graphics cards are not supported due to an open kernel bug.