在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.

相关文章

Linux中的ARP防火墙主要用于防御ARP欺骗攻击,其效果取决于多...
insmod和modprobe加-f参数导致Invalid module format错误 这...
将ArchLinux安装到U盘 几个月前入门Arch的时候上网搜了不少安...
1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...