#1025389 libgl1-mesa-dri: AIGLX error: dlopen of /usr/lib/x86_64-linux-gnu/dri/i965_dri.so

Package:
libgl1-mesa-dri
Source:
libgl1-mesa-dri
Description:
free implementation of the OpenGL API -- DRI modules
Submitter:
Jeremiah Mahler
Date:
2023-03-05 13:06:02 UTC
Severity:
normal
#1025389#5
Date:
2022-12-03 19:48:55 UTC
From:
To:
Dear Maintainer,

When attemtpting to start X it fails.  And looking through the
.local/share/xorg/Xorg.0.log finds a segfault like below (Xorg.0.log.bad).

One workaround I found is to comment out the entire Intel Graphics
config.  Not sure why this works.  Is it picking better defaults
or not enabling features which introduce the problem?

$ cat /etc/X11/xorg.conf.d/20-intel.conf
#Section "Device"
#  Identifier	"Intel Graphics"
#  Driver	"intel"
#
#  #Option	"AccelMethod" "uxa"
#  Option	"AccelMethod" "sna"
#  #Option	"NoAccel" "True"
#  Option	"DRI" "True"
#EndSection

Interestingly, it looks like this missing i965_dri.so has indeed gone
missing.

https://packages.debian.org/buster/amd64/libgl1-mesa-dri/filelist
https://packages.debian.org/sid/amd64/libgl1-mesa-dri/filelist

Xorg.0.log.bad
--------------
[    14.004] (II) SELinux: Disabled on system
[    14.004] (II) Initializing extension GLX
[    14.005] (EE) AIGLX error: dlopen of /usr/lib/x86_64-linux-gnu/dri/i965_dri.so failed (/usr/lib/x86_64-linux-gnu/dri/i965_dri.so: cannot open shared object file: No such file or directory)
[    14.005] (EE) AIGLX error: unable to load driver i965
[    14.027] (EE)
[    14.027] (EE) Backtrace:
[    14.028] (EE) 0: /usr/lib/xorg/Xorg (OsLookupColor+0x139) [0x562070f40c59]
[    14.028] (EE) 1: /lib/x86_64-linux-gnu/libc.so.6 (__sigaction+0x40) [0x7f12c3a5af90]
[    14.029] (EE) unw_get_proc_name failed: no unwind info found [-10]
[    14.029] (EE) 2: /lib64/ld-linux-x86-64.so.2 (?+0x0) [0x7f12c4713029]
[    14.029] (EE) 3: /lib/x86_64-linux-gnu/libc.so.6 (_dl_catch_exception+0x7a) [0x7f12c3b6de9a]
[    14.029] (EE) 4: /lib/x86_64-linux-gnu/libc.so.6 (_dl_catch_error+0x2f) [0x7f12c3b6df4f]
[    14.030] (EE) 5: /lib/x86_64-linux-gnu/libc.so.6 (dlerror+0x297) [0x7f12c3aa3dc7]
[    14.030] (EE) 6: /lib/x86_64-linux-gnu/libc.so.6 (dlclose+0x36) [0x7f12c3aa3b26]
[    14.032] (EE) 7: /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so (nouveau_drm_screen_create+0x1d50f4) [0x7f12c1ae7f44]
[    14.032] (EE) 8: /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so (nouveau_drm_screen_create+0x1d4340) [0x7f12c1ae7190]
[    14.033] (EE) unw_get_proc_name failed: no unwind info found [-10]
[    14.033] (EE) 9: /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so (?+0x0) [0x7f12c10aa179]
[    14.034] (EE) 10: /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so (__driDriverGetExtensions_d3d12+0x60ae16) [0x7f12c16b5156]
[    14.034] (EE) 11: /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so (__driDriverGetExtensions_d3d12+0x60ad84) [0x7f12c16b50c4]
[    14.034] (EE) 12: /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so (__driDriverGetExtensions_d3d12+0x6f4) [0x7f12c10aaa34]
[    14.034] (EE) 13: /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so (__driDriverGetExtensions_d3d12+0xa175) [0x7f12c10b44b5]
[    14.035] (EE) unw_get_proc_name failed: no unwind info found [-10]
[    14.035] (EE) 14: /usr/lib/xorg/modules/extensions/libglx.so (?+0x0) [0x7f12c37ecd77]
[    14.035] (EE) unw_get_proc_name failed: no unwind info found [-10]
[    14.035] (EE) 15: /usr/lib/xorg/modules/extensions/libglx.so (?+0x0) [0x7f12c37ebb7f]
[    14.035] (EE) 16: /usr/lib/xorg/Xorg (_CallCallbacks+0x34) [0x562070dd2a24]
[    14.035] (EE) 17: /usr/lib/xorg/Xorg (dri3_send_open_reply+0x10af) [0x562070efea9f]
[    14.036] (EE) 18: /usr/lib/xorg/Xorg (InitExtensions+0x89) [0x562070e3e2a9]
[    14.036] (EE) 19: /usr/lib/xorg/Xorg (InitFonts+0x1e8) [0x562070dd14e8]
[    14.036] (EE) 20: /lib/x86_64-linux-gnu/libc.so.6 (__libc_init_first+0x8a) [0x7f12c3a4618a]
[    14.036] (EE) 21: /lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main+0x85) [0x7f12c3a46245]
[    14.036] (EE) 22: /usr/lib/xorg/Xorg (_start+0x21) [0x562070dbab61]
[    14.036] (EE)
[    14.037] (EE) Segmentation fault at address 0x337
[    14.037] (EE)
Fatal server error:
[    14.037] (EE) Caught signal 11 (Segmentation fault). Server aborting
[    14.037] (EE)
[    14.037] (EE)
Please consult the The X.Org Foundation support
	 at http://wiki.x.org
 for help.
