Nvidia A2000 + Gnome = low fps-rate for desktop animations

OpenSuse Leap 15.5
Ubuntu 23.04
Nvidia Lenovo A2000 6GB
Proprietary driver version: 535.113

The issue: Gnome animations (overview) lag / animate at a low fps-rate initially. It feels like it’s running on 20-30 fps after a cold boot. Opening nvidia-settings app once after a cold boot makes everything in Gnome (overview, moving windows etc.) feel super smooth again with 60fps (Powermizer is set to prefer maximum performance). Alternative fix: Open nvidia-settings and disable both options → “vsync” and “allow flipping” for openGL. Disabling these two settings makes the desktop feel super fluid and smooth again, but it introduces lots of tearing.

I’m on OpenSuse Leap 15.5 right now, but I have also noticed this on Ubuntu 23.04. Ubuntu ships with triple buffering patches out of the box, but it doesn’t seem to do anything for my setup. Out of curiosity I also used an Nvidia T600 gpu in this machine, and can’t reproduce the issue above with this gpu. Nvidia Lenovo T600 = everything in Gnome is super smooth out of the box after installing the proprietary Nvidia drivers.

Is this a driver / gpu bug for my A2000?

Thx.

The above only goes for X11 btw. On Wayland everything is smooth as butter. Using a two monitor setup hooked up via mini dp.

@2024a: any ideas?

Still having this issue after updating the Nvidia driver to the 545 series. I made a script to set powermizer to maximum performance after a cold boot, but the desktop still has low fps initially and only goes up to full speed after starting the nvidia-settings app at least once. It’s so strange because before opening up nvidia-settings, I can see how opening the overview in Gnome results in a low framerate and laggy or stuttery animations - looks like it’s going below 30 fps actually. The moment I open up the nvidia-settings program though everything turns super smooth and opening / closing the Gnome overview is very fluid again at 60 fps for the entire session. I tried both X11 and Wayland but both behave the same with Wayland being a bit better sometimes.

I can film this if there is any way to show the fps-rate in Gnome. Any idea what might be causing this? I’d say it’s the older Gnome edition that ships with Leap, but the same machine with an Nvidia T600 doesn’t have this issue. Also, Ubuntu 23.04 was showing the same behaviour even though it ships with a more modern version of Gnome.

This really bothers me because before this I had an RX 570 from AMD and both X11 and Wayland were always at super smooth vsynced 60 fps no matter what. Very snappy, no frame drops, it just worked well with the open source drivers. What is the status of the nvidia open kernel module drivers right now and can these replace the proprietary blob that I’m using right now? → Current state of proprietary vs opensource nvidia drivers · NVIDIA/open-gpu-kernel-modules · Discussion #457 · GitHub

Please create an nvidia-bug-report.log right after boot.

1 Like

Hello generix, thank you! Here is the log attached to this post. Btw, I had trouble running the command at first, but a quick cnf search for the file showed that I was missing nvidia-compute-utils-G06 on my Leap installation, and after installing it manually via Yast, the command worked like a charm afterwards.

Let me know if you need anything else!

Btw, I noticed that activating “force full composition pipeline” makes the Gnome desktop buttery smooth again, and it doesn’t have any tearing either, even if you disable vsync and flipping in nvidia settings → opengl, but gaming in windowed mode can then lead to very strong tearing, warping and overall image corruption with full comp enabled. I noticed that enabling vsync in-game with the composition pipeline helps reduce these effects, but they still happen every now and then. It’s the worst with vsync off + borderless windowed mode and full comp pipeline activated (tried with Turok + Proton 8 for example). I haven’t noticed this happening for games in fullscreen + full comp pipe thus far. I really like the smoothness that the full composition pipeline gives the entire Gnome desktop, but it does have this one major drawback. I read that it’s not recommended to use full comp pipe when gaming, is this true?

nvidia-bug-report.log.gz (820.8 KB)

tldr: it’s a gpu model specific clocking bug in the nvidia driver. Force composition pipeline should nearly never be used, especially when gaming.

