在RDP上使用OpenGL着色器时使用哪种显卡?

时间:2013-09-13 02:48:41

标签: opengl shader remote-desktop rdp

我正在使用Surface Pro进行OpenGL开发入门课程,并希望通过本机Windows远程桌面工具连接到我更强大的桌面进行开发。我在第一个测试程序中遇到了着色器问题,这导致了我的问题。着色器是否可以通过Surface(RDP客户端)或桌面(RDP主机)上的图形卡完成?

3 个答案:

答案 0 :(得分:2)

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

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

我希望,Linux开源图形生态系统的进步将作为一个侧面展示,能够在不久的将来用商用硬件实现这样的可视化服务器。尽管我忽略了Wayland协议和condept,但是我喜欢它的发展促进Linux图形堆栈的较低层次。这可能会给Windows世界带来一些压力,以赶上它。

答案 1 :(得分:1)

如果从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会话并启动需要HW加速图形的应用程序
  2. 等待几秒钟直到应用程序启动
  3. 重新连接到RDP。
  4. 应用程序将从本地会话启动,并将使用硬件加速图形。

    以下是批量文件的示例,来自我在链接页面上的回答:

    @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
    

答案 2 :(得分:1)

我浏览了nvidia开发人员页面,发现此exe文件将允许rdp连接使用图形加速。

https://developer.nvidia.com/designworks

检查清单:

  1. 驱动程序版本应高于r440 + 2.以管理员身份运行openglrdb.exe 3.重新启动机器。