vdi-cloud/docs/kylin-quality-20261104.md

6.3 KiB
Raw Blame History

麒麟真实 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 官方说明。