您尚未登录。

#1 2024-09-29 20:03:32

贤良淑德的重八
会员
注册时间: 2024-09-20
帖子: 11

在不指定prime-run时有些程序会自动跑到独显上(nvidia)

笔记本 13900hx ,4060 ,wayland ,kde ,就算用optimus-manager换到核显模式,也会有应用跑到独显


这是nvidia-smi的输出,第一个进程是显卡用来电源控制的,这是正常的。按理说,其他的进程都不应该出现:

Sun Sep 29 19:58:42 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 560.35.03              Driver Version: 560.35.03      CUDA Version: 12.6     |
|-----------------------------------------+------------------------+----------------------+
| 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 4060 ...    Off |   00000000:01:00.0 Off |                  N/A |
| N/A   39C    P8              2W /   95W |     318MiB /   8188MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A    138283      G   /usr/lib/Xorg                                   4MiB |
|    0   N/A  N/A    138520      G   /usr/bin/ksmserver                              2MiB |
|    0   N/A  N/A    138907      G   /usr/bin/kaccess                                2MiB |
|    0   N/A  N/A    142947      G   ...erProcess --variations-seed-version        103MiB |
|    0   N/A  N/A    146276      G   /opt/microsoft/msedge-beta/msedge               2MiB |
|    0   N/A  N/A    146326      G   ...yeDropper --variations-seed-version        174MiB |
+-----------------------------------------------------------------------------------------+

离线

#2 2024-09-29 22:27:51

anlorsp
会员
注册时间: 2021-11-28
帖子: 45

Re: 在不指定prime-run时有些程序会自动跑到独显上(nvidia)

我在你的上一个帖子里就提到过 optimus-manager 对 wayland 的支持非常有限:https://github.com/Askannz/optimus-manager/issues/452
我后来又进一步调查了一下这个问题。optimus-manager 通过 profile.d/optimus-manager.sh 提供对 wayland 的支持,检查对应 AUR 包的 PKGBUILD 可以发现这个脚本直接被安装到了 /etc/profile.d/optimus-manager.sh :https://aur.archlinux.org/cgit/aur.git/ … r-git#n192
这意味着无论 optimus-manager 使用什么模式,这个脚本都会开机自动执行。而这个脚本的内容里面也没有任何检测 optimus-manager 状态的代码,仅仅是在当前显示协议为 wayland 时设置两个环境变量。这两个环境变量会导致所有 GLX 和 Vulkan 程序使用nvidia 显卡。这意味着,无论 optimus-manager 使用什么模式,在 wayland 下,它都会令大部分应用程序使用 nvidia 显卡。
可以使用 echo $__GLX_VENDOR_LIBRARY_NAME 检查环境变量是不是被 optimus-manager 设置为了 nvidia 。
我建议还是不要用 optimus-manager 管理 wayland 下的混合显卡。

离线

#3 2024-10-03 20:31:36

贤良淑德的重八
会员
注册时间: 2024-09-20
帖子: 11

Re: 在不指定prime-run时有些程序会自动跑到独显上(nvidia)

多谢大佬不厌其烦的讲解。

anlorsp 说:

我在你的上一个帖子里就提到过 optimus-manager 对 wayland 的支持非常有限:https://github.com/Askannz/optimus-manager/issues/452
我后来又进一步调查了一下这个问题。optimus-manager 通过 profile.d/optimus-manager.sh 提供对 wayland 的支持,检查对应 AUR 包的 PKGBUILD 可以发现这个脚本直接被安装到了 /etc/profile.d/optimus-manager.sh :https://aur.archlinux.org/cgit/aur.git/ … r-git#n192
这意味着无论 optimus-manager 使用什么模式,这个脚本都会开机自动执行。而这个脚本的内容里面也没有任何检测 optimus-manager 状态的代码,仅仅是在当前显示协议为 wayland 时设置两个环境变量。这两个环境变量会导致所有 GLX 和 Vulkan 程序使用nvidia 显卡。这意味着,无论 optimus-manager 使用什么模式,在 wayland 下,它都会令大部分应用程序使用 nvidia 显卡。
可以使用 echo $__GLX_VENDOR_LIBRARY_NAME 检查环境变量是不是被 optimus-manager 设置为了 nvidia 。
我建议还是不要用 optimus-manager 管理 wayland 下的混合显卡。

离线

#4 2024-10-03 20:42:05

贤良淑德的重八
会员
注册时间: 2024-09-20
帖子: 11

Re: 在不指定prime-run时有些程序会自动跑到独显上(nvidia)

我现在重装的optimus-manager,现在的情况是开核显模式,在nvidia-smi里看不到显卡用来功耗控制的Xorg进程;开混合模式能看到显卡用来功耗控制的Xorg进程,而且hdmi能用了;开仅独显模式,除了功耗控制的Xorg进程还能看到用来显示的wayland进程。

anlorsp 说:

我在你的上一个帖子里就提到过 optimus-manager 对 wayland 的支持非常有限:https://github.com/Askannz/optimus-manager/issues/452
我后来又进一步调查了一下这个问题。optimus-manager 通过 profile.d/optimus-manager.sh 提供对 wayland 的支持,检查对应 AUR 包的 PKGBUILD 可以发现这个脚本直接被安装到了 /etc/profile.d/optimus-manager.sh :https://aur.archlinux.org/cgit/aur.git/ … r-git#n192
这意味着无论 optimus-manager 使用什么模式,这个脚本都会开机自动执行。而这个脚本的内容里面也没有任何检测 optimus-manager 状态的代码,仅仅是在当前显示协议为 wayland 时设置两个环境变量。这两个环境变量会导致所有 GLX 和 Vulkan 程序使用nvidia 显卡。这意味着,无论 optimus-manager 使用什么模式,在 wayland 下,它都会令大部分应用程序使用 nvidia 显卡。
可以使用 echo $__GLX_VENDOR_LIBRARY_NAME 检查环境变量是不是被 optimus-manager 设置为了 nvidia 。
我建议还是不要用 optimus-manager 管理 wayland 下的混合显卡。

离线

#5 2024-10-14 12:44:23

sf467
会员
注册时间: 2024-03-10
帖子: 8

Re: 在不指定prime-run时有些程序会自动跑到独显上(nvidia)

可以试一试 envycontrol ,效果类似 optimus-manager ,但是官方提供了对 wayland 的支持,效果很好

离线

页脚