Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VRR run at half the refresh rate when moving the mouse with no_break_fs_vrr in Wayland games only #8582

Open
1 task done
Gliczy opened this issue Nov 25, 2024 · 1 comment
Labels
bug Something isn't working

Comments

@Gliczy
Copy link
Contributor

Gliczy commented Nov 25, 2024

Already reported ? *

  • I have searched the existing open and closed issues.

Regression?

No

System Info and Version

System/Version info
Hyprland 0.45.0 built from branch  at commit b1003445953474b967464d4d0878955d37498647  ().
Date: 2024-11-22
Tag: , commits: 
built against aquamarine 0.5.0


flags set:
debug


System Information:
System name: Linux
Node name: phobos
Release: 6.12.0
Version: #1-NixOS SMP PREEMPT_DYNAMIC Sun Nov 17 22:15:08 UTC 2024


GPU information: 
2f:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 22 [Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT] [1002:73df] (rev c0) (prog-if 00 [VGA controller])


os-release: ANSI_COLOR="1;34"
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="25.05.20241119.23e89b7"
CPE_NAME="cpe:/o:nixos:nixos:25.05"
DEFAULT_HOSTNAME=phobos
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
ID_LIKE=""
IMAGE_ID=""
IMAGE_VERSION=""
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 25.05 (Warbler)"
SUPPORT_END="2025-06-30"
SUPPORT_URL="https://nixos.org/community.html"
VARIANT=""
VARIANT_ID=""
VENDOR_NAME=NixOS
VENDOR_URL="https://nixos.org/"
VERSION="25.05 (Warbler)"
VERSION_CODENAME=warbler
VERSION_ID="25.05"


plugins:

======Config-Start======


Config File: /home/glitch/.config/hypr/hyprland.conf: Read Succeeded
exec-once = /nix/store/2542sr1ch7ypz52w423vyn0fhn934rj7-dbus-1.14.10/bin/dbus-update-activation-environment --systemd --all && systemctl --user stop graphical-session.target && systemctl --user start hyprland-session.target
animations {
  bezier=myBezier, 0.05, 0.9, 0.1, 1.05
  bezier=slideBezier, 0, 0, -1, 4
  bezier=easeOutExpo, 0.16, 1.0, 0.30, 1.0
  bezier=overshot0, 0.05, -0.9, -20.1, 1.05
  bezier=overshot,0.3,0.66,0.29,1.1
  bezier=linear, 0.0, 0.0, 1.0, 1.0
  animation=workspaces, 1, 6, easeOutExpo, slide
  animation=specialWorkspace, 1, 3, slideBezier, slidefadevert 100%
  animation=windows,1,4,overshot,popin
  animation=fade,1,10,default
  animation=border,1,10,default
  enabled=true
}

binds {
  movefocus_cycles_fullscreen=false
}

cursor {
  min_refresh_rate=48
  no_break_fs_vrr=true
  no_hardware_cursors=true
}

debug {
  disable_logs=false
  enable_stdout_logs=true
  error_position=0
}

decoration {
  blur {
    enabled=true
    passes=1
    size=8
  }

  shadow {
    enabled=true
  }
  dim_inactive=false
  dim_strength=1
  rounding=5
}

dwindle {
  pseudotile=false
  smart_split=true
}

general {
  allow_tearing=false
  border_size=3
  col.active_border=rgb(d65d0e)
  col.inactive_border=rgba(665c56aa)
  gaps_in=3
  gaps_out=5
  layout=dwindle
  resize_on_border=false
}

input {
  accel_profile=flat
  follow_mouse=1
  force_no_accel=false
  kb_layout=fr
  kb_options=compose:menu
  numlock_by_default=true
  resolve_binds_by_sym=true
  sensitivity=-0.750000
}

