2

我有一台装有 AMD Radeon 显卡和山狮 10.8.3 的 macbook pro。

我正在尝试使用我的 mac 中的 ssh 访问驻留在 ubuntu 12.04.1 机器上的 OpenGL 应用程序(在 python 上使用 kivy 制作)。应用程序退出说运行应用程序所需的最低 OpenGL 版本是 2.0(它检测到的版本是 1.4)。

但是,我可以在 ubuntu 机器本身上运行该应用程序,也可以在我的 mac 上安装的虚拟机上使用 ssh 并启用 X11。

是否有一些 X11 配置选项我在我的 Mac 上的某个地方丢失了在使用 ssh 时将最低 OpenGL 版本更改为 2.0 而不是 1.4?

4

1 回答 1

4

如果您在 Mac 上使用 XQuartz 作为 X 服务器,我认为您不走运,至少对于从远程计算机运行应用程序而言。看来(通过使用glxinfo)对于基于 GLX 的间接渲染,支持的 OpenGL 如您所说:1.4。如果您正在执行基于 GLX 的直接渲染,那么 XQuartz 似乎公开了 2.1 版。

通过 X 服务器公开的 OpenGL 版本在 X 服务器的 GLX 实现中是硬编码的,所以你真的不能只配置一个新版本。它在您的 Ubuntu 系统上运行的可能原因是您获得了直接渲染支持,而您无法通过 ssh 访问其他机器。虚拟盒子一有点令人困惑,但似乎它们有 X 服务器(在虚拟盒子中)链接到本机 X 服务器,允许直接渲染,因此能够运行。您可以通过运行glxinfo命令并检查它为直接渲染报告的内容来检查设置:

% glxinfo | grep direct
directing rendering: Yes  

这表明 X 客户端直接与 OpenGL 对话。将其与以下内容进行比较:

% glxinfo | grep direct
direct rendering: No (If you want to find out why, try setting LIBGL_DEBUG=verbose)

这意味着所有 OpenGL 命令都发送到远程 X 服务器,该服务器代表应用程序与本地 OpenGL 实现通信,但不等同于直接渲染。

如果您可以将应用程序移植到可以通过 X 服务器直接渲染的 Mac(可能使用MacPorts或类似工具),您将获得 OpenGL 2.1,并且该应用程序应该可以工作。

于 2013-04-13T07:37:44.167 回答