Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Black Screen on eDP-1 After Aquamarine Update in Hyprland with AMD/NVIDIA Hybrid GPU Setup #8308

Open
1 task done
ottersome opened this issue Oct 31, 2024 · 20 comments
Open
1 task done
Labels
bug Something isn't working

Comments

@ottersome
Copy link

Already reported ? *

  • I have searched the existing open and closed issues.

Regression?

Yes

System Info and Version

System/Version info
Hyprland, built from branch main at commit 918d8340afd652b011b937d29d5eea0be08467f5  (flake.lock: update).
Date: 2024-06-25
Tag: v0.41.2, commits: 918d8340afd652b011b937d29d5eea0be08467f5

flags: (if any)


System Information:
System name: Linux
Node name: trashcan
Release: 6.11.2
Version: #1-NixOS SMP PREEMPT_DYNAMIC Fri Oct  4 14:38:57 UTC 2024


GPU information: 
64:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD107M [GeForce RTX 4060 Max-Q / Mobile] [10de:28e0] (rev a1) (prog-if 00 [VGA controller])


os-release: ANSI_COLOR="1;34"
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="24.05.20241006.ecbc1ca"
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
IMAGE_ID=""
IMAGE_VERSION=""
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 24.05 (Uakari)"
SUPPORT_END="2024-12-31"
SUPPORT_URL="https://nixos.org/community.html"
VERSION="24.05 (Uakari)"
VERSION_CODENAME=uakari
VERSION_ID="24.05"


plugins:

======Config-Start======


Config File: /home/ottersome/.config/hypr/hyprland.conf: Read Succeeded
#  _   _                  _                 _  
# | | | |_   _ _ __  _ __| | __ _ _ __   __| | 
# | |_| | | | | '_ \| '__| |/ _` | '_ \ / _` | 
# |  _  | |_| | |_) | |  | | (_| | | | | (_| | 
# |_| |_|\__, | .__/|_|  |_|\__,_|_| |_|\__,_| 
#        |___/|_|                              
#  
# ----------------------------------------------------- 
# IMPORTANT: Don't overwrite ML4W configuration.
# Create your own custom configuration variation instead.
# https://github.com/mylinuxforwork/dotfiles/wiki/Configuration-Variations
#
# NVIDIA
# env = LIBVA_DRIVER_NAME,nvidia
# env = XDG_SESSION_TYPE,wayland
# env = GDM_BACKEND,nvdia-drm
# env = __GLX_VENDOR_LIBRARY_NAME,nvidia
# env = AQ_DRM_DEVICES,/dev/dri/card1
env = WLR_DRM_DEVICES,/dev/dri/card1
# env = WLR_DRM_DEVICES,/dev/dri/by-path/pci-0000\:65\:00.0-card
#

# ----------------------------------------------------- 
# Monitor
# ----------------------------------------------------- 
source = ~/.config/hypr/conf/monitor.conf

# ----------------------------------------------------- 
# Autostart
# ----------------------------------------------------- 
source = ~/.config/hypr/conf/autostart.conf
#
## ----------------------------------------------------- 
## Cursor
## ----------------------------------------------------- 
#source = ~/.config/hypr/conf/cursor.conf
#
## ----------------------------------------------------- 
## Environment
## ----------------------------------------------------- 
source = ~/.config/hypr/conf/environment.conf
#
## ----------------------------------------------------- 
## Keyboard
## ----------------------------------------------------- 
#source = ~/.config/hypr/conf/keyboard.conf
#
## ----------------------------------------------------- 
## Load pywal color file
## ----------------------------------------------------- 
# source = ~/.cache/wal/colors-hyprland.conf
#
## ----------------------------------------------------- 
## Load configuration files
## ----------------------------------------------------- 
source = ~/.config/hypr/conf/window.conf
source = ~/.config/hypr/conf/decoration.conf
source = ~/.config/hypr/conf/layout.conf
source = ~/.config/hypr/conf/misc.conf
source = ~/.config/hypr/conf/keybinding.conf
source = ~/.config/hypr/conf/windowrule.conf
#
## ----------------------------------------------------- 
## Animation
## ----------------------------------------------------- 
source = ~/.config/hypr/conf/animation.conf
#
## ----------------------------------------------------- 
## Custom
## ----------------------------------------------------- 
#source = ~/.config/hypr/conf/custom.conf
#
## ----------------------------------------------------- 
## ML4W Configuration
## ----------------------------------------------------- 
#source = ~/.config/hypr/conf/ml4w.conf
#
## ----------------------------------------------------- 
## Environment for xdg-desktop-portal-hyprland
## ----------------------------------------------------- 
#exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP


Config File: /home/ottersome/.config/hypr/conf/monitor.conf: Read Succeeded
source = ~/.config/hypr/conf/monitors/2560x1600.conf


Config File: /home/ottersome/.config/hypr/conf/monitors/2560x1600.conf: Read Succeeded
# ----------------------------------------------------- 
# Monitor Setup
# name: "2560x1440"
# ----------------------------------------------------- 

monitor=eDP-1,[email protected],0x0,1.25

# unscale XWayland
xwayland {
  force_zero_scaling = true
}

# toolkit-specific scale
env = GDK_SCALE,2
env = XCURSOR_SIZE,32


Config File: /home/ottersome/.config/hypr/conf/autostart.conf: Read Succeeded
# ----------------------------------------------------- 
# Autostart
# ----------------------------------------------------- 
#
# Initialize waypaper
# exec-once = waypaper --restore
exec-once = hyprpaper -c ~/.config/hypr/hyprpaper.conf
#
# Launch Waybar
exec-once = waybar

# XDG For Default Browser
exec-once = xdg-settings get default-url-scheme-handler

# For Clipboard 
exec-once = wl-paste --type text --watch cliphist store # Stores only text data
exec-once = wl-paste --type image --watch cliphist store # Stores only image data

# For stuff inside tmux to  understand that we are runnign Hyprland
# For example: hyrpctl and wl-clip
exec-once = tmux setenv -g HYPRLAND_INSTANCE_SIGNATURE "$HYPRLAND_INSTANCE_SIGNATURE" 

### Old Stuff
# # Setup XDG for screen sharing
# # TODO:
# exec-once = ~/.config/hypr/scripts/xdg.sh
#
# # Start Polkit
# # Test Polkit pkexec --user username alacritty
# # TODO:
# exec-once=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
#
# # Load Dunst Notification Manager
# exec-once = dunst
#
# # Load GTK settings
# # TODO:
# exec-once = ~/.config/hypr/scripts/gtk.sh
#
# # Using hypridle to start hyprlock
# exec-once = hypridle
#
# # Load cliphist history
# exec-once = wl-paste --watch cliphist store
#
# # Autostart ML4W App
# exec-once = ~/.config/hypr/scripts/ml4w-autostart.sh
#
# # Start ewww daemon
# #exec-once = ags &
#
#
#
# # Start autostart cleanup
# exec-once = ~/.config/hypr/scripts/cleanup.sh
#
# # Load configuration from ML4W Hyprland Settings App
# exec = ~/.config/ml4w-hyprland-settings/hyprctl.sh


Config File: /home/ottersome/.config/hypr/conf/environment.conf: Read Succeeded
source = ~/.config/hypr/conf/environments/default.conf


Config File: /home/ottersome/.config/hypr/conf/environments/default.conf: Read Succeeded
# ----------------------------------------------------- 
# Environment Variables
# name: "Default"
# ----------------------------------------------------- 

env = XDG_CURRENT_DESKTOP, Hyprland
env = XDG_SESSION_TYPE, wayland
env = XDG_SESSION_DESKTOP, Hyprland
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP


Config File: /home/ottersome/.config/hypr/conf/window.conf: Read Succeeded
source = ~/.config/hypr/conf/windows/default.conf


Config File: /home/ottersome/.config/hypr/conf/windows/default.conf: Read Succeeded
# ----------------------------------------------------- 
# General window layout and colors
# name: "Default"
# ----------------------------------------------------- 

