My Intel laptop does not use 3D acceleration, it only has LLVM

Hello,

I have spent most of the week trying to diagnose a problem with my 3D configuration on Ubuntu MATE. I have a laptop which uses Intel UHD 620, and has always worked fine. But now, it does not correctly load the 3D driver, and falls into LLVM (so, software rendering). Even Blender moving a single cube is terribly slow. I have checked everything that I can think of. Just tell me what information you need and I'll provide it. As for now, "glxheads" command tells me that my graphic card is a generic "Mesa", and GL renderer is llvmpipe. I have checked the error logs and found no error. Everything seems to load correctly.

What is even more strange, a similar PC (just one generation before, UHD 530) works perfectly with the same Ubuntu MATE.

Could it be this ? :

1 Like

Thank you, it's exactly that, but I don't have EagleCAD installed. I have had FreeCAD, but not now, I have uninstalled it. How can I discover the problem?

1 Like

I have no idea yet but can you check if

echo "$LIBGL_ALWAYS_SOFTWARE"

is empty ?

Also please post the output of:

grep 'GRUB_CMDLINE'  /etc/default/grub
inxi -G
glxinfo |head
glxheads :0
apt search intel |grep intel |grep '\['
apt search xpresent
apt search picom |grep picom

I can't promise a solution but at least I can try , right ? :slight_smile:

Also check this link:
https://wiki.archlinux.org/title/intel_graphics

2 Likes

Here you have it, thank you very much!

all the command output

Here is where it goes sideways :

libGL error: did not find extension DRI_Mesa version 1

Which might be related to:

but this:

libGL error: failed to load driver: i965

and this:

Display: x11 server: X.Org v: 1.21.1.4 driver: X: loaded: intel gpu: i915

While my own laptop shows:

Display: x11 server: X.Org v: 1.21.1.4 driver: X: loaded: modesetting

Makes me wonder if it tries to load the wrong driver, especially since I found this same error as a thread on the Linux-Mint site:

Linux Mint 21 versions do not use i965. The i965 renderer was used in Linux Mint 20 versions, but switched to crocus in Linux Mint 21 versions because of changes in the underlying graphics stack.

Also, your system should not be using the intel display driver. It is showing as an alternate which means you must have done something to try and force it to load. That may be why you are getting llmvpipe.

Graphics:
Display: x11 server: X.Org v: 1.21.1.4 driver: X: loaded: modesetting
unloaded: fbdev,vesa alternate: intel gpu: i915 display-ID: :0 screens: 1

According to my laptop, the following directories should not contain any intel related files:

/etc/X11/xorg.conf
/etc/X11/xorg.conf.d
/usr/share/X11/xorg.conf.d

Also the following mesa packages should probably be installed:

libdrm-common
libdrm-intel1
libdrm2
libgl1-mesa-dri
libgl1-mesa-glx
libgl1-amber-dri
libgl1
libglapi-mesa
libglu1-mesa
libglx-mesa0
libglx-amber0
libxcb-glx0

Remove the intel package (if you added it) and any references to it you might have added to any files and reboot the computer and see if the proper renderer loads.

Hope this helps :slight_smile:

2 Likes

Thank you again!! I have carefully read your answer and checked everything. I have installed some libraries required by Steam and glxinfo's two libGL errors have dissappeared. But it still is confused about i915 - i965 driver, I wonder why. I have uninstalled Steam, all i386 packages and the whole architecture, leaving only 64 bit packages. I have found a strange line in /var/log/Xorg.0.log

[     7.264] xf86EnableIO: failed to enable I/O ports 0000-03ff (Operation not permitted)

You can find the complete log file here.

I have really no idea how to solve that.

But according to:

it might have to do with some missing files.
this command could potentially solve it:

sudo apt install ubuntu-mate-desktop
sudo ubuntu-drivers install

Besides that one error, everything seems to be ok.
According your log, the modesetting driver seems to be loading now. You can check again with inxi -G

1 Like

Sorry for the delay, I've been quite busy. I have installed ubuntu-mate-desktop (it was, already), and ubuntu drivers (the same). I get the same error when I check with inxi -G:

Graphics:
  Device-1: Intel UHD Graphics 620 driver: i915 v: kernel
  Device-2: Acer HD Webcam type: USB driver: uvcvideo
  Display: x11 server: X.Org v: 1.21.1.4 driver: X: loaded: modesetting
    unloaded: fbdev,vesa gpu: i915 resolution: 1920x1080~60Hz
  OpenGL: renderer: llvmpipe (LLVM 15.0.7 256 bits)
    v: 4.5 Mesa 23.0.4-0ubuntu1~22.04.1

It's not surprising, since nothing has changed. Where can I get more specialized help? Maybe some X.org forum? Thank you!

Hi, @nestorac :slight_smile:

I've just done a web search for OpenGL: renderer: llvmpipe Ubuntu MATE (based on the "OpenGL: renderer: llvmpipe" part of the output of the "inxi -G" command that you have ran per @tkn's great suggestion), and I've found the following article that looks relevant in the "Learn Ubuntu MATE" - https://learnubuntumate.weebly.com - web site (that website is authored by @Tommy_Thompson):

That same article also includes the following accompanying video at its end (the video is also authored by @Tommy_Thompson ):

I hope that helps :slight_smile:

1 Like

