6.3 KiB
麒麟真实 2K 与响应优化(2026-11-04)
后续鼠标掉帧排查已保留逐主机limited协商,同场景原程序对照约21→29FPS,尚未达到Windows水平,见继续排查记录。下文为本轮之前的真实2K落地记录。
麒麟已从 1080p 升级为真实 2560×1440 桌面与视频,盒子麒麟卡片配置为 30 FPS、30Mbps、H.264。分辨率与码率已与 Windows 对齐;实际帧率尚未达到 Windows 的水平。保留暂停 UKUI 桌面合成器的优化,局部运动短测由约 19 FPS 提高至约 23 FPS。物理鼠标到屏幕的端到端延迟未测量。
最终部署
| 项目 | 生效配置 |
|---|---|
| PVE VM 101 kylin-test | vga=std,memory=64,其他字段保持原值 |
| 麒麟 Virtual-1 | 2560×1440,约59.95Hz,自定义模式 2560x1440_60.00 |
| Sunshine | v0.21.0,X11 捕获,libx264 ultrafast / zerolatency,原单线程策略 |
| 盒子麒麟对象 | desk-kylin-01,192.168.1.71 / Desktop,2560×1440 / 30 FPS |
| 客户端 | 原 RKMPP 硬解、DRM PRIME、EGL/GLES、latest-frame 队列、无VSync/无frame-pacing |
| 视频码率 | 30Mbps,沿用现有产品对2K的规则;Windows同为30Mbps |
用户明确授权后,已正常关闭 VM 101 至 stopped,修改显存并重新启动。配置差异检查确认只有 vga 变化;未重启 PVE、Windows 或 Ubuntu。麒麟内部 PCI BAR 已识别为64MB。见 执行记录、配置差异。
服务 ~/.config/systemd/user/vdi-sunshine.service 增加启动前创建、添加和切换2K模式的步骤,时序为:
241.50 2560 2608 2640 2720 1440 1443 1448 1481 +hsync -vsync
已通过“切回1080p、删除自定义模式、启动服务”的实测,确认能重新创建并进入2K。新服务配置尚未通过第二次整机重启验收。麒麟 test1 图形会话在本次开机后存在;未改变其登录或锁屏策略。
服务启动后经 org.ukui.KWin /Compositor 暂停桌面合成,停止服务时恢复合成;读回最终 active=false。这针对当前UKUI/Xorg现场环境,调用失败不阻止 Sunshine 本体启动。原 kwinrc 未修改。见 最终服务、最终配置。
实际验证
临时 GTK 窗口展示小字号文字、单像素条纹、彩色文字与局部运动块;有效轮次的源绘制约59FPS。只在确认 Moonlight 窗口焦点后注入输入。测试后窗口已关闭。
| 有效2K动态桌面轮次 | 实际渲染 FPS | 解码 ms | 帧队列 ms | 呈现 ms |
|---|---|---|---|---|
| X11 / 单线程 / 合成开启 | 18.89 | 14.13 | 0.09 | 2.12 |
| X11 / 两线程 / 合成开启 | 18.85 | 8.96 | 0.29 | 2.12 |
| X11 / 单线程 / 合成暂停(采用) | 22.97 | 9.04 | 0.12 | 2.11 |
这是约20秒保持加连接与输入阶段的短测,网络延迟和抖动并不完全相同,不能视为长期性能保证。客户端帧队列很短,未证明物理输入延迟下降;2K实际23FPS也不能宣传为稳定30或45FPS。
- 实际桌面与视频尺寸均为2560×1440,已核对盒子截屏,文字不再由1080p放大。见 2K动态图。
- 当前有效测试进程记录中,48次跨屏交替点击全部落在预期坐标(误差不超过1px),收到F8。见 输入结果 和 原始事件。
- 从正常 kiosk 麒麟卡片连接、退出回列表、再次连接,确认2K参数与RKMPP/EGL路径;最终保持正常麒麟桌面连接供用户体验。见 重连结果、正常入口日志、最终桌面。
- 只修改盒子的麒麟对象,Windows、Ubuntu对象经结构比较保持原值;没有修改产品源码、客户端二进制和全局渲染配置。
部分早期2K轮次在长时间暂停后采到了锁屏画面,已经从有效性能结论中排除:2k30-ultrafast-thread1、2k30-damage-thread1、2k30-damage-thread2。这些原始文件保留用于审计。当前有效轮次均为文件名含 desktop-...-valid 的三轮,截图与输入记录已核对。测试源码也改为只重绘运动区域,不能直接将新旧不同负载的数字相减作为提升幅度。
曾探测KMS捕获,但此虚拟显卡上未初始化成功,已恢复X11;最终 Sunshine 实体二进制与入口的 getcap 均为空,未保留该探测使用的额外 capability。两线程、较慢压缩预设未带来适合本机的收益,均未保留。
原因、边界与回退
原默认 Standard VGA 只有16MB。Linux5.15 DRM VRAM helper限制单帧缓冲不超显存一半,2560×1440×4字节的单帧约14.06MiB,双缓冲约28.13MiB,因此原2K切换失败;增加到64MB后解除限制。参考 内核实现。
麒麟目前只有2个虚拟CPU且使用软件编码。这次完成了真实2K、码率对齐、合成开销优化和基础输入/重连验证;45FPS、长时间高动态负载、物理输入延迟、音质、生产多用户隔离仍未验收。
备份位置:
- 麒麟
/home/test1/vdi-terminal/backups/kylin-quality-20261104/:原 sunshine.conf、vdi-sunshine.service、kwinrc、xrandr-before.txt。 - 盒子
/home/armbian/vdi-terminal/backups/kylin-quality-20261104/desktops.json。 - PVE 原配置快照,原
vga字段未设置。
回退先正常退出串流;恢复盒子备份(若其他桌面后续有修改,只恢复麒麟对象);在麒麟恢复原 Sunshine 配置与服务,systemctl --user daemon-reload 后重启服务。当前服务停止会恢复合成;原服务将显示器设回1080p。64MB显存可保留;如需完全恢复原PVE设置,删除显式 vga 字段并在维护窗口正常关机再启动。
编码参数含义参考 Sunshine v0.21.0 官方说明。