general {
    gaps_in = 10
    gaps_out = 20
    border_size = 2
    col.active_border = rgba(8fbcbbff)
    col.inactive_border =rgba(00A3C555) 
    layout = dwindle
    resize_on_border = true
}


Config File: /home/ottersome/.config/hypr/conf/decoration.conf: Read Succeeded
source = ~/.config/hypr/conf/decorations/default.conf

Config File: /home/ottersome/.config/hypr/conf/decorations/default.conf: Read Succeeded
# ----------------------------------------------------- 
# General window decoration
# name: "Default"
# ----------------------------------------------------- 
#

decoration {
    rounding = 9
    blur {
        enabled = true
        size = 6
        passes = 2
        new_optimizations = on
        ignore_opacity = true
        xray = true
        noise=0.1
        contrast=1
        # blurls = waybar
    }
    active_opacity = 1.0
    inactive_opacity = 0.8
    fullscreen_opacity = 1.0

    drop_shadow = true
    shadow_range = 30
    shadow_render_power = 3
    col.shadow = 0x66000000
}
group{ 
  groupbar{
    enabled = true
    col.active = rgba(39605Fff)
    col.inactive = rgba(3b4252ff)
    text_color = rgba(B0B0B0FF)
    gradients=true
    font_family=JetBrainsMonoNerdFont
  }
  col.border_active = rgba(8fbcbbff)
  col.border_inactive = rgba(3b4252ff)
}


Config File: /home/ottersome/.config/hypr/conf/layout.conf: Read Succeeded
source = ~/.config/hypr/conf/layouts/default.conf

Config File: /home/ottersome/.config/hypr/conf/layouts/default.conf: Read Succeeded
# ----------------------------------------------------- 
# Layouts
# ----------------------------------------------------- 

dwindle {
    pseudotile = true
    preserve_split = true
    force_split = 2
}

master {
    # Commented out due to compatibility reasons
    # new_status = master
}

gestures {
    workspace_swipe = true
}

binds {
  workspace_back_and_forth = true
  allow_workspace_cycles = true
  pass_mouse_when_bound = false
}


Config File: /home/ottersome/.config/hypr/conf/misc.conf: Read Succeeded
# ----------------------------------------------------- 
# Misc settings
# ----------------------------------------------------- 

misc {
    disable_hyprland_logo = true
    disable_splash_rendering = true
}


Config File: /home/ottersome/.config/hypr/conf/keybinding.conf: Read Succeeded
source = ~/.config/hypr/conf/keybindings/default.conf

Config File: /home/ottersome/.config/hypr/conf/keybindings/default.conf: Read Succeeded
# ----------------------------------------------------- 
# Key bindings
# name: "Default"
# ----------------------------------------------------- 

# SUPER KEY
$mainMod = SUPER
$HYPRSCRIPTS = ~/.config/hypr/scripts
$SCRIPTS = ~/.config/ml4w/scripts

# Applications
bind = $mainMod, RETURN, exec, kitty
bind = $mainMod, B, exec, zen
bind = $mainMod, X, exec, thunar
#bind = $mainMod CTRL, E, exec, ~/.config/ml4w/settings/emojipicker.sh # Open the emoji picker
#bind = $mainMod CTRL, C, exec, ~/.config/ml4w/settings/calculator.sh # Open the calculator

# Windows
bind = $mainMod SHIFT, Q, killactive # Kill active window
bind = $mainMod, F, fullscreen # Set active window to fullscreen
# bind = $mainMod, D, exec, wofi --show=run # Set active window to fullscreen
bind = $mainMod, D, exec, rofi -show drun -show-icons # Set active window to fullscreen
bind = $mainMod, R, exec, rofi -show file-browser-extended -file-browser-depth 4 -file-browser-dir ~/onedrive/ResearchPapers -file-browser-cmd sioyek -theme-str "window {width: 50%;}"
bind = $mainMod, G, exec, rofi -show file-browser-extended -file-browser-depth 3 -file-browser-dir ~/onedrive/Books/Literature -file-browser-cmd sioyek -theme-str "window {width: 50%;}"
bind = $mainMod, T, exec, rofi -show file-browser-extended -file-browser-depth 3 -file-browser-dir ~/onedrive/Books/Academic -file-browser-cmd sioyek -theme-str "window {width: 50%;}"
bind = $mainMod Shift, E, exec, rofi -show emoji "window {width: 50%;}"

bind = $mainMod, SPACE, togglefloating # Toggle active windows into floating mode
#bind = $mainMod SHIFT, T, exec, $HYPRSCRIPTS/toggleallfloat.sh # Toggle all windows into floating mode
bind = $mainMod, P, togglesplit # Toggle split
bind = $mainMod, H, movefocus, l # Move focus left
bind = $mainMod, L, movefocus, r # Move focus right
bind = $mainMod, K, movefocus, u # Move focus up
bind = $mainMod, J, movefocus, d # Move focus down
bindm = $mainMod, mouse:272, movewindow # Move window with the mouse
bindm = $mainMod, mouse:273, resizewindow # Resize window with the mouse
bind = $mainMod CTRL, L, resizeactive, 100 0 # Increase window width with keyboard
bind = $mainMod CTRL, H, resizeactive, -100 0 # Reduce window width with keyboard
bind = $mainMod CTRL, J, resizeactive, 0 100 # Increase window height with keyboard
bind = $mainMod CTRL, K, resizeactive, 0 -100 # Reduce window height with keyboard
bind = $mainMod, W, togglegroup # Toggle window group
bind = $mainMod SHIFT, W, moveoutofgroup # Toggle window group
bind = $mainMod, Q, changegroupactive, b # Toggle window group
bind = $mainMod, E, changegroupactive, f # Toggle window group

bind = $mainMod Shift, J, movewindoworgroup, d 
bind = $mainMod Shift, H, movewindoworgroup, l
bind = $mainMod Shift, L, movewindoworgroup, r
bind = $mainMod Shift, K, movewindoworgroup, u
# For OBS:
bind = SUPER, F10, pass, ^(com\.obsproject\.Studio)$
bind = SUPER, F8, pass, ^(com\.obsproject\.Studio)$

# Actions
#bind = $mainMod SHIFT, A, exec, $HYPRSCRIPTS/toggle-animations.sh # Toggle animations
bind = $mainMod, z, exec, hyprshot --freeze --mode=region --raw --clipboard-only | swappy -f -
bind = $mainMod SHIFT, S, exec, $HYPRSCRIPTS/screenshot.sh # Take a screenshot
bind = $mainMod, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy
#bind = $mainMod CTRL, Q, exec, wlogout # Start wlogout
#bind = $mainMod SHIFT, W, exec, waypaper --random # Change the wallpaper
#bind = $mainMod CTRL, W, exec, waypaper # Open wallpaper selector
#bind = $mainMod ALT, W, exec, $HYPRSCRIPTS/wallpaper-automation.sh # Start random wallpaper script
#bind = $mainMod CTRL, RETURN, exec, rofi -show drun -replace -i # Open application launcher
#bind = $mainMod CTRL, K, exec, $HYPRSCRIPTS/keybindings.sh # Show keybindings
#bind = $mainMod SHIFT, B, exec, ~/.config/waybar/launch.sh # Reload waybar
#bind = $mainMod CTRL, B, exec, ~/.config/waybar/toggle.sh # Toggle waybar
#bind = $mainMod SHIFT, R, exec, $HYPRSCRIPTS/loadconfig.sh # Reload hyprland config
#bind = $mainMod, V, exec, $SCRIPTS/cliphist.sh # Open clipboard manager
#bind = $mainMod CTRL, T, exec, ~/.config/waybar/themeswitcher.sh # Open waybar theme switcher
#bind = $mainMod CTRL, S, exec, ~/.config/ml4w/apps/ML4W_Dotfiles_Settings-x86_64.AppImage # Open ML4W Dotfiles Settings app
#bind = $mainMod SHIFT, H, exec, $HYPRSCRIPTS/hyprshade.sh # Toggle screenshader
bind = $mainMod ALT, G, exec, $HYPRSCRIPTS/gamemode.sh # Toggle game mode
#bind = $mainMod, Z, exec, missioncenter # Open Mission Center

