NVIDIA / NVIDIA/open-gpu-kernel-modules

Animations after idling are noticeably choppy until GPU ramps up (with hybrid graphics)

Open
#1,129 0 comments 4 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

595.71.05

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

Arch Linux

Kernel Release

7.0.3

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

NVIDIA GeForce RTX 4090 Laptop GPU

Describe the bug

In mutter 50.1 on Wayland on a multi-GPU NVIDIA system with an AMD or Intel iGPU, there is always a 'jank' when idling for a few seconds and then switching virtual desktops.

If you start frantically switching desktops (i.e. triggering animations), after a second or two it becomes buttery smooth (feels like 144 FPS on a 144 Hz monitor), which is likely due to the GPU ramping up.

To Reproduce
  • Start GNOME on Wayland with an Intel or AMD iGPU as primary (default) and a high-refresh rate monitor (e.g. 120 Hz or higher) that is attached to the NVIDIA GPU directly.
  • Open nvidia-smi.
  • Wait a couple of seconds for the clocks to settle. In my case power use drops to 5 Watt.
  • Switch to a virtual desktop right.
  • Notice the animation being choppy.
  • Switch left and right about 10 times in a couple of seconds.
  • Notice how the animation becomes smooth (as the clocks go to 8W or higher).
Bug Incidence

Always

nvidia-bug-report.log.gz

nvidia-bug-report.log.gz

More Info

This is basically https://github.com/NVIDIA/open-gpu-kernel-modules/issues/693, but this time specific to hybrid graphics now that several optimisations have happened in GNOME 50 and 50.1 (e.g. FBOs used for secondary GPUs) that weren't directly the fault of the NVIDIA driver.

This doesn't happen on a high-refresh-rate display (240 Hz) being driven by an AMD iGPU in my case; it seems to ramp up faster. This also doesn't happen if I make the NVIDIA GPU the primary GPU (which was fixed in https://github.com/NVIDIA/open-gpu-kernel-modules/issues/693 for me).

When the NVIDIA GPU is primary it is probably already performing other rendering tasks, due to which the clocks stay higher on average, which possibly makes the issue less problematic. In the NVIDIA GPU as secondary GPU scenario it isn't doing any rendering during my tests and mostly limited to copying buffers from the primary GPU as the latter is rendering, which possibly makes the NVIDIA driver or firmware believe it shouldn't ramp up as quickly.

I realise this isn't an easy problem to fix as the driver has to guess when activity is going to happen, but thought I'd report it anyway in case there is something that can be done from either mutter's side or the driver's side.

This was spurred again in after a discussion on the mutter issue tracker about performance with multi-GPU or hybrid graphics.

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

No source file or test is named. Start by reproducing the issue with mutter 50.1 on Wayland, using nvidia-smi to compare clocks during idle and virtual-desktop animations; compare hybrid and NVIDIA-primary configurations. Done means isolating whether the behavior is actionable in the open kernel module and documenting a verified fix or limitation.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, linux
Domain
computer-graphics, operating-systems, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.