GUI apps running on external monitor with 1 FPS

Hardware : intel i915 + NVIDIA GTX 1650 Max-Q (Laptop)

As stated in the title, all GUI based apps run at 1 FPS when turn off the laptop display and only using the external monitor display.

I tested with glxgears tool to check the FPS. As suggested across other posts, I have added the following to the \etc\environment:

#Disabling DRI3 to fix 1FPS on external monitor
LIBGL_DRI3_DISABLE=true

#Offload graphics processing to NVIDIA
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json
VK_LOADER_DRIVERS_SELECT=*nvidia*
_EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/10_nvidia.json
__GLX_VENDOR_LIBRARY_NAME=nvidia
__NV_PRIME_RENDER_OFFLOAD=1
__NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0
__VK_LAYER_NV_optimus=NVIDIA_only

Using vblank_mode=0 as env before calling an app, I don’t see any changes.

After the above changes, the FPS shown by glxgears on the terminal is not 1(I’m seeing high frame rates), but the animation seems to still be happening at 1 FPS.

Using any other apps like Firefox, MPV, Spotify, FreeTube, etc., are unresponsive most of the time. For Ex., MPV drops all frames except 1.

I am not using any Xorg config file.

I have tried generating a xorg config using nvidia-xconfig. But that also did not help much.

Is this a known bug?

nvidia-bug-report.log (805.6 KB)

Is your external display plugged into the nVidia GPU, or the Intel one? Note that this very much depends on your specific laptop hardware design/configuration.

I’m guessing it’s running the rendering on the nVidia chip, but then transferring the framebuffer to the Intel GPU, which then composites it with e.g. the desktop and provides this image to the display itself. The synchronization between the nVidia and Intel GPUs is probably the issue, and/or the compositing itself.

Does your laptop support booting in a dGPU (nVidia) only mode?

1 Like

Hello @snailman153624,

Is your external display plugged into the nVidia GPU, or the Intel one?

The intel GPU does not support any other video output except laptop screen, so the external display is plugged in to nvidia card.

The synchronization between the nVidia and Intel GPUs is probably the issue, and/or the compositing itself.

Yes, seems like the synchronization is the issue. How to fix this? Are any more logs needed for debugging the issue other than the NVIDIA bug report?

Does your laptop support booting in a dGPU (nVidia) only mode

Yes, my laptop supports dGPU (NVIDIA) only mode which I am currently using as I need my laptop for important work, but this significantly reduces battery time from 2.5 hrs to just 1hr (I use the laptop in battery mode for presentations and I travel with it regularly.)

Laptop : Lenovo Legion 5i (2021)

I don’t have an Intel hybrid setup, perhaps someone from nVidia can help.

As an aside, however, have you tried using powertop? You will dramatically increase your laptop’s battery life by enabling dynamic power management on everything.

“Low FPS”/sluggish desktop behavior can happen if you try to use the desktop and it thinks the display (monitor) is disconnected.

I have tried several power management apps such as powertop, TLP, laptop mode tools, autofreq, etc., and none of them have helped. Anyway, the battery life is poor for the legion line of laptops as complained by multiple customers.

What do you mean by desktop and display (monitor)? Are you referring to the same thing or two different things?

I do not care about laptop display as that is always off. All I care about is my monitor (display), which is very sluggish/unusable at the moment.

display/monitor = same thing.

Anyway, if the lid is closed, Xorg/Wayland might think there’s no display connected at all, and it makes the desktop slow.

I don’t understand a few things you mentioned.

xrandr shows the active displays connected to my graphics card. I assume this only possible if Xorg server is able to detect it.

In my case, xrandr identifies two displays, laptop and external monitor. I switch the laptop display off specifically via xrandr. Hence, I am fairly sure Xorg server is aware of the external monitor.

Okay, then I don’t know. If xrandr sees the display and you turn it off it should work just fine.
But I don’t have any experience with PRIME itself so I can’t give you any configuration hints unfortunately.

1 Like