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 seems to break after a while and requires a reboot to fix #8492

Open
1 task done
Gwenodai opened this issue Nov 16, 2024 · 1 comment
Open
1 task done

VRR seems to break after a while and requires a reboot to fix #8492

Gwenodai opened this issue Nov 16, 2024 · 1 comment
Labels
bug Something isn't working

Comments

@Gwenodai
Copy link

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 main at commit 3fb47372b79265ebdabeeefdad10359d5b18377a  ().
Date: Wed Nov 13 07:34:52 2024
Tag: , commits: 5451
built against aquamarine 0.4.5


flags set:
debug


System Information:
System name: Linux
Node name: gwen-x570
Release: 6.11.7-300_tkg_zen2_preempt.fc41.x86_64
Version: #1 SMP PREEMPT_DYNAMIC TKG Sat Nov  9 10:31:34 UTC 2024


GPU information: 
05:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev cf) (prog-if 00 [VGA controller])
0c: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 c1) (prog-if 00 [VGA controller])


os-release: NAME="Fedora Linux"
VERSION="41 (Forty One)"
RELEASE_TYPE=stable
ID=fedora
VERSION_ID=41
VERSION_CODENAME=""
PLATFORM_ID="platform:f41"
PRETTY_NAME="Fedora Linux 41 (Forty One)"
ANSI_COLOR="0;38;2;60;110;180"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:41"
DEFAULT_HOSTNAME="fedora"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f41/system-administrators-guide/"
SUPPORT_URL="https://ask.fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=41
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=41
SUPPORT_END=2025-12-15


plugins:

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


Config File: /home/gwen/.config/hypr/hyprland.conf: Read Succeeded
monitor=,preferred,auto,auto # Unknown monitor defaults

$scripts = $HOME/.local/bin/hypr # Store scripts directory for later use

# Compartmentalise configuration into seperate files within 'config' subdirectory
source=~/.config/hypr/config/envars.conf
source=~/.config/hypr/config/startup.conf
source=~/.config/hypr/config/settings.conf
source=~/.config/hypr/config/animations.conf
source=~/.config/hypr/config/displays.conf
source=~/.config/hypr/config/keybinds.conf
source=~/.config/hypr/config/rules-layer.conf
source=~/.config/hypr/config/rules-window.conf
source=~/.config/hypr/config/rules-workspace.conf
source=~/.config/hypr/config/plugins.conf

Config File: /home/gwen/.config/hypr/config/envars.conf: Read Succeeded
env = XCURSOR_THEME,Vimix-cursors
env = XCURSOR_SIZE,24
env = GDK_BACKEND,wayland,x11,*
env = QT_QPA_PLATFORM,wayland;xcb
env = QT_QPA_PLATFORMTHEME, qt5ct
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
# env = SDL_VIDEODRIVER,wayland
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland
env = AQ_DRM_DEVICES,/dev/dri/card1 # Use RX 470 instead of 6700 XT


Config File: /home/gwen/.config/hypr/config/startup.conf: Read Succeeded
# wallpaper
exec-once = swww query || swww init

# Core components (authentication, lock screen, notification daemon)
exec-once = dbus-update-activation-environment --all
exec-once = sleep 1 && dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # Some fix idk
exec-once = sleep 1 && systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP

# Clipboard: history
exec-once = wl-paste --type text --watch cliphist store
exec-once = wl-paste --type image --watch cliphist store

# Special startup script
exec-once = $scripts/specialStartup.sh

Config File: /home/gwen/.config/hypr/config/settings.conf: Read Succeeded
input {
    kb_layout = us
    numlock_by_default = true
    repeat_delay = 250
    repeat_rate = 35
    sensitivity = 0.7
    accel_profile = flat

    mouse_refocus = true
    float_switch_override_focus = 1
    special_fallthrough = false
    follow_mouse = 1
}

cursor {
    no_hardware_cursors = true
    inactive_timeout = 3
    default_monitor = DP-1
    no_break_fs_vrr = true
    min_refresh_rate = 24
}

binds {
    workspace_back_and_forth=1
    scroll_event_delay = 0
}