# Workspaces
bind = $mainMod, 1, workspace,1 # Open workspace 1
bind = $mainMod, 2, workspace,2 # Open workspace 2
bind = $mainMod, 3, workspace,3 # Open workspace 3
bind = $mainMod, 4, workspace,4 # Open workspace 4
bind = $mainMod, 5, workspace,5 # Open workspace 5
bind = $mainMod, 6, workspace,6 # Open workspace 6
bind = $mainMod, 7, workspace,7 # Open workspace 7
bind = $mainMod, 8, workspace,8 # Open workspace 8
bind = $mainMod, 9, workspace,9 # Open workspace 9
bind = $mainMod, 0, workspace,10 # Open workspace 10

bind = $mainMod SHIFT, 1, movetoworkspace,1  # Move active window to workspace 1
bind = $mainMod SHIFT, 2, movetoworkspace,2  # Move active window to workspace 2
bind = $mainMod SHIFT, 3, movetoworkspace,3  # Move active window to workspace 3
bind = $mainMod SHIFT, 4, movetoworkspace,4  # Move active window to workspace 4
bind = $mainMod SHIFT, 5, movetoworkspace,5  # Move active window to workspace 5
bind = $mainMod SHIFT, 6, movetoworkspace,6  # Move active window to workspace 6
bind = $mainMod SHIFT, 7, movetoworkspace,7  # Move active window to workspace 7
bind = $mainMod SHIFT, 8, movetoworkspace,8  # Move active window to workspace 8
bind = $mainMod SHIFT, 9, movetoworkspace,9  # Move active window to workspace 9
bind = $mainMod SHIFT, 0, movetoworkspace,10  # Move active window to workspace 10
bind = $mainMod Shift, C, movetoworkspace, special
bind = $mainMod , C, togglespecialworkspace, special


bind = $mainMod, Tab, workspace, m+1 # Open next workspace
bind = $mainMod SHIFT, Tab, workspace, m-1 # Open previous workspace

bind = $mainMod SHIFT, M, exec, pkill Hyprland
#
#bind = $mainMod CTRL, 1, exec, $HYPRSCRIPTS/moveTo.sh 1 # Move all windows to workspace 1
#bind = $mainMod CTRL, 2, exec, $HYPRSCRIPTS/moveTo.sh 2 # Move all windows to workspace 2
#bind = $mainMod CTRL, 3, exec, $HYPRSCRIPTS/moveTo.sh 3 # Move all windows to workspace 3
#bind = $mainMod CTRL, 4, exec, $HYPRSCRIPTS/moveTo.sh 4 # Move all windows to workspace 4
#bind = $mainMod CTRL, 5, exec, $HYPRSCRIPTS/moveTo.sh 5 # Move all windows to workspace 5
#bind = $mainMod CTRL, 6, exec, $HYPRSCRIPTS/moveTo.sh 6 # Move all windows to workspace 6
#bind = $mainMod CTRL, 7, exec, $HYPRSCRIPTS/moveTo.sh 7 # Move all windows to workspace 7
#bind = $mainMod CTRL, 8, exec, $HYPRSCRIPTS/moveTo.sh 8 # Move all windows to workspace 8
#bind = $mainMod CTRL, 9, exec, $HYPRSCRIPTS/moveTo.sh 9 # Move all windows to workspace 9
#bind = $mainMod CTRL, 0, exec, $HYPRSCRIPTS/moveTo.sh 10 # Move all windows to workspace 10

bind = $mainMod, mouse_down, workspace, e+1 # Open next workspace
bind = $mainMod, mouse_up, workspace, e-1 # Open previous workspace
bind = $mainMod CTRL, down, workspace, empty # Open the next empty workspace

# Passthrough SUPER KEY to Virtual Machine
# bind = $mainMod, P, submap, passthru # Passthrough SUPER key to virtual machine
# submap = passthru
# bind = SUPER, Escape, submap, reset # Get SUPER key back from virtual machine
# submap = reset

# Fn keys
bind = , XF86MonBrightnessUp, exec, brightnessctl -d amdgpu_bl1 -q s +10% # Increase brightness by 10%
bind = , XF86MonBrightnessDown, exec, brightnessctl -d amdgpu_bl1 -q s 10%- # Reduce brightness by 10%
bind = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ # Increase volume by 5%
bind = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- # Reduce volume by 5%
bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle # Toggle mute
bind = , XF86AudioPlay, exec, playerctl play-pause # Audio play pause
bind = , XF86AudioPause, exec, playerctl pause # Audio pause
bind = , XF86AudioNext, exec, playerctl next # Audio next
bind = , XF86AudioPrev, exec, playerctl previous # Audio previous
bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle # Toggle microphone
#bind = , XF86Calculator, exec, ~/.config/ml4w/settings/calculator.sh # Open calculator
#bind = , XF86Lock, exec, hyprlock # Open screenlock
#bind = , XF86Tools, exec, alacritty --class dotfiles-floating -e ~/.config/ml4w/apps/ML4W_Dotfiles_Settings-x86_64.AppImage # Open ML4W Dotfiles Settings app

bind = , code:238, exec, brightnessctl -d smc::kbd_backlight s +10
bind = , code:237, exec, brightnessctl -d smc::kbd_backlight s 10- 


Config File: /home/ottersome/.config/hypr/conf/windowrule.conf: Read Succeeded
source = ~/.config/hypr/conf/windowrules/default.conf

Config File: /home/ottersome/.config/hypr/conf/windowrules/default.conf: Read Succeeded
# ----------------------------------------------------- 
# Window rules
# ----------------------------------------------------- 

windowrule = tile,^(Microsoft-edge)$
windowrule = tile,^(Brave-browser)$
windowrule = tile,^(Chromium)$
windowrule = float,^(pavucontrol)$
windowrule = float,^(blueman-manager-wrapped)$
windowrule = float,^(blueman-manager)$
windowrule = float,^(nm-connection-editor)$
windowrule = float,^(qalculate-gtk)$
windowrule = float,^(matplotlib)$
windowrule = float,^(feh)$

windowrulev2 = opacity 0.85 override 0.85 override, title:^(zsh)$
windowrulev2 = opacity 0.85 override 0.85 override, title:^(tmux)$

# Browser Picture in Picture
windowrulev2 = float, title:^(Picture-in-Picture)$
windowrulev2 = pin, title:^(Picture-in-Picture)$
windowrulev2 = move 69.5% 4%, title:^(Picture-in-Picture)$


Config File: /home/ottersome/.config/hypr/conf/animation.conf: Read Succeeded
source = ~/.config/hypr/conf/animations/animations-high.conf


Config File: /home/ottersome/.config/hypr/conf/animations/animations-high.conf: Read Succeeded
# ----------------------------------------------------- 
# Animations
# name: "High"
# ----------------------------------------------------- 
animations {
    enabled = true
    bezier = wind, 0.05, 0.9, 0.1, 1.05
    bezier = winIn, 0.1, 1.1, 0.1, 1.1
    bezier = winOut, 0.3, -0.3, 0, 1
    bezier = liner, 1, 1, 1, 1
    animation = windows, 1, 6, wind, slide
    animation = windowsIn, 1, 6, winIn, slide
    animation = windowsOut, 1, 5, winOut, slide
    animation = windowsMove, 1, 5, wind, slide
    animation = border, 1, 1, liner
    animation = borderangle, 1, 30, liner, loop
    animation = fade, 1, 10, default
    animation = workspaces, 1, 5, wind
}

======Config-End========

Description

