在具有非优化专用 Nvidia GPU 的笔记本电脑上,如何强制应用程序使用它而不是 CPU?

在具有非优化专用 Nvidia GPU 的笔记本电脑上,如何强制应用程序使用它而不是 CPU?

我有一台新笔记本电脑,配备 Nvidia RTX 2060 和英特尔 i7-9750H,运行 Fedora 31 KDE spin。我一直使用 Fedora 都没有问题,尽管以前从未使用过专用 GPU。我已经安装了来自 rpmfusion 的专有 nvidia 驱动程序,它似乎被识别了,尽管 CPU 似乎正在处理所有的图形工作,我不确定该怎么做。据我所知,这不是 Optimus 显卡,所以我不能使用 bumblebee/optirun 从 cpu 切换到 gpu 显卡(如果有办法像那样有选择地使用显卡,我洗耳恭听,那将是理想的解决方案)。

以下是我能想到的所有相关信息(或 Google 认为相关的信息)。我不知道接下来该做什么。我会提供任何要求的相关后续信息。

相关 lspci 输出:

[root@bulbasaur ~]# lspci -v|grep VGA
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (Mobile) (prog-if 00 [VGA controller])
01:00.0 VGA compatible controller: NVIDIA Corporation TU106M [GeForce RTX 2060 Mobile] (rev a1) (prog-if 00 [VGA controller])

glxinfo 输出:

[root@bulbasaur ~]# glxinfo |grep render
direct rendering: Yes
    GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer, 
    GLX_MESA_query_renderer, GLX_MESA_swap_control, GLX_OML_swap_method, 
Extended renderer info (GLX_MESA_query_renderer):
OpenGL renderer string: Mesa DRI Intel(R) UHD Graphics 630 (Coffeelake 3x8 GT2) 
    GL_ARB_compute_shader, GL_ARB_conditional_render_inverted, 
    GL_NV_conditional_render, GL_NV_depth_clamp, 
    GL_ARB_compute_shader, GL_ARB_conditional_render_inverted, 
    GL_NV_conditional_render, GL_NV_depth_clamp, GL_NV_fog_distance, 
    GL_EXT_read_format_bgra, GL_EXT_render_snorm, GL_EXT_robustness, 
    GL_NV_conditional_render, GL_NV_draw_buffers, GL_NV_fbo_color_attachments, 
    GL_OES_element_index_uint, GL_OES_fbo_render_mipmap,

nvidia-settings 的屏幕截图,左侧没有显示 XWindows 项目:

https://i.imgur.com/ddRuFsz.png

glmark2 输出:

    glmark2 2017.07
    OpenGL Information
    GL_VENDOR:     Intel Open Source Technology Center
    GL_RENDERER:   Mesa DRI Intel(R) UHD Graphics 630 (Coffeelake 3x8 GT2) 
    GL_VERSION:    3.0 Mesa 19.2.4

我在 Google 上找到的解决方案之一是将 nvidia.conf 复制到 /etc 中,我按照如下方式操作:

# cp /usr/share/X11/xorg.conf.d/nvidia.conf /etc/X11/xorg.conf.d/

并添加了我所做的行Option "PrimaryGPU" "yes",但无效:

        [root@bulbasaur xorg.conf.d]# cat nvidia.conf
        #This file is provided by xorg-x11-drv-nvidia
        #Do not edit

        Section "OutputClass"
                Identifier "nvidia"
                MatchDriver "nvidia-drm"
                Driver "nvidia"
                Option "AllowEmptyInitialConfiguration"
                Option "SLI" "Auto"
                Option "BaseMosaic" "on"
        EndSection

        Section "ServerLayout"
                Option "PrimaryGPU" "yes"
                Identifier "layout"
                Option "AllowNVIDIAGPUScreens"
        EndSection

答案1

在显卡之间切换和/或重新安装 NVIDIA 驱动程序。

您的笔记本电脑正在使用集成 GPU[intel] 而不是 NVIDIA。
您可以在您发布的输出的不同点中读取(UHD Graphics 630)。

以下命令将为您提供更易读的输出。

glxinfo|egrep "OpenGL vendor|OpenGL renderer"

尝试

sudo prime-select nvidia

如果您的系统上没有 prime-select,我想您应该重新安装 NVIDIA 驱动程序,重新启动系统,选择 nvidia 并再次重新启动。每次重新启动可能有点过头了,重新启动图形部分(sudo service lightdm restart或类似部分)就足够了。

然后,您的左侧面板上nvidia-settings应该会出现另一个声音PRIME Profiles ,允许您在两个显卡之间切换。

nvidia-settings-PRIME

您可以阅读更多关于如何重新安装 NVIDIA 驱动程序和如何在英特尔和 Nvidia 显卡之间切换(即使对于 Ubuntu)在网络上的许多页面上。

相关内容