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.05k stars 881 forks source link

VRR on causes monitor to continously connect - disconnect #7007

Open Flexksx opened 2 months ago

Flexksx 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.0-arch1-2 Version: #1 SMP PREEMPT_DYNAMIC Mon, 22 Jul 2024 17:28:23 +0000 GPU information: 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA106M [GeForce RTX 3060 Mobile / Max-Q] [10de:2520] (rev a1) (prog-if 00 [VGA controller]) 06:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [Radeon Vega Series / Radeon Vega Mobile Series] [1002:1636] (rev c6) (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/flexksx/.config/hypr/hyprland.conf: Read Succeeded # ####################################################################################### # AUTOGENERATED HYPR CONFIG. # PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT, # OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS. # ####################################################################################### # # Please note not all available settings / options are set here. # For a full list, see the wiki # # Source a file (multi-file configs) # source = ~/.config/hypr/myColors.conf source = ~/dotfiles-Hyprland/hyprland/keybinds.conf source = ~/dotfiles-Hyprland/hyprland/monitors.conf source = ~/dotfiles-Hyprland/hyprland/startup.conf source = ~/dotfiles-Hyprland/hyprland/appearance.conf source = ~/dotfiles-Hyprland/hyprland/pyprland_keybinds.conf # Some default env vars. env = XCURSOR_SIZE,24 env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { kb_layout = us kb_variant = kb_model = kb_options = kb_rules = follow_mouse = 1 touchpad { natural_scroll = yes } sensitivity = 0 # -1.0 to 1.0, 0 means no modification. } dwindle { # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = yes # you probably want this } master { # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more # new_is_master = true } gestures { # See https://wiki.hyprland.org/Configuring/Variables/ for more workspace_swipe = off } misc { # See https://wiki.hyprland.org/Configuring/Variables/ for more force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers vrr = 0 # Set to 0 to disable VRR } # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more device { name = epic-mouse-v1 sensitivity = -0.5 } # Example windowrule v1 # windowrule = float, ^(kitty)$ # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more windowrulev2 = suppressevent maximize, class:.* # You'll probably like this. Config File: /home/flexksx/dotfiles-Hyprland/hyprland/keybinds.conf: Read Succeeded # Set programs that you use $terminal = kitty $fileManager = thunar $menu = rofi -show drun # See https://wiki.hyprland.org/Configuring/Keywords/ for more $mainMod = SUPER # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mainMod, Q, exec, $terminal bind = $mainMod, C, killactive, bind = $mainMod, M, exit, bind = $mainMod, E, exec, $fileManager bind = $mainMod, V, togglefloating, bind = $mainMod, R, exec, $menu bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, J, togglesplit, # dwindle # Move focus with mainMod + arrow keys bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r bind = $mainMod, up, movefocus, u bind = $mainMod, down, movefocus, 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 # Example special workspace (scratchpad) bind = $mainMod, S, togglespecialworkspace, magic bind = $mainMod SHIFT, S, movetoworkspace, special:magic # Scroll through existing workspaces with mainMod + scroll bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow # Screenshot bind bind = , Print, exec, wl-copy < <(grim -g "$(slurp)" -) # Volume down bind binde = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- binde = , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ # To raise the volume, with a limit of 150% binde = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle # Screen brightness bind bind = , xf86monbrightnessup, exec, brightnessctl set 10%+ bind = , xf86monbrightnessdown, exec, brightnessctl set 10%- # Lock screen bind bind = $mainMod, L, exec, hyprlock Config File: /home/flexksx/dotfiles-Hyprland/hyprland/monitors.conf: Read Succeeded # See https://wiki.hyprland.org/Configuring/Monitors/ monitor = eDP-1, 1920x1080@144, 0x500, 1 # monitor = DP-1, 1920x1080@60, 4480x135, 1 # monitor = HDMI-A-1, 2560x1440@144, 1920x0, 1 monitor = DP-1, 2560x1440@120, 1920x0, 1, bitdepth,10 monitor = HDMI-A-1, 1920x1080@60, 4480x135, 1 # monitor = eDP-1, disabled # monitor = DP-1, disabled # monitor = HDMI-A-1, 2560x1440@120, 1920x0, 1, bitdepth,10 # monitor = DP-1, 1920x1080@60, 4480x135, 1 # monitor = eDP-1, 1920x1080@144, 0x0, 1 # monitor = DP-1, 1920x1080@120, 1920x0, 1, bitdepth,10 # monitor = HDMI-A-1, 1920x1080@60, 3840x0, 1 Config File: /home/flexksx/dotfiles-Hyprland/hyprland/startup.conf: Read Succeeded # Execute your favorite apps at launch # exec-once = waybar & hyprpaper & rog-control-center exec-once = waybar -c /home/flexksx/dotfiles-Hyprland/waybar/config.jsonc -s /home/flexksx/dotfiles-Hyprland/waybar/style.css exec-once = swww-daemon exec-once = swww restore exec-once = wal -R exec-once = pypr exec-once = rog-control-center Config File: /home/flexksx/dotfiles-Hyprland/hyprland/appearance.conf: Read Succeeded source = ~/.cache/wal/colors-hyprland.css general { # See https://wiki.hyprland.org/Configuring/Variables/ for more gaps_in = 5 gaps_out = 15 border_size = 2 col.active_border = $color1 $color2 45deg col.inactive_border = $foreground layout = dwindle # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on allow_tearing = false } decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more rounding = 10 blur { enabled = true size = 3 passes = 1 } drop_shadow = yes shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) } animations { enabled = yes # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more 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 } Config File: /home/flexksx/.cache/wal/colors-hyprland.css: Read Succeeded $foreground = rgb(3f3f3f) $color0 = rgb(fefefe) $color1 = rgb(3f6e93) $color2 = rgb(5e9fba) $color3 = rgb(7cc69d) $color4 = rgb(d2bd98) $color5 = rgb(dac7aa) $color6 = rgb(96ccd2) $color7 = rgb(7f7f7f) $color8 = rgb(bebebe) $color9 = rgb(6193bb) $color10 = rgb(85b7cb) $color11 = rgb(9cd4b4) $color12 = rgb(ddcdb1) $color13 = rgb(e3d4bf) $color14 = rgb(afd8dc) $color15 = rgb(3f3f3f) Config File: /home/flexksx/dotfiles-Hyprland/hyprland/pyprland_keybinds.conf: Read Succeeded # Setup the key binding bind = $mainMod, B, exec, pypr expose # Add some style to the "exposed" workspace workspace = special:exposed,gapsout:60,gapsin:30,bordersize:5,border:true,shadow:false ======Config-End======== ```

