我的mac上的OpenGL应用程序失败,在virtualbox上运行

时间:2013-04-12 19:33:39

标签: macos opengl ssh x11 kivy

我有一台MacBook pro,配有AMD Radeon显卡和山狮10.8.3。

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

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

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

1 个答案:

答案 0 :(得分:3)

如果你在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实现进行通信,但并不等同于直接呈现。

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