misc {
  animate_manual_resizes=false
  animate_mouse_windowdragging=false
  disable_hyprland_logo=true
  disable_splash_rendering=true
  enable_swallow=false
  force_default_wallpaper=-1
  initial_workspace_tracking=1
  key_press_enables_dpms=true
  middle_click_paste=false
  mouse_move_enables_dpms=true
  new_window_takes_over_fullscreen=2
  render_unfocused_fps=30
  swallow_exception_regex=^(wev)$
  swallow_regex=Alacritty|kitty
  vfr=true
}

render {
  direct_scanout=true
  explicit_sync=1
  explicit_sync_kms=1
}
bind=SUPER, F, fullscreenstate, 1
bind=ALT, F, fullscreenstate, 3
bind=SUPER_SHIFT, F, fullscreenstate, 2
bind=SUPER, SPACE, togglefloating, 
bind=SUPER_SHIFT, SPACE, pin, 
bind=SUPER_SHIFT, Q, killactive, 
bind=SUPER, B, exec, /nix/store/cspjay0jfp4g2cprlvyscig58fx6jiv0-procps-4.0.4/bin/pkill -USR1 waybar
bind=SUPER, RETURN, exec, /nix/store/rsl5pj2xkhbrpfw60w8asz6ln27lv5fc-kitty-0.37.0/bin/kitty 
bind=SUPER, D, exec, /nix/store/9j1nh217fmis0j3c58kwnccgscfvjcjb-anyrun-0-unstable-2023-12-01/bin/anyrun
bind=SUPER, E, exec, dolphin
bind=SUPER, A, exec, firefox
bind=SUPER, L, exec, hyprlock
bind=SUPER, left, movefocus, l
bind=SUPER, right, movefocus, r
bind=SUPER, up, movefocus, u
bind=SUPER, down, movefocus, d
bind=SUPER_SHIFT, left, movewindow, l
bind=SUPER_SHIFT, right, movewindow, r
bind=SUPER_SHIFT, up, movewindow, u
bind=SUPER_SHIFT, down, movewindow, d
bind=SUPER_SHIFT, G, movetoworkspace, 5
bind=ALT_SHIFT, G, movetoworkspacesilent, 5
bind=SUPER, code:10, workspace, 1
bind=SUPER_SHIFT, code:10, movetoworkspace, 1
bind=ALT_SHIFT, code:10, movetoworkspacesilent, 1
bind=SUPER, code:11, workspace, 2
bind=SUPER_SHIFT, code:11, movetoworkspace, 2
bind=ALT_SHIFT, code:11, movetoworkspacesilent, 2
bind=SUPER, code:12, workspace, 3
bind=SUPER_SHIFT, code:12, movetoworkspace, 3
bind=ALT_SHIFT, code:12, movetoworkspacesilent, 3
bind=SUPER, code:13, workspace, 4
bind=SUPER_SHIFT, code:13, movetoworkspace, 4
bind=ALT_SHIFT, code:13, movetoworkspacesilent, 4
bind=SUPER, code:14, workspace, 5
bind=SUPER_SHIFT, code:14, movetoworkspace, 5
bind=ALT_SHIFT, code:14, movetoworkspacesilent, 5
bind=SUPER, code:15, workspace, 6
bind=SUPER_SHIFT, code:15, movetoworkspace, 6
bind=ALT_SHIFT, code:15, movetoworkspacesilent, 6
bind=SUPER, code:16, workspace, 7
bind=SUPER_SHIFT, code:16, movetoworkspace, 7
bind=ALT_SHIFT, code:16, movetoworkspacesilent, 7
bind=SUPER, code:17, workspace, 8
bind=SUPER_SHIFT, code:17, movetoworkspace, 8
bind=ALT_SHIFT, code:17, movetoworkspacesilent, 8
bind=SUPER, code:18, workspace, 9
bind=SUPER_SHIFT, code:18, movetoworkspace, 9
bind=ALT_SHIFT, code:18, movetoworkspacesilent, 9
bind=SUPER, code:19, workspace, 10
bind=SUPER_SHIFT, code:19, movetoworkspace, 10
bind=ALT_SHIFT, code:19, movetoworkspacesilent, 10
bind=SUPER, F1, workspace, 11
bind=SUPER, F2, workspace, 12
bind=SUPER, F3, workspace, 13
bind=SUPER, F4, workspace, 14
bind=SUPER, F5, workspace, 15
bind=SUPER, F6, workspace, 16
bind=SUPER, F7, workspace, 17
bind=SUPER, F8, workspace, 18
bind=SUPER, F9, workspace, 19
bind=SUPER, F10, workspace, 20
bind=SUPER, F11, workspace, 21
bind=SUPER, F12, workspace, 22
bind=ALT_SHIFT, F1, movetoworkspacesilent, 11
bind=ALT_SHIFT, F2, movetoworkspacesilent, 12
bind=ALT_SHIFT, F3, movetoworkspacesilent, 13
bind=ALT_SHIFT, F4, movetoworkspacesilent, 14
bind=ALT_SHIFT, F5, movetoworkspacesilent, 15
bind=ALT_SHIFT, F6, movetoworkspacesilent, 16
bind=ALT_SHIFT, F7, movetoworkspacesilent, 17
bind=ALT_SHIFT, F8, movetoworkspacesilent, 18
bind=ALT_SHIFT, F9, movetoworkspacesilent, 19
bind=ALT_SHIFT, F10, movetoworkspacesilent, 20
bind=ALT_SHIFT, F11, movetoworkspacesilent, 21
bind=ALT_SHIFT, F12, movetoworkspacesilent, 22
bind=SUPER_SHIFT, F1, movetoworkspace, 11
bind=SUPER_SHIFT, F2, movetoworkspace, 12
bind=SUPER_SHIFT, F3, movetoworkspace, 13
bind=SUPER_SHIFT, F4, movetoworkspace, 14
bind=SUPER_SHIFT, F5, movetoworkspace, 15
bind=SUPER_SHIFT, F6, movetoworkspace, 16
bind=SUPER_SHIFT, F7, movetoworkspace, 17
bind=SUPER_SHIFT, F8, movetoworkspace, 18
bind=SUPER_SHIFT, F9, movetoworkspace, 19
bind=SUPER_SHIFT, F10, movetoworkspace, 20
bind=SUPER_SHIFT, F11, movetoworkspace, 21
bind=SUPER_SHIFT, F12, movetoworkspace, 22
binde=SUPER_CTRL, left, resizeactive, -10 0
binde=SUPER_CTRL, right, resizeactive, 10 0
binde=SUPER_CTRL, up, resizeactive, 0 -10
binde=SUPER_CTRL, down, resizeactive, 0 10
bindm=SUPER, mouse:272, movewindow
bindm=SUPER, mouse:273, resizewindow
env=XDG_CURRENT_DESKTOP,Hyprland
env=XDG_SESSION_DESKTOP,Hyprland
env=XDG_SESSION_TYPE,wayland
env=CLUTTER_BACKEND,wayland
env=QT_AUTO_SCREEN_SCALE_FACTOR,1
env=QT_QPA_PLATFORM,wayland;xcb
env=QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env=QT_QPA_PLATFORMTHEME,qt6ct
env=GDK_BACKEND=wayland,x11
env=GTK_USE_PORTAL,1
env=GDK_DEBUG,portals
env=_JAVA_AWT_WM_NONREPARENTING,1
env=NIXOS_OZONE_WL,1
env=XKB_DEFAULT_LAYOUT,fr
env=XKB_DEFAULT_VARIANT,azerty
env=XDG_MENU_PREFIX,plasma-
env=HYPRCURSOR_THEME,HyprBibatamodernClassicSVG
env=HYPRCURSOR_SIZE,24
exec-once=dbus-update-activation-environment --systemd QT_QPA_PLATFORM QT_QPA_PLATFORMTHEME _JAVA_AWT_WM_NONREPARENTING CURSOR_SIZE XCURSOR_THEME XDG_MENU_PREFIX
exec-once=dbus-update-activation-environment PATH
exec-once=systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP QT_QPA_PLATFORMTHEME GTK_THEME XDG_MENU_PREFIX
layerrule=noanim, ^(selection)$
layerrule=blur, ^(gtk-layer-shell)$
layerrule=ignorezero, ^(gtk-layer-shell)$
layerrule=blur, notifications
layerrule=ignorezero, notifications
layerrule=blur, bar
layerrule=ignorezero, bar
layerrule=ignorezero, ^(gtk-layer-shell|anyrun)$
layerrule=blur, ^(gtk-layer-shell|anyrun)$
monitor=DP-1,[email protected],0x0,1,vrr,2
monitor=DP-2,[email protected],-1280x25,1
monitor=HDMI-A-1,1920x1080@60,1920x0,1
windowrulev2=float, title:^(Open File)$
windowrulev2=float, title:^(Open Folder)$
windowrulev2=float, class:^(org.kde.polkit-kde-authentication-agent-1)$
windowrulev2=float, class:^(lxqt-policykit-agent)$
windowrulev2=float, title:^(Authentication Required)
windowrulev2=float, class:^(org.freedesktop.impl.portal.desktop.kde)$
windowrulev2=float, title:(Open Files)$
windowrulev2=float, class:^(firefox)$, title:^(Picture-in-Picture)$
windowrulev2=float, class:^(firefox)$, title:^(Firefox)$
windowrulev2=float, title:^(KeePassXC - Browser Access Request)$
windowrulev2=float, title:^(OpenSnitch v.*)$
windowrulev2=float, title:^(Screenshot Manager)$
windowrulev2=float, title:^(About .*.)$
windowrulev2=float, class:^(steam)$, title:^(Steam Settings)$
windowrulev2=float, class:^(steam)$, title:^(?!.*(?:steam|Steam|Friends List)).+$
windowrulev2=pin, class:^(firefox)$, title:^(Picture-in-Picture)$, floating:1
windowrulev2=pin, class:^(mpv)$, floating:1
windowrulev2=float, class:^(ark)$
windowrulev2=float, class:^(org.kde.keditfiletype)$
windowrulev2=float, class:^(org.kde.dolphin)$, title:^(Copying — Dolphin)$
windowrulev2=float, class:^(org.kde.dolphin)$, title:^(Moving — Dolphin)$
windowrulev2=float, class:^(org.kde.dolphin)$, title:^(Extracting Files — Dolphin)$
windowrulev2=float, class:^(xdg-desktop-portal-gtk)$
windowrulev2=float, class:^(yad)$
windowrulev2=float, class:^(zenity)$
windowrulev2=dimaround, class:^(gcr-prompter)$
windowrulev2=dimaround, class:^(org.kde.polkit-kde-authentication-agent-1)$
windowrulev2=dimaround, class:^(lxqt-policykit-agent)$
windowrulev2=dimaround, title:^(Authentication Required)
windowrulev2=dimaround, class:^(org.freedesktop.impl.portal.desktop.kde)$
windowrulev2=dimaround, title:^(Open Files)$
windowrulev2=dimaround, class:^(xdg-desktop-portal-gtk)$
windowrulev2=dimaround, title:^(KeePassXC - Browser Access Request)$
windowrulev2=dimaround, title:^(Unlock Database - KeePassXC)$
windowrulev2=dimaround, title:^(Open File)$
windowrulev2=dimaround, title:^(Open Folder)$
windowrulev2=dimaround, title:^(New Folder — Dolphin)$
windowrulev2=dimaround, title:^(Creating directory — Dolphin)$
windowrulev2=dimaround, title:^(Opening .*)$
windowrulev2=idleinhibit fullscreen, class:^(firefox)$
windowrulev2=idleinhibit focus, class:^(firefox)$, title:^(.*YouTube.*)$
windowrulev2=idleinhibit focus, class:^(mpv)$
windowrulev2=idleinhibit focus, tag:game
windowrulev2=tag +game, class:^(steam_app_.*)$
windowrulev2=tag +game, class:^(steam_proton)$
windowrulev2=tag +game, class:^(gamescope)$
windowrulev2=tag +game, class:^(.gamescope-wrapped)$
windowrulev2=tag +game, class:^(cs2)$
windowrulev2=tag +game, class:^(factorio)$
windowrulev2=tag +game, class:^(Stardew.*)$
windowrulev2=tag +game, class:^(Minecraft.*)$
windowrulev2=tag +game, title:^(Minecraft.*)$
windowrulev2=tag +game, class:^(dsda-doom)$
windowrulev2=tag +game, class:^(.openmw.*)$
windowrulev2=tag +game, class:^(hl2_linux)$
windowrulev2=workspace 5, tag:game
windowrulev2=tile, tag:game
windowrulev2=renderunfocused, tag:game
windowrulev2=noinitialfocus, title:^(notificationtoasts.*)$
windowrulev2=suppressevent maximize, class:.*
windowrulev2=nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
windowrulev2=suppressevent fullscreen, class:^(dev.zed.Zed)$
windowrulev2=noborder, xwayland:1, floating:1
windowrulev2=noblur, xwayland:1, floating:1
windowrulev2=noanim, xwayland:1, floating:1
windowrulev2=norounding, xwayland:1, floating:1
windowrulev2=decorate off, xwayland:1, floating:1
workspace=1, monitor:DP-1, default:true
workspace=2, monitor:DP-1
workspace=3, monitor:DP-1
workspace=4, monitor:DP-1
workspace=5, monitor:DP-1
workspace=6, monitor:DP-1
workspace=7, monitor:DP-1
workspace=8, monitor:DP-1
workspace=9, monitor:DP-1
workspace=10, monitor:DP-1
workspace=11, monitor:HDMI-A-1, default:true
workspace=12, monitor:HDMI-A-1,
workspace=13, monitor:HDMI-A-1
workspace=14, monitor:HDMI-A-1
workspace=15, monitor:HDMI-A-1
workspace=16, monitor:HDMI-A-1
workspace=17, monitor:HDMI-A-1
workspace=18, monitor:HDMI-A-1
workspace=19, monitor:DP-2, default:true
workspace=20, monitor:DP-2
workspace=21, monitor:DP-2
workspace=22, monitor:DP-2

======Config-End========

Description

When running a Wayland native game with VRR (vrr=1 or vrr=2) and with no_break_fs_vrr=true and no_hardware_cursors=true (sw cursors are required for the first option), moving the mouse causes the refresh rate drop down the about half of the display's refresh rate, even though the framerate is much higher.

I tested this with Minecraft by unsetting DISPLAY and Half-Life 2 by setting SDL_VIDEODRIVER=wayland.

Notes:

  • This is not a problem when moving the mouse in the menus where the cursor is visible.
  • VRR works normally when running the same game with the same settings but with XWayland.
  • Setting no_break_fs_vrr=false will instead make the refresh rate jump back to the maximum everytime the mouse is moved.

How to reproduce

  • Run a Wayland native game with no_break_fs_vrr=true and no_hardware_cursors=true.
  • VRR will function properly as long as you do not move the mouse.
  • Move the mouse and the refresh rate will lower to about half the rate of the display (this doesn't seem to happen if the cursor is visible, so VRR works as expected in the menus).

Crash reports, logs, images, videos

No response

@Gliczy Gliczy added the bug Something isn't working label Nov 25, 2024
@Gliczy
Copy link
Contributor Author

Gliczy commented Nov 25, 2024

CC @UjinT34 since you have worked on this option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant