1

I'm taking an introductory OpenGL development course with a Surface Pro, and was hoping to connect to my more powerful desktop for development through the native Windows remote desktop tool. I'm having trouble with the shaders on my first test program, which leads to my question. Will the shader work be done by the graphics card on my Surface (RDP client) or my desktop (RDP host)?

4

3 回答 3

4

这取决于您的远程系统的配置。您通常使用标准驱动程序的消费级 GPU 不会为 RDP 提供任何硬件加速,您将进入软件仿真模式。然而,有特殊的可视化服务器 GPU 和驱动程序连接到 RDP 服务器实现并为其提供 GPU 加速;很可能你没有那个。

请注意,这最终只是一个驱动程序问题。有了正确的驱动程序,每个 GPU 都可以做到这一点。但是硬件供应商希望销售他们的特殊用途设备,因此他们将该功能锁定到特定的产品线。

我希望,Linux 开源图形生态系统的进步,作为附带的展示,能够在不久的将来使用商用硬件实现这种可视化服务器。尽管我无视 Wayland 协议和 condept,但我喜欢它的发展推动的 Linux 图形堆栈较低级别的进步。这可能会给 Windows 世界带来一些压力以赶上它。

于 2013-09-13T10:01:26.423 回答
3

如果您从 RDP 会话运行您的软件,您将失去硬件加速。

但是,一些 QnA 站点注意到,如果应用程序在连接之前从本地会话启动,RDP 客户端将使用硬件加速图形。

https://social.technet.microsoft.com/Forums/windowsserver/en-US/c8295ef8-3711-4576-9293-2c4965280165/opengl-and-remote-desktop?forum=winserverTS

因此,提出了以下技巧。

  1. 运行一个批处理文件,断开当前 RDP 会话并启动需要硬件加速图形的应用程序
  2. 等待几秒钟,直到应用程序启动
  3. 重新连接到 RDP。

该应用程序将从本地会话启动,并将使用硬件加速图形。

这是批处理文件的示例,来自我在链接页面上的回答:

@echo off
echo.
echo Remote Desktop will be temporarily disconnected . . . please reconnect after a few seconds.
echo.
pause
@echo on
REM The active session has an arrow as the first character
setlocal EnableDelayedExpansion
FOR /F %%A in ('qwinsta') do (
    set tempSessionName=%%A
    if "!tempSessionName:~0,1!"==">"  ( 
        @echo on
        tscon.exe !tempSessionName:~1! /v /dest:console 
        @echo off
    )   
)
@echo off
echo.
echo Starting MyProgram.exe . . .
@echo on
start MyProgram.exe
@echo off
echo.
pause
于 2017-02-28T12:35:44.213 回答
1

我通过 nvidia 开发人员页面找到了这个 exe 文件,它允许 rdp 连接使用图形加速。

https://developer.nvidia.com/designworks

检查清单:

  1. 驱动版本应该在r440+以上 2.以管理员身份运行openglrdb.exe 3.重启机器。
于 2020-04-20T16:11:32.680 回答