Arch 565.57.01 nvidia-drm loads gpu detected / fallling back to llvmpipe

Previously working 560 driver setup prior to deployment of 565.

Issue: Extreme Lag on GPU Monitor (eGPU setup) - forced back to software rendering although strange behaviour even unexpected duplicate key presses are replicated. (Bug Report Attached)

Note - second nvidia 1050Ti GPU set in drain mode on startup to prevent conflict with GTX3080 Discrete GPU

System Information

OS: Garuda Linux x86_64
Kernel: 6.11.5-zen1-1-zen
Resolution: 1920x1080 5120x1440
DE: KDE Plasma 6.2.2
WM: KWin (Wayland)
CPU: Intel(R) Core(TM) i7-8750H (12) @ 4.10 GHz
GPU: NVIDIA GeForce GTX 1050 Ti Mobile
GPU: NVIDIA GeForce RTX 3080 Lite Hash Rate
GPU: Intel UHD Graphics 630 @ 1.10 GHz [Integrated]

Environment Variables (proven working fine with 560 drivers)

export KWIN_DRM_DEVICES=/dev/dri/by-driver/nvidia-card:/dev/dri/by-driver/intel-card  
export DXVK_FILTER_DEVICE_NAME="NVIDIA GeForce RTX 3080"  
export VK_DRIVER_FILES="/usr/share/vulkan/icd.d/nvidia_icd.json"  

EDIT: I should add that NVIDIA-SMI loads and I can see applications running on the 3080 but its as if Plasma is running on the software renderer by default and there is no way to stop it, like the application of KWIN_DRM_DEVICES has changed.

Falling back to software rendering

╰─λ glxinfo -B  
name of display: :1  
display: :1  screen: 0  
direct rendering: Yes  
Extended renderer info (GLX_MESA_query_renderer):  
Vendor: Mesa (0xffffffff)  
Device: llvmpipe (LLVM 18.1.8, 256 bits) (0xffffffff)  
Version: 24.2.5  
Accelerated: no  
Video memory: 39901MB  
Unified memory: yes  
Preferred profile: core (0x1)  
Max core profile version: 4.5  
Max compat profile version: 4.5  
Max GLES1 profile version: 1.1  
Max GLES[23] profile version: 3.2  
Memory info (GL_ATI_meminfo):  
VBO free memory - total: 24 MB, largest block: 24 MB  
VBO free aux. memory - total: 36531 MB, largest block: 36531 MB  
Texture free memory - total: 24 MB, largest block: 24 MB  
Texture free aux. memory - total: 36531 MB, largest block: 36531 MB  
Renderbuffer free memory - total: 24 MB, largest block: 24 MB  
Renderbuffer free aux. memory - total: 36531 MB, largest block: 36531 MB  
Memory info (GL_NVX_gpu_memory_info):  
Dedicated video memory: 4292994651 MB  
Total available memory: 4293034552 MB  
Currently available dedicated video memory: 24 MB  
OpenGL vendor string: Mesa  
OpenGL renderer string: llvmpipe (LLVM 18.1.8, 256 bits)  
OpenGL core profile version string: 4.5 (Core Profile) Mesa 24.2.5-arch1.1  
OpenGL core profile shading language version string: 4.50  
OpenGL core profile context flags: (none)  
OpenGL core profile profile mask: core profile  
  
OpenGL version string: 4.5 (Compatibility Profile) Mesa 24.2.5-arch1.1  
OpenGL shading language version string: 4.50  
OpenGL context flags: (none)  
OpenGL profile mask: compatibility profile  
  
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 24.2.5-arch1.1  
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

Vulkan Fails (Debug)

