vdi-cloud/docs/ubuntu-quality-20261105.md

7.2 KiB
Raw Blame History

Ubuntu 画质、光标样式与响应调优(2026-11-05)

Ubuntu 已从 1920×1080 升级为真实 2560×1440 桌面与视频,分辨率、30Mbps 请求码率和 Windows 对齐。最新用户要求保留原生样式,因此后续已恢复 Adwaita/24px、default 鼠标加速,并部署原生独立光标,见实施记录。关闭 GNOME 动画保留。

以下保留较早的画质实验记录:当时使用 DMZ-White/flat,未部署独立光标,2K动态视频约21–23FPS。该视频数据不代表新方案的本地指针移动延迟;物理输入到屏幕延迟仍未测量,不能称已定量达到Windows。

生效配置与验证

  • Ubuntu .72/test2:原 Xorg、Sunshine 2026.914.233613、X11 捕获、libx264 ultrafast/zerolatency;编码线程恢复默认,没有保留较差的单线程实验。
  • vdi-sunshine.service 启动前创建、添加并切换 2560x1440_60.00,时序 241.50 2560 2608 2640 2720 1440 1443 1448 1481 +hsync -vsync。已实际删除自定义模式后启动服务,验证自动重建2K成功。
  • GNOME ~/.config/monitors.xml 保存单屏2K、100%缩放。初次通过 DisplayConfig 持久应用曾等待确认后回退,随后保存明确的显示配置并重新应用;最终锁屏/解锁测试仍为2K、LockedHint=no。未重启虚拟机或GDM,整机重启后的恢复尚未验收。
  • 盒子只修改 Ubuntu 卡片为 2560×1440 / 30FPS,以及逐主机文件 ~/.config/vdi-terminal/host-color-range/192.168.1.72 为 0。Windows、麒麟卡片结构比较保持原值,见隔离核验。
  • 原 RKMPP、DRM PRIME、EGL/GLES、latest-frame、无VSync/无frame-pacing 保留。正常 kiosk 连接的父进程、参数、range 环境和真实2K硬解已核对,见最终连接、客户端、服务端。最终保留 Ubuntu 普通桌面连接,临时测试窗口已停止。

最终配置快照:服务、Sunshine、显示配置、系统读回、桌面截图。

同场景短测

临时 GTK 窗口显示小字号文字、单像素线、彩色文字、12级灰阶和局部运动。以下均通过正常 kiosk 入口,以真实2K视频测试。每轮24次交替点击及24次F9回显;F9测量包括 xdotool 启动、网络、客体处理、编码解码和X11像素轮询,排除物理USB输入与显示器扫描。

配置 渲染FPS 解码ms 队列ms Sunshine CPU%¹ F9 P50/P95 ms
45FPS请求 / full / 原动画 21.49 10.48 0.53 163.1 373.2 / 455.9
45FPS请求 / limited / 原动画 22.83 6.82 0.19 161.5 376.7 / 488.6
45FPS请求 / limited / 单线程 / 无动画(撤回单线程) 17.98 8.24 0.14 126.9 402.9 / 507.9
30FPS请求 / limited / 默认线程 / 无动画(保留) 21.40 6.84 0.26 156.0 320.9 / 418.4

¹ CPU按 /proc/<pid>/stat 差值测量,100%为一个逻辑核。原始客户端日志、CPU样本、输入事件及回显样本按表中配置保存在证据目录,数值汇总见comparison.json。

limited 同参数仅小幅提高视频帧率,回显没有改善;30FPS最终配置的合成回显较低,但多项设置和网络条件不同,不能归因于单一参数或称为显著降低物理延迟。单线程方案较差,已恢复默认策略。官方对 min_threads 的说明也要求以实际目标和硬件测试选择线程数。

测试源本身在 GNOME 软件图形环境下未达到60次/秒绘制,累计绘制约15–20次/秒;上表是 Moonlight 视频帧率,包含可能重复的源画面,不能当作独立运动帧数。输入事件复核时发现,四轮各24次快速点击分别记录到24、24、23、21次,部分出现在输入通道启动阶段,原因未完全确认;单线程轮次还出现相邻点击落在同一处,不能称快速点击完整通过。第一轮F8在源窗口获得焦点前发出,未计为接收成功。

随后在最终已稳定运行的正常会话中,重新启动独立验证窗口,预热一次点击,以40ms按下保持和250ms间隔发送24次交替点击,24/24接收、两处坐标交替正确、最大误差不足1px,F8接收。见稳定会话结果及事件。该轮不证明高速点击或物理延迟。

四轮共96个F9翻转回显样本均完成、无超时,但其中一轮客体记录了多于注入次数的F9按键事件;探针只观察黑白翻转,没有逐键序号,不能证明严格的一键一回显。因此表格中的F9数据仅供探索,不能用于证明优化降低了输入时延。

limited 灰阶中心采样约为 0,8,16,24,31,64,128,192,223,235,247,254,源为 0,8,16,24,32,64,128,192,223,235,247,255,没有把limited数据直接当full显示而造成大范围灰雾或截断。见采样、full截图、limited截图。单像素和彩色文字仍受H.264 4:2:0压缩限制,不能宣称像素无损。

边界、备份和回退

Ubuntu 只有QEMU虚拟VGA、/dev/dri/card0,没有可用GPU渲染节点,Sunshine实际使用CPU编码;动态场景还观察到GNOME合成和Xorg开销。盒子解码队列已很短,继续提升到Windows水平需要处理客体图形/编码路径;本轮没有部署独立光标协议,也没有叠加假本地箭头。

本轮未修改PVE显卡、VM硬件、Windows配置、麒麟配置或客户端二进制。测试补装小型 python3-gi-cairo 包用于临时绘图,没有整体系统升级。早期独立测试会话受kiosk前景覆盖、分辨率恢复和绘图依赖缺失影响,没有纳入表格;最终有效轮次使用正常入口与实际截图核对。

备份均为首次备份:

  • Ubuntu /home/test2/vdi-terminal/backups/ubuntu-quality-20261105/:原 Sunshine配置、用户服务、四项gsettings原值;monitors.xml.absent 表示此前没有显示配置文件。
  • 盒子 /home/armbian/vdi-terminal/backups/ubuntu-quality-20261105/desktops.json;Ubuntu逐主机range文件此前不存在。

回退时先退出Ubuntu串流,恢复Ubuntu服务/配置及四项gsettings,按备份存在标记恢复或移除 monitors.xml,然后 systemctl --user daemon-reload 并重启 vdi-sunshine.service。盒子仅恢复备份中的Ubuntu对象,删除 .72 的range文件并在无串流时刷新kiosk;不要整文件覆盖后续其他桌面的修改。原服务会将显示设回1080p。