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
21.56k stars 903 forks source link

Second monitor flickering first time on boot #7724

Closed LukeXuan closed 2 weeks ago

LukeXuan commented 2 months ago

Already reported ? *

Regression?

Yes

System Info and Version

System/Version info ```sh Hyprland, built from branch at commit 0f594732b063a90d44df8c5d402d658f27471dfe (props: bump version to 0.43.0). Date: Sun Sep 8 16:48:21 2024 Tag: v0.43.0, commits: 5196 flags: (if any) System Information: System name: Linux Node name: luke-desktop Release: 6.10.7-200.fc40.x86_64 Version: #1 SMP PREEMPT_DYNAMIC Fri Aug 30 00:08:59 UTC 2024 GPU information: 03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 32 [Radeon RX 7700 XT / 7800 XT] [1002:747e] (rev c8) (prog-if 00 [VGA controller]) 11:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Raphael [1002:164e] (rev c9) (prog-if 00 [VGA controller]) os-release: NAME="Fedora Linux" VERSION="40 (Sway)" ID=fedora VERSION_ID=40 VERSION_CODENAME="" PLATFORM_ID="platform:f40" PRETTY_NAME="Fedora Linux 40 (Sway)" ANSI_COLOR="0;38;2;60;110;180" LOGO=fedora-logo-icon CPE_NAME="cpe:/o:fedoraproject:fedora:40" DEFAULT_HOSTNAME="fedora" HOME_URL="https://fedoraproject.org/" DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f40/system-administrators-guide/" SUPPORT_URL="https://ask.fedoraproject.org/" BUG_REPORT_URL="https://gitlab.com/fedora/sigs/sway/SIG/-/issues" REDHAT_BUGZILLA_PRODUCT="Fedora" REDHAT_BUGZILLA_PRODUCT_VERSION=40 REDHAT_SUPPORT_PRODUCT="Fedora" REDHAT_SUPPORT_PRODUCT_VERSION=40 SUPPORT_END=2025-05-13 VARIANT="Sway" VARIANT_ID=sway plugins: ======Config-Start====== Config File: /home/luke/.config/hypr/hyprland.conf: Read Succeeded # monitors # monitor=DP-1,disabled monitor=DP-1,preferred,0x0,1.5 monitor=HDMI-A-1,preferred,2560x0,1.5 ## exec_once applications # services exec-once = systemctl --user start hyprland-session.target exec-once = hyprpaper exec-once = hypridle # xdg-autostart exec-once = dex-autostart -a # gtk settings exec-once = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' exec-once = gsettings set org.gnome.desktop.interface icon-theme 'breeze-dark' exec-once = gsettings set org.gnome.desktop.interface gtk-theme 'Breeze-Dark' exec-once = gsettings set org.gnome.desktop.interface cursor-theme 'breeze_cursors' # programs $scripts = ~/.config/hypr $terminal = $scripts/term.sh $fileManager = dolphin $menu = rofi -terminal $scripts/kitty_new_tab.sh -show combi -show-icons -modes combi -combi-modes "window,drun,run,ssh" # Some default env vars. env = XCURSOR_THEME,breeze_cursors env = XCURSOR_SIZE,24 env = QT_QPA_PLATFORMTHEME,qt6ct # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ debug { disable_logs = false } input { kb_layout = us kb_variant = kb_model = kb_options = kb_rules = follow_mouse = 2 touchpad { natural_scroll = false } special_fallthrough = true sensitivity = 0 # -1.0 - 1.0, 0 means no modification. } general { # See https://wiki.hyprland.org/Configuring/Variables/ for more # gaps_in = 5 gaps_out = 10 border_size = 2 col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg col.inactive_border = rgba(595959aa) layout = dwindle # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on # allow_tearing = true } group { col.border_active = rgba(33ccffee) rgba(00ff99ee) 45deg col.border_inactive = rgba(595959aa) groupbar { font_family = JetBrains Mono font_size = 20 height = 20 text_color = rgba(6A7190ff) col.active = rgba(ffffffbb) col.inactive = rgba(aaaaaa64) } } decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more rounding = 10 inactive_opacity = .9 blur { enabled = true size = 10 passes = 1 vibrancy = 0.1696 } drop_shadow = true shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) } animations { enabled = true # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more bezier = default, 0.22, 1, 0.36, 1 animation = windows, 1, 7, default 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, fade } dwindle { # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = true # you probably want this } render { # direct_scanout = true } xwayland { force_zero_scaling = true } misc { vrr = 0 disable_hyprland_logo = true disable_splash_rendering = true force_default_wallpaper = 0 } windowrulev2 = suppressevent maximize fullscreen, class:.* # You'll probably like this. ## application specific rules # kitty workspace = special:Terminal, on-created-empty:kitty windowrulev2 = size 1920 1080, onworkspace:special:Terminal windowrulev2 = pseudo, onworkspace:special:Terminal # zoom windowrulev2 = group barred,class:^(zoom)$ windowrulev2 = workspace name:Zoom,class:^(zoom)$ windowrulev2 = float,class:^(zoom)$ windowrulev2 = maxsize 1600 900,class:^(zoom)$ # steam windowrulev2 = group barred,class:^(steam)$ windowrulev2 = workspace name:Steam silent,class:^(steam)$ windowrulev2 = float,class:^(steam)$ windowrulev2 = maxsize 1600 900,class:^(steam)$ # thunderbird windowrulev2 = group barred,title:^(?!Mozilla Thunderbird$).*,class:^(org.mozilla.Thunderbird)$ windowrulev2 = float,title:^(?!Mozilla Thunderbird$).*,class:^(org.mozilla.Thunderbird)$ windowrulev2 = maxsize 1600 900,title:^(?!Mozilla Thunderbird$).*,class:^(org.mozilla.Thunderbird)$ # list of floating windows $floating_pattern = lxqt-policykit-agent|gnome-abrt windowrulev2 = float, class:^($floating_pattern)$ # fullscreen related setups windowrulev2 = immediate, fullscreen:1 windowrulev2 = fullscreenstate 2 3, class:^(steam_.*)$ windowrule = idleinhibit fullscreen, .* ## bindings $mainMod = SUPER # the actual opening of kitty is handled in the related workspace rule above bind = $mainMod, return, togglespecialworkspace, Terminal bind = $mainMod SHIFT, Q, killactive, bind = $mainMod ALT SHIFT, E, exit, bind = $mainMod, E, exec, $fileManager bind = $mainMod, SPACE, cyclenext bind = $mainMod SHIFT, Space, togglefloating, bind = $mainMod, D, exec, $menu bind = $mainMod, P, exec, $scripts/grimblast --notify copy area bind = $mainMod SHIFT, P, exec, $scripts/grimblast --notify copy output #dwindle-layout bind = $mainMod ALT, P, pseudo, bind = $mainMod, T, togglesplit, bind = $mainMod, W, togglegroup bind = $mainMod, Tab, changegroupactive bind = $mainMod, backslash, changegroupactive bind = $mainMod, F, fullscreen, 0 # Move focus/window bind = $mainMod, J, movefocus, l bind = $mainMod, semicolon, movefocus, r bind = $mainMod, K, movefocus, u bind = $mainMod, L, movefocus, d bind = $mainMod SHIFT, J, movewindoworgroup, l bind = $mainMod SHIFT, semicolon, movewindoworgroup, r bind = $mainMod SHIFT, K, movewindoworgroup, u bind = $mainMod SHIFT, L, movewindoworgroup, d # Switch workspaces with mainMod + [0-9] bind = $mainMod, 1, workspace, 1 bind = $mainMod, 2, workspace, 2 bind = $mainMod, 3, workspace, 3 bind = $mainMod, 4, workspace, 4 bind = $mainMod, 5, workspace, 5 bind = $mainMod, 6, workspace, 6 bind = $mainMod, 7, workspace, 7 bind = $mainMod, 8, workspace, 8 bind = $mainMod, 9, workspace, 9 bind = $mainMod, 0, workspace, 10 # Move active window to a workspace with mainMod + SHIFT + [0-9] bind = $mainMod SHIFT, 1, movetoworkspace, 1 bind = $mainMod SHIFT, 2, movetoworkspace, 2 bind = $mainMod SHIFT, 3, movetoworkspace, 3 bind = $mainMod SHIFT, 4, movetoworkspace, 4 bind = $mainMod SHIFT, 5, movetoworkspace, 5 bind = $mainMod SHIFT, 6, movetoworkspace, 6 bind = $mainMod SHIFT, 7, movetoworkspace, 7 bind = $mainMod SHIFT, 8, movetoworkspace, 8 bind = $mainMod SHIFT, 9, movetoworkspace, 9 bind = $mainMod SHIFT, 0, movetoworkspace, 10 # Move workspace to different monitors bind = $mainMod SHIFT ALT, j, movecurrentworkspacetomonitor, l bind = $mainMod SHIFT ALT, semicolon, movecurrentworkspacetomonitor, r # Example special workspace (scratchpad) bind = $mainMod, S, togglespecialworkspace, ScratchPad bind = $mainMod SHIFT, S, movetoworkspace, special:ScratchPad # Scroll through existing workspaces with mainMod + scroll bind = $mainMod, mouse_down, workspace, m+1 bind = $mainMod, mouse_up, workspace, m-1 bind = $mainMod, page_up, workspace, m-1 bind = $mainMod, page_down, workspace, m+1 # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow ======Config-End======== ```