INFO:              Portability enumeration bit was set, enumerating portability drivers.  
LAYER:             Searching for implicit layer manifest files  
LAYER:                In following locations:  
LAYER:                   /home/user1/.config/vulkan/implicit_layer.d  
LAYER:                   /home/user1/.config/kdedefaults/vulkan/implicit_layer.d  
LAYER:                   /etc/xdg/vulkan/implicit_layer.d  
LAYER:                   /etc/vulkan/implicit_layer.d  
LAYER:                   /home/user1/.local/share/vulkan/implicit_layer.d  
LAYER:                   /home/user1/.local/share/flatpak/exports/share/vulkan/implicit_layer.d  
LAYER:                   /var/lib/flatpak/exports/share/vulkan/implicit_layer.d  
LAYER:                   /usr/local/share/vulkan/implicit_layer.d  
LAYER:                   /usr/share/vulkan/implicit_layer.d  
LAYER:                Found the following files:  
LAYER:                   /etc/vulkan/implicit_layer.d/nvidia_layers.json  
LAYER:                   /home/user1/.local/share/vulkan/implicit_layer.d/steamoverlay_i386.json  
LAYER:                   /home/user1/.local/share/vulkan/implicit_layer.d/steamoverlay_x86_64.json  
LAYER:                   /home/user1/.local/share/vulkan/implicit_layer.d/steamfossilize_i386.json  
LAYER:                   /home/user1/.local/share/vulkan/implicit_layer.d/steamfossilize_x86_64.json  
LAYER:                   /usr/share/vulkan/implicit_layer.d/VkLayer_FROG_gamescope_wsi.x86_64.json  
LAYER:                   /usr/share/vulkan/implicit_layer.d/nvidia_layers.json  
INFO:              Found manifest file /etc/vulkan/implicit_layer.d/nvidia_layers.json (file version 1.0.0)  
INFO:              Found manifest file /home/user1/.local/share/vulkan/implicit_layer.d/steamoverlay_i386.json  
(file version 1.0.0)  
INFO:              Found manifest file /home/user1/.local/share/vulkan/implicit_layer.d/steamoverlay_x86_64.js  
on (file version 1.0.0)  
INFO:              Found manifest file /home/user1/.local/share/vulkan/implicit_layer.d/steamfossilize_i386.js  
on (file version 1.0.0)  
INFO:              Found manifest file /home/user1/.local/share/vulkan/implicit_layer.d/steamfossilize_x86_64.  
json (file version 1.0.0)  
INFO:              Found manifest file /usr/share/vulkan/implicit_layer.d/VkLayer_FROG_gamescope_wsi.x86_64.js  
on (file version 1.0.0)  
INFO:              Found manifest file /usr/share/vulkan/implicit_layer.d/nvidia_layers.json (file version 1.0  
.1)  
LAYER:             Searching for explicit layer manifest files  
LAYER:                In following locations:  
LAYER:                   /home/user1/.config/vulkan/explicit_layer.d  
LAYER:                   /home/user1/.config/kdedefaults/vulkan/explicit_layer.d  
LAYER:                   /etc/xdg/vulkan/explicit_layer.d  
LAYER:                   /etc/vulkan/explicit_layer.d  
LAYER:                   /home/user1/.local/share/vulkan/explicit_layer.d  
LAYER:                   /home/user1/.local/share/flatpak/exports/share/vulkan/explicit_layer.d  
LAYER:                   /var/lib/flatpak/exports/share/vulkan/explicit_layer.d  
LAYER:                   /usr/local/share/vulkan/explicit_layer.d  
LAYER:                   /usr/share/vulkan/explicit_layer.d  
LAYER:                Found no files  
DRIVER:            Searching for driver manifest files  
DRIVER:               In following locations:  
DRIVER:                  /usr/share/vulkan/icd.d/nvidia_icd.json  
DRIVER:               Found the following files:  
DRIVER:                  /usr/share/vulkan/icd.d/nvidia_icd.json  
DRIVER:            Found ICD manifest file /usr/share/vulkan/icd.d/nvidia_icd.json, version 1.0.1  
DEBUG | DRIVER:    Searching for ICD drivers named libGLX_nvidia.so.0  
LAYER:             vkCreateInstance layer callstack setup to:  
LAYER:                <Application>  
LAYER:                  ||  
LAYER:                <Loader>  
LAYER:                  ||  
LAYER:                <Drivers>  
INFO | DRIVER:     linux_read_sorted_physical_devices:  
INFO | DRIVER:          Original order:  
INFO | DRIVER:                [0] NVIDIA GeForce RTX 3080  
INFO | DRIVER:          Sorted order:  
INFO | DRIVER:                [0] NVIDIA GeForce RTX 3080  
INFO | DRIVER:     linux_read_sorted_physical_devices:  
INFO | DRIVER:          Original order:  
INFO | DRIVER:                [0] NVIDIA GeForce RTX 3080  
INFO | DRIVER:          Sorted order:  
INFO | DRIVER:                [0] NVIDIA GeForce RTX 3080  
DEBUG | DRIVER:    Copying old device 0 into new device 0  
INFO | DRIVER:     linux_read_sorted_physical_devices:  
INFO | DRIVER:          Original order:  
INFO | DRIVER:                [0] NVIDIA GeForce RTX 3080  
INFO | DRIVER:          Sorted order:  
INFO | DRIVER:                [0] NVIDIA GeForce RTX 3080  
DEBUG | DRIVER:    Copying old device 0 into new device 0  
INFO | DRIVER:     linux_read_sorted_physical_devices:  
INFO | DRIVER:          Original order:  
INFO | DRIVER:                [0] NVIDIA GeForce RTX 3080  
INFO | DRIVER:          Sorted order:  
INFO | DRIVER:                [0] NVIDIA GeForce RTX 3080  
DEBUG | DRIVER:    Copying old device 0 into new device 0  
INFO | DRIVER:     linux_read_sorted_physical_devices:  
INFO | DRIVER:          Original order:  
INFO | DRIVER:                [0] NVIDIA GeForce RTX 3080  
INFO | DRIVER:          Sorted order:  
INFO | DRIVER:                [0] NVIDIA GeForce RTX 3080  
DEBUG | DRIVER:    Copying old device 0 into new device 0  
INFO | DRIVER:     linux_read_sorted_physical_devices:  
INFO | DRIVER:          Original order:  
INFO | DRIVER:                [0] NVIDIA GeForce RTX 3080  
INFO | DRIVER:          Sorted order:  
INFO | DRIVER:                [0] NVIDIA GeForce RTX 3080  
DEBUG | DRIVER:    Copying old device 0 into new device 0  
ERROR at /usr/src/debug/vulkan-tools/Vulkan-Tools-1.3.269/vulkaninfo/./vulkaninfo.h:1118:vkCreateWaylandSurfac  
eKHR failed with ERROR_OUT_OF_HOST_MEMORY

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