After introducing aquamarine in commit 016da23, my computer displays a black screen on eDP-1 as soon as Hyprland launches, though it renders normally on DP-2. Hyprland itself remains responsive, with no noticeable errors.

Sanity checks performed:

  • Ensured AQ_DRM_DEVICES points to the amdgpu. This setup worked with wlroots and the corresponding WLR_DRM_DEVICES.
  • Set supergfxd to hybrid mode, and also tried uninstalling it, with no change in behavior.

My best lead on the cause may relate to Laptop GPU order reversed from normal causes boot_vga/drm issues and KWin’s specific approach to the problem. TL;DR: The PCI bus order places the dGPU before the iGPU on my specific laptop model, causing confusion in many WMs, like Cosmic and KWin.

Additionally, I’ve noticed increased logging of NVIDIA references when launching Hyprland instances since aquamarine’s introduction.

I've attached the bisection file (hypr_bisection.log), as well as text files for the output of ./build/Hyprland &> (compiled_commit).txt and any accompanying crash report.

How to reproduce

  1. Use Asus ZephyrusGA605WV
  2. git clone --no-checkout https://github.com/hyprwm/Hyprland
  3. git checkout 016da234
  4. git submodule update --init --recursive
  5. nix develop
  6. make all
  7. AQ_DRM_DEVICES=/dev/dri/card1 where card1 corresponds to amd gpu.
  8. ./build/Hyrpland
  9. Enjoy black screen on laptop monitor.

Crash reports, logs, images, videos

016da234d0e852de3ef20eb2e89ac58d2a85f6e7.txt
hyprlandCrashReport205751.txt
077494ee85c8fa4c6ae74ad8d749feea826294d2.txt
hyprlandCrashReport192884.txt
04b40ea2ec85dd1d74ff18edc046a233b65024ac.txt
hypr_bisection.log

@ottersome ottersome added the bug Something isn't working label Oct 31, 2024
@romanstingler
Copy link
Contributor

have you tried setting
AQ_NO_MODIFIERS=1

@ottersome
Copy link
Author

ottersome commented Oct 31, 2024

Update:

  1. For some reason when I compile from source the config is pointing at ~/.config/hypr/hyprlandd.conf (noticed the double d). Meaning that it was not actually reading my env = AQ_DRM_DEVICES,/dev/dri/card1. After copying my ~/.config/hypr/hyprland.conf to the double dd variant. This yields an actual crash citing some permissions and MESA errrors.
    016da234d0e852de3ef20eb2e89ac58d2a85f6e7_conf.txt.
    And the accompanying crash report hyprlandCrashReport131669.txt.

  2. I tried AQ_NO_MODIFIERS=1. Same exact behavior: 016da234d0e852de3ef20eb2e89ac58d2a85f6e7_conf_amdgpu_nomodifiers.txt

@ikalco
Copy link
Contributor

ikalco commented Oct 31, 2024

For some reason when I compile from source the config is pointing at ~/.config/hypr/hyprlandd.conf

when you build in debug mode Hyprland will used hyprlandd.log, if you build in release mode it will use hyprland.log

This yields an actual crash citing some permissions and MESA errrors.
016da234d0e852de3ef20eb2e89ac58d2a85f6e7_conf.txt.

logs are kinda weird, but it seems like you have outdated or the wrong gpu drivers

as a sanity check can you make sure other compositors still currently work? (sway, plasma wayland, GNOME wayland)
you can also try completely reinstalling all drivers and then redoing everything in https://wiki.hyprland.org/Nvidia/
it could also be a bios flag, something related to disabling AMD gpu or only using iGPU for power reasons

@ottersome
Copy link
Author

ottersome commented Oct 31, 2024

The NVIDIA drivers are version 560.31.02, while the AMDGPU driver is included with Linux, currently at version 6.11.2. To my understanding, these are fairly recent versions, and I don't believe the NVIDIA drivers should play any significant role here. I've explicitly set Aquamarine to utilize the integrated graphics, but upon reviewing the logs, it seems that the NVIDIA GPU is still somehow being considered.
I have managed to successfully launch Hyprland (pre-0.42) by blacklisting the NVIDIA drivers and relying solely on the AMD integrated GPU.

Plasma works, but unless the NVIDIA drivers are blacklisted, it always defaults to the dGPU. Reports from others suggest this is true for other DEs/WM as well. I am confident this is a quirk specific to my device. For reference, similar issues are discussed in Weird ordering of PCI bus, KWin’s response, Gnomes heuristic for gpu selection. One of Hyprland's most attractive feature for me was that it allowed me to bypass this automatic selection by allowing me to select the gpu of preference via AQ_DRM_DEVICES/WLR_DRM_DEVICES.

BIOS is set to hybrid. And that worked pre-0.42.

By the way, I have a new set of logs after changing the compilation back to make all. However, this doesn’t seem to fully explain the difference in logs: hyprlandCrashReport125433.txt.

@omuhr
Copy link

omuhr commented Nov 25, 2024

I'm seeing the same issue

@Indithem
Copy link

I'm seeing a similar issue.

Laptop: ASUS TUF
has an iGPU and a dGPU.

Everything worked fine in the last release of 0.44.1 (arch linux's extra repo).
When upgraded to 0.45.2, Hyprland seems to work fine only when the laptop uses dGPU for displaying.
When using only iGPU or when using the "MUX hybrid graphics", Hyprland cannot even start to display. Keybinds works properly. Entire display is blank, not even powered on.
Can confirm this is a problem only of Hyprland (and maybe due to libaquamarine), as no such discrepancy between iGPU and dGPU can be observed in River

@omarahm3
Copy link

I'm having a similar issue

Laptop: ASUS ROG Strix Scar 18

hyprctl systeminfo -c Hyprland 0.45.0 built from branch main at commit 1930a95 (shm: fix shm fd size check before creating or resizing shm_pool (8572)). Date: Mon Nov 25 01:50:35 2024 Tag: v0.45.0-62-g1930a950, commits: 5495 built against aquamarine 0.5.0

flags set:
debug

System Information:
System name: Linux
Node name: cachyos-x8664
Release: 6.12.1-2-cachyos
Version: #1 SMP PREEMPT_DYNAMIC Fri, 22 Nov 2024 17:05:17 +0000

GPU information:
0000:00:02.0 VGA compatible controller [0300]: Intel Corporation Raptor Lake-S UHD Graphics [8086:a788] (rev 04) (prog-if 00 [VGA controller])
0000:01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GN21-X11 [GeForce RTX 4090 Laptop GPU] [10de:2757] (rev a1) (prog-if 00 [VGA controller])
NVRM version: NVIDIA UNIX x86_64 Kernel Module 565.57.01 Thu Oct 10 12:29:05 UTC 2024

os-release: NAME="CachyOS Linux"
PRETTY_NAME="CachyOS"
ID=cachyos
ID_LIKE=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://cachyos.org/"
DOCUMENTATION_URL="https://wiki.cachyos.org/"
SUPPORT_URL="https://discuss.cachyos.org/"
BUG_REPORT_URL="https://github.com/cachyos"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=cachyos

plugins:

======Config-Start======

Config File: /home/mrgeek/.config/hypr/hyprland.conf: Read Succeeded

Please note not all available settings / options are set here.

For a full list, see the wiki

env = HYPRCURSOR_THEME,rose-pine-hyprcursor

source = ~/.config/hypr/monitors.conf
source = ~/.config/hypr/workspaces.conf
source = ~/.config/hypr/nvidia.conf

source = ~/.config/hypr/env.conf

Slow app launch fix

exec-once = systemctl --user import-environment &
exec-once = hash dbus-update-activation-environment 2>/dev/null &
exec-once = dbus-update-activation-environment --systemd &
#exec-once = xdg-desktop-portal-hyprland &
exec-once = wl-paste --watch cliphist store &
exec-once = tmux -Ldevelopment new -s General -d &
exec-once = tmux new -s General -d &
exec-once = udiskie &
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = gnome-keyring-daemon --start --components=secrets,ssh,pkcs11

## Idle configuration

exec-once = swayidle -w timeout 300 'swaylock -f -c 000000' before-sleep 'swaylock -f -c 000000'

Source a file (multi-file configs)

source = ~/.config/hypr/myColors.conf

## Input configuration

debug {
disable_logs = false
}

cursor {
no_hardware_cursors = true
}

input {
kb_layout = us,eg
kb_variant =
kb_options = grp:lalt_lshift_toggle

follow_mouse = 1 # 0|1|2|3
float_switch_override_focus = 2

touchpad {
natural_scroll = no
}

repeat_rate=60
repeat_delay=200

sensitivity = -0.3

sensitivity = 1.3

accel_profile = flat
force_no_accel = true
}

general {
gaps_in = 3
gaps_out = 5
border_size = 1
col.active_border = rgba(ffffff88)
# col.active_border = rgba(ff5e81ac)
#col.inactive_border = rgba(66333333)
col.inactive_border = rgba(595959aa)

layout = dwindle # master|dwindle

# apply_sens_to_raw=0 # whether to apply the sensitivity to raw input (e.g. used by games where you aim using your mouse)

}

decoration {
active_opacity = 1.0
inactive_opacity = 1.0
fullscreen_opacity = 1.0

rounding = 4
blur {
    enabled = true
    size = 15
    passes = 2 # more passes = more resource intensive.
    new_optimizations = true
    xray = true
    ignore_opacity = false
}

# drop_shadow = false
# shadow_range = 4
# shadow_render_power = 3
# shadow_ignore_window = true

dim_inactive = false
# col.shadow = rgba(1a1a1aee)

}

Blur for waybar

#blurls = waybar

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

bezier = overshot, 0.13, 0.99, 0.29, 1.1
animation = windows, 1, 4, overshot, slide
animation = windowsOut, 1, 5, default, popin 80%
animation = border, 1, 5, default
animation = fade, 1, 8, default
animation = workspaces, 1, 6, overshot, slide

#animation = windows, 1, 7, myBezier
#animation = windowsOut, 1, 7, default, popin 80%
#animation = fade, 1, 7, default
#animation = border, 1, 10, default
#animation = workspaces, 1, 6, default

}

