微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Linux中,我是否需要X服务器来进行屏幕外渲染?

如果是这样,为什么?除了将渲染命令传递给显卡驱动程序之外,X为我做了什么?

我不清楚X-OpenGL的关系.我在互联网上搜索但找不到简洁的答案.

如果它很重要,假设一个最小的现代分布,如无头Ubuntu 13机器.

解决方法

目前的司机:是的.

And if so why?

因为X服务器是实际图形驱动程序与GPU通信的主机.目前,Linux GPU驱动程序需要一个X服务器,它为它们提供了一个生存环境,以及一个通向内核接口的通道,以便与GPU通信.

在DRI / DRM / gallium前端,创建了一个新的驱动程序模型,允许在没有X服务器的情况下使用GPU,例如使用EGL-API.但是现在只支持一小部分GPU;大多数英特尔和AMD;没有NVidia.

I’m not clear on the relationship X – OpenGL

我在https://stackoverflow.com/a/7967211/524368https://stackoverflow.com/a/8777891/524368发现的SO答案中详细介绍了这一点

简而言之,X服务器就像GPU的“代理”.您发送X服务器命令,如“打开一个窗口”或“在那里画一条线”.并且有一个名为“GLX”的X协议的扩展,其中每个OpenGL命令被转换为GLX / X操作码流,并且X服务器代表调用客户端在GPU上执行这些命令.此外,大多数OpenGL / GLX实现提供了绕过X服务器的机制,如果客户端进程实际上可以直接与GPU通信(因为它在与X服务器相同的机器上运行并且具有访问内核API的权限);这称为直接渲染.然而,它仍然需要X服务器来打开窗口,创建上下文和一般的内务管理.

由于评论而更新

此外,如果您可以在没有GPU加速的情况下使用,则可以使用osmesa(屏幕外台面)模式和LLVMpipe软件光栅化器来使用Mesa3D.

原文地址:https://www.jb51.cc/linux/393325.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