nvidia-smi funciona, pero glxinfo show OpenGL usa una tarjeta gráfica Intel; ubuntu 18.04

nvidia-smi funciona, pero glxinfo show OpenGL usa una tarjeta gráfica Intel; ubuntu 18.04

Quiero jugar un juego usando los gráficos discretos de mi computadora portátil. No me importa la tarjeta gráfica Intel, solo quiero usar exclusivamente NVidia.

$ nvidia-smi
Mon Mar 23 20:40:58 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.64.00    Driver Version: 440.64.00    CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 860M    On   | 00000000:01:00.0 Off |                  N/A |
| N/A   47C    P8    N/A /  N/A |      0MiB /  4046MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
$ glxinfo |grep OpenGL
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile 
OpenGL core profile version string: 4.5 (Core Profile) Mesa 19.2.8
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 19.2.8
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 19.2.8
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions:
$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
$ lspci | grep NVIDIA
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 860M] (rev a2)

Por desesperación, instalé bbswitch, que se muestra activado incluso cuando lo apago.

root@eevee-G551JM:/home/adam # cat /proc/acpi/bbswitch 
0000:01:00.0 ON
root@eevee-G551JM:/home/adam # tee /proc/acpi/bbswitch <<<OFF
OFF
root@eevee-G551JM:/home/adam # cat /proc/acpi/bbswitch 
0000:01:00.0 ON
root@eevee-G551JM:/home/adam # prime-select query
nvidia

Solía ​​tener Bumblebee configurado en esta máquina, pero ya no funciona correctamente (y eliminarlo no afecta el renderizado).

root@eevee-G551JM:/home/adam # service bumblebeed stop
root@eevee-G551JM:/home/adam # bumblebeed 
[  821.692186] [INFO]bumblebeed 3.2.1 started
[  821.692614] [ERROR]Failed to unload module 'nvidia' (ref count: 15).
^C[  882.413474] [WARN]Received Interrupt signal.
root@eevee-G551JM:/home/adam 5 # service bumblebeed start
root@eevee-G551JM:/home/adam # service bumblebeed status
● bumblebeed.service - Bumblebee C Daemon
   Loaded: loaded (/lib/systemd/system/bumblebeed.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2020-03-23 20:52:34 CET; 1s ago
 Main PID: 10898 (bumblebeed)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/bumblebeed.service
           └─10898 /usr/sbin/bumblebeed

Mar 23 20:52:34 eevee-G551JM systemd[1]: Started Bumblebee C Daemon.
Mar 23 20:52:34 eevee-G551JM bumblebeed[10898]: [  903.313579] [INFO]/usr/sbin/bumblebeed 3.2.1 started
Mar 23 20:52:34 eevee-G551JM bumblebeed[10898]: [  903.314010] [ERROR]Failed to unload module 'nvidia' (ref count: 15).
root@eevee-G551JM:/home/adam # apt install xserver-xorg-video-nvidia-440 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
xserver-xorg-video-nvidia-440 is already the newest version (440.64.00-0ubuntu1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

$ cd /etc/modprobe.d/
$ ag nvidia
blacklist-framebuffer.conf
19:blacklist nvidiafb

bumblebee.conf
5:# do not automatically load nouveau as it may prevent nvidia from loading
7:# do not automatically load nvidia as it's unloaded anyway when bumblebeed
10:blacklist nvidia
11:blacklist nvidia-current
12:blacklist nvidia-legacy-304xx
13:blacklist nvidia-legacy-340xx
15:blacklist nvidia
16:blacklist nvidia-current
17:blacklist nvidia-current-updates
...

root@eevee-G551JM:/etc/modprobe.d # cat /etc/modules
i915
bbswitch
$ cat /etc/bumblebee/bumblebee.conf

[bumblebeed]
VirtualDisplay=:8
KeepUnusedXServer=false
ServerGroup=bumblebee
TurnCardOffAtExit=false
NoEcoModeOverride=false
Driver=
XorgConfDir=/etc/bumblebee/xorg.conf.d
XorgBinary=/usr/lib/xorg/Xorg

[optirun]
Bridge=auto
VGLTransport=proxy
PrimusLibraryPath=/usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus
AllowFallbackToIGC=false

[driver-nvidia]
KernelDriver=nvidia
PMMethod=auto
LibraryPath=/usr/lib/x86_64-linux-gnu:/usr/lib/i386-linux-gnu
XorgModulePath=/usr/lib/x86_64-linux-gnu/nvidia/xorg,/usr/lib/xorg/modules,/usr/lib/xorg/modules/input
XorgConfFile=/etc/bumblebee/xorg.conf.nvidia

[driver-nouveau]
KernelDriver=nouveau
PMMethod=auto
XorgConfFile=/etc/bumblebee/xorg.conf.nouveau

¿Alguien puede explicarme cómo es que nvidia-smive la tarjeta gráfica y, sin embargo, xorg no la usa? Es muy interesante que esto sea posible en primer lugar, pero ¿cómo hacer que el sistema vuelva al estado en el que nvidia procesa todos los gráficos (o mejor aún, que el abejorro funcione)?

Respuesta1

glxinfo es una utilidad mesa, mesa es el controlador de GPU para Intel, Amd, VMware y Raspbery PI. Por lo tanto, sólo ofrece información sobre estas GPU.

Respuesta2

Puede que tenga algo que ver con elNvidia bajo demandaperfil (especialmente si está utilizando un monitor externo). Cambiando el perfil aNvidia (modo de rendimiento)en nvidia-settingsresuelve el mismo problema para mí.

De lo que tomé¿Cómo funciona la opción NVIDIA On-Demand en la configuración del servidor NVIDIA X?, el On-Demandperfil permite el cambio dinámico de Nvidia, pero se limita a la pantalla del portátil, mientras que Performance Modeusa Nvidia para renderizar todo y funciona en el monitor externo.

información relacionada