今天也被这个问题困扰了,原因是Windows的mstsc连接方式默认不走显卡输出,你会发现OpenGL的版本始终是为1.1.0版本。

远程桌面并不是不能用 GPU,也不是不能输出游戏画面,只是很多游戏用当前输出的 display 识别显卡(如图所示),在远程

桌面里就会没法识别独显。

想想硬件加速的原理就知道为什么了。。。

硬件加速就是程序直接写数据到显卡的显存里面来加快显示速度的,不再通过系统本身。

由于Win10自带的远程桌面可能就是无法实现,所以只好去寻找第三方的解决方案,如TeamViewer、AnyDesk、向日葵等等。

尝试使用了VNC软件,不推荐,严重的图像问题,肉眼可见的图像破裂,并且这已经是Ultra模式了。

但是正如V2EX上提到的像腾讯云的 GPU 主机使用远程桌面时可以做 CUDA 运算,理论上是可以使用GPU的

正解是RemoteFX

RemoteFX可以将GPU虚拟化提供给每一个虚拟桌面,也就是说每个虚拟机都可以获得独立的虚拟GPU,从而可以获得各种各样的图形加速能力,进而执行各种高保真视频、2D、3D图形图像以及富媒体的处理能力。

据说Win10现在是支持RemoteFX的,虚拟桌面在Win10上面跑N卡应该是没问题的:

打开RemoteFX方法参考

Win7开启REMOTE FX的方法

RDP只有在远程主机为 hyper-v 虚拟机且添加了 RemoteFX 显卡的情况下才能调用 Direct3D 加速。

有打游戏的需求的话,

目前最佳解决方案还是MoonLight

GitHub上面有源码。

参考资料:

[1] 技术性问题:远程桌面玩 3D 游戏会用到独显吗?

[2] 远程桌面问题开启硬件加速问题

[3] 远程桌面打游戏的问题

[4] Windows远程桌面编写运行OpenGL程序

[5] 现在win10 1809远程桌面支持n卡3d加速了?刺客信条

[6] 百度百科——RemoteFX