Description

Connected external screen with AMD FreeSync Premium and VRR turned on in the hyprland.conf at the misc{ } section. This caused the screen to connect, show something a second, then disconnect, then again connect after some seconds, then again disconnect and so on.

How to reproduce

  1. set vrr = 1 in misc{}
  2. Connect external monitor with AMD FreeSync Premium through the HDMI port of a laptop.
  3. Since I have a laptop with dual GPU, my laptop model renders the HDMI port output using the iGPU and the output of the Type C port using the dGPU. I use a Type C hub with HDMI to connect my other monitor.

Crash reports, logs, images, videos

No response

vaxerski commented 2 months ago

are you sure it's not the other way around? HDMI ports are usually wired to the dGPU.

Have you tried on -git?

Flexksx commented 2 months ago

No, I have a 2021 Asus ROG Strix G513IM, and I discovered that when I was playing games on Windows and saw worse performance when using an external monitor through HDMI. This model does not have a MUX switch.

vaxerski commented 2 months ago

try git then, shit's changed

Flexksx commented 2 months ago

Installed with yay -S hyprland-git, removed older conflicting hyprland and other dependencies. The issue still persists.

https://github.com/user-attachments/assets/7df05bb2-4af1-4f68-82f0-b0f02d1d711b

Flexksx commented 2 months ago

On hyprland-git, and was unable to get render on the second external monitor via the Type C Hub. It was shown in hyprctl monitors but no output on that monitor was provided. And the light bulb near the power button was lit as if it had not been connected to anything. Installed hyprland from pacman back, which worked. Also VRR on will not cause problems if I connect the external monitor using the Type C Hub HDMI Port. But the problem is still there, if I connect that FreeSync monitor via HDMI with vrr = 1, it will stat bugging as in the video.

vaxerski commented 2 months ago

type c hub... displaylink? That's notoriously buggy on linux.

Flexksx commented 2 months ago

xDD Yeah I know its a pain in the ass, but somehow works

vaxerski commented 2 months ago

see https://github.com/hyprwm/aquamarine/issues/22 then for the black screens. Displaylink is a proprietary, buggy standard on linux, so we don't really fully support it

Flexksx commented 2 months ago

Oh no, you understood me worng. When using DisplayLink to connect the monitor and turn VRR on, everything is OK. When I connect it with HDMI with VRR on, it starts turning black.

Flexksx commented 2 months ago

When connecting via displaylink, it usually turns black, then I reboot, replug the hub and it works. Not the funniest thing to do but it works. I got no problems with it. The problem occurs when connecting with HDMI.

vaxerski commented 2 months ago

on git?

Flexksx commented 2 months ago

Yes

Flexksx commented 2 months ago

On git the display link doesn't work at all, but ignore that. The hdmi with vrr on still bugs

Flexksx commented 2 months ago

Btw noticed something with displaylink. The hub has a hdmi, a type c port for charging and usb ports. When I plug it in with the hdmi and usb ports, it will show a black screen, then I reboot, wait for the system to boot, replug and I get image on my monitor. When I plug it in with the hdmi and usbs AND the charging connected to my type C charger (30W mac charger), the monitor turns on without any problems. And if I unplug the charger, it will disconnect.

Are there any open issues where I can help with that? Thanks

vaxerski commented 2 months ago

on git? IIRC there is an open issue at aq

Flexksx commented 2 months ago

no, didn't try that on git Last time I tried git the hub did not give any output, even after restarts and stuff that makes it work on the base version