hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
20.78k stars 874 forks source link

Framerate dropping when moving mouse around the screen #8036

Closed ProfChaos closed 3 days ago

ProfChaos commented 3 days ago

Already reported ? *

Regression?

Yes

System Info and Version

System/Version info ```sh Hyprland, built from branch at commit 0c7a7e2d569eeed9d6025f3eef4ea0690d90845d (). Date: 2024-10-06 Tag: , commits: 5299 built against aquamarine 0.4.1 flags: (if any) System Information: System name: Linux Node name: audev Release: 6.10.9-zen1 Version: #1-NixOS ZEN SMP PREEMPT_DYNAMIC Tue Jan 1 00:00:00 UTC 1980 GPU information: 2d:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD103 [GeForce RTX 4080] [10de:2704] (rev a1) (prog-if 00 [VGA controller]) NVRM version: NVIDIA UNIX x86_64 Kernel Module 560.35.03 Fri Aug 16 21:39:15 UTC 2024 os-release: ANSI_COLOR="1;34" BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues" BUILD_ID="24.11.20241006.c31898a" DOCUMENTATION_URL="https://nixos.org/learn.html" HOME_URL="https://nixos.org/" ID=nixos IMAGE_ID="" IMAGE_VERSION="" LOGO="nix-snowflake" NAME=NixOS PRETTY_NAME="NixOS 24.11 (Vicuna)" SUPPORT_URL="https://nixos.org/community.html" VERSION="24.11 (Vicuna)" VERSION_CODENAME=vicuna VERSION_ID="24.11" plugins: ======Config-Start====== Config File: /home/dan/.config/hypr/hyprland.conf: Read Succeeded exec-once = /nix/store/4a86f7kq7757fjwf5zzwk0jxixn4330n-dbus-1.14.10/bin/dbus-update-activation-environment --systemd DISPLAY HYPRLAND_INSTANCE_SIGNATURE WAYLAND_DISPLAY XDG_CURRENT_DESKTOP && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target $base=0xff1e1e2e $baseAlpha=ff1e1e2e $blue=0xff89b4fa $blueAlpha=ff89b4fa $crust=0xff11111b $crustAlpha=ff11111b $flamingo=0xfff2cdcd $flamingoAlpha=fff2cdcd $green=0xffa6e3a1 $greenAlpha=ffa6e3a1 $lavender=0xffb4befe $lavenderAlpha=ffb4befe $mantle=0xff181825 $mantleAlpha=ff181825 $maroon=0xffeba0ac $maroonAlpha=ffeba0ac $mauve=0xffcba6f7 $mauveAlpha=ffcba6f7 $mod=SUPER $overlay0=0xff6c7086 $overlay0Alpha=ff6c7086 $overlay1=0xff7f849c $overlay1Alpha=ff7f849c $overlay2=0xff9399b2 $overlay2Alpha=ff9399b2 $peach=0xfffab387 $peachAlpha=fffab387 $pink=0xfff5c2e7 $pinkAlpha=fff5c2e7 $red=0xfff38ba8 $redAlpha=fff38ba8 $rosewater=0xfff5e0dc $rosewaterAlpha=fff5e0dc $sapphire=0xff74c7ec $sapphireAlpha=ff74c7ec $sky=0xff89dceb $skyAlpha=ff89dceb $subtext0=0xffa6adc8 $subtext0Alpha=ffa6adc8 $subtext1=0xffbac2de $subtext1Alpha=ffbac2de $surface0=0xff313244 $surface0Alpha=ff313244 $surface1=0xff45475a $surface1Alpha=ff45475a $surface2=0xff585b70 $surface2Alpha=ff585b70 $teal=0xff94e2d5 $tealAlpha=ff94e2d5 $text=0xffcdd6f4 $textAlpha=ffcdd6f4 $yellow=0xfff9e2af $yellowAlpha=fff9e2af animations { bezier=myBezier, 0.05, 0.9, 0.1, 1.05 animation=windows, 1, 7, myBezier animation=windowsOut, 1, 7, default, popin 80% animation=border, 1, 10, default animation=borderangle, 1, 8, default animation=fade, 1, 7, default animation=workspaces, 1, 6, default enabled=yes } decoration { blur { enabled=yes new_optimizations=yes passes=1 size=3 } col.shadow=rgba(1a1a1aee) drop_shadow=yes rounding=8 shadow_range=4 shadow_render_power=3 } dwindle { pseudotile=yes smart_split=true } general { border_size=5 col.active_border=$peach $pink $blue 45deg col.inactive_border=$surface0 gaps_in=5 gaps_out=10 layout=dwindle } gestures { workspace_swipe=off } group { groupbar { col.active=$pink col.inactive=$surface0 gradients=no } col.border_active=$blue $green 45deg col.border_inactive=$surface0 } input { follow_mouse=1 kb_layout=us,no kb_options=grp:caps_switch sensitivity=0 } bind=$mod, Q, killactive, bind=$mod, M, exit, bind=$mod SHIFT, F, togglefloating, bind=$mod, space, exec, rofi -show drun -show-icons bind=$mod, o, exec, firefox bind=$mod, k, exec, kitty bind=$mod, P, pseudo, bind=$mod, J, togglesplit, bind=$mod, G, togglegroup, bind=$mod SHIFT, G, moveoutofgroup bind=$mod, comma, changegroupactive, b bind=$mod, period, changegroupactive, f bind=$mod, F, fullscreen, bind=$mod, grave, changegroupactive, f bind=$mod SHIFT, grave, changegroupactive, b bind=$mod, left, movefocus, l bind=$mod, right, movefocus, r bind=$mod, up, movefocus, u bind=$mod, down, movefocus, d bind=$mod SHIFT, left, movewindow, l bind=$mod SHIFT, right, movewindow, r bind=$mod SHIFT, up, movewindow, u bind=$mod SHIFT, down, movewindow, d bind=$mod, 1, workspace, 1 bind=$mod, 2, workspace, 2 bind=$mod, 3, workspace, 3 bind=$mod, 4, workspace, 4 bind=$mod, 5, workspace, 5 bind=$mod SHIFT, 1, movetoworkspace, 1 bind=$mod SHIFT, 2, movetoworkspace, 2 bind=$mod SHIFT, 3, movetoworkspace, 3 bind=$mod SHIFT, 4, movetoworkspace, 4 bind=$mod SHIFT, 5, movetoworkspace, 5 bind=, XF86AudioPlay, exec, playerctl play-pause bind=, XF86AudioNext, exec, playerctl next bind=, XF86AudioPrev, exec, playerctl previous bind=$mod, mouse_down, workspace, e+1 bind=$mod, mouse_up, workspace, e-1 bind=, code:66, pass, ^discord$ bind=, Print, exec, grim -g "$(slurp)" bindm=$mod, mouse:272, movewindow bindm=$mod, mouse:273, resizewindow exec-once=waybar exec-once=dunst exec-once=hyprctl setcursor oreo_spark_pink_bordered_cursors 24 layerrule=noanim, rofi monitor=DP-1, 5120x1440@240, 0x0, 1 monitor=Unknown-1, disable windowrulev2=syncfullscreen 0,class:(brave-browser) windowrulev2=syncfullscreen 0,class:(chromium-browser) windowrulev2=syncfullscreen 0,class:(firefox) ======Config-End======== ```