See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more

dwindle {
# no_gaps_when_only = false
force_split = 0
special_scale_factor = 0.8
split_width_multiplier = 1.0
use_active_for_splits = true
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = yes
}

See https://wiki.hyprland.org/Configuring/Master-Layout/ for more

master {
# no_gaps_when_only = false
new_status = master
special_scale_factor = 0.8
}

misc {
#disable_autoreload = true
disable_hyprland_logo = true
always_follow_on_dnd = true
layers_hog_keyboard_focus = true
animate_manual_resizes = false
enable_swallow = true
swallow_regex =
focus_on_activate = true
vfr = 1
}

gestures {
workspace_swipe = true
workspace_swipe_fingers = 4
workspace_swipe_distance = 250
workspace_swipe_invert = true
workspace_swipe_min_speed_to_force = 15
workspace_swipe_cancel_ratio = 0.5
workspace_swipe_create_new = false
}

device {
name = logitech-mx-master-3-1
sensitivity = -0.3
accel_profile = flat
}

See https://wiki.hyprland.org/Configuring/Keywords/ for more

$mainMod = SUPER

Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more

bind = $mainMod, RETURN, exec, kitty
bind = $mainMod, X, exec, grim -g "$(slurp)" - | swappy -f -
bind = $mainMod SHIFT, Q, killactive,
bind = $mainMod SHIFT, M, exit,
bind = $mainMod SHIFT, F, togglefloating,
bind = ALT, V, exec, cliphist list | wofi -dmenu | cliphist decode | wl-copy
bind = $mainMod, SPACE, exec, rofi -show drun -config ~/.config/rofi/themes/image-header.rasi

bind = $mainMod, SPACE, exec, wofi

bind = $mainMod, F, fullscreen, 1
bind = $mainMod, Y, pin
bind = $mainMod, M, pseudo, # dwindle
bind = $mainMod, BACKSPACE, togglesplit, # dwindle
bind = $mainMod SHIFT, N, exec, thunar

bind = $mainMod, G, togglegroup,
bind = $mainMod, Tab, changegroupactive, f

bind = $mainMod SHIFT, G,exec,hyprctl --batch "keyword general:gaps_out 5;keyword general:gaps_in 3"

bind = $mainMod , G,exec,hyprctl --batch "keyword general:gaps_out 0;keyword general:gaps_in 0"

bind = $mainMod , G,exec, rofi -show cr -modi "cr:chromrofi --order-by visit_count -l 50 -s" -config ~/.config/rofi/themes/catppuccin.rasi

bind = CTRL SHIFT, SPACE, exec, makoctl dismiss
bind = $mainMod SHIFT, Return, exec, google-chrome-stable
bind = $mainMod SHIFT, B, exec, wlogout --protocol layer-shell
bind = alt, B, exec, wlogout --protocol layer-shell

Volume control

bind=,XF86AudioLowerVolume,exec,pamixer -ud 3 && pamixer --get-volume > /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob
bind=,XF86AudioRaiseVolume,exec,pamixer -ui 3 && pamixer --get-volume > /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob

mute sound

bind=,XF86AudioMute,exec,amixer sset Master toggle | sed -En '/[on]/ s/.[([0-9]+)%]./\1/ p; /[off]/ s/.*/0/p' | head -1 > /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob

Playback control

bind=,XF86AudioPlay,exec, playerctl play-pause
bind=,XF86AudioNext,exec, playerctl next
bind=,XF86AudioPrev,exec, playerctl previous

Screen brightness

bind = , XF86MonBrightnessUp, exec, brightnessctl s +5%
bind = , XF86MonBrightnessDown, exec, brightnessctl s 5%-

bind = $mainMod SHIFT, P, exec, qalculate-gtk
bind = $mainMod, ESCAPE, exec, hyprlock --immediate
#bind = $mainMod, P, exec, ~/.scripts/dmshot

bind = $mainMod, O, exec, killall -SIGUSR2 waybar

Move focus with mainMod + arrow keys

bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
bind = $mainMod, K, movefocus, u
bind = $mainMod, J, 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
bind = $mainMod, period, workspace, e+1
bind = $mainMod, comma, workspace,e-1

bind = $mainMod, minus, movetoworkspace,special
bind = $mainMod, equal, togglespecialworkspace

bind = $mainMod SHIFT,H ,movewindow, l
bind = $mainMod SHIFT,L ,movewindow, r
bind = $mainMod SHIFT,K ,movewindow, u
bind = $mainMod SHIFT,J ,movewindow, d

Move active window to a workspace with mainMod + CTRL + [0-9]

bind = $mainMod CTRL, 1, movetoworkspace, 1
bind = $mainMod CTRL, 2, movetoworkspace, 2
bind = $mainMod CTRL, 3, movetoworkspace, 3
bind = $mainMod CTRL, 4, movetoworkspace, 4
bind = $mainMod CTRL, 5, movetoworkspace, 5
bind = $mainMod CTRL, 6, movetoworkspace, 6
bind = $mainMod CTRL, 7, movetoworkspace, 7
bind = $mainMod CTRL, 8, movetoworkspace, 8
bind = $mainMod CTRL, 9, movetoworkspace, 9
bind = $mainMod CTRL, 0, movetoworkspace, 10
bind = $mainMod CTRL, left, movetoworkspace, -1
bind = $mainMod CTRL, right, movetoworkspace, +1

same as above, but doesnt switch to the workspace

bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10

Scroll through existing workspaces with mainMod + scroll

bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1

binds {
workspace_back_and_forth = falseL:
allow_workspace_cycles = 1
}
bind = $mainMod,slash,workspace,previous

