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.89k stars 879 forks source link

XWayland application locks up whole system on amdgpu #8105

Closed cluosh closed 7 hours ago

cluosh commented 7 hours ago

Already reported ? *

Regression?

Yes

System Info and Version

System/Version info ```sh Hyprland, built from branch at commit 4520b30d498daca8079365bdb909a8dea38e8d55 (version: bump to 0.44.1). Date: Wed Oct 9 12:54:39 2024 Tag: v0.44.1, commits: 5309 built against aquamarine 0.4.2 flags: (if any) System Information: System name: Linux Node name: nbuvsec0010 Release: 6.11.3-arch1-1 Version: #1 SMP PREEMPT_DYNAMIC Thu, 10 Oct 2024 20:11:06 +0000 GPU information: c3:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1 [1002:15bf] (rev c5) (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/cluosh/.config/hypr/hyprland.conf: Read Succeeded # Monitors monitor = ,preferred,auto,1 #monitor = ,preferred,auto,1,mirror,eDP-1 # Monitor at home (4k monitor, scale up) monitor = desc:Samsung Electric Company U28E590 HTPJ307445,2560x1440,auto,1.0 monitor = desc:Samsung Electric Company U28E590 H1AK500005,highres,auto,1.5 monitor = desc:Samsung Electric Company SAMSUNG 0x01000E00,highres,auto,2.0 monitor = desc:RGB Systems Inc. dba Extron Electronics ExtronScalerD,preferred,auto,1,mirror,eDP-1 monitor = desc:HJW HDMI TO USB 0x0134660A,preferred,auto,1,mirror,eDP-1 # Monitor at UniVie office monitor = desc:HP Inc. HP E27d G4 3CQ016236H,highres,auto,1 # Autostart programs exec-once = waybar exec-once = hyprpaper exec-once = xprop -root -f _XWAYLAND_GLOBAL_OUTPUT_SCALE 32c -set _XWAYLAND_GLOBAL_OUTPUT_SCALE 2 # unscale XWayland xwayland { force_zero_scaling = true } # Input input { kb_layout = us, ara kb_variant = altgr-intl, kb_model = kb_options = caps:escape, grp:shifts_toggle kb_rules = follow_mouse = 2 touchpad { disable_while_typing = true natural_scroll = true tap-to-click = true } tablet { #device:wacom-intuos-s-2-pen { Why this no worky? transform = 0 #output = desc:Iiyama North America PL2792Q 1152182901927 #output = desc:Samsung Electric Company U28E590 HTPJ307445 output = desc:Iiyama North America PL2792Q 1152182901901 } } # General general { gaps_in = 6 gaps_out = 12 border_size = 2 col.active_border=0xffcba6f7 col.inactive_border=0xff313244 #col.group_border_active=0xff89b4fa #col.group_border=0xff585b70 col.nogroup_border_active=0xff89b4fa col.nogroup_border=0xff585b70 no_border_on_floating = true layout = dwindle } # Misc misc { disable_hyprland_logo = true disable_splash_rendering = true mouse_move_enables_dpms = true #enable_swallow = true #swallow_regex = ^(kitty)$ } # Decorations decoration { # Rounded corners rounding = 8 #rounding = 0 # Opacity active_opacity = 1.0 inactive_opacity = 0.8 # Blur blur { enabled = true size = 10 passes = 4 new_optimizations = true } # Shadow drop_shadow = true shadow_ignore_window = true shadow_offset = 2 2 shadow_range = 4 shadow_render_power = 2 col.shadow = 0x66000000 } # Blurring layerSurfaces blurls = gtk-layer-shell blurls = waybar blurls = lockscreen # Animations animations { enabled = true # bezier curve bezier = overshot, 0.05, 0.9, 0.1, 1.05 bezier = smoothOut, 0.36, 0, 0.66, -0.56 bezier = smoothIn, 0.25, 1, 0.5, 1 # animation list animation = windows, 1, 5, overshot, slide animation = windowsOut, 1, 4, smoothOut, slide animation = windowsMove, 1, 4, default animation = border, 1, 10, default animation = fade, 1, 10, smoothIn animation = fadeDim, 1, 10, smoothIn animation = workspaces, 1, 6, overshot, slidevert } # Gestures gestures { workspace_swipe = true workspace_swipe_fingers = 3 } # Layouts dwindle { no_gaps_when_only = true pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = true # you probably want this } # Window rules windowrule = float, file_progress windowrule = float, confirm windowrule = float, dialog windowrule = float, download windowrule = float, notification windowrule = float, error windowrule = float, splash windowrule = float, confirmreset windowrule = float, title:Open File windowrule = float, title:branchdialog #windowrule = float, zoom #windowrule = float, Zoom windowrule = float, vlc windowrule = float, Lxappearance windowrule = float, ncmpcpp windowrule = float, Rofi windowrule = animation none, Rofi windowrule = float, viewnior windowrule = float, pavucontrol-qt windowrule = float, gucharmap windowrule = float, gnome-font windowrule = float, org.gnome.Settings windowrule = float, file-roller windowrule = float, nautilus windowrule = float, nemo windowrule = float, thunar windowrule = float, Pcmanfm windowrule = float, obs windowrule = float, wdisplays windowrule = float, zathura windowrule = float, *.exe windowrule = fullscreen, wlogout windowrule = float, title:wlogout windowrule = fullscreen, title:wlogout windowrule = float, pavucontrol-qt windowrule = float, keepassxc windowrule = idleinhibit focus, mpv windowrule = idleinhibit fullscreen, firefox windowrule = float, title:^(Media viewer)$ windowrule = float, title:^(Transmission)$ windowrule = float, title:^(Volume Control)$ windowrule = float, title:^(Picture-in-Picture)$ windowrule = float, title:^(Firefox — Sharing Indicator)$ windowrule = move 0 0, title:^(Firefox — Sharing Indicator)$ windowrule = size 800 600, title:^(Volume Control)$ windowrule = move 75 44%, title:^(Volume Control)$ windowrule = float, rrt_debug windowrule = float, rrt_release windowrule = float, title:^(Vienna Vulkan Engine)$ windowrule = float, title:^(Quack Recv)$ # zoom windowrulev2 = workspace name:Zoom,class:^zoom$ windowrulev2 = float,class:^zoom$ windowrulev2 = renderunfocused,class:^zoom$ windowrulev2 = maxsize 1600 900,class:^zoom$ # Variables $term = kitty $browser = firefox $launcher = killall rofi || rofi -no-lazy-grab -show drun -theme index $emoji = killall rofi || rofi -show emoji -emoji-format "{emoji}" -theme emoji -modi emoji # Apps bind = SUPER, RETURN, exec, $term bind = SUPER SHIFT, B, exec, $browser bind = SUPER, D, exec, $launcher #bind = SUPER, E, exec, $emoji #bind = SUPER, X, exec, power-menu # Function keys bind = ,XF86MonBrightnessUp, exec, brightness set +5% bind = ,XF86MonBrightnessDown, exec, brightness set 5%- bind = ,XF86AudioRaiseVolume, exec, volume -i 5 bind = ,XF86AudioLowerVolume, exec, volume -d 5 bind = ,XF86AudioMute, exec, volume -t bind = ,XF86AudioMicMute, exec, microphone -t # Screenshots bind = , Print, exec, hyprctl keyword animation "fadeOut,0,0,default"; grim -g "$(slurp)" -t png - | wl-copy -t image/png ; hyprctl keyword animation "fadeOut,1,4,default" bind = SUPER SHIFT, D, exec, hyprctl keyword animation "fadeOut,0,0,default"; grim -g "$(slurp)" - | swappy -f - ; hyprctl keyword animation "fadeOut,1,4,default" # Misc bind = SUPER SHIFT, X, exec, hyprlock # Window management bind = SUPER, Q, killactive, bind = SUPER, M, exit, bind = SUPER, F, fullscreen, bind = SUPER, Space, togglefloating, bind = SUPER, P, pseudo, # dwindle bind = SUPER, S, togglesplit, # dwindle # Focus bind = SUPER, H, movefocus, l bind = SUPER, L, movefocus, r bind = SUPER, K, movefocus, u bind = SUPER, J, movefocus, d # Move bind = SUPER SHIFT, H, movewindow, l bind = SUPER SHIFT, L, movewindow, r bind = SUPER SHIFT, K, movewindow, u bind = SUPER SHIFT, J, movewindow, d # Resize bind = SUPER CTRL, H, resizeactive, -20 0 bind = SUPER CTRL, L, resizeactive, 20 0 bind = SUPER CTRL, K, resizeactive, 0 -20 bind = SUPER CTRL, J, resizeactive, 0 20 # Tabbed bind= SUPER, g, togglegroup bind= SUPER, tab, changegroupactive # Special workspace bind = SUPER, grave, togglespecialworkspace bind = SUPERSHIFT, grave, movetoworkspace, special # Switch workspaces bind = SUPER, 1, workspace, 1 bind = SUPER, 2, workspace, 2 bind = SUPER, 3, workspace, 3 bind = SUPER, 4, workspace, 4 bind = SUPER, 5, workspace, 5 bind = SUPER, 6, workspace, 6 bind = SUPER, 7, workspace, 7 bind = SUPER, 8, workspace, 8 bind = SUPER, 9, workspace, 9 bind = SUPER, 0, workspace, 10 bind = SUPER ALT, up, workspace, e+1 bind = SUPER ALT, down, workspace, e-1 # Move active window to a workspace 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 # Mouse bindings bindm = SUPER, mouse:272, movewindow bindm = SUPER, mouse:273, resizewindow bind = SUPER, mouse_down, workspace, e+1 bind = SUPER, mouse_up, workspace, e-1 # Environment variables env = EDITOR,nvim env = SSH_AUTH_SOCK,/run/user/1000/gcr/ssh env = XDG_SESSION_DESKTOP,Hyprland env = DISABLE_QT5_COMPAT,0 env = QT_AUTO_SCREEN_SCALE_FACTOR,1 env = QT_QPA_PLATFORM,wayland env = QT_QPA_PLATFORMTHEME,qt5ct env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 env = SDL_VIDEODRIVER,wayland env = CLUTTER_BACKEND,wayland env = GDK_BACKEND,wayland env = MOZ_ENABLE_WAYLAND,1 env = __GL_GSYNC_ALLOWED,0 env = __GL_VRR_ALLOWED,0 env = WLR_BACKEND,vulkan env = GTK_THEME,Arc-Dark env = XDG_DATA_DIRS,/usr/local/share/:/usr/share/:/var/lib/flatpak/exports/share:/home/cluosh/.local/share/flatpak/exports/share ======Config-End======== ```

Description

When using Ghidra, sometimes on creating a new Window it will freeze the whole System to the point where only a hard reset helps. This happens somewhat randomly when using it, but if I restart and then do the exact same workflow it will happen again 100%. I've put XWayland in the title because I have only ever noticed it happen with Ghidra and that's the only thing I could think of that could be problematic. Now this is probably somewhere amdgpu's fault of not failing in a sane way, but it didn't happen before aquamarine and iirc it was fine for a while after aquamarine as well.

Putting it here in case anyone faces similar issues, I'll try to bissect it when I have time.

How to reproduce

Using Ghidra. Unfortunately don't have a guaranteed recipe for how to trigger it. Spawning lots of windows probably helps.

Crash reports, logs, images, videos

Used the commands on the wiki to generate the DRM debug logs, unfortunately don't get any other output. Second log is the same workflow, just let it run a bit longer before powering off the machine.

dmesg-1.log dmesg-2.log

cluosh commented 7 hours ago

Okay, closing because I'm stupid, existing issue at #8045