The nvidia driver always had clocking issues when connecting more than one monitor. More pixels to be pushed need higher memory clocks. Every now and then, people complain “When connecting a second monitor, the gpu switches to highest clocks, uselessly burning power”. So the nvidia devs tried to mitigate that but for some gpu models, this went arwy, now clocking too low. In your case, when starting nvidia-settings, the setting “Prefer maximum performance” is applied for the first time, raising clock so it works.
When running unsync’d, the gpu renders more fps, also raising clocks.
Forcing the composition pipeline is mostly bad, it adds latency and costs performance. So your desktop becoming smooth with it is just a side effect, it needs gpu power so the clocks are raised.
A better workaround would be playing with the clocks directly, using nvidia-smi -lmc and maybe nvidia-smi -lgc. E.g. right after boot, try running
nvidia-smi -lmc 6000,6000
to only lock the memory clocks at maximum. For a test, you could also connect just one FHD monitor, this should work without any workarounds.
Ultimately, this needs to be fixed in the driver.

1 Like

Hello there Gen, thanks for the very informative post! Hm, so it’s better so stay away from the force comp pipeline for now. I really like how buttery smooth things get with it enabled, but I’ll try what you suggested and only turn on a single monitor and see what happens to the framerate in Gnome. Will report back asap! I won’t leave it like this ofc, because I need the other monitors, but it’s a good test to see if what you said works out that way. I also noticed that while my powermizer script works fine and sets the gpu to high performance mode during boot, I can still see some jittering and fps fluctuation going on sometimes when opening the overview in Gnome, so it’s not perfect. The only thing that has felt super smooth 90+% of the time thus far is having force comp activated, but as you rightfully pointed out, that will affect gaming one way or the other. If I knew the performance impact is relatively small, and if it wouldn’t be glitching around when gaming in windowed mode, then I’d just turn it on and be done with it. I don’t mind the higher power usage with this specific system, because it’s mainly a workstation and gaming rig where I throttle things up to the maximum anyway.

Should I report this bug to Nvidia directly or does it suffice to have it here in the forums? I’d like to see these things get sorted out asap tbh. Something tells me this might take a while though, sadly. Btw, I love how fluid Ubuntu now works with its exclusive vsync triple buffering patches, but even then this gpu of mine feels super sluggish with Gnome. The T600 is doing great though in both Suse and Ubuntu! Does activating the triple buffering option in Xorg.conf do anything nowadays or has that setting become obsolete? I remember it from the old Compiz days. Could that help boost the vsync opengl render for Gnome ond my Leap installation?

You can also send the report to linux-bugs[at]nvidia.com but don’t expect a reply.

I don’t think so.

1 Like

This is being tracked in bug 4478762.

@Sturmlocke , could you try loading the nvidia-modeset kernel module with disable_vrr_memclk_switch=1 to see if the issue still occurs?

1 Like

Hi @Sturmlocke
I tried to reproduce issue locally on dual monitor setup with 4k resolution but did not observe any lag. Moreover, I also ran aquarium webgl samples and observed fps as 60 after cold boot.
Could you please help to share below information so that I can retry for local repro with details matching your configuration as closely as possible.

  1. How are you connecting displays (I used mini-DP → DP converter).
  2. Display model along with resolution and refresh rate.
  3. Could you also run WebGL Aquarium to confirm if it shows 20-30 fps in repro state.
  4. Do you observe lag after each cold boot, or it happens randomly.
  5. Repro video for our reference if possible.
1 Like

Hello there, posting from mobile real quick to say that I appreciate your response and that I read everything you are asking of me. I’ll provide the requested information later tonight or by tomorrow night because I’m with my family and kids right now.

Thank you so much for looking into this! Highly appreciated.

@agoins:

disable_vrr_memclk_switch=1

Untested thus far. I will do it this weekend and report back asap.

Q: How are you connecting displays (I used mini-DP → DP converter).
A: Same here! I have three displays connected to my computer right now.

  • Samsung → miniDP to miniDP cable → miniDP to hdmi adapter
  • Dell → miniDP to hdmi cable
  • ThinkCenter Lenovo → miniDP to DP cable

Q: Display model along with resolution and refresh rate.
A:

  • See attached screenshots for model number
  • All displays at 60hz
  • Samsung: 4k resolution
  • Dell: 1080p resolution
  • Thinkcenter Lenovo: 1080p resolution
  • Using X11
  • 200% scaling activated because otherwise everything looks too small on my 4k Samsung

Q: Could you also run WebGL Aquarium to confirm if it shows 20-30 fps in repro state.
A: Yes, see attached screenshot. Aquarium runs at buttery smooth 60fps. The problem is not the graphics performance of apps, games or anything like that. The fps issues are only when I’m on my Gnome Desktop and when I trigger its animations (for example, Gnome overview). In other words: Cold boot, press “window key” on the keyboard, watch the Gnome overview animation, see how fps-rate is stuttery and at around what feels like 20-30fps at first. Opening and closing the Gnome overview / activities several times makes it smooth again for a while, but it then becomes stuttery if you leave it idle for a few seconds. Opening up nvidia-settings app a single time makes everything buttery smooth again and it remains this way until reboot.

