To summerize the below image, in order of memory used are:
Hyprland (1450 mb)
Vesktop (866 mb)
xwayland (827 mb)
This is made up from google chrome, gimp, Steam, and git-cola
firefox (404 mb) - bunch of random tabs including chatgpt, stack overflow, gitlab, etc
thunderbird (216 mb)
firefox (189 mb) - youtube and netflix
feishin (130 mb)
and so on and so forth.
Ultimately, hyprland seems to have a leak in vram of some sort. I do have three monitors, which i assume is to blame for the high vram on launch, but i cant figure out why the memory doesnt stay around that 400mb. Also its important to note that this isnt related to screensharing, this occurs regardless of whether ive screenshared or not.
The uptime on this system is 5d, but i do launch and close applications with heavy gpu usage during work, which i assume is the issue. Any help to resolve this would be great.
Let me know if im missing any important data and ill retrieve it
How to reproduce
On my system, you just have to open hyprland, and then let it run for a few days, opening applications that use lots of gpu.
Already reported ? *
Regression?
No
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: ArchBox Release: 6.9.10-arch1-1 Version: #1 SMP PREEMPT_DYNAMIC Thu, 18 Jul 2024 18:06:13 +0000 GPU information: 07:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA104 [GeForce RTX 3070] [10de:2484] (rev a1) (prog-if 00 [VGA controller]) NVRM version: NVIDIA UNIX x86_64 Kernel Module 560.35.03 Fri Aug 16 21:39:15 UTC 2024 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: hy3 by outfoxxed ver 0.1 ======Config-Start====== Config File: /home/chris/.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. # ####################################################################################### autogenerated = 0 # remove this line to remove the warning plugin = /home/chris/Git_Repos/hy3/build/libhy3.so general { gaps_in = 2 gaps_out = 2 border_size = 1 # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg col.inactive_border = rgba(595959aa) # Set to true enable resizing windows by clicking and dragging on borders and gaps resize_on_border = false # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on allow_tearing = true layout = hy3 } # https://wiki.hyprland.org/Configuring/Variables/#decoration decoration { rounding = 5 # Change transparency of focused and unfocused windows active_opacity = 1.0 inactive_opacity = 1.0 drop_shadow = true shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) # https://wiki.hyprland.org/Configuring/Variables/#blur blur { enabled = true size = 3 passes = 1 vibrancy = 0.1696 } } # https://wiki.hyprland.org/Configuring/Variables/#animations animations { enabled = true # 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 } # https://wiki.hyprland.org/Configuring/Variables/#misc misc { force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :( } # https://wiki.hyprland.org/Configuring/Variables/#gestures gestures { workspace_swipe = false } ############# ### INPUT ### ############# # https://wiki.hyprland.org/Configuring/Variables/#input input { kb_layout = us kb_variant = colemak_dh kb_model = kb_options = caps:swapescape kb_rules = repeat_delay = 190 repeat_rate = 35 follow_mouse = 1 sensitivity = 0 # -1.0 - 1.0, 0 means no modification. scroll_factor = 0.5 touchpad { natural_scroll = false } } render { explicit_sync = 1 } # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more #device { # name = logitech-g502-1 # sensitivity = -0.5 #} # This is an example Hyprland config file. # Refer to the wiki for more information. # https://wiki.hyprland.org/Configuring/Configuring-Hyprland/ # Please note not all available settings / options are set here. # For a full list, see the wiki # You can split this configuration into multiple files # Create your files separately and then link them to this file like this: # source = ~/.config/hypr/myColors.conf ################ ### MONITORS ### ################ $screen1 = DP-1 $screen2 = HDMI-A-1 $screen3 = HDMI-A-2 # See https://wiki.hyprland.org/Configuring/Monitors/ monitor=$screen1, 1680x1050, 0x0, 1, transform, 3 monitor=$screen2, 1920x1080, 1050x250, 1 monitor=$screen3, 1920x1080, 2970x500, 1 ############################# ### ENVIRONMENT VARIABLES ### ############################# # See https://wiki.hyprland.org/Configuring/Environment-variables/ env = HYPRLAND_TRACE=1 env = AQ_TRACE=1 # Nvidia stuff env = NVD_BACKEND,direct env = GBM_BACKEND,nvidia-drm env = LIBVA_DRIVER_NAME,nvidia env = __GLX_VENDOR_LIBRARY_NAME,nvidia env = __GL_GSYNC_ALLOWED,0 env = __GL_VBR_ALLOWED,0 env = __GL_VRR_ALLOWED,0 # Lib overrides env = GDK_BACKEND,wayland,x11,* # GTK env = ELECTRON_OZONE_PLATFORM_HINT,auto # Electron env = CLUTTER_BACKEND,wayland # Clutter env = SDL_VIDEODRIVER,wayland # SDL2 env = SDL_VIDEO_DRIVER,wayland # SDL2 env = XDG_CURRENT_DESKTOP,Hyprland # GLFW env = XDG_SESSION_DESKTOP,Hyprland # GLFW env = XDG_SESSION_TYPE,wayland # GLFW env = MOZ_ENABLE_WAYLAND,1 # Firefox env = MOZ_USE_XINPUT2,1 # Firefox env = QT_QPA_PLATFORM,wayland;xcb # Qt env = QT_SCREEN_SCALE_FACTORS="1;1" # General purpose environment settings env = CMAKE_GENERATOR,Ninja env = CC,/usr/bin/gcc-13 env = CXX,/usr/bin/g++-13 ###################################### env = bitdepth,10 # Streaming for discord # Themes env = GTK_THEME,Yaru-dark env = XCURSOR_THEME,theme_phinger-cursors-dark env = XCURSOR_SIZE,20 env = HYPRCURSOR_THEME,theme_phinger-cursors-dark env = HYPRCURSOR_SIZE,20 cursor { no_hardware_cursors = true } #################### ### KEYBINDINGSS ### #################### # See https://wiki.hyprland.org/Configuring/Keywords/ $mainMod = SUPER # Sets "Windows" key as main modifier bind = $mainMod CTRL, 59, movecurrentworkspacetomonitor, l # < bind = $mainMod CTRL, 60, movecurrentworkspacetomonitor, r # > bind = ,XF86AudioPrev, exec, playerctl --player=Feishin previous && pkill -RTMIN+4 waybar bind = ,XF86AudioPlay, exec, playerctl --player=Feishin play-pause bind = ,XF86AudioPause, exec, playerctl --player=Feishin play-pause bind = ,XF86AudioNext, exec, playerctl --player=Feishin next && pkill -RTMIN+4 waybar bind = MOD5, XF86AudioPrev, exec, playerctl --player=firefox previous bind = MOD5, XF86AudioPlay, exec, playerctl --player=firefox play-pause bind = MOD5, XF86AudioPause, exec, playerctl --player=firefox play-pause bind = MOD5, XF86AudioNext, exec, playerctl --player=firefox next binde = ,xF86AudioRaiseVolume, exec, playerctl --player=Feishin volume 0.01+ binde = ,xF86AudioLowerVolume, exec, playerctl --player=Feishin volume 0.01- bind = ,xF86AudioMute, exec, amixer -q set Master toggle bind = $mainMod, Print, exec, grim -g "$(slurp -d)" - | wl-copy #bind = $mainMod, Print, exec, XDG_SESSION_DESKTOP=sway XDG_CURRENT_DESKTOP=sway flameshot gui # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow bindr = $mainMod, mouse:275, hy3:movefocus, r bindr = $mainMod, mouse:276, hy3:movefocus, l # Move focus with mainMod + arrow keys bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r bind = $mainMod, up, hy3:movefocus, u bind = $mainMod, down, hy3:movefocus, d bind = $mainMod, n, hy3:movefocus, l bind = $mainMod, e, hy3:movefocus, d bind = $mainMod, i, hy3:movefocus, u bind = $mainMod, o, hy3:movefocus, r bind = $mainMod SHIFT, n, hy3:movewindow, l bind = $mainMod SHIFT, e, hy3:movewindow, d bind = $mainMod SHIFT, i, hy3:movewindow, u bind = $mainMod SHIFT, o, hy3:movewindow, r # Bound programs $terminal_client = kitty $terminal = $terminal_client -d $(cat /tmp/whereami) $fileManager = $terminal -e "ranger" $menu = wofi --show run bind = $mainMod SHIFT CTRL, SPACE, exec, hyprctl dispatch dpms off bind = $mainMod SHIFT, SPACE, exec, hyprctl dispatch dpms on bind = $mainMod, RETURN, exec, $terminal bind = $mainMod SHIFT, RETURN, exec, $terminal_client bind = $mainMod CTRL, RETURN, exec, /usr/bin/konsole bind = $mainMod, F2, submap, browsermode submap = browsermode bind = , 1, exec, source ~/.config/hypr/ff.sh; searcher bind = , 1, submap, reset bind = , 2, exec, source ~/.config/hypr/ff.sh; watcher bind = , 2, submap, reset bind = , 3, exec, source ~/.config/hypr/ff.sh; homelab bind = , 3, submap, reset bind = , 4, exec, source ~/.config/hypr/ff.sh; start bind = , 4, submap, reset bind = , escape, submap, reset submap = reset bind = $mainMod, F3, exec, $fileManager bind = $mainMod, d, exec, $menu bind = $mainMod, s, hy3:changegroup, toggletab bind = $mainMod, h, hy3:makegroup, h bind = $mainMod, v, hy3:makegroup, v bind = $mainMod SHIFT, q, killactive bind = $mainMod, SPACE, togglefloating, bind = $mainMod, f, fullscreen bind = $mainMod, r, submap, resizemode submap = resizemode binde = , n, resizeactive, 50 0 binde = , e, resizeactive, 0 50 binde = , i, resizeactive, 0 -50 binde = , o, resizeactive, -50 0 binde = , left, resizeactive, 50 0 binde = , up, resizeactive, 0 50 binde = , down, resizeactive, 0 -50 binde = , right, resizeactive, -50 0 bind = , escape, submap, reset submap = reset bind = $mainMod, 0, submap, shutdown submap = shutdown bind = SHIFT, s, exec, shutdown -h now bind = , s, exec, systemctl suspend bind = , r, exec, reboot bind = , k, exit bind = , s, submap, reset bind = , escape, submap, reset submap = reset ############################## ### WORKSPACES AND WINDOWS ### ############################## # See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules #workspace=name:monitoring, monitor:$screen1, persistent:true #workspace=name:coding, monitor:$screen2, default:true, persistent:true #workspace=name:firefox, monitor:$screen3, default:true, persistent:true #workspace=name:ranger, monitor:$screen2, persistent:true #workspace=name:remoting, monitor:$screen2, persistent:true #workspace=name:searching, monitor:$screen1, persistent:true #workspace=name:homelab, monitor:$screen2, persistent:true #workspace=name:discord, monitor:$screen1, default:true, persistent:true #workspace=name:music, monitor:$screen3, persistent:true $ws_monitoring=1 $ws_code=2 $ws_browser=3 $ws_file=4 $ws_remoting=5 $ws_searcher=7 $ws_homelab=8 $ws_discord=9 $ws_music=10 $ws_git=11 $ws_steam=12 $ws_obsidian=13 $ws_email=14 $ws_ai=15 $ws_config=16 $ws_gamedev=17 # Switch workspaces with mainMod + [0-9] bind = $mainMod, 1, workspace, $ws_monitoring bind = $mainMod, 2, workspace, $ws_code bind = $mainMod, 3, workspace, $ws_browser bind = $mainMod, 4, workspace, $ws_file bind = $mainMod, 5, workspace, $ws_remoting bind = $mainMod, 6, workspace, 6 bind = $mainMod, 7, workspace, $ws_searcher bind = $mainMod, 8, workspace, $ws_homelab bind = $mainMod, 9, workspace, $ws_discordDescription
To summerize the below image, in order of memory used are:
and so on and so forth.
Ultimately, hyprland seems to have a leak in vram of some sort. I do have three monitors, which i assume is to blame for the high vram on launch, but i cant figure out why the memory doesnt stay around that 400mb. Also its important to note that this isnt related to screensharing, this occurs regardless of whether ive screenshared or not.
The uptime on this system is 5d, but i do launch and close applications with heavy gpu usage during work, which i assume is the issue. Any help to resolve this would be great.
Let me know if im missing any important data and ill retrieve it
How to reproduce
On my system, you just have to open hyprland, and then let it run for a few days, opening applications that use lots of gpu.
Crash reports, logs, images, videos
No crashes for me.