如果是这样,为什么?除了将渲染命令传送到显卡驱动程序之外,X 还能为我做什么?
我不清楚 X - OpenGL 的关系。我在互联网上搜索过但找不到简洁的答案。
如果重要的话,假设有一个最小的现代发行版,比如无头的 Ubuntu 13 机器。
对于当前的驱动程序:是的。
如果是这样,为什么?
因为 X 服务器是实际图形驱动程序与 GPU 通信的主机。目前,Linux GPU 驱动程序需要一个 X 服务器,为它们提供一个生存环境以及一个与 GPU 进行通信的内核接口通道。
在 DRI/DRM/Gallium 方面,创建了一个新的驱动程序模型,允许在没有 X 服务器的情况下使用 GPU,例如使用 EGL-API。然而,目前仅支持一小部分 GPU;大多数英特尔和 AMD;没有英伟达。
我不清楚 X - OpenGL 的关系
我在 SO 答案中详细介绍了这一点https://stackoverflow.com/a/7967211/524368 and https://stackoverflow.com/a/8777891/524368
简而言之,X 服务器就像 GPU 的“代理”。您发送 X 服务器命令,例如“打开一个窗口”或“在那里画一条线”。 X 协议有一个名为“GLX”的扩展,其中每个 OpenGL 命令都会转换为 GLX/X 操作码流,并且 X 服务器代表调用客户端在 GPU 上执行这些命令。此外,大多数 OpenGL/GLX 实现都提供了一种绕过 X 服务器的机制,如果客户端进程实际上可以直接与 GPU 对话(因为它与 X 服务器运行在同一台机器上,并且有权访问内核 API);这就是所谓的直接渲染。然而,它仍然需要 X 服务器来打开窗口、创建上下文和进行一般内务处理。
根据评论更新
此外,如果您可以在没有 GPU 加速的情况下生活,您可以使用 osmesa(离屏台面)模式和 LLVMpipe 软件光栅器来使用 Mesa3D。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)