Hyprland problem with external screen

Hi guys,

I’ve noticed after the last system update last week that moving my mouse cursor causes my system to massively drop FPS - but ONLY while the mouse cursor is on an external monitor, connected to my laptop via HDMI. I’m not sure it this is due to the latest hyprland update, NVidia drivers, both or something else.

Before I go into details let me say that I’m aware that hyprland does NOT guarantee good performance on NVidia, so my question is there purely for personal information to work out if anyone else has dealt with this issue before.

I’ve tried Multi-GPU settings as described in Hyprland docs and that resulted in my external monitor working fast as expected, but the built-in display stayed all black (though xrandr correctly described its relative position and resolution).

Is there any set of of hyprland parameters that are worth checking before I try migrating to another wm?

My entire system configuration can be found here. Specifically, hyprland config is here and installed packages are here.

I added this to the end of my hyprland.conf file

cursor {
    no_hardware_cursors = true
}

This made the lag lower while no window is active in the external monitor but when a window IS active lag comes back albeit a lower amount of it. Id appreciate a mention it if anyone found a fix for this issue.
**nvidia&intel igpu user here

I fixed? the problem by adding these lines to my hyprland.conf source

# force gbm as a backend

env = GBM_BACKEND,nvidia-drm

env = __GLX_VENDOR_LIBRARY_NAME,nvidia

env = LIBVA_DRIVER_NAME,nvidia # Hardware acceleration

and after this i enabled tlp service and increased the minimum freq of my intelgpu by adding this to my configuration.nix

  services = {
    power-profiles-daemon.enable = false; # has to be disabled to use tlp

    tlp = {
      enable = true;
      settings = {
        # Set the min/max/turbo frequency for the Intel GPU. Possible values depend on your hardware. See the output of tlp-stat -g for available frequencies.
        INTEL_GPU_MIN_FREQ_ON_AC = 300;
        INTEL_GPU_MIN_FREQ_ON_BAT = 100;
        # INTEL_GPU_MAX_FREQ_ON_AC=0
        # INTEL_GPU_MAX_FREQ_ON_BAT=0
        # INTEL_GPU_BOOST_FREQ_ON_AC=0
        # INTEL_GPU_BOOST_FREQ_ON_BAT=0
      };
    };
  };

Now my screen isnt lagging on the external monitor most of the time :slight_smile:

just setting the dedicated gpu as the primary renderer makes this work even better at the cost of some performance probably

Just follow this link bratfizyk shared as well and you can choose which way you prefer it