← 返回首页

Ubuntu 26.04 远程桌面(RDP)模糊的解决:Wayland + NVIDIA + 分数缩放

2026-05-24 · LinuxWaylandRDPUbuntu 26.04

环境: Ubuntu 26.04,默认 Wayland、GNOME 50、NVIDIA Blackwell(595 open 驱动)、分数缩放 166.7%。

在 Wayland 会话里用 RDP 连远程 Windows,开了分数缩放(比如 166.7%)之后画面发虚:不是把缩放信息传给 Windows 去渲染,而是先按逻辑分辨率出图、再被合成器整体放大,于是糊成一片。折腾一圈后只有一个客户端真正清晰,这里把原理和坑都记下来。

一条核心原理:原生 Wayland 清晰,XWayland 模糊

分数缩放下,走 XWayland 的应用拿到的是逻辑分辨率的缓冲区,再由合成器按 ×1.667 放大 → 必然模糊。而原生 Wayland 渲染的应用可以直接按物理像素出图 → 清晰。

这一条直接判了几个客户端死刑:

各客户端实测

客户端渲染路径结果
RemminaGTK3 / XWayland模糊
Thincast (snap)强制 XWayland模糊
Thincast (flatpak, Qt5)Vulkan黑屏(见下)
sdl-freerdpSDL3 / OpenGL清晰

sdl-freerdp 的坑:光标热点崩溃

FreeRDP 3.24.2 的 SDL 客户端在分数缩放下会崩:

Cursor hot spot doesn't lie within cursor

原因是分数缩放后光标热点(hotspot)四舍五入跑到了光标边界之外,SDL_CreateColorCursor 抛异常 → 断连。上游 master 已修(client/SDL/SDL3/sdl_pointer.cpp 里把坐标 clamp 进边界、不再抛异常),但还没进 3.24.2。如果要彻底解决,只能从 GitHub 源码自行编译 master。

最终可用方案

接受偶发的光标崩溃,直接用 3.24.2 的 sdl-freerdp:

sdl-freerdp /v:<windows-host>:3389 /u:<user> \
  +dynamic-resolution /scale-desktop:150 /scale-device:140 \
  /gfx /sec:nla +f

顺带:NVIDIA Blackwell 的驱动坑

同一台机器上还踩到:

小结

分数缩放 + Wayland 下的远程桌面,关键就一句:让客户端原生 Wayland、按物理像素渲染。Remmina/snap 走 XWayland 注定糊,Thincast 的 Vulkan 在 Blackwell 上翻车,目前最稳的是 sdl-freerdp(OpenGL),代价是等一个 > 3.24.2 的版本来根治光标崩溃。