使用NVidia GPU的屏幕EGL显示[关闭]

问题描述 投票:1回答:1

我正在尝试使用EGL打开一个OpenGL上下文,该上下文直接在连接到Linux上的NVidia GPU的显示器上绘制。

使用eglGetDisplay(EGL_DEFAULT_DISPLAY)打开EGL显示时,似乎会创建一个屏幕外渲染上下文。

使用eglGetPlatformDisplayEXT,它找不到任何显示。

是否可以进行设置,以便在没有X11 / Wayland(或访问GPU的其他进程)的情况下启动程序时,它会创建一个直接在屏幕上呈现的OpenGL上下文。

此外,如果X11设置为仅访问主GPU,则可以将EGL渲染到连接到辅助GPU的屏幕上。

它应该提供加速的OpenGL上下文,然后可以与CUDA上下文共享。目标是尽可能有效地显示由CUDA内核生成的图像,而无需通过窗口服务器。

linux opengl x11 nvidia egl
1个回答
1
投票

是否可以设置它,以便在没有X11 / Wayland的情况下启动程序

NVidia的Linux驱动程序与X.org基础设施密切相关;它仍然没有以应有的方式正确支持Wayland。相反,NVidia用自己的“方法”来直接访问显示器,他们称之为“EGL Stream”;可以在https://github.com/NVIDIA/egl-wayland找到与Wayland的整合

从技术上讲,您可以使用EGL Streams直接访问显示器而无需X服务器。

此外,如果X11设置为仅访问主GPU,则可以将EGL渲染到连接到辅助GPU的屏幕上。

从理论上讲,这也应该适用于EGL Streams,假设您将X服务器配置为仅使用您希望它使用的那个设备;这可以通过在Devicexorg.conf部分中指定BusID来完成。

© www.soinside.com 2019 - 2024. All rights reserved.