After applying CachyOS repos I did manage to get 565.57.01 to apply successfully. Maybe there might be some benefit in developing a compatibility chart for explicit sync drivers. It seems that the is some variance in what distribution package managers are deploying with these drivers. Maybe I’m misunderstanding some more complicated dependencies but it seems that the driver itself is quite functional, the delivery to end users could be cleaned up. Obviously we have moved a long way in a short period of time so this is somewhat understandable.

Hey, have the same issues with my Laptop. I have a 1650 with an external display. CachyOS helped me too in fixing the lag. Just wanted to ask you, if you have any lags in games on external display (if you play). Because when I do, I have lots of issues with lags (also with KDE Wayland). Interesting find: when I play a youtube video in the background, the display is not lagging, and the game feels smoothly.

I think the problem is all of the different graphics subsystems cannot decide on which GPU to use.

I’m not having the same lag issue in most games, some don’t work great though. As far as I understand, the only way to get around this is to apply environment variables to tell everything what GPU to use. Maybe there is a better way but I haven’t found it…

I have a plasma script to trigger the environment variables based on detected hardware I can share if your interested.

My currently applied environment variables

KWIN_DRM_DEVICES=/dev/dri/by-driver/nvidia-card:/dev/dri/by-driver/intel-card
DXVK_FILTER_DEVICE_NAME="NVIDIA GeForce RTX 3080"
VK_DRIVER_FILES="/usr/share/vulkan/icd.d/nvidia_icd.json"

I have had luck with these in some setups:

MESA_VK_DEVICE_SELECT=10de:2216 
MESA_VK_DEVICE_SELECT_FORCE_DEFAULT_DEVICE=1

Maybe this guy might have a fix for you? Looks like is applying straight to /etc/environment (may not work if you are not always connected to the external display)

https://forums.developer.nvidia.com/t/gui-apps-running-on-external-monitor-with-1-fps/310131

#Disabling DRI3 to fix 1FPS on external monitor
LIBGL_DRI3_DISABLE=true

#Offload graphics processing to NVIDIA
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json
VK_LOADER_DRIVERS_SELECT=nvidia
_EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/10_nvidia.json
__GLX_VENDOR_LIBRARY_NAME=nvidia
__NV_PRIME_RENDER_OFFLOAD=1
__NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0
__VK_LAYER_NV_optimus=NVIDIA_only