545 driver doesn't work on optimus

535 driver worked fine. 545 is completely broken.
Passing __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only doesn’t work at all for launch of wine apps. Native apps work fine.
I have Intel iGPU and MX250 dGPU. More about problem [Bug]: X Error of failed request: BadMatch (invalid parameter attributes) when using proton 8.0 and above. · Issue #3078 · bottlesdevs/Bottles · GitHub
I also tested few distributions with recommended way of installing nvidia driver everywhere.
Fedora: worked from time to time when I passed VK_ICD_FILENAMES=/usr/lib/x86_64-linux-gnu/GL/vulkan/icd.d/nvidia_icd.json VK_LAYER_PATH=/usr/lib/x86_64-linux-gnu/GL/vulkan/explicit_layer.d. Shipped by rpmfusion. Wayland session.
openSUSE: shipped by nvidia. Wayland session works out of the box same good as 535 did. x11 session doesn’t work without passing `__GLX_VENDOR_LIBRARY_NAME=nvidia VK_ICD_FILENAMES=/etc/vulkan/icd.d/nvidia_icd.json
Arch: same problems same workarounds as fedora.
Looks similar Nvidia-dkms 545 prime-run doesn't work for igpu on optimus laptop
No response since November last year!!! Even despite the detailed report. I’ve been struggling with this problem for a month now. No problem on Linux has ever given me such a headache as your proprietary driver.
nvidia-bug-report.log.gz (383.0 KB)
Current workaround is rollback wherever it’s possible (because somewhere it’s not possible due your new feature 545 release as stable which is 535 right now according to your site). No idea why you packaged 545 as stable for openSUSE when it’s more like test version.

It’s not that easy, the problem exists but the root cause is rather unclear. e.g. for me, everything works fine with driver 545, wine/proton-8 and offloading, zero issues.
Maybe attach here to see even on the same system the behavior is not consistent:
https://forums.developer.nvidia.com/t/proton-ge-8-prime-render-offload-outside-of-steam-wont-work-anymore-under-x11/279987?u=generix

535.129.03 works fine on fedora kinoite ublue image. But there is different kernel also since image is old and support discontinued because rpmfusion stopped package 535 and moved on 545.

Operating System: Fedora Linux 39
KDE Plasma Version: 5.27.9
KDE Frameworks Version: 5.111.0
Qt Version: 5.15.11
Kernel Version: 6.6.3-666.rog.fc39.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 8 × Intel® Core™ i5-8265U CPU @ 1.60GHz
Memory: 11.5 GiB of RAM
Graphics Processor: Mesa Intel® UHD Graphics 620
Manufacturer: ASUSTeK COMPUTER INC.
Product Name: VivoBook_ASUSLaptop X509FL_R521FL
System Version: 1.0

nvidia-bug-report.log.gz (309.3 KB)

I’d find it interesting to know whether glxinfo32 would work and what it has to say but I don’t know how to get that for fedora.

535 & kernel 6.6.3-666.rog.fc39.x86_64

vertigo.red@fedora:/var/home/vertigo.red$ __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only glxinfo32 -B
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 2048 MB
    Total available memory: 2048 MB
    Currently available dedicated video memory: 1999 MB
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce MX250/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 535.129.03
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6.0 NVIDIA 535.129.03
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)

OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 535.129.03
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

---

545 & kernel 6.6.10-667.rog.fc39.x86_64

vertigo.red@fedora:/var/home/vertigo.red$ __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only glxinfo32 -B
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 2048 MB
    Total available memory: 2048 MB
    Currently available dedicated video memory: 1999 MB
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce MX250/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 545.29.06
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6.0 NVIDIA 545.29.06
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)

OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 545.29.06
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

Lmao. Now 545 works.

vertigo.red@fedora:/var/home/vertigo.red$ nvidia-smi
Mon Jan 29 15:11:30 2024       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 545.29.06              Driver Version: 545.29.06    CUDA Version: 12.3     |
|-----------------------------------------+----------------------+----------------------+
| 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  NVIDIA GeForce MX250           Off | 00000000:02:00.0 Off |                  N/A |
| N/A   63C    P0              N/A / ERR! |    376MiB /  2048MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A      5212    C+G   ...les (x86)\Battle.net\Battle.net.exe      376MiB |
+---------------------------------------------------------------------------------------+

Interesting. Maybe installing glxinfo32 pulled in the necessary dependencies which were missing before?

1 Like

No idea. Testing further. But there wasn’t preinstalled 32x version of glxinfo, yes. Only 64x. Had to install manually. Also I have theory 535 driver might have created some configs or files, that 545 couldn’t, no?

That shouldn’t be possible since the nvidia driver files are versioned so a 535 driver can’t create links for 545 files. What might be possible is that dependencies in packaging changed between those versions and 535 enabled pulling in the 32bit stuff while 545 this had to be done manually. This can only be answered by the repo manager where you got the driver from.

That’s odd. I had opportunity to test openSUSE Tumbleweed also. And driver there packaged by nvidia itself for a note. x11 didn’t work there and wayland worked fine. I mean wine apps, since for DE rendering I use Intel iGPU. I guess it’s another problem then.

What I tested on fedora so far looks good. Heavy openGL apps work fine too.

I can confirm problem solved on fedora with installation of glx-utils.i686.
Dependencies are:

glibc >= 2.37.9000-17
libGL.so.1
libX11.so.6
libc.so.6(GLIBC_2.38)
libm.so.6
libm.so.6(GLIBC_2.1)
libm.so.6(GLIBC_2.27)
rtld(GNU_HASH)

Any idea what it might be? Because it’s not really fast to layer packages in fedora kinoite.

Maybe glvnd (libGL.so.1) for 32bit was missing.
With driver packages directly from nvidia, one has to be careful since some don’t include the 32bit driver libs at all, only meant for compute, not gaming.

I remember there was an issue with the latest nvidia drivers - they stopped providing libnvidiagl i386 in the official bundle, so games like CSS were almost frozen or had 1fps
so, after installing the corresponding package everything worked smoothly again

It’s libnvidia-egl. And likely included everywhere in nvidia packages by maintainers.

So. What I did. Performed clean installation of fedora kinoite. Installed glxinfo32 package. Tried to launch wine. Same old error. It was wayland. Then I switched to x11. Tried launch wine - same error. Then I returned to wayland. Launched wine and it worked. Problem somewhere in switching display servers. After reboot have to repeat switch to make nvidia work.
And looks like libglvnd-glx-1.7.0-1.fc39.i686 (provides libGL.so.1) was installed all the the time without glxinfo32 explicit installation. So it wasn’t the issue.

I’ve managed to work it on openSUSE TW x11 too. I switched from x11 to wayland KDE session, tried to launch wine there, returned to x11 session and launched wine successfully. No idea what happened in the background. Looks like it fixed x11 error BadMatch.
Before that I’ve installed libglvnd-32 version and 32 versions of packages from screenshot because on openSUSE libGL.so.1 packaged somewhere there (Mesa-demo-x-32bit perhaps).
изображение
But I’m not sure installing packages solved BadMatch error. More like packages fixed some other problems (there were, I didn’t save log with them because they looked minor and fixed fast with mentioned packages installation) because Nvidia indeed stopped packaging some libraries with driver, so x32 wine apps still require them.
And it still works after reboot unlike fedora.
It was wine 7. Seems 8 has regression indeed because of added wayland support probably. Because if I remember correct out of the box installation worked fine in wayland session.

Driver 535.154.05 as .run
openSUSE Tumbleweed
x11
Success with wine 7 or 9. But not 8!!! Looks like regression in wine. Will check on latest 545 packaged for openSUSE.

Driver 545.29.06 packaged as rpm by nvidia for openSUSE
openSUSE Tumbleweed
x11
Works only with wine 9. Didn’t work with 7 and 8.

I discovered a pattern. I’m running Fedora Wayland Plasma and wayland SDDM. Nvidia doesn’t work. Fallback to iGPU. Then I switch plasma session to x11. Wine is able to use nvidia dGPU. Then I switch back to Wayland session and nvidia works there too now. What happens in x11 is left and lets wayland work properly too.