重构:移除 RDP 管线并完善会话退出与串流过场
变更详情:删除 RDP 渲染管线,协议统一 Moonlight;退出三层设计与串流过场层落地 - 移除 rdp_session.*、FreeRDP 构建依赖与代码内协议概念,Moonlight 为唯一会话通道 - Ctrl+Alt+Shift+Q 退串流回列表(kiosk 兜底 + moonlight-qt 主路径);登录页去退出按钮 - 新增 TransitionOverlay:全屏过场层盖住串流启动闪烁,进程 CPU 首帧检测后淡出 - Sunshine 写入 sw_preset=ultrafast;实测推翻 x264 瓶颈结论(21.6FPS 帽子在虚拟显示/捕获节奏,CPU≈0%) - 文档:麒麟(101/.71)/Ubuntu(102/.72) 接入信息与四件事落地记录;MEMORY 根因修正
This commit is contained in:
1 parent
56b9f1faf3
commit
26fde0369e
21 files changed
+364
-923
No files matched your search
@@ -194,3 +194,59 @@ Moonlight 两次失败(38 秒断流、第二次连不上)均为该丢包所
|
||||
决定:保持 vsync + frame-pacing 开启(C++ 默认),
|
||||
`etc/moonlight.conf` 默认值已同步改回 `1`。
|
||||
鼠标卡顿的根治手段仍是服务端 GPU 直通 + NVENC。
|
||||
|
||||
---
|
||||
|
||||
# 2026-10-29 下午追加:四件事落地(删 RDP / 退出设计 / 过场层 / ultrafast 实测)
|
||||
|
||||
## 已交付(全部编译部署到盒子并实测)
|
||||
|
||||
1. **删 RDP**:`rdp_session.*`、FreeRDP 渲染管线、CMake 构建依赖全部移除,
|
||||
协议概念(`Protocol` 枚举)从代码删除,Moonlight 是唯一会话通道;
|
||||
RDP 代码只存在于 git 历史(网关备用)。部署后 `ldd kiosk-shell` 无任何 freerdp 依赖。
|
||||
2. **退出设计三层**:
|
||||
- 会话内 `Ctrl+Alt+Shift+Q` 退出串流回桌面列表——moonlight-qt 自带快捷键为主路径,
|
||||
kiosk 侧保留同一快捷键兜底(串流未建立/焦点仍在 kiosk 时生效);
|
||||
- 桌面列表右上角"退出登录"→ 登录页(已有);
|
||||
- 登录页删除"退出"按钮(退出终端是维护功能,只留在管理菜单 Ctrl+Alt+Shift+M)。
|
||||
3. **加载过场层**:新增 `src/transition_overlay.*`,点连接后全屏置顶黑层
|
||||
("正在进入云桌面…"动态省略号 + 旋轮),盖住 moonlight-qt 启动期左上角小窗闪烁;
|
||||
首帧检测用 moonlight 进程 CPU 时间近似(软解 CPU 远高于握手期,阈值 120 tick / 15s 兜底),
|
||||
检测到后 1 秒淡出。活动期间吞键盘鼠标、周期 raise 保持置顶。
|
||||
4. **Sunshine x264 预设 ultrafast**:VM 100 的 `C:\Program Files\Sunshine\config\sunshine.conf`
|
||||
写入 `sw_preset = ultrafast`(该版本支持 `sw_preset`/`sw_tune` 键),服务已重启生效。
|
||||
|
||||
## 关键实测结论:21.6 FPS 帽子不在 x264,旧根因判定被推翻
|
||||
|
||||
ultrafast 前后对照(1080p60 / H.264 / 盒子软解,同参数同网络):
|
||||
|
||||
| 指标 | medium(基线 10-28) | ultrafast(本次) |
|
||||
|---|---|---|
|
||||
| Video stream FPS | 21.59~21.64 | 21.57~21.61 |
|
||||
| 抖动丢帧 | 13.64%~15.91% | 13.64%(分毫不差) |
|
||||
| 客户端解码 | 15.04 ms | 10.51~11.14 ms |
|
||||
|
||||
决定性证据:
|
||||
|
||||
- 串流进行中 VM 内 `Processor(_Total)` CPU 仅 0.2%~0.5%,
|
||||
sunshine 进程自服务重启起累计 CPU 时间仅 14 秒(含三次共约 3 分钟会话);
|
||||
- 用 xdotool 持续晃鼠标制造画面运动,帧率与 CPU 都不变;
|
||||
- libx264 只有 `MMX2 SSE2Fast SSSE3 SSE4.2`——VM CPU 型号是
|
||||
`QEMU Virtual CPU version 2.5+`(kvm64 类),宿主指令集(含 AVX2)没有透传。
|
||||
|
||||
结论:**21.6 FPS 的上限来自虚拟显示/捕获节奏(IddSampleDriver/MttVDD 呈现与
|
||||
Desktop Duplication 的脏帧节奏,叠加 QEMU 显示栈),不是编码器算力**——
|
||||
编码器近乎空转,预设怎么调都不会变。ultrafast 保留(无害,客户端解码也略降)。
|
||||
根治路径按优先级:GPU 直通(NVENC + 真实显示栈)> 换 VM 显示方案
|
||||
(VirtIO-GPU / cpu=host 先排除 QEMU 显示栈因素)> 都不是调 Sunshine 参数能解决的。
|
||||
|
||||
## 运维新装 Linux 云桌面 VM(2026-10-29 接入信息)
|
||||
|
||||
| VM | Proxmox | 地址 | 账号 | 实测 |
|
||||
|---|---|---|---|---|
|
||||
| kylin-test | 101 | 192.168.1.71 | test1 / yx66668888 | SSH 可登,银河麒麟 V10 SP1 桌面版,UKUI + Xorg,图形会话运行中 |
|
||||
| ubuntu-test | 102 | 192.168.1.72 | test2 / yx66668888 | SSH 可登,Ubuntu 24.04.4 LTS,GNOME + Xorg,图形会话运行中(4 核 / 5.8GiB) |
|
||||
|
||||
两台均未装 Sunshine(47989 等端口关闭),还不能被 Moonlight 连接。
|
||||
接入桌面列表的步骤:装 Sunshine(Linux 版)→ 配对 → 在盒子"桌面连接设置"里
|
||||
把 Ubuntu/麒麟卡片的地址填上即可(kiosk 代码已支持,无需改代码)。
|
||||
Reference in new issue
Block a user