Q: Do you observe lag after each cold boot, or it happens randomly.
A: It happens nearly every time after a fresh reboot / cold boot. Sometimes it runs just fine, but only after I made a script for Powermizer to prefer max performance. Even so, I still have to open nvidia-settings app at least once for the desktop to become buttery smooth again most of the time.

Q: Repro video for our reference if possible.
A: I would love to do this, but is there any app or way to display the framerate on the Gnome Desktop? KDE has a built-in feature that is able to display the fps-rate of the desktop directly in the upper left or right corner of the display, but I don’t know of any similar feature for Gnome. I believe that will help showcase what I’m saying, because then you will see how the fps-rate is around 30 before starting nvidia-settings once. After starting nvidia-settings once, the fps-rate usually goes up to 60 and all Gnome animations and the overview are super fluid again (powermizer set to prefer maximum performance).

Low fps-rate on Gnome DE:

Reddit - Dive into anything

Reddit - Dive into anything

This is why Ubuntu introduced its triple buffering vsync patches which were created by Daniel Van Vugt: Why Ubuntu 22.04 is so fast (and how to make it faster) - Desktop - Ubuntu Community Hub

Ubuntu’s patches work like a charm for AMD and Intel systems, and also for my other PC with the Nvidia T600, because it makes the entire Gnome desktop buttery smooth at 60fps like on a high-end MacOS system. Strangely enough though, this doesn’t have the same effect on my A2000 rig. OpenSUSE Leap 15.5 does not ship with these patches enabled by default and is lacking in this regard. I did try Ubuntu 23.04 on this machine some time ago though, and the Gnome desktop was still misbehaving like on Opensuse with my A2000. This is the reason I wanted to know if the openGL triple buffering option for Xorg has any effect on modern systems, see here: Option “TripleBuffer” “true” still supported on Nvidia driver 535?

Will try the kernel module setting as advised and report back later this week. Let me know if you need anything else, or if you know how I can display my fps-rate on the Gnome desktop for a quick video on this issue. Ty!

screenshots4nvidia, sturmlocke, a2000 vsync issue, bug-report analysis, v1.zip (7.4 MB)

Thank you @Sturmlocke for the detailed information.
I will retry for local repro as soon as I can and update on it.
Looking forward to hearing from you on testing with kernel module setting as per your convenience.

1 Like

Hello again, sorry for the delay, had both hands full and wasn’t able to test until now. I tried setting the kernel module, but I saw no difference. That said, I’m not sure that I actually did it right on my openSUSE Leap system, so could you pls post a short howto with a little step by step guide so I can temporarily set the kernel module for testing? I’ll give it a go this weekend with your instructions. Ty!

Easiest should be adding it as kernel boot parameter, i.e. set
nvidia-modeset.disable_vrr_memclk_switch=1
https://doc.opensuse.org/documentation/leap/reference/html/book-reference/cha-grub2.html#sec-grub2-yast2-config-advanced-kernel-parameters
When done right, you should see it in the output of
cat /proc/cmdline
after reboot.

1 Like

Hello there Generix, thanks for pointing me in the right direction! I was doing it manually and totally forogot that openSUSE has a beautiful and simple interface for that. To make it worse I even had a typo in the text I copied (missed the =1 at the end). Corrected that mistake just now.

This is the cat output:

cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-5.14.21-150500.55.39-default root=UUID=28eae485-9f96-45b2-93b6-c96a59c06b9d splash=silent resume=/dev/disk/by-uuid/04435656-97fa-4cf7-adb9-95601556ed9f preempt=full quiet security=apparmor nvidia-modeset.disable_vrr_memclk_switch=1 mitigations=auto

Now it worked like a charm and I can confirm after several reboots, the entire Gnome Desktop is now super fast and fluid at beautiful 60 fps all the time! It worked!

Ok, what does this mean then? Can I leave the kernel boot parameter as it is? I understand the part about it disabling vrr, but what does memclk_switch=1 do? I assume it’s turning off the dynamic memory clocking of the gpu? Does that mean the mem clocks are now running at full speed all the time? If so, can I leave it like that without damaging the gpu in the long run?

