https://bugs.kde.org/show_bug.cgi?id=522721

            Bug ID: 522721
           Summary: On a desktop with an AMD Ryzen iGPU (0000:10:00.0) +
                    NVIDIA RTX 4070 SUPER (0000:01:00.0), the only monitor
                    is connected to the NVIDIA via DisplayPort. KWin
                    (Wayland) picks the AMD iGPU as the render device, so
                    the only path to the display is an iGPU→dGP
    Classification: Plasma
           Product: kwin
      Version First 6.7.2
       Reported In:
          Platform: Arch Linux
                OS: Linux
            Status: REPORTED
          Severity: critical
          Priority: NOR
         Component: platform-drm
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]
  Target Milestone: ---

Created attachment 194069
  --> https://bugs.kde.org/attachment.cgi?id=194069&action=edit
journalctl of failed KDE boot (sanitized) — 48x GL_INVALID_OPERATION multi-GPU
copy errors

On a desktop with an AMD Ryzen iGPU (0000:10:00.0) + NVIDIA RTX 4070 SUPER
(0000:01:00.0), the ONLY monitor is connected to the NVIDIA via DisplayPort.
KWin (Wayland) picks the AMD iGPU as the render device, so the only path to
the display is an iGPU->dGPU cross-GPU copy. That copy is refused and the
session comes up with a placeholder screen / no signal.

KWin log signature (repeats ~48x):
  kwin_wayland: No backend specified, automatically choosing drm
  kwin_wayland: 0x502: GL_INVALID_OPERATION error generated. <image> and
<target> are incompatible
  kwin_wayland: Invalid framebuffer status:
"GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT"
  kwin_wayland: Applying output configuration failed!
  -> Screen(output): Placeholder-1

Why I think this is a regression, not a duplicate
- This is the exact failure of Bug 517987 (fixed in 6.6.5, commit
413face71a9b4c622c2817b8da5d888e2cd77f38:
 
https://invent.kde.org/plasma/kwin/-/commit/413face71a9b4c622c2817b8da5d888e2cd77f38
).
  The createSurface() guard is still present in 6.7, but on this topology it
simply refuses the copy
  (return nullptr), which is fatal here because the dGPU holds the only output
— there is no iGPU
  display to fall back to.
- The natural workaround (pin KWin's render GPU to the NVIDIA with
KWIN_DRM_DEVICES) no longer works
  since 6.7, per Bug 521914 (new GpuManager opening all render nodes and
ignoring KWIN_DRM_DEVICES).
  I verified: setting KWIN_DRM_DEVICES to the NVIDIA node via a
plasma-kwin_wayland.service systemd
  drop-in has zero effect — same 48 errors.

Evidence that the NVIDIA output itself is fine: the SDDM greeter renders
correctly on the NVIDIA
(Adding view for "DP-0" 2560x1440), and Hyprland always works on the same
NVIDIA output (it renders
and scans out on the NVIDIA only, no cross-GPU copy). Only KWin fails.

Steps to reproduce
1. Desktop, AMD iGPU enabled in BIOS + NVIDIA dGPU, monitor on the NVIDIA only.
2. Log into a Plasma 6.7.2 Wayland session.
3. KWin selects the iGPU for rendering -> cross-GPU copy to the NVIDIA -> no
signal.

Expected: KWin either renders on the GPU that owns the connected output
(avoiding the copy), or
honors a render-device override, or falls back to a working copy path.

System: Plasma/KWin 6.7.2 Wayland, nvidia-open-dkms 610.43.02, Mesa 26.1.4,
kernel 7.1.3 (also
reproduced on 7.1.2), Arch/CachyOS. Attachments: journal, drm_info,
kscreen-doctor -o.

Related: Bug 517987 (same signature, fixed 6.6.5), Bug 521914 (KWIN_DRM_DEVICES
ignored since 6.7).

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to