Skip to content

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

@Gert-dev

Description

@Gert-dev

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 #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 #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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions