我有一个嵌入式进程,可以使用 DRM 和 KMS API 直接呈现到屏幕上。它运行在最小的 Yocto 发行版上(没有桌面或 Wayland)。我想从另一个进程渲染到连接到同一个 GPU 的第二个屏幕。第一个进程打开'/dev/dri/card0'并成为事实上的DRM master,它可以在主屏幕上执行drmModeSetCrtc & drmModePageFlip来显示帧缓冲区。但是,如果我调用 drmDropMaster,它就不能再进行翻页了。因此,第二个进程不能成为 DRM 母版并使用相同的技术渲染到另一个显示器。
有很多关于如何使用直接渲染管理器 (DRM) 和内核模式设置 (KMS) 渲染到一个屏幕的示例,但我发现没有一个可以从另一个进程渲染到第二个屏幕。
一旦设置了显示模式,如果可能的话,我想没有大师,但翻页也是一个受限制的API。如果这无法实现,也许是一个关于如何使用 drmAuthMagic 授予第二个进程权限的示例?