[    14.037] (EE) Please also check the log file at "/home/jeri/.local/share/xorg/Xorg.0.log" for additional information.
[    14.037] (EE)
[    14.073] (EE) Server terminated with error (1). Closing log file.

#1025389#10
Date:
2022-12-03 21:16:31 UTC
From:
To:
Same for i915_dri.so on Bookworm:

# xdriinfo
libGL error: MESA-LOADER: failed to open i915: /usr/lib/dri/i915_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
libGL error: failed to load driver: i915
Screen 0: swrast

Intel 82945G/GZ Integrated Graphics 8086:2772


File list of package libgl1-mesa-dri in bookworm of architecture amd64:

/usr/lib/x86_64-linux-gnu/dri/crocus_dri.so
/usr/lib/x86_64-linux-gnu/dri/d3d12_dri.so
/usr/lib/x86_64-linux-gnu/dri/iris_dri.so
/usr/lib/x86_64-linux-gnu/dri/kms_swrast_dri.so
/usr/lib/x86_64-linux-gnu/dri/nouveau_dri.so
/usr/lib/x86_64-linux-gnu/dri/r300_dri.so
/usr/lib/x86_64-linux-gnu/dri/r600_dri.so
/usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
/usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
/usr/lib/x86_64-linux-gnu/dri/virtio_gpu_dri.so
/usr/lib/x86_64-linux-gnu/dri/vmwgfx_dri.so
/usr/lib/x86_64-linux-gnu/dri/zink_dri.so
/usr/share/bug/libgl1-mesa-dri/control
/usr/share/bug/libgl1-mesa-dri/script
/usr/share/doc/libgl1-mesa-dri/changelog.Debian.gz
/usr/share/doc/libgl1-mesa-dri/changelog.gz
/usr/share/doc/libgl1-mesa-dri/copyright
/usr/share/drirc.d/00-mesa-defaults.conf
mesa (22.0.0~rc2-1) experimental; urgency=medium

  * New upstream release candidate.
  * path_max.diff: Refreshed.
  * rules: Drop classic drivers (r100, r200, nouveau_vieux, i915, i965).

#1025389#15
Date:
2022-12-07 12:30:07 UTC
From:
To:
I am also affected by this bug on a 2020 Lenovo laptop, same as OP
reported. After an upgrade on my unstable debian system it booted only
to a blinking cursor. Going into a terminal and checking logs I also
saw the segmentation fault.