general {
    # Gaps and border
    no_border_on_floating = false
    gaps_in = 3
    gaps_out = 3
    gaps_workspaces = 50
    border_size = 2   
    
    # Colours
    col.active_border = rgba(ff00ad80)
    col.inactive_border = rgba(59595900)

    resize_on_border = false
    extend_border_grab_area = false
    hover_icon_on_border = false
    # no_focus_fallback = true
    layout = dwindle
    allow_tearing = false
}

dwindle {
	preserve_split = true
    pseudotile = true
	smart_split = false
	smart_resizing = true
}

decoration {
    rounding = 20
    active_opacity = 1.0
    inactive_opacity = 0.9
    fullscreen_opacity = 1.0
    
    blur {
        enabled = true
        xray = false
        special = true
        new_optimizations = true
        size = 5
        passes = 3
        brightness = 0.8
        noise = 0.01
        contrast = 1
        ignore_opacity = true
        popups = true
        popups_ignorealpha = 0.6
    }

    shadow {
        enabled = true
        ignore_window = true
        range = 16
        offset = 2 2
        render_power = 2
        color = rgba(00000076)
    }
    
    # Dim
    dim_inactive = false
    dim_strength = 0.1
    dim_special = 0
}

xwayland {
    force_zero_scaling = true
}

render {
    explicit_sync = 1
    explicit_sync_kms = 0
    direct_scanout = false
}

misc {
    vfr = true
    vrr = 2
    focus_on_activate = false
    animate_manual_resizes = false
    animate_mouse_windowdragging = false
    enable_swallow = false
    # swallow_regex = (kitty|YACReaderLibrary)
    mouse_move_enables_dpms = true
    key_press_enables_dpms = true
    allow_session_lock_restore = true
    disable_hyprland_logo = true
    force_default_wallpaper = 0
    new_window_takes_over_fullscreen = 0
    initial_workspace_tracking = 0
    render_unfocused_fps = 5
}

debug {
    overlay = false
}

Config File: /home/gwen/.config/hypr/config/animations.conf: Read Succeeded
animations {
    enabled = true

    # Animation curves
    bezier = linear, 0, 0, 1, 1
    bezier = md3_standard, 0.2, 0, 0, 1
    bezier = md3_decel, 0.05, 0.7, 0.1, 1
    bezier = md3_accel, 0.3, 0, 0.8, 0.15
    bezier = overshot, 0.05, 0.9, 0.1, 1.1
    bezier = crazyshot, 0.1, 1.5, 0.76, 0.92 
    bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0
    bezier = menu_decel, 0.1, 1, 0, 1
    bezier = menu_accel, 0.38, 0.04, 1, 0.07
    bezier = easeInOutCirc, 0.85, 0, 0.15, 1
    bezier = easeOutCirc, 0, 0.55, 0.45, 1
    bezier = easeOutExpo, 0.16, 1, 0.3, 1
    bezier = softAcDecel, 0.26, 0.26, 0.15, 1
    bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration

    # Animation configs
    animation = windows, 1, 3, md3_decel, popin 60%
    animation = windowsIn, 1, 3, md3_decel, popin 60%
    animation = windowsOut, 1, 3, md3_accel, popin 60%
    animation = windowsMove, 1, 3, md3_decel, slide 60%
    animation = border, 1, 10, default
    animation = fade, 1, 3, md3_decel
    animation = layersIn, 1, 3, menu_decel, slide
    animation = layersOut, 1, 1.6, menu_accel
    animation = fadeLayersIn, 1, 3, menu_decel
    animation = fadeLayersOut, 1, 1.6, menu_accel
    animation = workspaces, 1, 7, menu_decel, slidefade 10%
    animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 80%
}

Config File: /home/gwen/.config/hypr/config/displays.conf: Read Succeeded
monitor=desc:ViewSonic Corporation XG2401 SERIES 0x01010101,[email protected],0x0,1.0 # Left
monitor=desc:AOC 2260W BJGD79A000241,[email protected],1920x300,1.0 # Right
monitor=desc:Philips Consumer Electronics Company PHILIPS FTV 0x01010101,disabled # TV


