#657

Linux / KWin 6.8.1: 4K120 CPU-upload fallback (~52 FPS), bridge references libkwin.so.6.8.0

Openluker313opened 16d ago

Bug symptoms

On CachyOS / KDE Wayland with KWin 6.8.1, the approximately 50–54 FPS ceiling at 3840×2160 has returned when requesting a 120 FPS Moonlight stream. The same 2.0.2-daily.d20261018.1 Vibepollo build had previously resolved the cap on this host.

The current bridge binary contains libkwin.so.6.8.0, while the installed KWin library is libkwin.so.6.8.1. KWin logs that the bridge is preserving the native KMS allocator, and the Vibepollo stream log confirms a direct GPU import failure followed by CPU upload fallback.

This appears related to #634, which was fixed and confirmed working with KWin 6.8.0. An ABI/version guard mismatch is a suspected cause, not yet a confirmed root cause.

Environment

  • OS: CachyOS, KDE Plasma Wayland
  • KWin package: 6.8.1-1.1
  • Vibepollo: 2.0.2-daily.d20261018.1+cd17e1f3912a
  • Commit: cd17e1f3912a1e10b9da31f66a3d5e0174755e1e
  • GPU: NVIDIA GeForce RTX 4090
  • NVIDIA driver: 615.78.08 (from the attached diagnostic excerpts)
  • Capture: event-driven KMS on the managed Virtual-1 display
  • Virtual DRM driver: vibeshine_drm 1.5.0
  • Encoder in the captured session: AV1 NVENC, P2, 10-bit HDR
  • Requested stream: 3840×2160 at 120 FPS, 100 Mbps
  • Selected render node: /dev/dri/renderD128

Reproduction

  1. Run the above Vibepollo nightly on CachyOS with KWin 6.8.1-1.1.
  2. Start a Moonlight stream using a managed virtual display at 3840×2160, 120 FPS.
  3. Observe the approximately 50–54 FPS ceiling and the CPU upload fallback warnings below.

Expected behavior

The managed virtual display uses the GPU path and can reach the requested 4K120 rate, as it did on this host after installing this nightly.

KWin / bridge diagnostics

Commands run on the host:

pacman -Q kwin vibepollo
readlink -f /usr/lib/libkwin.so
strings /usr/lib/libvibeshine-kwin-gpu.so | rg '^libkwin\.so\.'
journalctl --user -b -u plasma-kwin_wayland.service --no-pager |
  rg -i 'vibeshine-kwin-gpu|native KMS allocator|virtual GBM'

Relevant output:

kwin 6.8.1-1.1
vibepollo 2.0.2daily.d20261018.1.cd17e1f3912a.rcd17e1f3912a1e10b9da31f66a3d5e0174755e1e-1
/usr/lib/libkwin.so.6.8.1
libkwin.so.6.8.0
vibeshine-kwin-gpu: preserving native KMS allocator for current KWin ABI

Vibepollo log excerpts

From the affected session on 2026-10-22:

[2026-10-22 17:12:03.723]: Info: Using event-driven KMS capture for Vibepollo DRM CRTC [76].
[2026-10-22 17:12:03.724]: Info: Creating encoder [av1_nvenc]
[2026-10-22 17:12:03.724]: Info: Color coding: HDR (Rec. 2020 + SMPTE 2084 PQ)
[2026-10-22 17:12:03.724]: Info: Color depth: 10-bit
[2026-10-22 17:12:03.747]: Debug: GL: renderer: NVIDIA GeForce RTX 4090/PCIe/SSE2
[2026-10-22 17:12:03.747]: Debug: GL: version: 4.6.0 NVIDIA 615.78.08
[2026-10-22 17:12:03.836]: Info: NvEnc: created encoder AV1 P2 api=13.0 10-bit two-pass rfi engines=2 split-frame=auto
[2026-10-22 17:12:03.840]: Warning: GL rejected imported RGB DMA-BUF texture (fourcc=34325241, error=00000502, modifier=0000000000000000).
[2026-10-22 17:12:03.840]: Warning: Managed virtual framebuffer rejected direct GPU import (fourcc=34325241, modifier=0000000000000000); using the linear CPU upload fallback.
[2026-10-22 17:12:03.854]: Warning: Using CPU DMA-BUF upload fallback for cross-device KMS capture.

Could the KWin GPU bridge be rebuilt/updated for 6.8.1, and could its version check / packaging be reviewed so KWin patch updates do not silently bring back this slower path?

A downgrade has been suggested during troubleshooting, but no before/after downgrade result is confirmed in this report.

Activity

1
Nonary11d ago

Could you share a fresh comparison from the currently installed build, after logging out and back in and starting another affected 4K120 stream? No downgrade or package change is needed for this check.

pacman -Q kwin vibepollo
readlink -f /usr/lib/libkwin.so
strings /usr/lib/libvibeshine-kwin-gpu.so | grep -E '^libkwin\.so\.'
sha256sum /usr/lib/libvibeshine-kwin-gpu.so
journalctl --user -b -u plasma-kwin_wayland.service --no-pager | grep -Ei 'vibeshine-kwin-gpu|native KMS allocator|virtual GBM'

Please also include the new stream's GPU-import / CPU-fallback warnings and observed FPS, with any sensitive details redacted. The existing log can indicate several bridge-disable paths; it does not by itself prove the version mismatch caused the FPS regression. The bridge diagnostic change makes that distinction clearer, but is diagnostic only and does not establish a performance fix.