首先,如果这个问题已经得到解答(我找不到任何关于这个主题的答案)或者这是一个简单的问题,我深表歉意,因为我对 Linux 不是很熟练。
我需要帮助——我正在使用一台配备英特尔 iGPU 和 nvidia dGPU(MSI GF65)的笔记本电脑。我最近通过全新安装从 Ubuntu 20.04 切换到 22.04。当我尝试使用上下文菜单“使用独立显卡启动”在 Nvidia GPU 上运行游戏时,
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia %some_game%
我注意到一个问题——性能非常糟糕,GPU 利用率非常低,一个 CPU 核心达到最大值,而其他核心几乎处于空闲状态。在 iGPU 上运行相同的应用程序不会产生这样的问题。
我注意到的另一个问题是外接显示器无法工作。据我所知,笔记本电脑显示器连接到 iGPU,而笔记本电脑的 HDMI 输出连接到 dGPU,这意味着它与 Nvidia 有关。
这些问题仅出现在 Xorg 中,而不是 Wayland 桌面环境中。通过不触碰任何东西并简单地切换到 Wayland,外部显示器可以正常工作,并且 Nvidia GPU 上的游戏可以按预期运行。使用 Ubuntu 20.04 时,我没有遇到这样的问题。我确实安装了 CUDA 工具包以用于 Tensorflow,但没有它的驱动程序(与分发驱动程序一起使用)。我也将它安装在 Ubuntu 20.04 上,在那里我没有遇到这些问题。
我在 Xorg 中尝试了以下操作:
- 不同的驱动程序(525、530、535、545)
- 清除所有 Nvidia 驱动程序并安装推荐的驱动程序(535)
- 在“按需”和“nvidia”之间切换主要配置文件不会产生任何行为变化,表现得就像“按需”一样。
- 从 Nvidia 生成 Xorg 配置文件会导致无法选择所有 Xorg 桌面环境。我只能使用 Wayland。以这种方式使用 Wayland 会强制所有渲染都在 Nvidia GPU 上完成,这对电池效率非常不利。
- 使用“Xorg -configure”生成 Xorg 配置文件会导致错误:“创建的屏幕数量与检测到的设备数量不匹配”
- 使用不同的桌面环境(Cinnamon) - 同样的问题。
编辑: 输出如下:xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x44 cap: 0x9, Source Output, Sink Offload crtcs: 4 outputs: 2 associated providers: 1 name:Intel
Provider 1: id: 0x1fe cap: 0x2, Sink Output crtcs: 4 outputs: 1 associated providers: 1 name:NVIDIA-G0