bind = $mainMod,R,submap,resize
submap = resize
binde =,right,resizeactive,15 0
binde =,left,resizeactive,-15 0
binde =,up,resizeactive,0 -15
binde =,down,resizeactive,0 15
binde =,l,resizeactive,15 0
binde =,h,resizeactive,-15 0
binde =,k,resizeactive,0 -15
binde =,j,resizeactive,0 15
bind =,escape,submap,reset
submap = reset

bind=CTRL SHIFT, left, resizeactive,-15 0

bind=CTRL SHIFT, right, resizeactive,15 0

bind=CTRL SHIFT, up, resizeactive,0 -15

bind=CTRL SHIFT, down, resizeactive,0 15

bind=CTRL SHIFT, l, resizeactive, 15 0

bind=CTRL SHIFT, h, resizeactive,-15 0

bind=CTRL SHIFT, k, resizeactive, 0 -15

bind=CTRL SHIFT, j, resizeactive, 0 15

Move/resize windows with mainMod + LMB/RMB and dragging

bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

#exec-once = alacritty
#exec-once = telegram-desktop
#exec-once = armcord
exec-once = swaybg -o * -i /home/mrgeek/.dotfiles/misc/wallpapers/pexels-sebastiaan9977-1480690.jpg -m fill
#------------#

auto start

#------------#
exec-once = waybar -c .config/waybar/config-hypr &
exec-once = fcitx5 -d &
exec-once = mako &
exec-once = nm-applet --indicator &
exec-once = bash -c "mkfifo /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob && tail -f /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob | wob & disown" &
exec-once = /usr/lib/polkit-kde-authentication-agent-1 &

Float Necessary Windows

windowrule=float,Rofi
windowrule=float,pavucontrol
windowrulev2 = float,class:^()$,title:^(Picture in picture)$
windowrulev2 = float,class:^(brave)$,title:^(Save File)$
windowrulev2 = float,class:^(brave)$,title:^(Open File)$
windowrulev2 = float,class:^(LibreWolf)$,title:^(Picture-in-Picture)$
windowrulev2 = float,class:^(blueman-manager)$
windowrulev2 = float,class:^(xdg-desktop-portal-gtk)$
windowrulev2 = float,class:^(xdg-desktop-portal-kde)$
windowrulev2 = float,class:^(xdg-desktop-portal-hyprland)$
windowrulev2 = float,class:^(org.kde.polkit-kde-authentication-agent-1)$
windowrulev2 = float,class:^(CachyOSHello)$
windowrulev2 = float,class:^(zenity)$
windowrulev2 = float,class:^(qalculate-gtk)$
windowrulev2 = float,class:^()$,title:^(Steam - Self Updater)$

Increase the opacity

windowrule=opacity 0.92,Thunar
windowrule=opacity 0.92,Nautilus
windowrule=opacity 0.96,discord
windowrule=opacity 0.96,armcord
windowrule=opacity 0.96,webcord

#---------------#

windows rules

#---------------#
#hyprctl clients get class、title...
windowrule=float,title:^(Picture-in-Picture)$
windowrule=size 960 540,title:^(Picture-in-Picture)$
windowrule=move 25%-,title:^(Picture-in-Picture)$
windowrule=float,imv
windowrule=move 25%-,imv
windowrule=size 960 540,imv
windowrule=float,mpv
windowrule=move 25%-,mpv
windowrule=size 960 540,mpv
windowrule=float,danmufloat
windowrule=move 25%-,danmufloat
windowrule=pin,danmufloat
windowrule=rounding 5,danmufloat
windowrule=size 960 540,danmufloat
windowrule=float,termfloat
windowrule=move 25%-,termfloat
windowrule=size 960 540,termfloat
windowrule=rounding 5,termfloat
windowrule=float,nemo
windowrule=move 25%-,nemo
windowrule=size 960 540,nemo
windowrule=opacity 0.95,title:Telegram
windowrule=opacity 0.95,title:QQ
windowrule=opacity 0.95,title:NetEase Cloud Music Gtk4
windowrule=animation slide right,kitty
windowrule=animation slide right,alacritty
windowrule=float,ncmpcpp
windowrule=move 25%-,ncmpcpp
windowrule=size 960 540,ncmpcpp
windowrule=noblur,^(firefox)$
windowrule=noblur,^(waybar)$

Config File: /home/mrgeek/.config/hypr/monitors.conf: Read Succeeded

Generated by nwg-displays on 2024-11-26 at 12:36:36. Do not edit manually.

monitor=eDP-2,[email protected],2560x0,1.0

monitor = eDP-2, preferred, 0x0, 1
monitor=HDMI-A-1,[email protected],0x0,1.0

Config File: /home/mrgeek/.config/hypr/workspaces.conf: Read Succeeded

Generated by nwg-displays on 2024-08-12 at 08:57:26. Do not edit manually.

workspace=1,monitor:HDMI-A-1,default:true
workspace=2,monitor:eDP-1,default:true

Config File: /home/mrgeek/.config/hypr/nvidia.conf: Read Succeeded
env = LIBVA_DRIVER_NAME,nvidia

env = GBM_BACKEND,nvidia-drm # was commented

env = GBM_BACKEND,nvidia
env = __GLX_VENDOR_LIBRARY_NAME,nvidia

env = __NV_PRIME_RENDER_OFFLOAD,1

env = __GL_GSYNC_ALLOWED,1 # was commented

env = __GL_VRR_ALLOWED,1
env = AQ_DRM_NO_ATOMIC,1

env = __VK_LAYER_NV_optimus,NVIDIA_only # was commented

env = NVD_BACKEND,direct # was commented

env = ELECTRON_ENABLE_WAYLAND,1
env = ELECTRON_OZONE_PLATFORM_HINT,auto

env = AQ_NO_MODIFIERS,0

env = AQ_DRM_DEVICES,/dev/dri/card0:/dev/dri/card1

env = AQ_DRM_DEVICES,/dev/dri/card1

======Config-End========

Hyprland --systeminfo

Hyprland 0.45.0 built from branch main at commit 1930a95 (shm: fix shm fd size check before creating or resizing shm_pool (8572)).
Date: Mon Nov 25 01:50:35 2024
Tag: v0.45.0-62-g1930a950, commits: 5495
built against aquamarine 0.5.0

flags set:
debug

System Information:
System name: Linux
Node name: cachyos-x8664
Release: 6.12.1-2-cachyos
Version: #1 SMP PREEMPT_DYNAMIC Fri, 22 Nov 2024 17:05:17 +0000

GPU information:
0000:00:02.0 VGA compatible controller [0300]: Intel Corporation Raptor Lake-S UHD Graphics [8086:a788] (rev 04) (prog-if 00 [VGA controller])
0000:01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GN21-X11 [GeForce RTX 4090 Laptop GPU] [10de:2757] (rev a1) (prog-if 00 [VGA controller])
NVRM version: NVIDIA UNIX x86_64 Kernel Module 565.57.01 Thu Oct 10 12:29:05 UTC 2024

os-release: NAME="CachyOS Linux"
PRETTY_NAME="CachyOS"
ID=cachyos
ID_LIKE=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://cachyos.org/"
DOCUMENTATION_URL="https://wiki.cachyos.org/"
SUPPORT_URL="https://discuss.cachyos.org/"
BUG_REPORT_URL="https://github.com/cachyos"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=cachyos

plugins:
unknown: not runtime

hyprctl monitors

Monitor HDMI-A-1 (ID 0):
[email protected] at 0x0
description: Iiyama North America PL2792QN 1215432412242
make: Iiyama North America
model: PL2792QN
serial: 1215432412242
active workspace: 1 (1)
special workspace: 0 ()
reserved: 0 40 0 0
scale: 1.00
transform: 0
focused: yes
dpmsStatus: 1
vrr: false
solitary: 0
activelyTearing: false
disabled: false
currentFormat: XRGB8888
mirrorOf: none
availableModes: [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected]

