【发布时间】:2013-09-13 02:48:40
【问题描述】:
我正在使用 Surface Pro 参加介绍性 OpenGL 开发课程,并希望通过本机 Windows 远程桌面工具连接到我更强大的桌面进行开发。我在第一个测试程序中遇到了着色器问题,这导致了我的问题。着色器工作将由我的 Surface(RDP 客户端)或我的桌面(RDP 主机)上的显卡完成吗?
【问题讨论】:
标签: opengl shader remote-desktop rdp
我正在使用 Surface Pro 参加介绍性 OpenGL 开发课程,并希望通过本机 Windows 远程桌面工具连接到我更强大的桌面进行开发。我在第一个测试程序中遇到了着色器问题,这导致了我的问题。着色器工作将由我的 Surface(RDP 客户端)或我的桌面(RDP 主机)上的显卡完成吗?
【问题讨论】:
标签: opengl shader remote-desktop rdp
这取决于您的远程系统的配置。您通常使用标准驱动程序的消费级 GPU 不会为 RDP 提供任何硬件加速,您将进入软件仿真模式。然而,有特殊的可视化服务器 GPU 和驱动程序连接到 RDP 服务器实现并为其提供 GPU 加速;不过很可能你没有。
请注意,这最终只是一个驱动程序问题。有了正确的驱动程序,每个 GPU 都可以做到这一点。但硬件供应商希望销售他们的特殊用途设备,因此他们将该功能锁定到特定产品线。
我希望,Linux 开源图形生态系统的进步能够在不久的将来通过商用硬件实现这种可视化服务器。尽管我无视 Wayland 协议和 condept,但我喜欢它的发展推动的 Linux 图形堆栈较低级别的进步。这可能会给 Windows 世界带来一些压力以赶上它。
【讨论】:
如果您从 RDP 会话运行您的软件,您将失去硬件加速。
但是,一些 QnA 网站注意到,如果应用程序在连接之前从本地会话启动,则 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
【讨论】:
我通过 nvidia 开发者页面找到了这个 exe 文件,它允许 rdp 连接使用图形加速。
https://developer.nvidia.com/designworks
检查清单:
【讨论】: