Plasma6 Wayland with nVidia - horrible stuttering occurs

Hello,

  • OpenMandriva Lx version: 25.04 ROME

  • Desktop environment (KDE, LXQT…): Plasma6 Wayland

  • Description of the issue (screenshots if relevant):

Do you have a success with running Plasma6 Wayland version with nvidia hardware?
Maybe I am doing something wrong, but in my case it is working horrible (many stuttering within even mouse cursor moving, like it was be rendering with 2fps) I can also observe very high cpu usage reported by monitoring (see below screenshot) without running anything but plasma itself.

  • Relevant informations (hardware involved, software version, logs or output…):
    Desktop PC, AMD AM5 Motherboard ASUS X670E-plus, Ryzen 7 7700X, 32 GB RAM DDR5, nvidia GeForce RTX 4080, nvidia proprietary driver from ROME repo, Kernel 6.13.9 - the latest stable in ROME.

Edit: I should also mention that I have OMLx X11 version installed, then I have added a package called task-plasma6-wayland with dependencies to check how it will be working on my machine

Can you check if the nvidia driver is actually used or if there is a software fallback to llvmpipe?

Run “inxi -G”
Also you can check in kde system setting what is used.

Graphics:
  Device-1: NVIDIA AD103 [GeForce RTX 4080] driver: nvidia v: 570.133.07
  Device-2: Advanced Micro Devices [AMD/ATI] Raphael driver: amdgpu
    v: kernel
  Display: wayland server: X.org v: 1.21.1.16 with: Xwayland v: 24.1.6
    compositor: kwin_wayland driver: X: loaded: amdgpu,nvidia
    unloaded: fbdev,modesetting,nouveau,radeon,vesa dri: radeonsi
    gpu: nvidia,nvidia-nvswitch resolution: 3840x2160~144Hz
  API: EGL v: 1.5 drivers: kms_swrast,nvidia,swrast
    platforms: gbm,wayland,x11,surfaceless,device
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: mesa v: 25.0.2
    renderer: llvmpipe (LLVM 19.1.7 256 bits)
  API: Vulkan v: 1.4.307 drivers: N/A surfaces: xcb,xlib,wayland
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo de: kscreen-console
    gpu: nvidia-settings,nvidia-smi wl: wayland-info
    x11: xdpyinfo, xprop, xrandr

That’s weird to me that Display says wayland but server says X.org.

I have also been trying to search through system information and I have found this:

Compositing
===========
Compositing is active
Compositing Type: OpenGL
OpenGL vendor string: Mesa
OpenGL renderer string: llvmpipe (LLVM 19.1.7, 256 bits)
OpenGL version string: 4.5 (Core Profile) Mesa 25.0.2
OpenGL platform interface: EGL
OpenGL shading language version string: 4.50
Driver: LLVMpipe
GPU class: Unknown
OpenGL version: 4.5
GLSL version: 4.50
Mesa version: 25.0.2
Linux kernel version: 6.13.9
Direct rendering: Requires strict binding: no
Virtual Machine:  no
OpenGL 2 Shaders are used

So you are probably right about software accelleration used by default on my system, how can I change that?

I had the same problem. Had to switch over to X11 and got back to smooth sailing.

@bero , may be check this point

I have moved couple steps further, Now I have proper Compositing driver in use (nvidia).
What I did to fix this:

  1. Install missing nvidia egl package lib64nvidia-egl-wayland1.x86_64
  2. Set global env variables in /etc/environment:
__GLX_VENDOR_LIBRARY_NAME=nvidia
__EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/10_nvidia.json

Then reboot and login to plasma wayland session.

Most of stuttering has been fixed, but still I have some glitches (very slow scrolling) in Brave, and Kitty terminal is not starting.

Edit: Ok for a brave a quick solution was to disable in Settings/System Use graphics acceleration when available.

Edit2: For a kitty It seems that something is not compatible with EGL:

[engine@engine-om ~]$ kitty
[0,069] [glfw error 65542]: EGL: Failed to get EGL display: EGL failed to allocate resources for the requested operation
[0,074] Traceback (most recent call last):
  File "/usr/bin/../lib64/kitty/kitty/main.py", line 528, in main
    _main()
  File "/usr/bin/../lib64/kitty/kitty/main.py", line 520, in _main
    run_app(opts, cli_opts, bad_lines, talk_fd)
  File "/usr/bin/../lib64/kitty/kitty/main.py", line 253, in __call__
    _run_app(opts, args, bad_lines, talk_fd)
  File "/usr/bin/../lib64/kitty/kitty/main.py", line 222, in _run_app
    window_id = create_os_window(
                ^^^^^^^^^^^^^^^^^
ValueError: Failed to create GLFWwindow

Edit 3: It was too fast, something is still wrong, plasma is telling in systray that Software Renderer in Use, Rendering may be degraded. So one step further but still glitche.

Wow, what a discovery I did when trying to fix that issue.
It seems that my motherboard (Asus X670E-Plus) or even AM5 platform itself can passthrough display from additional graphics card (GeForce RTX 4080) to Integrated AMD GPU. I have just connected display port cable directly to motherboard port, none display adapters are connected to GeForce itself. Now I can run OpenMandriva desktop using AMD iGPU - so Plasma6 is working without an issue on wayland, and when I run a game with steam or lutris, GeForce gpu is used for rendering, game works great but screen is still connected to Motherboard DisplayPort.
Amazing!
I wasn’t aware that something like that is possible. Now I need to check if it will work the other way - so monitor connected to GeForce, but rendering done by integrated GPU.

So it is a workaround for this issue in this topic, but I still want to find out how to fix that nvidia+wayland cooperation, so not closing it.

have you something like mangohud to confirm that point ?
you will see then memoty GPU in this case

I have nvtop running in a terminal and can monitor which gpu is occupied - and it confirms that!

It even works in window display

which kernel are you using ?
can you report

inxi -Fza

Sure:

System:
  Kernel: 6.13.9-desktop-3omv2590 arch: x86_64 bits: 64 compiler: clang
    v: 19.1.7 clocksource: tsc avail: hpet,acpi_pm
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.13.9-desktop-3omv2590
    root=UUID=bad9810d-7415-4cc1-8c46-1dcbb824e5a6 ro nouveau.modeset=0
    nvidia-drm.modeset=1 nvidia-drm.fbdev=1 quiet splash logo.nologo audit=0
    rd.timeout=120 dm_mod.use_blk_mq=1 rd.systemd.show_status=0
    systemd.show_status=0
  Desktop: KDE Plasma v: 6.3.4 tk: Qt v: N/A info: frameworks v: 6.12.0
    wm: kwin_wayland vt: 2 dm: SDDM Distro: OpenMandriva Lx 25.04 ROME
Machine:
  Type: Desktop System: ASUS product: N/A v: N/A serial: <superuser required>
  Mobo: ASUSTeK model: TUF GAMING X670E-PLUS v: Rev 1.xx
    serial: <superuser required> part-nu: SKU uuid: <superuser required>
    UEFI: American Megatrends v: 2613 date: 04/12/2024
CPU:
  Info: model: AMD Ryzen 7 7700X bits: 64 type: MT MCP arch: Zen 4 gen: 4
    level: v4 note: check built: 2022+ process: TSMC n5 (5nm) family: 0x19 (25)
    model-id: 0x61 (97) stepping: 2 microcode: 0xA601209
  Topology: cpus: 1x dies: 1 clusters: 1 cores: 8 threads: 16 tpc: 2
    smt: enabled cache: L1: 512 KiB desc: d-8x32 KiB; i-8x32 KiB L2: 8 MiB
    desc: 8x1024 KiB L3: 32 MiB desc: 1x32 MiB
  Speed (MHz): avg: 3551 min/max: 545/5573 boost: enabled scaling:
    driver: amd-pstate-epp governor: powersave cores: 1: 3551 2: 3551 3: 3551
    4: 3551 5: 3551 6: 3551 7: 3551 8: 3551 9: 3551 10: 3551 11: 3551 12: 3551
    13: 3551 14: 3551 15: 3551 16: 3551 bogomips: 143992
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Vulnerabilities:
  Type: gather_data_sampling status: Not affected
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed status: Not affected
  Type: spec_rstack_overflow mitigation: Safe RET
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 status: Vulnerable: eIBRS with unprivileged eBPF
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: NVIDIA AD103 [GeForce RTX 4080] driver: nvidia v: 570.133.07
    alternate: nouveau,nvidia_drm non-free: 550/565.xx+
    status: current (as of 2025-01) arch: Lovelace code: AD1xx
    process: TSMC n4 (5nm) built: 2022+ pcie: gen: 1 speed: 2.5 GT/s lanes: 16
    link-max: gen: 4 speed: 16 GT/s ports: active: none empty: DP-2, DP-3,
    DP-4, HDMI-A-2 bus-ID: 01:00.0 chip-ID: 10de:2704 class-ID: 0300
  Device-2: Advanced Micro Devices [AMD/ATI] Raphael vendor: ASUSTeK
    driver: amdgpu v: kernel arch: RDNA-2 code: Navi-2x process: TSMC n7 (7nm)
    built: 2020-22 pcie: gen: 4 speed: 16 GT/s lanes: 16 ports: active: DP-1
    empty: HDMI-A-1,Writeback-1 bus-ID: 12:00.0 chip-ID: 1002:164e
    class-ID: 0300 temp: 43.0 C
  Display: wayland server: X.org v: 1.21.1.16 with: Xwayland v: 24.1.6
    compositor: kwin_wayland driver: X: loaded: nvidia
    unloaded: fbdev,modesetting,nouveau,vesa alternate: nv gpu: amdgpu
    display-ID: 0
  Monitor-1: DP-1 model: LG (GoldStar) ULTRAGEAR+ serial: <filter>
    built: 2023 res: mode: 3840x2160 hz: 144 scale: 125% (1.25) to: 3072x1728
    dpi: 163 gamma: 1.2 size: 597x336mm (23.5x13.23") diag: 685mm (27")
    ratio: 16:9 modes: max: 3840x2160 min: 640x480
  API: EGL v: 1.5 hw: drv: nvidia drv: amd radeonsi platforms: device: 0
    drv: nvidia gbm: drv: kms_swrast surfaceless: drv: nvidia wayland:
    drv: radeonsi x11: drv: radeonsi
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: amd mesa v: 25.0.2 glx-v: 1.4
    direct-render: yes renderer: AMD Radeon Graphics (radeonsi
    raphael_mendocino LLVM 19.1.7 DRM 3.61 6.13.9-desktop-3omv2590)
    device-ID: 1002:164e memory: 500 MiB unified: no display-ID: :0.0
  API: Vulkan v: 1.4.307 layers: 6 device: 0 type: integrated-gpu name: AMD
    Radeon Graphics (RADV RAPHAEL_MENDOCINO) driver: N/A device-ID: 1002:164e
    surfaces: xcb,xlib,wayland device: 1 type: discrete-gpu
    name: NVIDIA GeForce RTX 4080 driver: N/A device-ID: 10de:2704
    surfaces: xcb,xlib,wayland device: 2 type: cpu name: llvmpipe (LLVM
    19.1.7 256 bits) driver: N/A device-ID: 10005:0000
    surfaces: xcb,xlib,wayland
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo de: kscreen-console
    gpu: nvidia-settings,nvidia-smi wl: wayland-info
    x11: xdpyinfo, xprop, xrandr
Audio:
  Device-1: NVIDIA driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s
    lanes: 16 bus-ID: 01:00.1 chip-ID: 10de:22bb class-ID: 0403
  Device-2: Advanced Micro Devices [AMD/ATI] Rembrandt Radeon High
    Definition Audio vendor: ASUSTeK driver: snd_hda_intel v: kernel pcie:
    gen: 4 speed: 16 GT/s lanes: 16 bus-ID: 12:00.1 chip-ID: 1002:1640
    class-ID: 0403
  Device-3: Advanced Micro Devices [AMD] Family 17h/19h/1ah HD Audio
    vendor: ASUSTeK driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s
    lanes: 16 bus-ID: 12:00.6 chip-ID: 1022:15e3 class-ID: 0403
  Device-4: Texas Instruments PCM2903C Audio CODEC
    driver: hid-generic,snd-usb-audio,usbhid type: USB rev: 2.0 speed: 12 Mb/s
    lanes: 1 mode: 1.1 bus-ID: 3-5.2:5 chip-ID: 08bb:29c3 class-ID: 0300
  API: ALSA v: k6.13.9-desktop-3omv2590 status: kernel-api
    tools: alsactl,alsamixer,amixer
  Server-1: PipeWire v: 1.4.1 status: active with: 1: pipewire-pulse
    status: active 2: pipewire-media-session status: off 3: wireplumber
    status: active tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Realtek RTL8125 2.5GbE vendor: ASUSTeK driver: r8169 v: kernel
    pcie: gen: 2 speed: 5 GT/s lanes: 1 port: e000 bus-ID: 0a:00.0
    chip-ID: 10ec:8125 class-ID: 0200
  IF: eno1 state: up speed: 1000 Mbps duplex: full mac: <filter>
  Info: services: NetworkManager,systemd-timesyncd
Drives:
  Local Storage: total: 4.09 TiB used: 1.48 TiB (36.2%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:3 vendor: Samsung model: SSD 990 PRO 1TB
    size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s
    lanes: 4 tech: SSD serial: <filter> fw-rev: 4B2QJXD7 temp: 50.9 C
    scheme: GPT
  ID-2: /dev/nvme1n1 maj-min: 259:0 vendor: PNY model: CS3030 1TB SSD
    size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
    lanes: 4 tech: SSD serial: <filter> fw-rev: CS303226 temp: 28.9 C
    scheme: GPT
  ID-3: /dev/nvme2n1 maj-min: 259:7 vendor: Samsung model: SSD 970 EVO 500GB
    size: 465.76 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
    lanes: 4 tech: SSD serial: <filter> fw-rev: 2B2QEXE7 temp: 41.9 C
    scheme: GPT
  ID-4: /dev/sda maj-min: 8:0 vendor: Crucial model: CT1000MX500SSD1
    size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    tech: SSD serial: <filter> fw-rev: 043 scheme: GPT
  ID-5: /dev/sdb maj-min: 8:16 vendor: Samsung model: SSD 870 EVO 1TB
    size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    tech: SSD serial: <filter> fw-rev: 3B6Q scheme: GPT
Partition:
  ID-1: / raw-size: 98.4 GiB size: 96.29 GiB (97.86%) used: 36.21 GiB (37.6%)
    fs: ext4 dev: /dev/nvme0n1p3 maj-min: 259:6
  ID-2: /boot/efi raw-size: 351 MiB size: 350.3 MiB (99.80%)
    used: 320 KiB (0.1%) fs: vfat dev: /dev/nvme0n1p2 maj-min: 259:5
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default) zswap: no
  ID-1: swap-1 type: zram size: 8 GiB used: 0 KiB (0.0%) priority: 100
    comp: zstd avail: lzo-rle,lzo,lz4,lz4hc,deflate,842 max-streams: 16
    dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 47.5 C mobo: 45.5 C gpu: amdgpu temp: 44.0 C
  Fan Speeds (rpm): N/A
Info:
  Memory: total: 32 GiB note: est. available: 30.58 GiB used: 3.53 GiB (11.6%)
  Processes: 398 Power: uptime: 0m states: freeze,mem,disk suspend: deep
    avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
    suspend, test_resume image: 12.17 GiB services: org_kde_powerdevil,
    power-profiles-daemon, upowerd Init: systemd v: 257 target: graphical (5)
    default: graphical tool: systemctl
  Packages: pm: rpm pkgs: N/A note: see --rpm tools: dnf pm: flatpak
    pkgs: 13 Compilers: clang: f6577d7ceed75def4c4c7db30fa2d30a053fc852 alt: 19
    gcc: 14.2.0 Shell: Bash v: 5.2.37 running-in: kitty inxi: 3.3.37