=x11-drivers/nvidia-drivers-550.40.07 comes with 64-bit nvidia-drm_gbm.so in /usr/lib64/gbm/nvidia-drm_gbm.so but there's no 32-bit /usr/lib/gbm/nvidia-drm_gbm.so library, despite that abi_x86_32 is set in the USE flags. this affects CEF/Chromium applications like Steam and Gamescope which causes flickering and more visual bugs under Wayland. I tried setting GBM_BACKENDS_PATH=/usr/lib64/gbm,/usr/lib/gbm in /etc/environment but that results in a black screen. Portage 3.0.61 (python 3.11.7-final-0, default/linux/amd64/17.1/desktop/plasma, gcc-13, glibc-2.38-r10, 6.7.2-gentoo-r1-cute x86_64) ================================================================= System uname: Linux-6.7.2-gentoo-r1-cute-x86_64-Intel-R-_Pentium-R-_CPU_G4560_@_3.50GHz-with-glibc2.38 KiB Mem: 16316244 total, 7970496 free KiB Swap: 0 total, 0 free Head commit of repository gentoo: e8863cccd0e4f6dd4b4c6337417a56a1a37fcc04 Timestamp of repository guru: Fri, 02 Feb 2024 06:33:11 +0000 Head commit of repository guru: 1af9353e24db57f672ffe0a6fe32ad1bd18c9e9f Timestamp of repository haarp: Wed, 31 Jan 2024 14:07:10 +0000 Head commit of repository haarp: be20f9b1f8efdfe4ac96f7c679afc27951010cae Timestamp of repository pentoo: Fri, 02 Feb 2024 23:48:21 +0000 Head commit of repository pentoo: 3f353330b1451cc1b2739b45a471710194e1d4bc Timestamp of repository steam-overlay: Wed, 31 Jan 2024 14:07:10 +0000 Head commit of repository steam-overlay: c872878fa2b1fec44985e08a3c20938221eb7ecf sh bash 5.1_p16-r6 ld GNU ld (Gentoo 2.41 p4) 2.41.0 app-misc/pax-utils: 1.3.7::gentoo app-shells/bash: 5.1_p16-r6::gentoo dev-build/autoconf: 2.71-r6::gentoo dev-build/automake: 1.16.5-r1::gentoo dev-build/cmake: 3.27.9::gentoo dev-build/libtool: 2.4.7-r1::gentoo dev-build/make: 4.4.1-r1::gentoo dev-build/meson: 1.3.0-r2::gentoo dev-java/java-config: 2.3.3-r1::gentoo dev-lang/perl: 5.38.2-r1::gentoo dev-lang/python: 3.11.7::gentoo, 3.12.1_p1::gentoo dev-lang/rust-bin: 1.74.1::gentoo sys-apps/baselayout: 2.14-r1::gentoo sys-apps/openrc: 0.53::gentoo sys-apps/sandbox: 2.38::gentoo sys-devel/binutils: 2.41-r3::gentoo sys-devel/binutils-config: 5.5::gentoo sys-devel/clang: 16.0.6::gentoo, 17.0.6::gentoo sys-devel/gcc: 13.2.1_p20240113-r1::gentoo sys-devel/gcc-config: 2.11::gentoo sys-devel/llvm: 16.0.6::gentoo, 17.0.6::gentoo sys-kernel/linux-headers: 6.6::gentoo (virtual/os-headers) sys-libs/glibc: 2.38-r10::gentoo Repositories: gentoo location: /var/db/repos/gentoo sync-type: git sync-uri: github.com/gentoo/gentoo # hypertext transfer protocol URI removed, sorry priority: -1000 volatile: False guru location: /var/db/repos/guru sync-type: git sync-uri: github.com/gentoo-mirror/guru.git # hypertext transfer protocol URI removed, sorry masters: gentoo volatile: False haarp location: /var/db/repos/haarp sync-type: git sync-uri: github.com/gentoo-mirror/haarp.git # hypertext transfer protocol URI removed, sorry masters: gentoo volatile: False pentoo location: /var/db/repos/pentoo sync-type: git sync-uri: github.com/gentoo-mirror/pentoo.git # hypertext transfer protocol URI removed, sorry masters: gentoo volatile: False steam-overlay location: /var/db/repos/steam-overlay sync-type: git sync-uri: github.com/gentoo-mirror/steam-overlay.git # hypertext transfer protocol URI removed, sorry masters: gentoo volatile: False Binary Repositories: gentoobinhost priority: 1 sync-uri: gentoo.zero.com.ar/gentoo/releases/amd64/binpackages/17.1/x86-64 # hypertext transfer protocol URI removed, sorry ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="*" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/sandbox.d /etc/terminfo" CXXFLAGS="-march=native -O2 -pipe" DISTDIR="/var/cache/distfiles" ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME" FCFLAGS="-march=native -O2 -pipe" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live candy config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch parallel-install pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-march=native -O2 -pipe" GENTOO_MIRRORS="distfiles.gentoo.org" # hypertext transfer protocol URI removed, sorry LANG="en_US.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LEX="flex" MAKEOPTS="-j4 -l4" PKGDIR="/var/cache/binpkgs" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" PORTAGE_TMPDIR="/var/tmp" SHELL="/bin/bash" USE="X a52 aac acl acpi activities alsa amd64 branding bzip2 cairo cdda cdr cli crypt cups dbus declarative dri dts dvd dvdr elogind encode eudev exif flac fortran gdbm gif gpm gui iconv icu ipv4 ipv6 jpeg kde kf6compat kwallet lcms libnotify libtirpc mad mng mp3 mp4 mpeg multilib ncurses networkmanager nls ogg opengl openmp pam pango pcre pdf pipewire plasma png policykit ppds pulseaudio qml qt5 readline screencast sdl seccomp semantic-desktop sound spell split-usr ssl startup-notification svg test-rust tiff truetype udev udisks unicode upower usb vaapi vorbis vulkan wayland widgets wxwidgets x264 xattr xcb xft xml xv xvid zlib" ABI_X86="64" ADA_TARGET="gnat_2021" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2 aes pclmul popcnt rdrand sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 ntrip navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-1" POSTGRES_TARGETS="postgres15" PYTHON_SINGLE_TARGET="python3_11" PYTHON_TARGETS="python3_11" RUBY_TARGETS="ruby31" VIDEO_CARDS="intel i915 nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto logmark ipmark dhcpmac delude chaos account" Unset: ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EMERGE_DEFAULT_OPTS, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PYTHONPATH, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS
(please don't cc arches)
First I hear of someone having issue with that. For what it's worth, the (upstream) NVIDIA installer *also* does not create the 32bit symlink even if you ask it to install 32bit libraries. It also lack a 32bit egl-gbm. The ebuild is basically doing what upstream does. Are you sure it's the cause of your issues and not just a message that happens to be displayed? Given NVIDIA also doesn't ship with a 32bit version of egl-gbm, I'm not convinced it'd be usable even if the symlink exists (it may however silence load error messages, but not necessarily solve your problems). Anyhow you can try it with: mkdir -p /usr/lib/gbm && ln -s ../libnvidia-allocator.so.1 /usr/lib/gbm/nvidia-drm_gbm.so If doing that doesn't help, then having the ebuild do it wouldn't help anything. If it does help, I don't mind manually doing the symlink.
(In reply to Ionen Wolkens from comment #2) > First I hear of someone having issue with that. > > For what it's worth, the (upstream) NVIDIA installer *also* does not create > the 32bit symlink even if you ask it to install 32bit libraries. It also > lack a 32bit egl-gbm. The ebuild is basically doing what upstream does. > > Are you sure it's the cause of your issues and not just a message that > happens to be displayed? > > Given NVIDIA also doesn't ship with a 32bit version of egl-gbm, I'm not > convinced it'd be usable even if the symlink exists (it may however silence > load error messages, but not necessarily solve your problems). > > Anyhow you can try it with: > > mkdir -p /usr/lib/gbm && ln -s ../libnvidia-allocator.so.1 > /usr/lib/gbm/nvidia-drm_gbm.so > > If doing that doesn't help, then having the ebuild do it wouldn't help > anything. If it does help, I don't mind manually doing the symlink. I think it has to do with the unavailable 32-bit egl-gbm but I'm not really that sure, but flickering and graphical glitches take effect for some reason. Also, I tried using your workaround and got this error: MESA-LOADER: failed to open nvidia-drm: /usr/lib64/gbm/nvidia-drm_gbm.so: wrong ELF class: ELFCLASS64 (search paths /usr/lib64/gbm, suffix _gbm)
(In reply to breaktrace from comment #3) > (In reply to Ionen Wolkens from comment #2) > > First I hear of someone having issue with that. > > > > For what it's worth, the (upstream) NVIDIA installer *also* does not create > > the 32bit symlink even if you ask it to install 32bit libraries. It also > > lack a 32bit egl-gbm. The ebuild is basically doing what upstream does. > > > > Are you sure it's the cause of your issues and not just a message that > > happens to be displayed? > > > > Given NVIDIA also doesn't ship with a 32bit version of egl-gbm, I'm not > > convinced it'd be usable even if the symlink exists (it may however silence > > load error messages, but not necessarily solve your problems). > > > > Anyhow you can try it with: > > > > mkdir -p /usr/lib/gbm && ln -s ../libnvidia-allocator.so.1 > > /usr/lib/gbm/nvidia-drm_gbm.so > > > > If doing that doesn't help, then having the ebuild do it wouldn't help > > anything. If it does help, I don't mind manually doing the symlink. > I think it has to do with the unavailable 32-bit egl-gbm but I'm not really > that sure, but flickering and graphical glitches take effect for some reason. > Also, I tried using your workaround and got this error: > MESA-LOADER: failed to open nvidia-drm: /usr/lib64/gbm/nvidia-drm_gbm.so: > wrong ELF class: ELFCLASS64 (search paths /usr/lib64/gbm, suffix _gbm) Sorry, I realized I just set the wrong file and path, I'm going to symlink properly in a sec
(In reply to breaktrace from comment #3) > I think it has to do with the unavailable 32-bit egl-gbm but I'm not really > that sure, but flickering and graphical glitches take effect for some reason. That it would cause flickering sound rather unlikely to me. I could understand if things just straight up didn't work, not "work badly". (In reply to breaktrace from comment #4) > (In reply to breaktrace from comment #3) > Sorry, I realized I just set the wrong file and path, I'm going to symlink > properly in a sec Don't forget to get rid of GBM_BACKEND_PATHS if you still have it, that it's looking in lib64 sounds odd.
(In reply to Ionen Wolkens from comment #5) > (In reply to breaktrace from comment #3) > > I think it has to do with the unavailable 32-bit egl-gbm but I'm not really > > that sure, but flickering and graphical glitches take effect for some reason. > That it would cause flickering sound rather unlikely to me. I could > understand if things just straight up didn't work, not "work badly". > > (In reply to breaktrace from comment #4) > > (In reply to breaktrace from comment #3) > > Sorry, I realized I just set the wrong file and path, I'm going to symlink > > properly in a sec > Don't forget to get rid of GBM_BACKEND_PATHS if you still have it, that it's > looking in lib64 sounds odd. I got rid of GBM_BACKEND_PATHS in /etc/environment, but I got the same error again: MESA-LOADER: failed to open nvidia-drm: /usr/lib/gbm/nvidia-drm_gbm.so: wrong ELF class: ELFCLASS64 (search paths /usr/lib/gbm, suffix _gbm) I'm on a GTX 1050 and I was using KDE Plasma 5 and had flickering/graphical bugs on Steam, and also I got an "libEGL warning: egl: failed to create dri2 screen" error which is pretty awkward. I'm on KDE Plasma 6.0 RC2 now and the same issues occur.
Well I don't know what you're running into but, as far as this bug goes, it doesn't sound like adding the symlink would help then. Perhaps it's even making things worse from the sound of it? Unless got a mess going from tinkering with this and it's hard to tell what's going on anymore.
wrt flickering, I do recall a few threads about 550 drivers (maybe 545 too, albeit I seen more reports about 550), e.g. https://forums.developer.nvidia.com/t/280484/2 Not that I can do anything about that, you could either try nvidia-drivers-535 or go back to Xorg for now. Note that 550 is a unkeyworded beta.
Well, I'll just go ahead and close this for now. Don't want to differ from what the official NVIDIA installer is doing without some confirmation that it's at least useful for something and not just a guess that it may or may not help (don't use/test steam myself). Likewise for multilib egl-gbm (NVIDIA doesn't ship a 32bit version for it, but egl-gbm is open source so it'd be possible to build it -- but again, only if can get some confirmation that it's useful). Imagine it may possibly(?) get used by wine now that it's getting native wayland support, but most/all other 32bit-only applications are old and wouldn't use wayland in the first place. Wine has the new alternate option to enable USE="wow64 -abi_x86_32" which doesn't need ELF multilib for 32bit too.