vdi-cloud/docs/mouse-optimization-plan-20261103.md

34 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 鼠标与拖窗优化实施计划及结果(2026-11-03)
## 目标与边界
降低鼠标输入等待和画面更新延迟,保留单个 Windows 白色光标、正确点击位置、完整窗口拖动及现有显示器恢复功能。用实测决定是否启用,不能将帧间隔、客户端统计或本地光标响应称为端到端零延迟。
现场初检:盒子实际启动 2560×1440 / 30 FPS / RKMPP / EGL;Windows GTX 965M 仍 Code 43,Sunshine 实际 libx264,静态画面最低目标约 15 FPS。没有可直接构建 Sunshine 的现成 Windows C++ 工具链。
## 执行顺序
1. **记录基线。** 保存当前配置、二进制校验及串流日志,确认 GPU、虚拟屏刷新率、网络和解码路径。静态画面重复帧不能作为动态画面性能基准。
2. **验证刷新率整条链路。** 用临时测试窗口对比虚拟屏/串流 30 与 60 FPS;修改必须支持只读查询、枚举、测试、临时应用和恢复。只有动态画面实测改善且解码/丢帧可接受,才更改默认配置;否则恢复 2K30。
3. **改进 Moonlight 输入调度。** 检查主线程呈现阻塞输入的问题。允许帧呈现前先处理紧邻的有限数量输入,保持输入间原始顺序、窗口/焦点边界及工作量上限;增加可关闭的输入队列年龄与呈现阻塞统计。编译、自动化边界测试及真实串流对照后决定是否启用。
4. **核实独立光标的落地条件。** 必须同步光标形状/热点/显隐、单光标交接、缩放及重连回退。Sunshine 现有 Ctrl+Alt+Shift+N 是全局开关,没有按会话确认,不能据此可靠实现断线回退;不能只叠加本地箭头后宣称完成。先形成与实际源码相符的协议和验收要求,具备服务端构建条件后才能集成双方修改并验收。
5. **交付与现场恢复。** 移除临时测试任务/窗口,恢复正常云桌面连接;记录实际部署状态、测试结果、回退命令和未完成项。
## 验收
- 输入:快速交替点击无错位;双击、右键、拖动中的按下/释放顺序保持正确;失焦及退出快捷键正常。
- 调度:窗口和焦点事件不能越过;高频鼠标不能无限拖延视频;禁用新开关可恢复旧调度。
- 视频:相同动态测试源、相同分辨率/码率下记录接收/渲染 FPS、主机处理、解码、排队、呈现及网络丢帧;避免用空闲画面的平均 FPS 下结论。
- 光标:只有一个指针;文字/缩放/忙碌形状、显隐正确;断线/辅助通道故障不能无光标或双光标。
- 严格输入到屏幕延迟留待高速摄像/外部触发验证,客户端软件统计仅衡量其中一段。
## GPU 前置条件
本轮不重启宿主、不刷 ROM、不动 VM101/102。Code 43 仍需按现有运维方案排查,修复后再验收实际 NVIDIA D3D11 和 NVENC;不能只设置 encoder=nvenc 就认定修复。
## 执行结果
代码修改、自动化测试和现场配对串流对照已完成,结果见
`docs/input-rendering-optimization-20261103.md`。当前状态为:点击排序和客户端排队已改善,
仍需用户对真实拖窗、右键、快速双击进行体验验收;严格的输入到显示延迟仍需高速摄像或外部触发测量。