52 lines
7.2 KiB
Markdown
52 lines
7.2 KiB
Markdown
# Ubuntu 画质、光标样式与响应调优(2026-11-05)
|
||
|
||
Ubuntu 已从 1920×1080 升级为真实 **2560×1440** 桌面与视频,分辨率、30Mbps 请求码率和 Windows 对齐。最新用户要求保留原生样式,因此后续已恢复 Adwaita/24px、default 鼠标加速,并部署原生独立光标,见[实施记录](linux-native-cursor-20261105.md)。关闭 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、麒麟卡片结构比较保持原值,见[隔离核验](evidence/ubuntu-quality-20261105/config-isolation.json)。
|
||
- 原 RKMPP、DRM PRIME、EGL/GLES、latest-frame、无VSync/无frame-pacing 保留。正常 kiosk 连接的父进程、参数、range 环境和真实2K硬解已核对,见[最终连接](evidence/ubuntu-quality-20261105/final-stream.json)、[客户端](evidence/ubuntu-quality-20261105/final-client.log)、[服务端](evidence/ubuntu-quality-20261105/final-server.log)。最终保留 Ubuntu 普通桌面连接,临时测试窗口已停止。
|
||
|
||
最终配置快照:[服务](evidence/ubuntu-quality-20261105/final-sunshine.service)、[Sunshine](evidence/ubuntu-quality-20261105/final-sunshine.conf)、[显示配置](evidence/ubuntu-quality-20261105/final-monitors.xml)、[系统读回](evidence/ubuntu-quality-20261105/final-ubuntu-state.txt)、[桌面截图](evidence/ubuntu-quality-20261105/final-desktop.png)。
|
||
|
||
## 同场景短测
|
||
|
||
临时 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样本、输入事件及回显样本按表中配置保存在[证据目录](evidence/ubuntu-quality-20261105/),数值汇总见[comparison.json](evidence/ubuntu-quality-20261105/comparison.json)。
|
||
|
||
limited 同参数仅小幅提高视频帧率,回显没有改善;30FPS最终配置的合成回显较低,但多项设置和网络条件不同,不能归因于单一参数或称为显著降低物理延迟。单线程方案较差,已恢复默认策略。官方对 [min_threads](https://docs.lizardbyte.dev/projects/sunshine/master/md_docs_2configuration.html) 的说明也要求以实际目标和硬件测试选择线程数。
|
||
|
||
测试源本身在 GNOME 软件图形环境下未达到60次/秒绘制,累计绘制约15–20次/秒;上表是 Moonlight 视频帧率,包含可能重复的源画面,不能当作独立运动帧数。输入事件复核时发现,四轮各24次快速点击分别记录到24、24、23、21次,部分出现在输入通道启动阶段,原因未完全确认;单线程轮次还出现相邻点击落在同一处,不能称快速点击完整通过。第一轮F8在源窗口获得焦点前发出,未计为接收成功。
|
||
|
||
随后在最终已稳定运行的正常会话中,重新启动独立验证窗口,预热一次点击,以40ms按下保持和250ms间隔发送24次交替点击,**24/24接收、两处坐标交替正确、最大误差不足1px,F8接收**。见[稳定会话结果](evidence/ubuntu-quality-20261105/final-input-check.json)及[事件](evidence/ubuntu-quality-20261105/final-input-source.log)。该轮不证明高速点击或物理延迟。
|
||
|
||
四轮共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显示而造成大范围灰雾或截断。见[采样](evidence/ubuntu-quality-20261105/gray-levels.json)、[full截图](evidence/ubuntu-quality-20261105/2k45-full-normal.png)、[limited截图](evidence/ubuntu-quality-20261105/2k45-limited-normal.png)。单像素和彩色文字仍受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。
|