Monitor eDP-2 (ID 1):
[email protected] at 0x0
description: BOE NE180QDM-NM1
make: BOE
model: NE180QDM-NM1
serial:
active workspace: 3 (3)
special workspace: 0 ()
reserved: 0 40 0 0
scale: 1.00
transform: 0
focused: no
dpmsStatus: 1
vrr: false
solitary: 0
activelyTearing: false
disabled: false
currentFormat: Invalid
mirrorOf: none
availableModes: [email protected] [email protected]

snippet of $XDG_RUNTIME_DIR/hypr/1930a95000d336b76d18c0c95ef77e138c9a4cd0_1732625874_854059302/hyprland.log | grep ERR
[ERR] [AQ] drm: getCurrentCRTC: No CRTC 0
[ERR] [AQ] drm: getCurrentCRTC: No CRTC 0
[ERR] [AQ] drm: getCurrentCRTC: No CRTC 0
[ERR] [AQ] drm: getCurrentCRTC: No CRTC 0
[ERR] [AQ] drm: getCurrentCRTC: No CRTC 0
[ERR] [AQ] drm: getCurrentCRTC: No CRTC 0
[ERR] [AQ] drm: getCurrentCRTC: No CRTC 0
[ERR] [AQ] drm: getCurrentCRTC: No CRTC 0
[ERR] [AQ] drm: getCurrentCRTC: No CRTC 0
[ERR] [AQ] Wayland backend cannot start: wl_display_connect failed (is a wayland compositor running?)
[ERR] [AQ] Requested backend (wayland) could not start, enabling fallbacks
[ERR] [AQ] Implementation wayland failed, erasing.
[ERR] Failed to bind socket @/tmp/.X11-unix/X0
[ERR] [AQ] drm: Cannot commit when a page-flip is awaiting
[ERR] [AQ] drm: Cannot commit when a page-flip is awaiting
[ERR] [AQ] GBM: Allocating with modifiers failed, falling back to modifier-less allocation
[ERR] [AQ] GBM: Failed to allocate a GBM buffer: bo null
[ERR] [AQ] Couldn't allocate a gbm buffer with size [Vector2D: x: 2560, y: 1600] and format XR24
[ERR] [AQ] Swapchain: Failed acquiring a buffer
[ERR] output eDP-2 failed basic test on format DRM_FORMAT_XRGB8888
[ERR] [AQ] GBM: Allocating with modifiers failed, falling back to modifier-less allocation
[ERR] [AQ] GBM: Failed to allocate a GBM buffer: bo null
[ERR] [AQ] Couldn't allocate a gbm buffer with size [Vector2D: x: 2560, y: 1600] and format XB24
[ERR] [AQ] Swapchain: Failed acquiring a buffer
[ERR] output eDP-2 failed basic test on format DRM_FORMAT_XBGR8888
[ERR] [AQ] GBM: Allocating with modifiers failed, falling back to modifier-less allocation
[ERR] [AQ] GBM: Failed to allocate a GBM buffer: bo null
[ERR] [AQ] Couldn't allocate a gbm buffer with size [Vector2D: x: 2560, y: 1600] and format INVALID
[ERR] [AQ] Swapchain: Failed acquiring a buffer
[ERR] output eDP-2 failed basic test on format DRM_FORMAT_INVALID
[ERR] [AQ] GBM: Allocating with modifiers failed, falling back to modifier-less allocation
[ERR] [AQ] GBM: Failed to allocate a GBM buffer: bo null
[ERR] [AQ] Couldn't allocate a gbm buffer with size [Vector2D: x: 2560, y: 1600] and format INVALID
[ERR] [AQ] Swapchain: Failed acquiring a buffer
[ERR] Couldn't commit output named eDP-2
[ERR] [AQ] GBM: Allocating with modifiers failed, falling back to modifier-less allocation
[ERR] [AQ] GBM: Failed to allocate a GBM buffer: bo null
[ERR] [AQ] Couldn't allocate a gbm buffer with size [Vector2D: x: 2560, y: 1600] and format INVALID
[ERR] [AQ] Swapchain: Failed acquiring a buffer
[ERR] [AQ] GBM: Allocating with modifiers failed, falling back to modifier-less allocation
[ERR] [AQ] GBM: Failed to allocate a GBM buffer: bo null
[ERR] [AQ] Couldn't allocate a gbm buffer with size [Vector2D: x: 2560, y: 1600] and format XR24
[ERR] [AQ] Swapchain: Failed acquiring a buffer
[ERR] output eDP-2 failed basic test on format DRM_FORMAT_XRGB8888
[ERR] [AQ] GBM: Allocating with modifiers failed, falling back to modifier-less allocation
[ERR] [AQ] GBM: Failed to allocate a GBM buffer: bo null
[ERR] [AQ] Couldn't allocate a gbm buffer with size [Vector2D: x: 2560, y: 1600] and format XB24
[ERR] [AQ] Swapchain: Failed acquiring a buffer
[ERR] output eDP-2 failed basic test on format DRM_FORMAT_XBGR8888
[ERR] [AQ] GBM: Allocating with modifiers failed, falling back to modifier-less allocation
[ERR] [AQ] GBM: Failed to allocate a GBM buffer: bo null
[ERR] [AQ] Couldn't allocate a gbm buffer with size [Vector2D: x: 2560, y: 1600] and format INVALID
[ERR] [AQ] Swapchain: Failed acquiring a buffer
[ERR] output eDP-2 failed basic test on format DRM_FORMAT_INVALID
[ERR] [AQ] GBM: Allocating with modifiers failed, falling back to modifier-less allocation
[ERR] [AQ] GBM: Failed to allocate a GBM buffer: bo null
[ERR] [AQ] Couldn't allocate a gbm buffer with size [Vector2D: x: 2560, y: 1600] and format INVALID
[ERR] [AQ] Swapchain: Failed acquiring a buffer
[ERR] Couldn't commit output named eDP-2
[ERR] Failed to acquire swapchain buffer for eDP-2
[ERR] renderer: couldn't beginRender()!
[ERR] Failed to acquire swapchain buffer for eDP-2
[ERR] renderer: couldn't beginRender()!
[ERR] Failed to acquire swapchain buffer for eDP-2
[ERR] renderer: couldn't beginRender()!
[ERR] Failed to acquire swapchain buffer for eDP-2
[ERR] renderer: couldn't beginRender()!
[ERR] Failed to acquire swapchain buffer for eDP-2
[ERR] renderer: couldn't beginRender()!
[ERR] Failed to acquire swapchain buffer for eDP-2
[ERR] renderer: couldn't beginRender()!
[ERR] Failed to acquire swapchain buffer for eDP-2
[ERR] renderer: couldn't beginRender()!
[ERR] Failed to acquire swapchain buffer for eDP-2
[ERR] renderer: couldn't beginRender()!
[ERR] Failed to acquire swapchain buffer for eDP-2
[ERR] renderer: couldn't beginRender()!
[ERR] Failed to acquire swapchain buffer for eDP-2
[ERR] renderer: couldn't beginRender()!

I'm noticing even more strange issues when i set these environment variables:

  1. eDP-2 works, HDMI-A-1 blank
env = AQ_NO_MODIFIERS,1
env = AQ_DRM_DEVICES,/dev/dri/card1
  1. eDP-2 frozen on SDDM login screen, HDMI-A-1 works
env = AQ_NO_MODIFIERS,0
env = AQ_DRM_DEVICES,/dev/dri/card0:/dev/dri/card1
  1. eDP-2 says frozen on SDDM login screen, HDMI-A-1 blank
env = AQ_NO_MODIFIERS,1
env = AQ_DRM_DEVICES,/dev/dri/card0:/dev/dri/card1

@luisbelem
Copy link

Same issue, same hardware as @ottersome

@ikalco
Copy link
Contributor

ikalco commented Dec 15, 2024

@ottersome is your problem that Hyprland crashes when setting AQ_DRM_DEVICES to amd iGPU? Or that eDP-1 is blank?

if so it's probably because only the dGPU exists according to crash report (below output is from lspci -vnn | grep VGA)

