-
-
Notifications
You must be signed in to change notification settings - Fork 47
Description
Migrating from hyprwm/Hyprland#10219 (There is a lot more info in there)
I am on a laptop with an amd iGPU and an nvidia dGPU, I am rendering Hyprland on the iGPU but when I plug in an external HDMI monitor the Hyprland process' vram usage increases for the dGPU.
I use nvidia-smi
(official utility) to analyze vram usage.
On sway, the sway process uses the same amount of vram on the dgpu before, during and after plugging in the external display.
Before during and after plugging in the display and removing it this number never changes.
On Hyprland, the hyprland process uses more vram after the display is plugged in, and it never releases this vram after it claims it. Plugging and unplugging the monitor more times wil inflate Hyprland's vram usage further each time the display gets plugged in.
After running Hyprland for a few days plugging the monitor in and out multiple times throughout that period this is the current vram usage. It started out at 3MiB on boot.
The way this laptop model is set-up, the HDMI port belongs to the dGPU, but since I'm rendering on the iGPU the display gets passed off to the iGPU after it's plugged in.
inxi snippet
Graphics:
Device-1: NVIDIA GA104 [Geforce RTX 3070 Ti Laptop GPU] vendor: ASUSTeK
driver: nvidia v: 570.144 alternate: nouveau,nvidia_drm non-free: 550-570.xx+
status: current (as of 2025-04; EOL~2026-12-xx) arch: Ampere code: GAxxx
process: TSMC n7 (7nm) built: 2020-2023 pcie: gen: 1 speed: 2.5 GT/s
lanes: 8 link-max: gen: 4 speed: 16 GT/s lanes: 16 ports: active: none
off: HDMI-A-1 empty: DP-1,eDP-1 bus-ID: 01:00.0 chip-ID: 10de:24a0
class-ID: 0300
Device-2: Advanced Micro Devices [AMD/ATI] Rembrandt [Radeon 680M]
vendor: ASUSTeK driver: amdgpu v: kernel arch: RDNA-2 code: Navi-2x
process: TSMC n7 (7nm) built: 2020-22 pcie: gen: 4 speed: 16 GT/s lanes: 16
ports: active: eDP-2 empty: DP-2, DP-3, DP-4, DP-5, DP-6, Writeback-1
bus-ID: 06:00.0 chip-ID: 1002:1681 class-ID: 0300 temp: 57.0 C
Display: wayland server: X.org v: 1.21.1.16 with: Xwayland v: 24.1.6
compositors: 1: Hyprland v: 0.49.0-4-g60cd5b7a4 2: Sway v: 1.10.1 driver: X:
loaded: amdgpu dri: radeonsi gpu: amdgpu,nvidia,nvidia-nvswitch
display-ID: 1
Monitor-1: HDMI-A-1 model: Sony TV 00 serial: <filter> built: 2019
res: 3840x2160 dpi: 61 gamma: 1.2 size: 1600x900mm (62.99x35.43")
diag: 1836mm (72.3") ratio: 16:9 modes: max: 3840x2160 min: 640x480
Monitor-2: eDP-2 model: BOE Display 0x0a69 built: 2021 res: 2560x1440
dpi: 171 gamma: 1.2 size: 381x214mm (15x8.43") diag: 437mm (17.2")
ratio: 16:9 modes: max: 2560x1440 min: 640x480
API: EGL v: 1.5 hw: drv: nvidia drv: amd radeonsi platforms: device: 0
drv: nvidia device: 1 drv: radeonsi gbm: drv: kms_swrast surfaceless:
drv: nvidia wayland: drv: radeonsi x11: drv: radeonsi
API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: amd mesa v: 25.0.5-arch1.1
glx-v: 1.4 direct-render: yes renderer: AMD Radeon 680M (radeonsi rembrandt
LLVM 19.1.7 DRM 3.61 6.14.6-arch1-1) device-ID: 1002:1681 memory: 500 MiB
unified: no
API: Vulkan v: 1.4.313 layers: 12 device: 0 type: integrated-gpu name: AMD
Radeon 680M (RADV REMBRANDT) driver: mesa radv v: 25.0.5-arch1.1
device-ID: 1002:1681 surfaces: N/A
Info: Tools: api: eglinfo, glxinfo, vulkaninfo
gpu: nvidia-settings,nvidia-smi wl: swaymsg,wdisplays x11: xprop,xrandr
This may have no relevance to the issue at all but I figured I should include that information just in case if it is.
Because of this setup, some vram is always used on the dGPU when a monitor is plugged into this port, even on sway, however the difference between Hyprland and sway is that the sway process consumes none of that vram whereas the Hyprland process consumes somewhere in the range of 100% of that vram (so when a display is plugged in on Hyprland roughly 2x the amount of vram gets used on the dGPU compared to when on sway)