gpt4 book ai didi

opengl - EGL 应用程序可以在控制台模式下运行吗?

转载 作者:行者123 更新时间:2023-12-04 23:49:11 52 4
gpt4 key购买 nike

我想实现一个生成图像的opengl应用程序,并通过网页查看图像。

该应用程序旨在运行在没有显示器、没有 x 窗口但具有 gpu 的 linux 服务器上。

我知道 egl 可以使用 pixmap 或 pbuffer 作为渲染目标。

但是 eglGetDisplay 功能让我担心,听起来我仍然需要附加显示器才能使其工作?

egl 可以在没有显示和 xwindows 或 wayland 的情况下工作吗?

最佳答案

这是一个反复出现的问题。 TL;DR:使用当前的 Linux 图形驱动程序模型,在不运行 X 服务器的情况下,不可能将 GPU 与传统驱动程序一起使用。如果 KMS+DRM+DRI 支持 GPU,您可以这样做。 (编辑:)同样在 2016 年,Nvidia 终于通过 EGL 在其驱动程序中引入了真正的 headless OpenGL 支持。

长话短说,从技术上讲,GPU 完全能够渲染到屏幕外缓冲区,而无需连接显示器或运行图形服务器。然而,由于图形驱动程序和环境开发的历史,这是不可能的,而且很长一段时间都是不可能的。当时的假设(当图形首次引入 Linux 时)是:“图形设备用于将图片传送到屏幕上。”显卡可以用作加速协处理器甚至不是一个想法。

除此之外,直到几年前,Linux 内核本身还不知道如何与图形设备通信(除了系统地址空间中某处的哑帧缓冲区)。 X 服务器是与 GPU 通信的,所以你需要它来运行。最初的 X 服务器开发人员假设键盘和椅子之间有一个人。

那么你有什么选择:

短期而言,如果您使用的是 NVidia GPU:只需启动 X 服务器。您不需要完整的桌面环境。您甚至可以省去启动窗口管理器的麻烦。只需让 X 服务器声明 VT 并处于事件状态。现在通过 Nvidia 驱动程序中的 EGL 支持 headless OpenGL 上下文。

如果您使用的是 AMD 或 Intel GPU,您可以直接与它对话。通过 EGL 或使用 KMS(谷歌搜索称为 kmscube 的东西,在尝试时,请确保先从 X 服务器切换到文本 VT,否则会导致 X 服务器崩溃)。我还没试过,但应该可以调整kmscube例如,它使用 GPU 渲染到屏幕外缓冲区,而无需将 VT 切换到图形模式或在显示帧缓冲区上根本没有任何图形输出。

关于opengl - EGL 应用程序可以在控制台模式下运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26920835/

52 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com