[Share Experiences] 记电脑画面卡顿解决
Tofloor
poster avatar
carro
deepin
12 hours ago
Author

Treeland + NVIDIA 独显直连 卡顿修复总结

系统环境

  • OS: Deepin 25 (crimson)
  • GPU: NVIDIA GeForce RTX 3060 Laptop + AMD Ryzen 7 5800H
  • 显示: 笔记本 165Hz + 外接 2K 120Hz
  • 合成器: Treeland 0.9.0 (wlroots + QML, Wayland)
  • NVIDIA 驱动: 580.119.02

根本原因

NVIDIA 独显直连模式下,缺少 nvidia-drm_gbm.so(GBM 后端插件),导致 Treeland 合成器 EGL 初始化失败,回退到 pixman CPU 软渲染。合成器吃满 310% CPU,GPU 利用率 0%。

关键报错:

MESA-LOADER: failed to open nvidia-drm: /usr/lib/x86_64-linux-gnu/gbm/nvidia-drm_gbm.so: cannot open shared object file: No such file or directory

所有修改

1. 安装缺失的包

apt install libnvidia-egl-gbm1 libnvidia-allocator1
  • libnvidia-egl-gbm1libnvidia-egl-gbm.so.1(EGL 外部平台注册)
  • libnvidia-allocator1nvidia-drm_gbm.so关键缺失,Mesa GBM 加载器需要它)

2. 新建 /etc/environment 环境变量

__NV_PRIME_RENDER_OFFLOAD=1
__GLX_VENDOR_LIBRARY_NAME=nvidia
__EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/10_nvidia.json
GBM_BACKEND=nvidia-drm

让所有用户会话的 X11/EGL 应用都走 NVIDIA GPU。

3. 新建 systemd override

文件路径:/etc/systemd/system/treeland.service.d/nvidia.conf

[Service]
Environment="__NV_PRIME_RENDER_OFFLOAD=1"
Environment="__GLX_VENDOR_LIBRARY_NAME=nvidia"
Environment="__EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/10_nvidia.json"
Environment="GBM_BACKEND=nvidia-drm"

因为 Treeland 是 systemd 以 dde 用户启动的系统服务,不读 /etc/environment,必须通过 override 注入变量。

4. 安装剪贴板工具

apt install wl-clipboard xclip

Wayland 环境下终端复制粘贴依赖 wl-copy / wl-paste

修复效果

指标 修复前 修复后
渲染后端 llvmpipe (CPU) NVIDIA RTX 3060 (GPU)
GPU 利用率 0% 8%
GPU 频率 210 MHz (空闲) 1702 MHz
GPU 显存 98 MB 371 MB
Treeland CPU 310% 27%
笔记本帧率 卡顿 165 FPS (满帧)
外接屏帧率 卡顿 121 FPS (满帧)

注意事项

  • nvidia_drm.modeset=1 必须保持开启(/etc/modprobe.d/nvidia-drm.conf
  • 系统升级 NVIDIA 驱动后可能需要重新确认 libnvidia-allocator1 版本匹配
  • 如果任务栏消失,检查 dde-shell@DDE.service 是否 crashed,执行:
    systemctl --user reset-failed dde-shell@DDE.service
    systemctl --user start dde-shell@DDE.service
    
Reply Favorite View the author
All Replies
avatar
Ethan
deepin
11 hours ago
#1

厉害

Reply View the author