GPU:
    64:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD107M [GeForce RTX 4060 Max-Q / Mobile] [10de:28e0] (rev a1) (prog-if 00 [VGA controller])

and based on the tty logs you gave, it could be that the iGPU driver (mesa) is installed incorrectly

pcilib: Error reading /sys/bus/pci/devices/0000:00:08.3/label: Operation not permitted
did not find extension DRI_Mesa version 2
did not find extension DRI_IMAGE_DRIVER version 2
failed to bind extensions

causing Hyprland to not be able to use it, and therefore not starting since it's the only whitelisted gpu

either way, if you can give a full trace hyprland.log that would be helpful to diagnose the issue
https://wiki.hyprland.org/Crashes-and-Bugs/#obtaining-a-trace-log

@ottersome
Copy link
Author

No crashing happening. I can confirm by using my keybindings to access kitty and touch a file.

The lspci thing: this goes back to the problem I mentioned earlier where dGPU gets marked as VGA. I hope I don't come off as pedantic but I am quite sure it is related to the problem I linked earlier. Which apparently many systems take as a heuristic to chose the integrated graphics.
For reference, output of `lspci -vnn | grep -E 'VGA|Display|3D':

➜  ~ lspci -vnn | grep -E 'VGA|Display|3D'
pcilib: Error reading /sys/bus/pci/devices/0000:00:08.3/label: Operation not permitted
65:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD107M [GeForce RTX 4060 Max-Q / Mobile] [10de:28e0] (rev a1) (prog-if 00 [VGA controller])
66:00.0 Display controller [0380]: Advanced Micro Devices, Inc. [AMD/ATI] Strix [Radeon 880M / 890M] [1002:150e] (rev c1)

Dump from HYPRLAND_TRACE=1 AQ_TRACE=1 AQ_DRM_DEVICES=/dev/dri/card1 Hyprland &> Hyprland.log:
Hyprland.log

And in case it helps I am dumping output of WLR_DRM_DEVICES=/dev/dri/card1 WLR_NO_HARDWARE_CURSORS=1 sway --unsupported-gpu -d &> sway.log:
sway.log

@ikalco
Copy link
Contributor

ikalco commented Dec 18, 2024

pls give the log from /run/user/1000/hypr/$HYPRLAND_INSTANCE_SIGNATURE/hyprland.log and read below ;)

[INFO] !!!!HEY YOU, YES YOU!!!!: further logs to stdout / logfile are disabled by default. BEFORE SENDING THIS LOG, ENABLE THEM. Use debug:disable_logs = false to do so: https://wiki.hyprland.org/Configuring/Variables/#debug

as for the sway.log, it's spamming connector eDP-1: Atomic commit failed: Cannot allocate memory which is weird
and based on looking at sway's code, the error stems from a call into libdrm, which fails due to running out of memory which should definitely not be happening

as for the dGPU being marked as vga and being automatically selected, yes that is an issue
however, manually setting the iGPU using AQ_DRM_DEVICES should mitigate the above issue, but as you said that doesn't work so there are 2 issues

@ottersome
Copy link
Author

Apologies. My one brain cell is working overtime atm. Anyways, here's the correct Hyprland.log.
Much like Sway it seems to trace back to drm as well.

Yeah you are right on dGPU being marked as vga being a separate but related issue. Best narrow down on manual selection for now.

Let me know if you want me to try some changes on the codebase and compile them. I've got it setup.

@ikalco
Copy link
Contributor

ikalco commented Dec 21, 2024

ok so it seems the iGPU is being taken by another process/seat? meaning Hyprland can't use it at all

[LOG] [AQ] drm: Enumerated device /sys/devices/pci0000:00/0000:00:03.1/0000:65:00.0/drm/card0
[ERR] [AQ] [libseat] [libseat/backend/logind.c:124] Could not take device: Invalid argument

however, that doesn't affect eDP-1 since that's on your amdgpu
but as you can see below, the amdgpu driver ran out of memory in some way... which isn't good

[LOG] [AQ] atomic drm request: failed to commit: Cannot allocate memory, flags: ATOMIC_ALLOW_MODESET ATOMIC_TEST_ONLY 

not sure how that would happen by upgrading to aquamarine but getting a dmesg.log will probably help find the issue
https://wiki.hyprland.org/Crashes-and-Bugs/#debugging-drm-issues

@ottersome
Copy link
Author

Bus Id 65:00 is the dGPU, not iGPU. Which makes this statement even weirder since I am manually setting AQ_DRM_DEVICES=/dev/dri/card1 (amdgpu).

Nonetheless here is the dmesg.log

@ikalco
Copy link
Contributor

ikalco commented Dec 21, 2024

intresting...
your DP port or cable doesn't have the bandwidth capability for 2560x1600@240

[  125.117615] [drm:create_validate_stream_for_sink [amdgpu]] Mode 2560x1600 (clk 1125275) pixel_encoding:RGB color_depth:8-bpc failed validation -- No DP link bandwidth

You can try setting a lower resolution or refresh rate, or get a different cable
but this also means monitor mode selection should probably be improved to not get a black screen at least

as for the gpu stuff, not sure why Hyprland can't use your dGPU, but it doesn't affect eDP-1 so oh well
maybe its a bios setting or some other permission error

@ottersome
Copy link
Author

ottersome commented Dec 21, 2024

Plasma has no issue with it. In fact, Hyprland also had no problem with it previously. This is the same configuration that powered my Hyprland setup before switching to Aquamarine. 2024-12-21_04-29

Regardless, I’ve tried changing it to 60Hz, but that doesn’t work either (although it does in Plasma). Since this is a laptop, I can’t modify any of the connections.

To clarify, I have no intention of running Hyprland with the dGPU; I only use dGPU for gaming or training machine learning models. I still don't understand why logs keep referencing Nvidia. Additionally, this issue isn’t consistent across all window managers or desktop environments; Plasma and GNOME work perfectly fine.

With regards to not enough VRAM: I noticed that the UEFI has a UMA framebuffer option which allows you to set a specific RAM amount for amdgpu. I set it to 4 GB and problem persists. This is the corresponding log: Hyprland_4Gmemory.log.

When going though the logs this line caught my attention:

[ERR] [AQ] drm: No format for output

Which led me to this issue which might prove useful. I'll play with it when I get a bit of time, but for now I share it in case it helps.

Edit: My mesa version is 24.2.6 whereas the issue author's is 24.3.0. He found regressing to 24.2.7 fixed it.

@ikalco
Copy link
Contributor

ikalco commented Dec 22, 2024

interesting that wlroots works and aq doesnt, can you give a HL log from before aquamarine (ex. v0.41.0)
with something like this WLR_DRM_DEVICES=/dev/dri/card0 HL_TRACE=1 HYPRLAND_LOG_WLR=1 ./build/Hyprland
maybe it'll give a hint to solve this

also try #8804 branch and test with AQ_NO_MODIFIERS=1 and without
then give HL logs if it doesn't work

as for the No format for output, that's a different bug which doesn't affect this, but it's fixed in the pr anyways i think

@ottersome
Copy link
Author

Running WLR_DRM_DEVICES=/dev/dri/card1 HL_TRACE=1 HYPRLAND_LOG_WLR=1 ./build/Hyprland where card1 is iGPU yields : hyprland_pre_aq.log

I see no improvements with branch #8804 :

@ikalco
Copy link
Contributor

ikalco commented Dec 24, 2024

does pre aq Hyprland still work? from the logs it seems to be failing just the same

@ottersome
Copy link
Author

Yeah it doesn't crash. Writing this comment on pre-aq hyprland at the moment. Perhaps It was me actively killing the process (doubt it) or me making a typo for HYPRLAND_LOG_WLR (also doubt that). Nonetheless I regenerated it and simply copied the file out of /run/user/1000/hyprland before killing the hyprland session.
Here it is:
hyprland_pre_aq.log

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

7 participants