Description

The second monitor (HDMI) has a high probability flickers first time after boot. This issue clears itself if I turn off and turn on the monitor again. This issue doesn't reappear after logout and login.

This issue didn't exist on 0.39 (the version shipped by official fedora repo), but exists on 0.43.

How to reproduce

boot system

Crash reports, logs, images, videos

hyprctl monitor output when the monitor is flickering (only showing the relevant monitor):

Monitor HDMI-A-1 (ID 1):
    3840x2160@60.00000 at 2560x0
    description: Dell Inc. DELL P2715Q 54KKD79JETBL
    make: Dell Inc.
    model: DELL P2715Q
    serial: 54KKD79JETBL
    active workspace: 2 (2)
    special workspace: 0 ()
    reserved: 0 41 0 0
    scale: 1.50
    transform: 0
    focused: no
    dpmsStatus: 1
    vrr: 0
    activelyTearing: false
    disabled: false
    currentFormat: A XRGB8888 H XRGB8888
    availableModes: 3840x2160@60.00Hz 3840x2160@60.00Hz 3840x2160@59.94Hz 3840x2160@50.00Hz 3840x2160@30.00Hz 3840x2160@30.00Hz 3840x2160@29.97Hz 3840x2160@25.00Hz 3840x2160@24.00Hz 3840x2160@23.98Hz 1920x1200@59.95Hz 1920x1080@60.00Hz 1920x1080@60.00Hz 1920x1080@59.94Hz 1920x1080@50.00Hz 1920x1080@24.00Hz 1920x1080@23.98Hz 1600x1200@60.00Hz 1680x1050@59.88Hz 1280x1024@75.03Hz 1280x1024@60.02Hz 1440x900@60.00Hz 1280x800@59.91Hz 1152x864@75.00Hz 1280x720@60.00Hz 1280x720@59.94Hz 1280x720@50.00Hz 1024x768@75.03Hz 1024x768@60.00Hz 800x600@75.00Hz 800x600@60.32Hz 720x576@50.00Hz 720x576@50.00Hz 720x480@60.00Hz 720x480@60.00Hz 720x480@59.94Hz 720x480@59.94Hz 640x480@75.00Hz 640x480@60.00Hz 640x480@59.94Hz 640x480@59.94Hz 720x400@70.08Hz 