Config File: /home/gwen/.config/hypr/config/keybinds.conf: Read Succeeded
#################### Variables ###################
$terminal = kitty --single-instance
$fileManager = nemo
$webBroswer = google-chrome
$menu = pkill rofi || rofi -show drun -display-drun "" -icon-theme "Papirus Dark" -show-icons
$menu2 = pkill rofi || rofi -show run -display-run "" -icon-theme "Papirus Dark" -show-icons

################### keybinds ###################
# Volume
bindle = , XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise
bindle = , XF86AudioLowerVolume, exec, swayosd-client --output-volume lower
bindl  = , XF86AudioMute, exec, swayosd-client --output-volume mute-toggle

################################### Applications ###################################
# Apps: just normal apps
bind = Super, Q, exec, $terminal
bind = Super, E, exec, $fileManager
bind = Super, W, exec, $webBroswer
bind = Super, G, exec, swaync-client -t -sw

# Apps: Settings and config
bind = Control+Shift, Escape, exec, flatpak run net.nokyan.Resources

# Actions
bind = Super+Shift, P, pseudo, # dwindle
bind = Super, Z, togglesplit, # dwindle
bind = Super, C, killactive,
bind = Super, V, togglefloating,
bind = Super+Shift, V, exec, sh -c 'hyprctl --batch "dispatch togglefloating ; dispatch pin ;"'
bind = Super, Tab, exec, ags -t overview # open overview
# bind = Super, Tab, hycov:toggleoverview # open overview
# bind = Super, Tab, overview:toggle, all # open overview

# Screenshot, Color picker, Clipboard history
bind = Control, Print, exec, $HOME/.local/bin/hyprshot -m window -m active -o $HOME/Documents/Pictures/Screenshots | wl-copy # Current window
bind = Control_Shift, Print, exec, $HOME/.local/bin/hyprshot -F -m region -o $HOME/Documents/Pictures/Screenshots  | wl-copy # Selectable region
bind = , Print, exec, $HOME/.local/bin/hyprshot -m output -m active -o $HOME/Documents/Pictures/Screenshots | wl-copy		# Current screen
bind = Super+Control, C, exec, hyprpicker -a
bind = Super+Control, V, exec, pkill rofi || cliphist list | rofi -dmenu | cliphist decode | wl-copy

# Media
bindl= ,XF86AudioPlay, exec, playerctl play-pause
bindl= ,XF86AudioStop, exec, playerctl stop
bindl= ,XF86AudioNext, exec, playerctl next
bindl= ,XF86AudioPrev, exec, playerctl previous

# App launchers
bind = Super, R, exec, $menu
bind = Super+Shift, R, exec, $menu2

##################################### Special keybinds #####################################
# Refresh waybar, swaync, rofi
bind = Control+Super, R, exec, $scripts/refresh.sh

# Wallpapers
bind = Super+Shift, W, exec, $scripts/wallpaperSelect.sh # Select wallpaper to apply

# Waybar / Bar related
bind = Super, B, exec, killall -SIGUSR1 waybar # Toggle hide/show waybar 

########################### Keybinds for Hyprland ############################
# Swap windows
bind = Super+Shift, left, movewindow, l
bind = Super+Shift, right, movewindow, r
bind = Super+Shift, up, movewindow, u
bind = Super+Shift, down, movewindow, d

# Move focus
bind = Super, left, movefocus, l
bind = Super, right, movefocus, r
bind = Super, up, movefocus, u
bind = Super, down, movefocus, d
bind = Super, Space, exec, $scripts/swapWorkspaces.sh "DP-1" "DP-2"

# Workspace switch with arrows
bind = Control+Super, right, workspace, +1
bind = Control+Super, left, workspace, -1

# Window split ratio
binde = Super, Minus, splitratio, -0.1
binde = Super, Equal, splitratio, 0.1
binde = Super, Semicolon, splitratio, -0.1
binde = Super, Apostrophe, splitratio, 0.1

# Fullscreen
bind = Super, F, fullscreen, 0
bind = Super, D, fullscreen, 1