It made my laptop unusable as of now. :( Hope that the driver can be
brought back or the hardware supported otherwise.
This was also reported in #1025659

I'm happy to support you with information as much as I can.

Xorg.0.log  https://paste.debian.net/1263176/
Hardware info  https://paste.debian.net/1263178/

#1025389#20
Date:
2022-12-07 12:33:19 UTC
From:
To:

#1025389#25
Date:
2022-12-08 09:21:43 UTC
From:
To:
@Felix

There is i915g gallium driver in mesa, that replaced old classic
unmantained and removed upstream i915, but i915g is currently not enabled
in Debian mesa package.

#1025389#30
Date:
2022-12-09 19:28:25 UTC
From:
To:
Removing the Intel config in

/etc/X11/xorg.conf.d/*.conf

made my laptop boot again.

#1025389#35
Date:
2022-12-18 09:28:24 UTC
From:
To:

Hello,
the segmentation fault looks similar to that one:

https://bugs.debian.org/1025419

There it is discussed at least the segmentation fault
is a result of a recent libunwind update.

It sounds like Xorg should not crash at this dlclose call,
and if it would be able to continue, it might be able
to find the right driver later.


On the other hand following bug shows also a similar
backtrace, but got solved by importing two patches
into mesa, which should avoid the segfault.

https://bugs.debian.org/1025312


Kind regards,
Bernhard

#1025389#40
Date:
2023-01-01 13:29:01 UTC
From:
To:
22.3.0-3 reenabled two intel drivers missing in previou release.
#1025389#45
Date:
2023-01-01 22:02:06 UTC
From:
To:
reopen 1025389
severity 1025389 serious
thanks

Am Sun, Jan 01, 2023 at 02:29:01PM +0100 schrieb Fabio Pedretti:
subject is not resolved?

$ dpkg -L libgl1-mesa-dri | grep 965
$ dpkg -L libgl1-mesa-dri | grep 915
/usr/lib/x86_64-linux-gnu/dri/i915_dri.so

So, apparently the i915 driver is there, fine; i965 IS NOT!

And while the other issue with the loader crash is apparently fixed, I
still cannot see a solution for i965. Any program requesting GLX support
reports:

libGL error: MESA-LOADER: failed to open i965: /usr/lib/dri/i965_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)

and that's basically it.

NOTE: you can override my judgement WRT severity but IMHO breaking
support for ~7 year old hardware is not acceptable, should be RC.

And the hardware here is:

00:02.0 VGA compatible controller: Intel Corporation HD Graphics 5500 (rev 09)

Also:

$ grep i9 /var/log/Xorg.0.log
[    93.347] Kernel command line: BOOT_IMAGE=/vmlinuz-6.1.0-0-amd64 root=/dev/mapper/default-root ro init=/bin/systemd i915.enable_rc6=0 iwlwifi.power_save=Y iwlwifi.power_level=3 quiet
	915G, E7221 (i915), 915GM, 945G, 945GM, 945GME, Pineview GM,
[    93.463] (II) intel(0): Using Kernel Mode Setting driver: i915, version 1.6.0 20201103
[    93.493] (II) intel(0): [DRI2]   DRI driver: i965
[    93.500] (EE) AIGLX error: dlopen of /usr/lib/x86_64-linux-gnu/dri/i965_dri.so failed (/usr/lib/x86_64-linux-gnu/dri/i965_dri.so: cannot open shared object file: No such file or directory)
[    93.500] (EE) AIGLX error: unable to load driver i965

#1025389#56
Date:
2023-01-01 22:47:22 UTC
From:
To:
Am Sun, Jan 01, 2023 at 11:02:08PM +0100 schrieb Eduard Bloch:
https://www.phoronix.com/review/ivy-bridge-crocus

So was THAT supposed to replace i965 support in mesa-22?

Well, then it simply DOES NOT WORK. Yes, I found that crocus lib. But:

MESA_LOADER_DRIVER_OVERRIDE=crocus strace -f -o wtf.log vlc ...
$ grep crocus wtf.log
21999 openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/dri/tls/crocus_dri.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
21999 openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/dri/crocus_dri.so", O_RDONLY|O_CLOEXEC) = 23
21999 write(2, "failed to load driver: crocus\n", 30) = 30
22019 openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/dri/tls/crocus_dri.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
22019 openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/dri/crocus_dri.so", O_RDONLY|O_CLOEXEC) = 28
22019 openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/dri/tls/crocus_dri.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
22011 openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/dri/tls/crocus_dri.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
22011 write(2, "failed to load driver: crocus\n", 30) = 30

So, and now? Is that internal implementation change something which was
supposed to be communicated to users? If yes, where are the docs?
If not, why is this not at least sufficiently transparent to developers,
and made easy to debug?

In any case, it seems to be broken as of now.

#1025389#61
Date:
2023-01-02 09:10:24 UTC
From:
To:
Hi, i965 driver was removed, and replaced by iris, crocus and (gallium
version of) i915.

Did you have any reference to i965 in your configuration?

cd /etc/ && grep -ri i965

If so try to remove them, the system should be able to pick up the
proper driver.

Il giorno dom 1 gen 2023 alle ore 23:47 Eduard Bloch <edi@gmx.de> ha scritto:

#1025389#66
Date:
2023-01-02 12:28:27 UTC
From:
To:
severity 1025389 normal
thanks

Hallo,
* Fabio Pedretti [Mon, Jan 02 2023, 10:10:24AM]:

Okay, the devil is in the details. Multiple issues were involved. First,
I had a custom config snippet in xorg.conf.d which has activated the
intel drivers. I had to add this in earlier times in order to get rid of
tearing.

Another part in the puzzle was an environment setting which I have added
some time ago to work around crashes (first VLC crashes, then all
applications crashes in the major driver loader fu*up a few weeks ago).
So it seems like it was the MESA_LOADER_DRIVER_OVERRIDE=i965 which
actually triggered the Xorg.0.log messages which I have mistakenly
attributed to the incorrect X configuration itself.

So after changing all that, it's now apparently loading the proper
driver (iris in the log), with no errors, and most GL using applications
also work properly. VLC is still crashing on certain video formats but
that is probably due to some internal bug of VLC's vaapi usage (there is
another bugreport for that). But mplayer works mostly fine, except for
some gamma problems.

So in the end, it would be good if there was at least some notice about
the driver configuration change, something in NEWS.Debian, for example.
Maybe with a longer explanation in README.Debian. I can imagine that
more users with customized configurations are affected like I was.

Best regards,
Eduard.

#1025389#73
Date:
2023-03-05 11:46:25 UTC
From:
To:
Hi, I am having the same issue. Intel gen7 + nvidia with PRIME, debian testing
I have intel-media-va-driver-non-free installed and video decoding hw accel is working on vlc, but I would like to get hw acceleration on firefox

arch wiki says :
[mesa-amber](https://archlinux.org/packages/?name=mesa-amber) is the legacy Mesa package which includes the classic (non-Gallium3D) drivers for Gen 2 hardware and later. This driver has better performance and stability for Gen 7 and older hardware.

should we have the classic driver available as well ?
nevertheless, how can I make mesa use the new driver, instead of trying to find the old one which no longer exists ?

please let me know if you need any other information, thanks

$ lscpu
----
Model name: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz

$ lspci -k | grep -EA3 'VGA|3D|Display'
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04)
DeviceName: Onboard IGD
Subsystem: Dell HD Graphics 630
Kernel driver in use: i915

# cd /etc/ && grep -ri i965
/etc#

# grep i9 /var/log/Xorg.0.log
915G, E7221 (i915), 915GM, 945G, 945GM, 945GME, Pineview GM,
[ 18.703] (II) intel(0): Using Kernel Mode Setting driver: i915, version 1.6.0 20201103
[ 18.829] (II) intel(0): [DRI2] DRI driver: i965
[ 18.867] (EE) AIGLX error: dlopen of /usr/lib/x86_64-linux-gnu/dri/i965_dri.so failed (/usr/lib/x86_64-linux-gnu/dri/i965_dri.so: cannot open shared object file: No such file or directory)
[ 18.867] (EE) AIGLX error: unable to load driver i965

# xdriinfo
libGL error: MESA-LOADER: failed to open i965: /usr/lib/dri/i965_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
libGL error: failed to load driver: i965
Screen 0: swrast

$ vlc
[00007fd9c00043f0] gl gl: Initialized libplacebo v4.208.0 (API v208)
libGL error: MESA-LOADER: failed to open i965: /usr/lib/dri/i965_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
libGL error: failed to load driver: i965
libva info: VA-API version 1.17.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_17
libva info: va_openDriver() returns 0
[00007fd9e0c1ae20] avcodec decoder: Using OpenGL/VAAPI backend for VDPAU for hardware decoding

#1025389#78
Date:
2023-03-05 13:03:17 UTC
From:
To:
So, I figured out my case, I hope this helps anyone else with the same issue

for some forsaken reason I had
# intelworkaround
export MESA_LOADER_DRIVER_OVERRIDE=i965

in my ~/.profile, which forced mesa to look for i965, failing since it has been removed in testing, and falling back to SW rendering. you can check if you have the same issue by using MESA_LOADER_DRIVER_OVERRIDE=iris (if iris is the one corresponding to your intel graphics):

:~$ xdriinfo
libGL error: MESA-LOADER: failed to open i965: /usr/lib/dri/i965_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
libGL error: failed to load driver: i965
Screen 0: swrast
:~$ MESA_LOADER_DRIVER_OVERRIDE=iris xdriinfoScreen 0: iris

now HW acceleration is back and my sanity has been restored.

there should be a way of tracking insidious workarounds like that. one day something breaks, you slap a quick workaround to have a working computer, but the non-standard config stays there to bite you in the rear months/years later