2015-03-13 374 views
0

这应该很简单,但由于某些原因,我无法使其工作。 我雇佣了Nvidea Tesla GPU附带的Softlayer裸机服务器。在Windows Server 2012 R2上运行OpenGL

我是远程执行程序(openScad),需要OpenGL> 2.0才能正确导出PNG文件。 当我调用openScad并导出一个模型时,我得到一个0kb的png文件作为输出,这是OpenGL> 2.0支持不存在的明显症状。

为了确保我运行openGL> 2.0,我通过RD连接到我的服务器并运行GlView。令我惊讶的是,我看到服务器只支持openGL 1.1。

经过一番研究,我发现对于标准的RD会话,GPU没有使用,所以我只看到openGL 1.1是有道理的。 问题是,当我执行openscad remotley时,似乎也没有使用GPU。

当我远程调用openscad时,我能做些什么来成功地使我的服务器的GPU功能正常工作?

PS:我检查与SOFTLAYER支持,他们不采取任何责任

回答

3

大部分(目前全部)使用GPU假设有某种使用GPU的显示系统OpenGL实现;在Windows的情况下,这将是GDI。然而,在无头服务器上,Windows通常不会启动GPU上的GDI,但会使用一些帧缓冲区。 NVidia Tesla GPU作为计算专用设备进行销售,因此它们的驱动程序不支持任何图形功能(请注意,这是一种在软件中实施的营销限制,因为硅完全有能力做图形)。换句话说:如果您可以使用CUDA或OpenCL来实现图形操作,那么您可以使用它来生成图片。否则(即对于OpenGL或Direct3D)它是无用的。

请注意,NVidia正在推销其用于远程/云渲染的“GRID”产品。

+0

非常感谢您的帮助datenwolf。 你能想到任何解决方法来“模拟”连接到服务器的GDI吗? – cyberjoac 2015-03-24 09:15:31

+0

@cyberjoac:你可以做的事情不多,我很抱歉地告诉你。 NVidia保持对GPU内部的紧密包装。除了逆向工程(Nouveau驱动程序,这只是基本的)之外,您被锁定使用NVidia的软件。而在Tesla GPU的情况下,驱动程序决定“没有OpenGL给你”,就是这样。现在你可以做的不是使用OpenGL,而是使用基于CUDA或OpenCL的渲染器(例如Luxrender)。尽管如此,您可能必须为OpenScad实施新的渲染后端。 – datenwolf 2015-03-24 20:10:21

1

我在回复,因为我过去遇到类似的问题;也试图在Windows服务器上运行需要openGL 4的应用程序。

windows远程桌面确实不会触发opengl。但是,如果您使用tigervnc,然后启动您的openScad应用程序,它可能会识别您的opengl驱动程序。至少这个诀窍是为我做的。 (当它打开一个程序中的openGL上下文时,它扫描的监视器/ RD的连接我按下)。

希望它有帮助。

相关问题