# Switching
bind = Super, 1, focusworkspaceoncurrentmonitor, 1
bind = Super, 2, focusworkspaceoncurrentmonitor, 2
bind = Super, 3, focusworkspaceoncurrentmonitor, 3
bind = Super, 4, focusworkspaceoncurrentmonitor, 4
bind = Super, 5, focusworkspaceoncurrentmonitor, 5
bind = Super, 6, focusworkspaceoncurrentmonitor, 6
bind = Super, 7, focusworkspaceoncurrentmonitor, 7
bind = Super, 8, focusworkspaceoncurrentmonitor, 8
bind = Super, 9, focusworkspaceoncurrentmonitor, 9
bind = Super, 0, focusworkspaceoncurrentmonitor, 10
bind = Super, X, focusworkspaceoncurrentmonitor, 10 # Game workspace
bind = Super, S, togglespecialworkspace,
bind = Super, A, togglespecialworkspace, alt
bind = Alt, Tab, cyclenext
bind = Alt, Tab, bringactivetotop, # bring it to the top

# Move window to workspace Super + Alt + [0-9]
bind = Super+Shift, 1, movetoworkspacesilent, 1
bind = Super+Shift, 2, movetoworkspacesilent, 2
bind = Super+Shift, 3, movetoworkspacesilent, 3
bind = Super+Shift, 4, movetoworkspacesilent, 4
bind = Super+Shift, 5, movetoworkspacesilent, 5
bind = Super+Shift, 6, movetoworkspacesilent, 6
bind = Super+Shift, 7, movetoworkspacesilent, 7
bind = Super+Shift, 8, movetoworkspacesilent, 8
bind = Super+Shift, 9, movetoworkspacesilent, 9
bind = Super+Shift, 0, movetoworkspacesilent, 10
bind = Super+Shift, X, movetoworkspacesilent, 10 # Game workspace
bind = Super+Shift, S, movetoworkspacesilent, special
bind = Super+Shift, A, movetoworkspacesilent, special:alt

# Scroll through existing workspaces with (Control) + Super + scroll
bind = Super, mouse_up, workspace, e+1
bind = Super, mouse_down, workspace, e-1
bind = Control+Super, mouse_up, workspace, +1
bind = Control+Super, mouse_down, workspace, -1

# Move/resize windows with Super + LMB/RMB and dragging
bindm = Super, mouse:272, movewindow
bindm = Super, mouse:273, resizewindow

Config File: /home/gwen/.config/hypr/config/rules-layer.conf: Read Succeeded
# Rofi (App launcher)
layerrule = ignorealpha 0.0, rofi
layerrule = blur, rofi
layerrule = animation slide bottom, rofi

# Waybar
layerrule = ignorealpha 0.0, waybar
layerrule = blur, waybar

# SwayNotificationCenter
layerrule = ignorealpha 0.0, swaync-control-center
layerrule = ignorealpha 0.0, swaync-notification-window
layerrule = blur, swaync-control-center
layerrule = blur, swaync-notification-window
layerrule = animation slide right, swaync-control-center

# SwayOSD (Volume OSD)
layerrule = ignorealpha 0.01, swayosd
layerrule = blur, swayosd

# Colour picker/Screenshots
layerrule = noanim, hyprpicker
layerrule = noanim, selection

# Overview
layerrule = ignorealpha 0.0, overview
layerrule = blur, overview
layerrule = animation slide top, overview

# Misc
layerrule = ignorealpha 0.6, shell:*
layerrule = ignorealpha 0.0 gtk-layer-shell
layerrule = blur, shell:*
layerrule = blur, gtk-layer-shell

Config File: /home/gwen/.config/hypr/config/rules-window.conf: Read Succeeded
######## Main Rules ########
windowrulev2 = bordercolor rgba(ff000080),pinned:1 # Pinned border colour
windowrulev2 = bordercolor rgba(00fbff80),fullscreen:1 # Fullscreen border colour
windowrulev2 = suppressevent maximize, class:.* # Supress maximize events

######## Specific Windows ########
# file-roller
windowrulev2 = center,class:^(file-roller)$
windowrulev2 = center,class:^(org.gnome.FileRoller)$
windowrulev2 = float,class:^(file-roller)$
windowrulev2 = float,class:^(org.gnome.FileRoller)$
windowrulev2 = size 900 600,class:^(org.gnome.FileRoller)$

# Nemo File Manager
windowrulev2 = float,class:^(nemo)$,title:(Properties)$
windowrulev2 = float,class:^(nemo_action_layout_editor.py)$,title:(Nemo Actions Layout Editor)$

