Llvmpipe is the default renderer?

Hello there.

(System information at the end of this text)

I recently applied the latest stable branch updates (Dec 31, 2020). I have an Optimus laptop (Nvidia + Intel), and I was using bbswitch before, with the hybrid-nvidia-430xx drivers. I followed all the steps and gotchas presented in the update. After the update, things seem to be working well, I can still use the NVidia GPU using prime-run, and there are no display issues.

However, this output concerns me

$ glxinfo | grep "OpenGL renderer string"
OpenGL renderer string: llvmpipe (LLVM 11.0.0, 256 bits)

$ prime-run glxinfo | grep "OpenGL renderer string"
OpenGL renderer string: GeForce GTX 1050 Ti/PCIe/SSE2

llvmpipe was new to me, so I looked it up. It is a software renderer, and I’m not sure that I want it this way. How do I ensure that the default renderer is the Intel Integrated GPU?

I do see that the Intel Integrated Graphics is using its i915 driver, so I don’t think it’s a matter of the device not being found. (Please correct me if I am wrong!)

$ lspci -k -s 00:02.0
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04)
	Subsystem: Lenovo Device 39d1
	Kernel driver in use: i915

$ inxi -v2
System:    Host: redroller Kernel: 4.14.212-1-MANJARO x86_64 bits: 64 Desktop: Xfce 4.14.3 Distro: Manjaro Linux 
Machine:   Type: Laptop System: LENOVO product: 80WK v: Lenovo Y520-15IKBN serial: <superuser required> 
           Mobo: LENOVO model: LNVNB161216 v: SDK0J40709 WIN serial: <superuser required> UEFI [Legacy]: LENOVO v: 4KCN40WW 
           date: 10/17/2017 
Battery:   ID-1: BAT0 charge: 36.8 Wh condition: 36.8/45.0 Wh (82%) 
CPU:       Info: Quad Core Intel Core i7-7700HQ [MT MCP] speed: 902 MHz min/max: 800/3800 MHz 
Graphics:  Device-1: Intel HD Graphics 630 driver: i915 v: kernel 
           Device-2: NVIDIA GP107M [GeForce GTX 1050 Ti Mobile] driver: nvidia v: 455.45.01 
           Device-3: Realtek EasyCamera type: USB driver: uvcvideo 
           Display: x11 server: X.Org 1.20.10 driver: modesetting,nvidia unloaded: intel,nouveau resolution: 1920x1080~60Hz 
           OpenGL: renderer: llvmpipe (LLVM 11.0.0 256 bits) v: 4.5 Mesa 20.3.1 
Network:   Device-1: Realtek RTL8821AE 802.11ac PCIe Wireless Network Adapter driver: rtl8821ae 
           Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet driver: r8168 
Drives:    Local Storage: total: 1.82 TiB used: 269.19 GiB (14.4%) 
Info:      Processes: 200 Uptime: 1h 33m Memory: 7.69 GiB used: 2.12 GiB (27.5%) Shell: fish inxi: 3.2.01 

$ cat /etc/modprobe.d/mhwd-gpu.conf                                                                                                                                                             
##
## Generated by mhwd - Manjaro Hardware Detection
##
 
blacklist nouveau
blacklist ttm
blacklist drm_kms_helper
blacklist drm
options nvidia "NVreg_DynamicPowerManagement=0x02"
1 Like

Hello,

You probably installed video-vesa too … remove it. AFAIK, for your system, you should have only:
video-hybrid-intel-nvidia-prime
and
video-modesetting

Thank you for the suggestion, but I am afraid it doesn’t work.
I didn’t have video-vesa, but I did have video-linux installed. I removed it and rebooted, no change.

For clarity, I force reinstalled the two configs you mentioned (i.e. mhwd -i pci <config-name> --force), and rebooted. But that did not change it either.

This is the current status:

$ mhwd -li
> Installed PCI configs:
--------------------------------------------------------------------------------
                  NAME               VERSION          FREEDRIVER           TYPE
--------------------------------------------------------------------------------
video-hybrid-intel-nvidia-prime            2020.11.30               false            PCI
     video-modesetting            2020.01.13                true            PCI
         network-r8168            2016.04.20                true            PCI

Some things look off to me.

  • The mhwd-generated file /etc/X11/mhwd.d/nvidia.conf is empty, (Except for the commented string implying it is an auto-generated file).
  • The file /etc/X11/xorg.conf.d/90-mhwd.conf is a symlink to this file, so that serves no purpose.

One other error message I see, (but am unsure what the solution is), is when I search the Xorg logs for intel and modesetting:

$ cat /var/log/Xorg.1.log | grep intel
[  2512.418] (==) Matched intel as autoconfigured driver 3
[  2512.419] (II) LoadModule: "intel"
[  2512.419] (II) Loading /usr/lib/xorg/modules/drivers/intel_drv.so
[  2512.419] (II) Module intel: vendor="X.Org Foundation"
[  2512.421] (II) intel: Driver for Intel(R) Integrated Graphics Chipsets:
[  2512.421] (II) intel: Driver for Intel(R) HD Graphics
[  2512.421] (II) intel: Driver for Intel(R) Iris(TM) Graphics
[  2512.421] (II) intel: Driver for Intel(R) Iris(TM) Pro Graphics
[  2512.425] (II) intel(0): Using Kernel Mode Setting driver: i915, version 1.6.0 20170818
[  2512.425] (II) intel(0): SNA compiled from 2.99.917-913-g9236c582
[  2515.187] (EE) intel(0): [drm] failed to set drm interface version: Permission denied [13].
[  2515.187] (II) intel(0): [drm] Contents of '/sys/kernel/debug/dri/0/clients':
[  2515.187] (II) intel(0): [drm]              command   pid dev master a   uid      magic
[  2515.187] (II) intel(0): [drm]                 Xorg   703   0   y    y     0          0
[  2515.187] (II) intel(0): [drm]                 Xorg  7131   0   n    y     0          0
[  2515.187] (EE) intel(0): Failed to claim DRM device.
[  2515.187] (II) UnloadModule: "intel"
$ cat /var/log/Xorg.1.log | grep modesetting
[  2512.418] (==) Matched modesetting as autoconfigured driver 4
[  2512.419] (II) LoadModule: "modesetting"
[  2512.419] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
[  2512.420] (II) Module modesetting: vendor="X.Org Foundation"
[  2512.421] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[  2512.440] (WW) Falling back to old probe method for modesetting

Also, it seems that an Xorg server is indeed using the GPU?

$ nvidia-smi
Fri Jan  1 01:36:29 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 455.45.01    Driver Version: 455.45.01    CUDA Version: 11.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  GeForce GTX 105...  Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   45C    P8    N/A /  N/A |      4MiB /  4042MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A       699      G   /usr/lib/Xorg                       4MiB |
+-----------------------------------------------------------------------------+

It shouldn’t … Try to auto install
sudo mhwd -a pci nonfree 0300
and see if the nvidia.conf will be filled … reboot the system after that. The thing is, in the announcement wiki was mentioned to backup the old nvidia.conf

1 Like

The first step in the fix: “try installing kernel 5.4 LTS”: It seems to have done the trick!

$ glxinfo | grep "OpenGL renderer"
OpenGL renderer string: Mesa Intel(R) HD Graphics 630 (KBL GT2)

$ prime-run glxinfo | grep "OpenGL renderer"
OpenGL renderer string: GeForce GTX 1050 Ti/PCIe/SSE2

Honestly I am surprised you were using 4.14 with not many problems with relatively recent devices.
PS - right now 5.4 is the longest-lasting LTS … it will be supported until 2025.

1 Like

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.