I’ve just recently returned to Linux after many years and am getting back into the swing of things. I’m pretty happy with my setup; the only thing that I can’t seem to figure out after hours of tinkering is how to get smooth GNOME animations on my setup, which includes NVIDIA Geforce 2080, dual displays (one HDMI at 75hz and one DP at 60hz).
After reading countless posts about NVIDIA drivers and GNOME performance with multiple displays with different refresh rates, and Mutter-tripplebuffer patches, I would be inclined to give up for now and wait for an eventual patch… but I’m not convinced because I actually managed to get smooth animations at some point during my tinkering. I can’t remember if I even had a Mutter patch installed at that time. What I do know is that the animations were smoother with NVIDIA-550 driver than they are with 555 or 560.
I’m using the RPMFusion-nonfree NVIDIA driver now and I’m wondering if there is a setting that I’m missing that would improve performance. Here is a list of relevant info and things I’ve tried (unfortunately I have ADHD and didn’t do a great job documenting everything so it’s pretty likely I’ve left some things out).
System Details Report
Report details
Date generated: 2024-09-01 13:05:19
Hardware Information:
Hardware Model: Dell Inc. G5 5090
Memory: 64.0 GiB
Processor: Intel® Core™ i9-9900K × 8
Graphics: NVIDIA GeForce RTX™ 2080
Disk Capacity: 3.0 TB
Software Information:
Firmware Version: 1.26.0
OS Name: Fedora Linux 40 (Workstation Edition)
OS Build: (null)
OS Type: 64-bit
GNOME Version: 46
Windowing System: Wayland
Kernel Version: Linux 6.10.6-200.fc40.x86_64
Things I tried
Enabled mutter/experimental-features/"variable-refresh-rate" in dconf Editor
cat /etc/modprobe.d/nvidia.conf
blacklist nouveau
options nvidia NVreg_PreserveVideoMemoryAllocations=1 # Added to fix issue where gnome-shell would crash when waking from suspend
That’s all the details I can think of for now. Any help with this is appreciated.
I am on an older card than you are, RTX 4060, but be curious if you ran glmark2 on both drivers. This is output from mine. I also upgraded to F41 branched release and am on kernel 6.11
Not to sound difficult on my own first post here, but given how much time I’ve already spent switching back and forth between drivers, breaking and fixing them, I would really rather avoid doing any more of that if possible. If you insist that this will very likely help us figure out the problem, I will gladly do so.
However, I am fairly certain the issue is more related to gnome-shell than overall performance as everything else (videos, games, etc) looks perfectly smooth. The only thing that looks choppy are the gnome-shell animations. Some of them look to me like they’re capped at 60fps (refresh rate of my secondary monitory), while others (such as overview transition) lag to varying degrees.
Here’s the output of glxmark2 on my currently installed 560 driver.
=======================================================
glmark2 2023.01
=======================================================
OpenGL Information
GL_VENDOR: NVIDIA Corporation
GL_RENDERER: NVIDIA GeForce RTX 2080/PCIe/SSE2
GL_VERSION: 4.6.0 NVIDIA 560.35.03
Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0
Surface Size: 800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 5158 FrameTime: 0.194 ms
[build] use-vbo=true: FPS: 6682 FrameTime: 0.150 ms
[texture] texture-filter=nearest: FPS: 6654 FrameTime: 0.150 ms
[texture] texture-filter=linear: FPS: 6539 FrameTime: 0.153 ms
[texture] texture-filter=mipmap: FPS: 6623 FrameTime: 0.151 ms
[shading] shading=gouraud: FPS: 6585 FrameTime: 0.152 ms
[shading] shading=blinn-phong-inf: FPS: 6489 FrameTime: 0.154 ms
[shading] shading=phong: FPS: 6473 FrameTime: 0.155 ms
[shading] shading=cel: FPS: 6400 FrameTime: 0.156 ms
[bump] bump-render=high-poly: FPS: 6285 FrameTime: 0.159 ms
[bump] bump-render=normals: FPS: 6598 FrameTime: 0.152 ms
[bump] bump-render=height: FPS: 6533 FrameTime: 0.153 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 6365 FrameTime: 0.157 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 5937 FrameTime: 0.168 ms
[pulsar] light=false:quads=5:texture=false: FPS: 6523 FrameTime: 0.153 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 4299 FrameTime: 0.233 ms
[desktop] effect=shadow:windows=4: FPS: 5718 FrameTime: 0.175 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 1414 FrameTime: 0.708 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 1867 FrameTime: 0.536 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 1568 FrameTime: 0.638 ms
[ideas] speed=duration: FPS: 6235 FrameTime: 0.160 ms
[jellyfish] <default>: FPS: 6264 FrameTime: 0.160 ms
[terrain] <default>: FPS: 1608 FrameTime: 0.622 ms
[shadow] <default>: FPS: 6069 FrameTime: 0.165 ms
[refract] <default>: FPS: 3365 FrameTime: 0.297 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 6550 FrameTime: 0.153 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 6480 FrameTime: 0.154 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 6553 FrameTime: 0.153 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 6513 FrameTime: 0.154 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 6510 FrameTime: 0.154 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 6531 FrameTime: 0.153 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 6513 FrameTime: 0.154 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 6500 FrameTime: 0.154 ms
=======================================================
glmark2 Score: 5647
=======================================================
I just re-enabled rixieua/mutter-patched and it’s looking pretty good now. I don’t think I really changed anything else… gnome-shell overview still doesn’t look perfect but overall I think this is good enough.