# Seahorse
windowrulev2 = float,class:^(seahorse)$,title:(Creating Secure Shell Key)$

# Steam
windowrule = float,title:^(Create or select new Steam library folder)$
windowrule = float,title:^(Steam Settings)$
windowrule = workspace 10,title:^(Steam Big Picture Mode)$
windowrule = tile,title:^(Steam Big Picture Mode)$

# ProtonUp-Qt
windowrulev2 = float,class:^(net.davidotek.pupgui2)$

# Calculator
windowrulev2 = float,class:^(org.gnome.Calculator)$
windowrulev2 = size 420 640,class:^(org.gnome.Calculator)$

# Google-Chrome
windowrulev2 = float,class:^(google-chrome)$,title:^(Open File)$
windowrulev2 = float,class:^(google-chrome)$,title:^(Open Files)$

# Spotify
windowrulev2 = workspace special:alt silent,class:(Spotify)$

# Start games tiled instead of floating
windowrulev2 = tile,class:^(steam_app_)(.*)$
windowrulev2 = tile,class:^(.*)(exe)$
windowrulev2 = tile,class:^(Project Zomboid)$

# Don't turn off monitor when using VM
windowrulev2 = idleinhibit focus,class:(looking-glass-client)$

windowrule = float,title:^(Preferences - Sublime Merge)(.*)$

# Misc Dialogs/Pop-up windows
windowrule = float,title:^(Choose Files)$
windowrule = float,title:^(Choose wallpaper)(.*)$
windowrule = float,title:^(Confirm to replace files)$
windowrule = float,title:^(File Operation Progress)$
windowrule = float,title:^(Library)(.*)$
windowrule = float,title:^(Open File)(.*)$
windowrule = float,title:^(Open Folder)(.*)$
windowrule = float,title:^(Select Folder)(.*)$
windowrule = float,title:^(Select)(.*)(folder)$
windowrule = float,title:^(Open)$
windowrule = float,title:^(Save As)(.*)$
windowrule = float,title:^(Select a File)(.*)$

######## Transparent Windows ########
windowrulev2 = opacity 0.85, floating:1 # Make all floating windows transparent
# Force full opacity on fullscreen windows above this
windowrulev2 = opacity 1.0 override, fullscreen:1
# Windows that want opacity while fullscreen below this
windowrule   = opacity 0.9, ^(sublime_text)$
windowrule   = opacity 0.8, ^(nemo)$
windowrule   = opacity 0.85, ^(vesktop)$
windowrulev2 = opacity 0.85,class:(Spotify)$

######## PIP rules ########
windowrulev2 = opacity 1.0 0.75,title:^(Picture-in-Picture)$
windowrulev2 = float, title:^(Picture-in-Picture)$
windowrulev2 = move 72% 7%,title:^(Picture-in-Picture)$
windowrulev2 = pin,title:^(Picture-in-Picture)$
windowrulev2 = size 25% 25%,title:^(Picture-in-Picture)$

######## Screen Sharing rules ########
windowrulev2 = opacity 0.0 override, class:^(xwaylandvideobridge)$
windowrulev2 = noanim, class:^(xwaylandvideobridge)$
windowrulev2 = noinitialfocus, class:^(xwaylandvideobridge)$
windowrulev2 = maxsize 1 1, class:^(xwaylandvideobridge)$
windowrulev2 = noblur, class:^(xwaylandvideobridge)$

Config File: /home/gwen/.config/hypr/config/rules-workspace.conf: Read Succeeded
workspace = 1, monitor:DP-1, default:true, persistent:true
workspace = 2, monitor:DP-2, default:true, persistent:true

Config File: /home/gwen/.config/hypr/config/plugins.conf: Read Succeeded
# plugin {
#     overview {
#         showEmptyWorkspace = true
#         showNewWorkspace = true
#         panelHeight = 160
#         hideTopLayers = true
#     }
# }