Description

After updating to 0.44.0 I'm getting major framerate issues. When moving the mouse around in any window but especially from window to window the frame rate goes sub 10 for the entire screen.

I only have one ultrawide monitor.

How to reproduce

I went backwards in the commit log to find that it is this https://github.com/hyprwm/Hyprland/commit/e6cf643f5ab1c1545fb858ab1fd9d7538ef9e0f3 that is introducing the issue for me. The commit before works fine

Crash reports, logs, images, videos

https://github.com/user-attachments/assets/a2f3d643-3830-4671-a956-8c234e7b6e95

RadicalTray commented 3 days ago

I also have this issue but according to the wiki, hardware cursor on nvidia isn't officially supported. just use

cursor {
    no_hardware_cursors = true
}

or

cursor {
    allow_dumb_copy = true
}
Zenzi0 commented 3 days ago

I noticed this as well. This started happening a few weeks back with a commit that changed something with the cursor (probably the one mentioned in OPs report). The interesting part is that prior to that the cursor behaved normally. So no stutters/frame drops even without no_hardware_cursor set on Nvidia hardware. I lack the knowledge to judge whether it was falling back to software cursor automatically or hardware cursor was actually working on Nvidia back then. A bit of a shame, since there was a short time in which I didn't need to use ANY envs specific to Nvidia at all. It was working without specifying no_hardware_cursors in Sway as well (for all I know it still is).

vaxerski commented 3 days ago

this is a limitation with nvidia's hardware that we can't atm do much about.

It was working without specifying no_hardware_cursors in Sway as well (for all I know it still is).

likely falls back to sw cursors by default, which IIRC is the default in hl too.

just use

cursor {
   no_hardware_cursors = true
}

correct, should fix the problem

dexxiez commented 3 days ago
cursor {
    no_hardware_cursors = true
}

Just started having this issue on 0.44 with nvidia, guess i was just on borrowed time lmao, above fixed xx