You are not logged in.
I have a dual-GPU setup with an Intel iGPU and an NVIDIA dGPU and am running mutter on GNOME shell. My monitor has a refresh rate of around 300 Hz and correctly recognized as such by GNOME and xrandr, both of which mark it as "active". However, nonetheless, I can visually perceive that mutter is not running at anything higher than 60 FPS. This is confirmed by both applications such as glxgears, as well as games, capping themselves at 60 FPS - which they likely see as the "monitor refresh rate".
This problem occurs:
On X11.
On Wayland.
For applications rendering on the Intel iGPU.
For applications rendering on the NVIDIA dGPU.
Despite unlocking applications to run at higher than 60 FPS, which does not incur any visual difference.
At first I figured this was simply due to poor performance on Intel GPUs, but now it seems as if mutter is simply rendering at 60 FPS internally for some reason.
My BIOS allows switching from the hybrid GPU setup to using just the NVIDIA GPU. In this scenario, mutter *does* render at 300 FPS, as expected. xrandr and GNOME also show 300 Hz like before, but now xrandr shows the output port as DP-4, while with with the hybrid setup it was listed as eDP.
I've tried poking around in mutter to see what the frame clock is (it's correctly being set to 300), switching knobs such as enabling NVIDIA KMS, disabling vsync in mutter, and playing around with Intel GPU driver options, but none of these options has worked for me so far. I also now know that things like NVIDIA PRIME synchronization exist, and perhaps the problem is specifically tied to the NVIDIA PRIME setup, though the issue also exposes itself on Wayland (and I'm not sure using an NVIDIA dGPU with PRIME on Wayland is even possible currently).
Has anyone had similar experiences or can anyone point me in the right direction?
Full disclosure: I also created a ticket on the mutter tracker, but wanted to post this here hoping to find more help - maybe it's not a bug in mutter and I'm just doing something unrelated wrong.
Last edited by mwohah (2020-11-23 18:04:25)
Offline
I have some updates, which I've also posted on the GNOME issue tracker.
I've tried KDE and it exposes the same issue: detects 300 Hz correctly, appears to apply it, but everything is still rendered at 60 Hz, including glxgears. This seems to imply some kind of Intel driver bug, as the issue is not apparent with the NVIDIA binary driver in non-hybrid mode.
It remains strange how everything, from xrandr to the compositor, claims 300 Hz is enabled, yet applications such as glxgears lock themselves to 60 FPS, which suggests there is a conflicting source of information somewhere that is claiming a different refresh rate than the one set in xrandr. But if even mutter seems to believe that it's 300, who is that actor?
xrandr lists the available modes, for which 1920x1080@60 is listed first, and 1920x1080@300 second (which is also active). Maybe there is some other place that incorrectly scans the modes and incorrectly defaults to the first default mode, even if it isn't the active one (and perhaps never updates itself anymore)?
If it is indeed an Intel driver bug, I'd fully expect either everything to report and be 60 Hz, even in places such as xrandr. That, or 300 Hz, with glxgears at 300 FPS, whilst everything is visually rendering at 60 FPS due to a bug. But I could be wrong. The next best step may be to look for help on the i915 driver bugtracker.
Offline
You posted very little details about your system, making it hard to troubleshoot this.
Booting in hybrid mode post lspci -k , xorg log, xrandr -q , glxinfo -B .
Does the presence/absence of xf86-video-intel have an efect ?
Last edited by Lone_Wolf (2020-11-22 14:07:42)
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Online
Thanks for your reply, I'll get back ASAP with more logs, as I need to reboot each time to switch back to hybrid mode.
I can already confirm the absence or presence of xf86-video-intel does not have an effect.
Some preliminary details about my system:
Device: MSI GS66 10SFS (laptop)
GPU: Intel:registered: Core:tm: i9-10980HK CPU @ 2.40GHz × 16 (iGPU) and NVIDIA RTX 2070 Super (dGPU)
Graphics driver: Intel modesetting (iGPU) and NVIDIA binary driver (dGPU)
Display connector: eDP (when using Intel and hybrid graphics), DP-4 (when using NVIDIA dGPU only).
Linux distribution: Arch Linux x86-64
Kernel version: 5.9.9
I also discovered this issue on the Intel DRM driver issue tracker that may be related.
Last edited by mwohah (2020-11-22 14:22:47)
Offline
The requested logs:
Offline
Nothing really stands out from those logs, and the issue you linked to looks relevant.
I suggest you remove mutter from the title since KDE/Kwin have the same problem.
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Online
Done. In any case, thanks for the feedback and for taking the time to look at the logs.
Offline