# plugin = /usr/lib64/libhycov.so
# plugin {
#     hycov {
#         overview_gappo = 60 # gaps width from screen edge
#         overview_gappi = 24 # gaps width from clients
#         enable_hotarea = 1 # enable mouse cursor hotarea, when cursor enter hotarea, it will toggle overview    
#         enable_click_action = 1 # enable mouse left button jump and right button kill in overview mode
#         hotarea_monitor = all # monitor name which hotarea is in, default is all
#         hotarea_pos = 1 # position of hotarea (1: bottom left, 2: bottom right, 3: top left, 4: top right)
#         hotarea_size = 10 # hotarea size, 10x10
#         swipe_fingers = 4 # finger number of gesture,move any directory
#         move_focus_distance = 100 # distance for movefocus,only can use 3 finger to move 
#         enable_gesture = 0 # enable gesture
#         auto_exit = 1 # enable auto exit when no client in overview
#         auto_fullscreen = 0 # auto make active window maximize after exit overview
#         only_active_workspace = 0 # only overview the active workspace
#         only_active_monitor = 0 # only overview the active monitor
#         enable_alt_release_exit = 0 # alt swith mode arg,see readme for detail
#         alt_replace_key = Alt_L # alt swith mode arg,see readme for detail
#         alt_toggle_auto_next = 0 # auto focus next window when toggle overview in alt swith mode
#         click_in_cursor = 1 # when click to jump,the target windwo is find by cursor, not the current foucus window.
#         hight_of_titlebar = 0 # height deviation of title bar height
#         show_special = 0 # show windwos in special workspace in overview.
#         raise_float_to_top = 1 # raise the window that is floating before to top after leave overview mode
#     }
# }
======Config-End========

Description

After a random amount of time VRR seems to break entirely, after it breaks my monitor's OSD will only report a solid 143.9Hz and nothing seems to bring back proper functionality except for rebooting my PC. This isn't a new bug either as it has been plaguing me ever since I swapped to Hyprland earlier this year back in version 0.39 or so.

I can't seem to figure out a reason or pattern to it. But I have noticed two very strange things that happen after the bug has triggered and VRR is no longer functional:

  1. hyprctl monitors still reports the monitors vrr status as vrr: true in scenarios where it should be, such as when an application is fullscreen with vrr = 2 set. Despite this, VRR is non functional and everything runs at 143.9Hz. (See video 1 below)
  2. When using no_break_fs_vrr = true in fullscreen apps there seems to be large sections of the screen that are running at full refresh rate while other sections only refresh when they are supposed to. (See video 2 below)
    This is different from how it functions normally (prior to the bug activating), where the entire window will render at the applications refresh rate or on static windows a multiple of what's set in min_refresh_rate which for me is 24 (See video 3 below)

Number 2 leads me to believe this has something to do with Hyprland rendering something (or some portion of the screen) at full refresh rate all the time once the bug occurs. Even odder is that this persists through disabling the screen in Hyprland, turning the screen itself off, and even exiting Hyprland and starting a new instance of it. I've not found a way of returing normal function outside of just plain restarting my PC.

Has anyone else experienced this? Previously Atemu reported something here #8382 that is similar to my experience in point 2 above except that VRR was still partially functioning, though he later went on to state that he couldn't reproduce it.

It doesn't seem to matter whether vfr is enabled or disabled either.

How to reproduce

I'm honestly unsure as it just seems to happen every now and then for me with no real obvious cause.

  1. Use Hyprland for a while
  2. Check if VRR is still functioning every now and then?

Crash reports, logs, images, videos

  1. VRR entirely nonfunctional despite hyprctl monitors reporting the monitors vrr status as vrr: true and the game being in fullscreen:
20241117_032831.mp4
  1. How a fullscreen application renders with no_break_fs_vrr = true after the bug has occurred:
20241117_034317.mp4
  1. How a fullscreen application renders with no_break_fs_vrr = true normally and prior to the bug occurring:
20241117_035125.mp4
@Gwenodai Gwenodai added the bug Something isn't working label Nov 16, 2024
@Gwenodai
Copy link
Author

Not a fix, but I have reliably not run into this issue since changing from vrr = 2 to vrr = 1. So there's something that goes wrong at some point when Hyprland attempts to enable or disable VRR that eventaully breaks it until a reboot. The downside of this workaround is that if you use vrr = 1 you will see the odd VRR flicker from time to time as the refresh rate jumps around as you do things on static screens.

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