SDV 媒体上的图形渲染

SDV Media 提供 EGL 和 OpenGL ES API,用于在无界面模式下渲染图形。它没有窗口系统集成,而是由应用自行分配和管理图形缓冲区,并据此设置渲染上下文。

如需大致了解预期的 OpenGL 渲染 上下文设置流程,请参阅管理显示屏

Vulkan

SDV Media 的参考实现为虚拟化 Vulkan 提供实验性 支持。如需启用 Vulkan,请使用额外的 --gpu_mode=gfxstream_guest_angle 命令行实参启动 sdv_media_cf 目标:

cvd start --gpu_mode=gfxstream_guest_angle

这样一来,SDV Media 便可支持虚拟化 Vulkan,并使用 ANGLE 库将 EGL 和 OpenGL ES 调用转换为 Vulkan。

已知限制

SDV 参考目标上的行为因主机 GPU 而异。

  • 不支持 NVIDIA 显卡(包括 Google Cloud 机器)。

  • Intel 显卡要求应用使用 GBM_BO_USE_LINEAR 标志分配其 GPU 缓冲区,以避免渲染不正确。使用 sdv_multi_display_sample_rust 时,请设置 GBM_USE_LINEAR 环境变量以强制示例使用此标志:

    GBM_USE_LINEAR=1 sdv_multi_display_sample_rust
    
  • 由于存在未解决的 内核 bug,因此不支持 AMD 显卡。