Relevant logs (from start until opening the first window): https://pastebin.com/wjswQbU1

picture of flickering monitor (link to discord).

vaxerski commented 2 months ago

please attach the image, it's gone.

Also, can you bisect?

LukeXuan commented 2 months ago

11D41239-CF44-4FF3-912F-B5641352BB3F

Bisecting is gonna be tedious... As I mentioned, the problem only occurs right after boot, so simply running another Hyprland instance doesn't work. I need to hook it to SDDM and reboot everytime. Maybe I can figure out an ergonomic setup this weekend.

btw, what is the commit that Hyprland switched to aquamarine? The working version was using wlroots and I susepct the switch is the culprit.

LukeXuan commented 2 months ago

OK, I found one more detail: The OSD for the flickering monitor shows that it is receiving signal of 3842x2160@60Hz, instead of 3840x2160@60Hz. That should narrow down the issue quite a lot?

photo_2024-09-10_13-46-44

It's kind of hilarious actually..

LukeXuan commented 2 months ago

OK, after swapping the connection cables the problem seems to be fixed.

One thing that's definitely causing problem is that Dell P2715Q (the problematic monitor) has dubious HDMI 2.0 support. It worked without a problem for years, but I assume newer version of hyprland is less tolerant for some reason. It seems like DP cables works fine.

I will keep this issue open for a few days, in case the problem comes back.

vaxerski commented 2 months ago

that's very odd indeed, dunno how that could happen

erahhal commented 2 months ago

Seeing this on a Lenovo Thinkpad P14s AMD 5th Gen (780M GPU) connected through DP. Doesn't seem HDMI specific.

LukeXuan commented 1 month ago

I have not experienced this problem myself since I swapped the display cables. I will unsubscribe from this issue and maybe someone still affected by the problem can push for it.

vaxerski commented 1 month ago

if nobody else has this on -git I'll close this

devraza commented 2 weeks ago

Yeah, I'm running the same hardware as erahhal and didn't get an issue like this (NixOS, used the flake and compiled Hyprland myself, so I think it was on -git).

erahhal commented 1 week ago

I'm not seeing it anymore either.