hyprwm / aquamarine

Aquamarine is a very light linux rendering backend library
BSD 3-Clause "New" or "Revised" License
262 stars 21 forks source link

Modesetting happens even when resolution and refresh rate are set to "preferred" #57

Open Nanderty opened 2 months ago

Nanderty commented 2 months ago

Regression?

Yes

System Info and Version

System/Version info ```sh Hyprland, built from branch at commit 9a09eac79b85c846e3a865a9078a3f8ff65a9259 (props: bump version to 0.42.0). Date: Wed Aug 7 19:17:10 2024 Tag: v0.42.0, commits: 5069 flags: (if any) System Information: System name: Linux Node name: NANDERTY Release: 6.10.5-gentoo Version: hyprwm/Hyprland#3 SMP PREEMPT_DYNAMIC Sun Aug 18 11:22:57 CEST 2024 GPU information: 03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900 XTX/7900M] [1002:744c] (rev c8) (prog-if 00 [VGA controller]) os-release: NAME=Gentoo ID=gentoo PRETTY_NAME="Gentoo Linux" ANSI_COLOR="1;32" HOME_URL="https://www.gentoo.org/" SUPPORT_URL="https://www.gentoo.org/support/" BUG_REPORT_URL="https://bugs.gentoo.org/" VERSION_ID="2.15" plugins: ======Config-Start====== Config File: /home/Nanderty/.config/hypr/hyprland.conf: Read Succeeded monitor = DP-1, preferred, auto, 1, bitdepth, 10 monitor = DP-2, preferred, auto-left, 1 env = XDG_CURRENT_DESKTOP, Hyprland env = XDG_SESSION_DESKTOP, Hyprland env = ELECTRON_OZONE_PLATFORM_HINT, wayland env = GTK_THEME, Adwaita-dark env = QT_QPA_PLATFORMTHEME, qt6ct env = HYPRCURSOR_THEME, Posy_Cursor_Black_h env = HYPRCURSOR_SIZE, 24 env = XCURSOR_THEME, Posy_Cursor_Black env = XCURSOR_SIZE, 24 exec-once = /opt/wl-clip-persist/wl-clip-persist --clipboard regular --all-mime-type-regex '(?i)^(?!image/x-inkscape-svg).+' exec-once = ags exec-once = foot --server general { gaps_in = 22 gaps_out = 44 border_size = 0 layout = dwindle } input { kb_layout = de repeat_rate = 30 repeat_delay = 200 follow_mouse = 1 sensitivity = -0.5 accel_profile = flat } decoration { rounding = 0 drop_shadow = false inactive_opacity = 0.7 blur { enabled = yes size = 4 passes = 2 ignore_opacity = true } } misc { disable_hyprland_logo = true vrr = 0 } animations { enabled = yes bezier = linear, 0, 0, 0, 0 animation = windows, 1, 2, linear, slide animation = workspaces, 1, 3, linear, slidevert animation = layers, 0 } master { orientation = center } # Workspace-Rules workspace = 1, monitor:DP-1, default:true workspace = 2, monitor:DP-2, default:true workspace = 3, monitor:DP-2 workspace = 4, monitor:DP-2 workspace = 5, monitor:DP-1 workspace = 6, monitor:DP-1 workspace = 7, monitor:DP-2 workspace = 8, monitor:DP-2 workspace = 9, monitor:DP-1 # Layer-Rules layerrule = blur, LogoutMenu # Window-Rules windowrule=noblur, zathura windowrule=opacity 1 override 1 override, zathura windowrule=noblur, foot windowrule=workspace 9, prismlauncher # Game Client windowrulev2 = stayfocused, title:^()$,class:^(steam)$ windowrulev2 = minsize 1 1, title:^()$,class:^(steam)$ # Bindings $mainMod = SUPER # General Keys bind = $mainMod, Q, killactive, bind = $mainMod, Escape, exec, ags -t LogoutMenu bind = $mainMod, M, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle bind = $mainMod, F9, exec, dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify_player /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause bind = $mainMod, F10, exec, dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify_player /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous bind = $mainMod, F11, exec, dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify_player /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next bind = $mainMod, Space, exec, mpc toggle bind = $mainMod, Backspace, exec, mpc prev bind = $mainMod, Return, exec, mpc next binde = $mainMod, Prior, exec, mpc volume +5 binde = $mainMod, Next, exec, mpc volume -5 bind = SUPER, W, exec, grim -g "$(slurp)" /tmp/qrcode && wl-copy $(zbarimg /tmp/qrcode -q --raw) -p && firefox $(wl-paste -p) bind = $mainMod, up, exec, grimblast --notify save active bind = $mainMod, down, exec, grimblast --notify save area bind = $mainMod, left, exec, grimblast --notify copy active bind = $mainMod, right, exec, grimblast --notify copy area # Software bind = $mainMod, T, exec, footclient bind = $mainMod, S, exec, footclient spotify_player bind = $mainMod, F, exec, firefox bind = $mainMod, Z, exec, filezilla bind = $mainMod, Y, exec, zathura bind = $mainMod, B, exec, thunderbird bind = $mainMod, D, exec, /opt/vesktop/vesktop #bind = $mainMod, D, exec, firefox --new-window https://discord.com/channels/@me bind = $mainMod, F1, exec, steam bind = $mainMod, F2, exec, prismlauncher bind = $mainMod, F3, exec, libreoffice bind = $mainMod, F4, exec, gnumeric bind = $mainMod, F5, exec, /opt/mnova/mnova bind = $mainMod, F6, exec, blender-3.6 bind = $mainMod, F7, exec, inkscape bind = $mainMod, F8, exec, gimp bind = $mainMod, F12, exec, foot # Move focus bind = $mainMod, K, movefocus, u bind = $mainMod, J, movefocus, d bind = $mainMod, H, movefocus, l bind = $mainMod, L, movefocus, r bind = $mainMod, mouse_down, movefocus, l bind = $mainMod, mouse_up, movefocus, r # Switch workspaces bind = $mainMod, 1, workspace, 1 bind = $mainMod SHIFT, 1, movetoworkspace, 1 bind = $mainMod, 2, workspace, 2 bind = $mainMod SHIFT, 2, movetoworkspace, 2 bind = $mainMod, 3, workspace, 3 bind = $mainMod SHIFT, 3, movetoworkspace, 3 bind = $mainMod, 4, workspace, 4 bind = $mainMod SHIFT, 4, movetoworkspace, 4 bind = $mainMod, S, workspace, 4 bind = $mainMod, D, workspace, 4 bind = $mainMod, 5, workspace, 5 bind = $mainMod SHIFT, 5, movetoworkspace, 5 bind = $mainMod, 6, workspace, 6 bind = $mainMod SHIFT, 6, movetoworkspace, 6 bind = $mainMod, 7, workspace, 7 bind = $mainMod SHIFT, 7, movetoworkspace, 7 bind = $mainMod, 8, workspace, 8 bind = $mainMod SHIFT, 8, movetoworkspace, 8 bind = $mainMod, 9, workspace, 9 bind = $mainMod SHIFT, 9, movetoworkspace, 9 # Drag resize bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow # Arrow-key resize bind = $mainMod SHIFT, right, resizeactive, 100 0 bind = $mainMod SHIFT, down, resizeactive, 0 100 bind = $mainMod SHIFT, left, resizeactive, -100 0 bind = $mainMod SHIFT, up, resizeactive, 0 -100 ======Config-End======== ```

Description

When starting Hyprland from an agetty, it modesets, even though resolution and refresh rate are set to preferred, thus they should be the same as in the tty and no modeset should happen. The same happens when quitting Hyprland. Both did not happen before the switch from wlroots. Further, switching to another tty happens without a modeset, but switching back to Hyprland requires one. This seems odd, but is the same behviour as before the switch from wlroots.

How to reproduce

Set monitor settings to "preferred", start and stop Hyprland. Switch to another tty and back.

Crash reports, logs, images, videos

hyprland.log

vaxerski commented 2 months ago

aquamarine doesn't check what the current state of the display is before modesetting, thats why