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.97k stars 880 forks source link

Monitor flickering when adaptive sync is on #7085

Closed Rolv-Apneseth closed 2 months ago

Rolv-Apneseth commented 2 months ago

Regression?

Yes

System Info and Version

System/Version info ```sh Hyprland, built from branch at commit 918d8340afd652b011b937d29d5eea0be08467f5 (flake.lock: update). Date: Tue Jun 25 12:06:02 2024 Tag: v0.41.2, commits: 4886 flags: (if any) System Information: System name: Linux Node name: archlinux Release: 6.10.1-arch1-1 Version: #1 SMP PREEMPT_DYNAMIC Wed, 24 Jul 2024 22:25:43 +0000 GPU information: 03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 [Radeon RX 6900 XT] [1002:73af] (rev c0) (prog-if 00 [VGA controller]) 0e:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Raphael [1002:164e] (rev cb) (prog-if 00 [VGA controller]) os-release: NAME="Arch Linux" PRETTY_NAME="Arch Linux" ID=arch BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" HOME_URL="https://archlinux.org/" DOCUMENTATION_URL="https://wiki.archlinux.org/" SUPPORT_URL="https://bbs.archlinux.org/" BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues" PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/" LOGO=archlinux-logo plugins: ======Config-Start====== Config File: /home/rolv/.config/hypr/hyprland.conf: Read Succeeded monitor=, preferred, auto, 1 # COLOURS ------------------------------------------------------------------------------------------ $ACTIVE_BORDER = rgba(ff00ffff) $ACTIVE_BORDER_GRADIENT = rgba(bb00bbaa) $INACTIVE_BORDER = rgba(595959aa) $SHADOW = rgba(00000044) # ENVIRONMENT VARIABLES ---------------------------------------------------------------------------- env = _JAVA_AWT_WM_NONREPARENTING,1 env = WLR_NO_HARDWARE_CURSORS,1 env = XCURSOR_SIZE,24 env = XCURSOR_THEME,Bibata-Original-Classic env = MOZ_ENABLE_WAYLAND,1 env = XDG_CURRENT_DESKTOP,Hyprland env = XDG_SESSION_TYPE,wayland env = XDG_SESSION_DESKTOP,Hyprland env = QT_AUTO_SCREEN_SCALE_FACTOR,1 env = QT_QPA_PLATFORM,wayland;xcb env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 env = CLUTTER_BACKEND,wayland env = GDK_BACKEND,wayland,x11,* env = SDL_VIDEODRIVER,wayland # EXECUTE ON STARTUP ------------------------------------------------------------------------------ # Fixes exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP HYPRLAND_INSTANCE_SIGNATURE exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP HYPRLAND_INSTANCE_SIGNATURE exec-once = xsettingsd exec-once = hyprctl setcursor "Bibata-Original-Classic" "24" # Base exec-once = /usr/lib/polkit-kde-authentication-agent-1 exec-once = waybar exec-once = nm-applet # Network management exec-once = wpaperd # Wallpaper exec-once = dunst # Notifications exec-once = openrgb -p Main # RGB exec-once = mpd # Music # Clipboard exec-once = wl-paste -t text --watch clipman store --no-persist --notify exec-once = wl-clip-persist --clipboard regular # Additional scripts $SCRIPTS_DIR = /home/rolv/.config/hypr/scripts exec-once = $SCRIPTS_DIR/xdg.sh exec = $SCRIPTS_DIR/gsettings.sh # Startup programs exec-once=[workspace 1 silent] firefox exec-once=[workspace 2 silent] wezterm exec-once=[workspace 5 silent] google-chat-linux exec-once=[workspace 6 silent] thunderbird # OPTIONS ------------------------------------------------------------------------------------------ input { kb_layout = us follow_mouse = 2 } general { gaps_in = 10 gaps_out = 12 border_size = 1 col.active_border = $ACTIVE_BORDER $ACTIVE_BORDER_GRADIENT 45deg col.inactive_border = $INACTIVE_BORDER layout = master no_border_on_floating = yes } cursor { no_warps = true inactive_timeout = 0 hide_on_key_press = true } decoration { rounding = 10 drop_shadow = yes shadow_range = 10 shadow_render_power = 1 shadow_offset = 5 5 col.shadow = $SHADOW col.shadow_inactive = $SHADOW blur { enabled = yes size = 3 passes = 2 new_optimizations = true } } animations { enabled = yes } dwindle { preserve_split = yes } master { inherit_fullscreen = true no_gaps_when_only = true } misc { disable_hyprland_logo = true disable_splash_rendering = true vfr = on disable_autoreload = false } # WINDOW RULES ------------------------------------------------------------------------------------ # Ignore maximising windowrulev2 = suppressevent maximize, class:.* # Custom class for floating windowrulev2 = float, class:floating windowrulev2 = suppressevent fullscreen, class:floating # Custom rules for floating windows windowrulev2 = animation popin 10%, floating:1 # windowrulev2 = opacity 0.9, floating:1 # Auto floating windowrulev2 = float, title:^(Open File)(.*)$ windowrulev2 = size 800 500, title:^(Open File)(.*)$ windowrulev2 = float, title:^(File Upload)(.*)$ windowrulev2 = size 800 500, title:^(File Upload)(.*)$ windowrulev2 = float, title:^(Select File)(.*)$ windowrulev2 = size 800 500, title:^(Select File)(.*)$ windowrulev2 = float, title:^(Open Folder)(.*)$ windowrulev2 = size 800 500, title:^(Open Folder)(.*)$ windowrulev2 = float, title:^(Save As)(.*)$ windowrulev2 = size 800 500, title:^(Save As)(.*)$ windowrulev2 = float, title:^(Save Image)(.*)$ windowrulev2 = size 800 500, title:^(Save Image)(.*)$ windowrulev2 = float, title:^(Library)(.*)$ windowrulev2 = size 800 500, title:^(Library)(.*)$ windowrulev2 = float, title:^(Choose Files)(.*)$ windowrulev2 = size 800 500, title:^(Choose Files)(.*)$ windowrulev2 = float, title:^(Save As)(.*)$ windowrulev2 = size 800 500, title:^(Save As)(.*)$ windowrulev2 = float, title:^(File Operation Progress)$ windowrulev2 = float, class:(file-roller) windowrulev2 = float, class:(pavucontrol) windowrulev2 = size 800 500, class:(pavucontrol) windowrulev2 = center, class:(pavucontrol) windowrulev2 = float, class:flameshot windowrulev2 = suppressevent fullscreen, class:flameshot windowrulev2 = float, title:^(Mission Center)(.*)$ windowrulev2 = size 60% 50%, title:^(Mission Center)(.*)$ # Auto full-screen windowrulev2 = fullscreen,class:^(google-chat-linux)$,floating:0 windowrulev2 = fullscreen,class:^(thunderbird)$,floating:0 windowrulev2 = fullscreen,class:^(firefox)$,floating:0 # BINDINGS ---------------------------------------------------------------------------------------- # See https://wiki.hyprland.org/Configuring/Keywords/ for more binds { workspace_back_and_forth = true } $M = SUPER $A = ALT $MS = SUPER SHIFT $MA = SUPER ALT $MC = SUPER CONTROL # System bind = $MS, S, exec, poweroff --no-wall bind = $MS, R, exec, reboot --no-wall bind = $MS, Q, exec, hyprctl dispatch exit bind = $M, semicolon, exec, hyprctl dispatch workspace 10 && hyprlock && hyprctl dispatch workspace 10 # Terminal bind = $M, Return, exec, "$TERMINAL" # Browser bind = $M, F, exec, "$BROWSER" bind = $M, O, exec, "$BROWSER" https://stackoverflow.com/questions/tagged?sort=Newest&filters=NoAnswers&tagMode=Watched&uqlId=33538 bind = $M, Y, exec, "$BROWSER" https://www.youtube.com/ bind = $M, G, exec, "$BROWSER" https://github.com/Rolv-Apneseth # Windows bind = $M, W, killactive, bind = $M, Space, fullscreen, bind = $MS, Space, layoutmsg, orientationcycle left top # Window resize submap bind=$A,R,submap,resize submap=resize binde=,l,resizeactive,100 0 binde=,h,resizeactive,-100 0 binde=,k,resizeactive,0 -100 binde=,j,resizeactive,0 100 bind=,escape,submap,reset submap=reset # Move focus bind = $M, L, layoutmsg, focusmaster auto bind = $M, H, layoutmsg, focusmaster auto bind = $M, J, layoutmsg,cyclenext bind = $M, K, layoutmsg, cycleprev bind = $MS, L, layoutmsg, swapwithmaster auto bind = $MS, H, layoutmsg, swapwithmaster auto bind = $MS, K, layoutmsg, swapprev bind = $MS, J,layoutmsg, swapnext # Workspaces bind = $M, 1, workspace, 1 bind = $M, 2, workspace, 2 bind = $M, 3, workspace, 3 bind = $M, 4, workspace, 4 bind = $M, 5, workspace, 5 bind = $M, 6, workspace, 6 bind = $M, 7, workspace, 7 bind = $M, 8, workspace, 8 bind = $M, 9, workspace, 9 bind = $M, 0, workspace, 10 # Move active window to a workspace with M + $S + [0-9] bind = $MS, 1, movetoworkspacesilent, 1 bind = $MS, 2, movetoworkspacesilent, 2 bind = $MS, 3, movetoworkspacesilent, 3 bind = $MS, 4, movetoworkspacesilent, 4 bind = $MS, 5, movetoworkspacesilent, 5 bind = $MS, 6, movetoworkspacesilent, 6 bind = $MS, 7, movetoworkspacesilent, 7 bind = $MS, 8, movetoworkspacesilent, 8 bind = $MS, 9, movetoworkspacesilent, 9 bind = $MS, 0, movetoworkspacesilent, 10 # Scroll through existing workspaces with M + scroll bind = $M, mouse_down, workspace, e+1 bind = $M, mouse_up, workspace, e-1 # Move/resize windows with M + LMB/RMB and dragging bindm = $M, mouse:272, movewindow bindm = $M, mouse:273, resizewindow # Media keys binde=,XF86AudioLowerVolume, exec, change_volume down binde=,XF86AudioRaiseVolume, exec, change_volume up bind =,XF86AudioMute, exec, change_volume toggle # bind =,XF86AudioMicMute, exec, # binde=,XF86MonBrightnessUp, exec, # binde=,XF86MonBrightnessDown, exec, # bind =,XF86AudioPlay, exec, # bind =,XF86AudioPrev, exec, # bind =,XF86AudioNext, exec, # Terminal extras bind = $MS, Return, exec, wezterm start --cwd "$(last_dir)" # Editor bind = $M, N, exec, wezterm -e "$EDITOR" bind = $MS, N, exec, wezterm -e "$EDITOR" "$(last_dir)" # File explorer bind = $M, T, exec, thunar bind = $MS, T, exec, thunar "$(last_dir)" # Rofi bind = $M, D, exec, rofi-wrapper run bind = $MS, D, exec, rofi-wrapper games bind = $M, C, exec, rofi-wrapper clipboard bind = $MS, C, exec, rofi-wrapper calc bind = $M, S, exec, rofi-wrapper sound_sink bind = $M, E, exec, rofi-wrapper edit bind = $M, I, exec, rofi-wrapper nerdy bind = $MS, I, exec,rofi-wrapper emojis # Music bind = $M, M, exec, mpc toggle bind = $MS, M, exec, mpc next # Screenshot bind = $M, P, exec, flameshot gui # Hyprfreeze bind = $MS, P, exec, hyprfreeze -a # Wallpaper bind = $M, B, exec, wpaperctl next-wallpaper bind = $MS, B, exec, wpaperctl previous-wallpaper # Notes - zk bind = $M, Z, exec, [floating;dimaround;size 50% 80%;center] wezterm -e --class floating nvim -c 'ZkNotes' # System monitoring bind = $MS, X, exec, [floating;dimaround;size 50% 80%;center] wezterm -e --class floating btm ======Config-End======== ```

Description

Running Arch Linux with an AMD GPU, and after upgrading on Friday, I've been having some pretty severe flickering that make the system unusable. I've (I think) confirmed it's not the monitor by dual-booting into Windows (forgive me for my sins) and seeing if there was any flickering there.

Came back to the computer again today and narrowed it down: I can avoid the issue by either forcing 120hz using monitor=,2560x1440@120,auto,1 OR turning off adaptive sync in the monitor's settings.

Any idea what might cause this / how to fix? Thank you in advance.

How to reproduce

Didn't do anything in particular, just updated the latest hyprland package (not the AUR -git one, though the problem is still present there too)

Crash reports, logs, images, videos

https://github.com/user-attachments/assets/04b45fd4-6fe3-406b-86ad-2462438ce60b

vaxerski commented 2 months ago

bisect pls if thats a hl issue

Rolv-Apneseth commented 2 months ago

Sure thing yeah, I'll get that done later

Rolv-Apneseth commented 2 months ago

Doesn't look like it's a hl issue, noticed it's also happening at the display manager. Just gonna keep adaptive sync off for now