Ok, spoke to soon it seems. I tested it around 10 times after setting the kernel boot parameter, and it was doing good at first, but now after booting up the computer to do some work I can see how the fps is laggy again when using the Windows key on the keyboard to open the Gnome overview and its animations etc. So it might have been a placebo effect. I restarted the pc a couple of times just now and sometimes it’s smooth, but sometimes it’s falling down to stuttery 30/40 fps again. The only way to make it smooth for the current session is to open up nvidia-settings app once and then it remains smooth until the next reboot.

Hi @Sturmlocke
I retired local repro on below setup with 3 displays connected matching your configuration but still not seeing any lags or low FPS behavior in 5 attempts.

HP OMEN by HP 25L Gaming Desktop GT15-0xxx + AMD Ryzen 7 5700G with Radeon Graphics + Ubuntu 22.04.3 LTS + kernel 5.19.0-46-generic + NVIDIA RTX A2000 12GB + Driver 545.29.06 + Asus PG27AQDM with resolution 3840 x 2160 + Microstep G274F with resolution 1920 x 1080 + Asus VG279QM with resolution 1920 x 1080

Force Composition Pipeline and G-SYNC is disabled.

VBlank and Allow Flipping is enabled.

PowerMizer - Tried bot Adaptive and Prefer Max Performance as preferred mode.

Request to cross verify settings from my setup and share video and I will retry similar activity on my setup as well.

1 Like

Hey there Amrits, thanks for checking in again.

A few differences between our setups: I’m currently on openSUSE 15.5 Leap with Gnome 41.8 and I’m using the RTX A2000 with 6GB. I updated my Nvidia driver to version 550.54.14 last night, situation unchanged though. VBLANK and Allow Flipping is enabled and Force Composition Pipeline is disabled. Powermizer is at max performance right now, but I also tried the other modes and it’s the same.

I continued my testing and found out that even if I disable Vsync and enable Force Composition Pipeline the desktop still remains laggy. It seems smoother at first, but it becomes laggy at some point again. Out of all the tests, the ONLY thing that makes the desktop buttery smooth for the entire session (until reboot / shutdown) is opening Nvidia-settings at least once - then everything in Gnome and its animations remain at a steady 60 fps the entire time. It doesn’t drop even once.

I unplugged both of the 1080p monitors and left only the Samsung 4k60 monitor attached to the PC. What’s interesting here is that in 4k60 mode the Gnome desktop is still lagging until I open up Nvidia-settings once, BUT if I change the resolution down to 2k60 or even 1080p60 and reboot the machine, the Gnome desktop remains buttery smooth even without opening Nvidia-settings once. In other words, lowering the resolution seems to fix the issue too. Popping the reso back up to 4k60 reintroduces the problem. I also tried disabling the 4k60 Samsung monitor in order to only use the other two 1080p monitors (Dell+Lenovo) together and individually, and in both cases the framerate was buttery smooth at 60fps with no stuttering or fps-drop whatsoever (even without opening Nvidia-settings once). This made me double check the adapters in use for the Samsung 4k60 monitor, and my mdp to mdp-dp cable / adapter combo supports 4k60 according to its specs.

I honestly don’t understand why opening Nvidia-settings has such a positive effect on the framerate even in 4k60, but not doing this after a cold boot = laggy Gnome animations.

I tried recording a video, but it’s very hard to tell how fluid / laggy the Gnome animations actually are without having an fps-meter to see the numbers in action. Is there any way that I can force Gnome to display the desktop fps-rate for the video, which will immediately show what I’m describing? Here is a post similar to mine: Animations lag on Gnome because of my GTX 1050ti on 4k monitor? - Ask Ubuntu

A side question: How far along are the open kernel module Nvidia drivers at this point (gaming, screen recording etc.)? I heard they’re in Beta status. Would switching to these from the proprietary drivers be something worth testing?

Ok, so I made a video filming it directly off the screen, and I’m attaching it to this post as a .zip. Nothing is running in the background and this is directly after a cold / fresh boot. Observe closely when I open and close the overview at how stuttery and laggy the overview opens and closes (low framerate), and then watch how smooth it then suddenly becomes at 60fps once I open nvidia-settings a single time. It remains smooth as butter for the entire session after doing this. What is nvidia-settings doing that makes the entire desktop feel so fluid and smooth again?

RTXA2000, OpenSUSE155L, Gnome418, fps-lag-showcase, v5-final.zip (80.6 MB)