【求助】Wayland 下 NVIDIA 桌面帧率极低,应用全屏正常,X11 无此问题

【求助】Wayland 下 NVIDIA 桌面帧率极低,应用全屏正常,X11 无此问题(RTX 5070 Ti)

问题描述

Arch Linux + NVIDIA 显卡 环境下使用 Wayland 时,出现以下问题:

  • 桌面环境下极度卡顿

    • 鼠标移动、窗口动画、桌面切换帧率约 个位数 FPS
  • 进入应用全屏后明显好转

    • 浏览器 / IDE / 游戏全屏后基本流畅
  • 切换到 X11 完全正常

    • 同一系统、同一驱动,在 X11 下无任何卡顿问题

该问题在 Wayland 下稳定复现。


系统环境

  • 发行版:Arch Linux

  • 内核6.18.2-arch2-1

  • 桌面环境 / 合成器

    • KDE Plasma (Wayland)

    • KWin (Wayland)

  • 显卡:NVIDIA GeForce RTX 5070 Ti Laptop GPU

  • 驱动版本

    
    
  • Driver Version: 590.48.01
    CUDA Version: 13.1
    
    
  • 驱动包

    • nvidia-open

    • 已成功加载内核模块

  • 显示服务器

    • Wayland(问题出现)

    • X11(无问题)


已确认信息

  • nvidia-smi 正常识别显卡:

    
    
  • GPU 0: NVIDIA GeForce RTX 5070 Ti Laptop GPU
    
    
  • Xorg / Wayland 均能正常启动

  • DKMS 模块已构建并安装

  • kms 已包含在 mkinitcpio

  • 在 Wayland 下:

    • 桌面帧率极低

    • GPU 利用率几乎为 0%

  • 在 X11 下:

    • 桌面、动画、拖动全部正常

已尝试但无效的操作

  • 重新安装 / 重建 NVIDIA 驱动

  • nvidia-open / DKMS 重新生成

  • 重建 initramfs(mkinitcpio

  • 确认不是 CPU / IO / 内存瓶颈

  • 确认不是应用程序单独问题

  • 对比 Wayland vs X11,问题仅存在于 Wayland

你没说你的Wayland compositor(桌面环境)是哪个。

说了kwin

KDE Plasma

诶,我看了两遍居然还是看漏了……

我没招了

你是不是还有个笔记本屏幕和核显?

对的,用核显的时候没有这个问题,但是用不了外接显示器。启用独显连接外接显示器及变成这个样子了,昨天装了EndeavourOS使用独立显卡没有发生卡顿,又装了一遍arch还是这个样子

我记得有好些人都遇到过这个问题,但是我没有关注解决方案。

有帖子链接吗,找了好久还没找到orz

有的话我就发了……好像是群里说的。

应该是老生常谈的 NVIDIA reverse prime 问题,目前应该无解(

可以先试试笔记本 USB-C 口的视频输出能不能行。如果不行的话,退而求其次的方案一个是放弃外接显示器(这其实不叫“方案”),另一个就是开启独显直连,放弃使用核显,连视频解码都需要用独显来做

楼上说得对。指定nvidia显卡为主显卡可以解决这个问题,EndeavourOS可能自动选择了nvidia显卡作为主显卡。你可以检查一下nvidia-smi的输出,如果nvidia显卡作为主显卡这里应该有很多进程,否则就只有kwin_wayland等一两个进程。

非常感激,一开始使用的独显直链模式帧率大概只有两帧左右,今天尝试同时使用独显和核显卡顿消失了,但是帧率依旧不高

下面是nvidia-smi(=
x11:

Tue Dec 30 20:18:21 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 590.48.01              Driver Version: 590.48.01      CUDA Version: 13.1     |
+-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|===============================================+======================|
|   0  NVIDIA GeForce RTX 5070 ...    Off |   00000000:02:00.0  On |                  N/A |
| N/A   43C    P4             20W /   70W |    1077MiB /  12227MiB |     10%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|======================================================================|
|    0   N/A  N/A            5715      G   /usr/lib/Xorg                           392MiB |
|    0   N/A  N/A            5861      G   /usr/bin/ksecretd                         3MiB |
|    0   N/A  N/A            5938      G   /usr/bin/ksmserver                        3MiB |
|    0   N/A  N/A            5940      G   /usr/bin/kded6                            3MiB |
|    0   N/A  N/A            5941      G   /usr/bin/kwin_x11                        16MiB |
|    0   N/A  N/A            5969      G   /usr/bin/plasmashell                     73MiB |
|    0   N/A  N/A            6078      G   /usr/bin/kaccess                          3MiB |
|    0   N/A  N/A            6079      G   ...it-kde-authentication-agent-1          3MiB |
|    0   N/A  N/A            6222      G   /usr/lib/DiscoverNotifier                 3MiB |
|    0   N/A  N/A            6231      G   /usr/lib/firefox/firefox                245MiB |
|    0   N/A  N/A            6256      G   fcitx5-plasma-theme-generator             3MiB |
|    0   N/A  N/A            6280      G   /usr/lib/xdg-desktop-portal-kde           3MiB |
|    0   N/A  N/A            6999      G   ...asma-browser-integration-host          3MiB |
|    0   N/A  N/A            7220      G   /usr/bin/kwalletd6                       35MiB |
|    0   N/A  N/A           11140      G   /usr/bin/konsole                          3MiB |
+-----------------------------------------------------------------------------------------+

wayland:

Tue Dec 30 20:24:56 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 590.48.01              Driver Version: 590.48.01      CUDA Version: 13.1     |
+-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=====================================================|
|   0  NVIDIA GeForce RTX 5070 ...    Off |   00000000:02:00.0  On |                  N/A |
| N/A   43C    P8              6W /   70W |     188MiB /  12227MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|====================================================|
|    0   N/A  N/A           11738      G   /usr/lib/Xorg                            55MiB |
|    0   N/A  N/A           12067      G   /usr/bin/ksmserver                        2MiB |
|    0   N/A  N/A           12148      G   /usr/bin/kaccess                          2MiB |
+-----------------------------------------------------------------------------------------+
~                                                                                       ✔  20:24:56

确实wayland下独立显卡并没有启用,在x11下程序运行在独显上

这个很明显是nvidia显卡是副显卡。你可以试试指定nvidia显卡为主显卡:
我看到你的nvidia-smi里面,显卡插在00000000:02:00.0槽位。你可以使用ls -l /dev/dri/by-path看到哪个槽位对应哪张显卡,应该可以看到有card0和card1(如果是双显卡),你找到pci-0000:02:00.0-card对应的那一张,就是你的nvidia显卡。然后在/etc/environment中写入KWIN_DRM_DEVICES=/dev/dri/card0:/dev/dri/card1,调整card0和card1的顺序,把nvidia显卡对应的放在前面。重启电脑看看。

不知道为什么使用独立显卡后反而变得更卡了,使用核显大概还能有40帧左右,使用独显就几乎只有两帧

以前用manjaro也遇到一样的问题,后来换了catOS,自动安装显卡就好了

那确实很奇怪。感觉是显卡驱动的问题,kde没有正确启用显卡加速。但这个我就不知道如何排查了。

最开始的系统是按照“简明指南”安装的,尝试了四边均稳定复现出了卡顿(虽然都是手动安装,但试了很多次可以排除敲错命令的情况了),今天尝试按照这个教程重现安装了一遍系统,启用独显直链后所有wayland 和 x11的所有卡顿均消失,初步还是怀疑是驱动的问题,但是由于变量太多没办法完全确定,感谢各位的解答orz