Thank you, it's really a good answer. I have checked everything and I cannot still use intel driver, it falls back to LLVM (remember I use Intel, not NVIDIA, so it should work out of the box, and it DID work, indeed). I think I'll have to send this question to a more specific place.

The blog you link is awesome, but it's specific to tearing. In fact, I did have tearing some months ago, and I have added /usr/share/X11/xorg.conf.d/20-intel.conf, to address this issue (tearing happened when I put the screen vertical)

I am able to diagnose the problem, not the specific error. Something should be broken, writing errors to log.

1 Like

I do not believe this message is in any way related to your lack of hardware acceleration. I don't think X even uses those I/O ports for anything anymore; it's a holdover to the days of 640x480 VGA graphics in 16 colors. That range of I/O ports is the entire range of I/O ports that the original IBM PCs from 1981 could use; for cheapness of design, they could only accept add-in devices that used I/O ports below number 1024. Old VGA cards were controlled using a set of I/O ports in that range -- specifically, a number of non-contiguous ports from 0x3B4 to 0x3D8 (so a few ports near the end of the IBM PC's addressable range).

Modern PCs support 65,536 I/O ports -- many more than the IBM PC did -- and modern graphics cards use I/O port ranges starting at much higher addresses. The Xorg.log taken from the Ask Ubuntu link (above) claims that the Intel GPU in that example uses 64 I/O ports starting at address 0xf000, which is address 61,440 in decimal -- far, far above what X tried (and failed) to reserve for itself. So, I find it unlikely that this failure to reserve the legacy IBM PC range of I/O port addresses has anything to do with the problem at hand.

The situation with graphics drivers for Intel GPUs is complicated. Since 1999, when Intel started creating integrated graphics solutions, there have been countless drivers released for Linux: i810, two versions of a driver called i915, i965, iris, and the latest, crocus. I probably missed a few others. Let me try to explain the full situation.

Today, under any circumstances and with any Intel integrated graphics (whether it's the original "Camino" graphics from 1999 or a modern Raptor Lake), there is a kernel driver called i915 which acts as a bridge between the bare graphics hardware and the main graphics drivers provided by the Mesa library. Then there are the drivers provided by Mesa:

  • i915 (the old driver): Yes, this driver is named the same as the kernel driver. It's a bit confusing. This driver was created by Intel themselves, for the most part. It is primarily for graphics hardware that is older than ~2005.
  • i915 (the new driver): Seriously -- there are two Mesa drivers named the same thing! This one was created by Google, and uses an underlying code library called "Gallium". It is mainly for graphics hardware produced after 2005.
  • i965: This driver was produced mainly by Intel. It is for graphics hardware from after 2005 and I believe it works with all graphics hardware up to the present, but Intel doesn't recommend using it for anything newer than ~2010. This is probably the driver that your Ubuntu system was using up until your graphics acceleration broke.
  • iris: Also created by Intel, this driver is for newer graphics hardware post-2010.
  • crocus: Also by Intel. I think this is mostly for hardware made post-2014, but don't ask me why Intel thought it was necessary to come out with another driver so soon.

I think what happened is that, when you last upgraded, Mesa was updated, and the latest version of Mesa totally removed the i965 driver that you had been using. However, some part of Mesa still expects to find that i965 driver, and when it doesn't find the driver, Mesa falls back to using software rendering via the (vastly inefficient) llvmpipe driver.

To test my hypothesis, try making a temporary symbolic link from /usr/lib/x86_64-linux-gnu/dri/crocus_dri.so to /usr/lib/x86_64-linux-gnu/dri/i965_dri.so:

sudo ln -s crocus_dri.so /usr/lib/x86_64-linux-gnu/dri/i965_dri.so

Then log out and log back in. See if acceleration works again. If not, remove the link, then try the iris driver instead:

sudo rm /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
sudo ln -s iris_dri.so /usr/lib/x86_64-linux-gnu/dri/i965_dri.so

Warning: There is a small possibility that one or both of these commands will prevent X from starting at all. If this happens, log in at the console (Ctrl-Alt-F1), then remove the link:

sudo rm /usr/lib/x86_64-linux-gnu/dri/i965_dri.so

If none of those commands work, you could try checking if there are any new system updates available. Failing that, this sounds like something that needs to be reported as a bug.

Let me know how things work out for you! I'll be waiting excitedly.

4 Likes

Yours in an awesome answer! Really thanks. I have carefully read your message and tried what you proposed, linking the libraries. Unfortunately, it does not work. I have not been able to use the correct OpenGL renderer. Might it be some broken dependence? Maybe some problem with kernel modules? I have used ldd to check the libraries and they're correctly linked to existing libraries. The strange thing is that I have a Lenovo Tiny computer from two generations before my laptop, using a close version of the intel graphics card (HD Graphics 530 instead of UHD Graphics 620), the same Ubuntu MATE version, and it works (I have Ubuntu Pro only on the laptop).

One curious thing: while Blender was quite slow because of the absence of acceleration, Godot continued to work until I re-downloaded it and run it. Then, it was also slow. It's something I cannot understand. Maybe I ask upstream?

Have you tried a fresh install? If it works correctly after a fresh install then the problem is with your particular system configuration and not sudden hw incompatibility.

Your last comment regarding Godot tells me the machine still has it's magic smoke (not sudden hw failure).

I'm avoiding fresh install, but you're right, so I'll try (without erasing current system). I'll also try live ISO.