NVIDIA / NVIDIA/open-gpu-kernel-modules

Intermittent Framebuffer Corruption and Window Stalls on NVIDIA GBM Stack

Open
#835 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
C
Stars
17.4k
Forks
1.9k
PR merge metrics
No merged PRs in 30d

Description

NVIDIA Open GPU Kernel Modules Version

570.144

Please confirm this issue does not happen with the proprietary driver (of the same version). This issue tracker is only for bugs specific to the open kernel driver.
  • I confirm that this does not happen with the proprietary driver package.
Operating System and Version

Garuda Linux Broadwing

Kernel Release

6.14.3-zen1-1.1-zen

Please confirm you are running a stable release kernel (e.g. not a -rc). We do not accept bug reports for unreleased kernels.
  • I am running on a stable kernel release.
Hardware: GPU

GeoForce GTX 2060 Mobile

Describe the bug

Running on Wayland with the proprietary NVIDIA drivers, I experience occasional graphical glitches that affect window rendering and responsiveness. It causes momentary partial freezes or graphical corruption (screen tearing, flickering regions, UI elements not redrawing), and soon after, full system freeze.

These symptoms do not occur on X11, or present differently (e.g. HDMI issues instead), suggesting driver instability specific to Wayland compositing.

To Reproduce

Boot into Wayland session with proprietary NVIDIA drivers.
Use a multi-window setup or compositing-heavy applications (browser + video playback + IDE, etc.)
Use for a few hours, sometimes sooner
Observe sudden visual glitches:

  • Frozen windows
  • Artifacts in title bars
  • Areas of desktop not redrawing
  • Partial responsiveness, followed by recovery
  • Full system freeze
Bug Incidence

Sometimes

nvidia-bug-report.log.gz

This report is shortly after visual glitches; but before a full system freeze.
nvidia-bug-report.log.gz

More Info

Suspected Root Cause / Theory

  • Likely buffer flip or damage event mishandling, possibly in NVIDIA’s GBM buffer management
  • Compositor (KWin) attempts redraw → NVIDIA driver fails to update part of the scanout plane
  • Wayland surface commit cycle broken or delayed
  • Session enters a semi-stalled state with cursor updated by hardware plane, but window buffers stale or unflushed
  • May relate to power-state transitions, VRR, or OpenGL context leakage

Suggested Areas to Investigate

  • GBM/Wayland buffer lifecycle mismatch (flush/fence delay?)
  • nvidia-drm scanout path vs KWin’s presentation stack
  • HDMI signal management under dynamic buffer transitions
  • Resource leak in DRM plane allocator
  • Timing misalignment between compositor + hardware event queue

More actions

  • Audit the GBM buffer lifecycle, especially during power-state or frequency transitions
  • Add runtime validation that a surface flip actually commits visibly, not just "logically"
  • Implement fallbacks for redraw triggers when damage events aren’t properly detected (e.g., force frame rebuild if last damage = identical)

False assumption: “If the app/compositor calls eglSwapBuffers() or commits a frame, the sync fence has completed, and the frame is visible.”

Wrong.

Here’s what actually happens:
The Wayland Reality (with GBM):

  • The compositor (e.g., KWin) relies on explicit sync fences from the GPU via GBM
  • When the app or shell finishes drawing, it:
    1. Allocates a GBM buffer
    2. Attaches it to a Wayland surface
    3. Passes a sync fence (timeline or DMA fence) to the compositor
    4. Compositor waits for fence to signal “ready” before scanout

BUT:

  • If the NVIDIA driver signals the fence prematurely, or
  • If the driver skips signaling entirely, or
  • If the fence signals but the actual GPU work hasn’t flushed properly, or
  • If the flip fails silently under the hood
    → the compositor commits a stale or corrupted buffer

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the attached nvidia-bug-report.log.gz alongside the Wayland, GBM, nvidia-drm, and KWin presentation paths named in the report. Reproduce the intermittent corruption and stalls under the stated Wayland workload, then use the logs and behavior to identify a specific driver failure before proposing a fix.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, linux
Domain
computer-graphics, operating-systems
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.