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
19.73k stars 838 forks source link

Performance worse than sway on Intel iGPU #4153

Open russelltg opened 9 months ago

russelltg commented 9 months ago

Hyprland Version

01e5c59d

Bug or Regression?

Bug

Description

Compared to sway (1.8.1), performance is poor even when windows are not currently being resized and no animations are running

How to reproduce

My test setup:

Non-direct scanout test:

  1. Half the 4k screen is has VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/intel_icd.x86_64.json mangohud vkcube --present_mode VK_PRESENT_MODE_IMMEDIATE_KHR running on it
  2. Other half is terminal or whatever else

Sway: 260 FPS, Sway process is using ~10% GPU Hyprland: 150FPS, Hyprland process is using ~50% GPU

Direct scanout test:

  1. Fullscreen vkcube (same commandline as above) on 4k display

Sway: 118FPS, Sway process is using 0% GPU. GPU Power usage is listed as 4W Hyprland: 120FPS, Hyprland process is using 25% GPU. GPU Power usage is listed as 6.4W

I think the direct scanout test ends up memory limited or something, so there is extra GPU headroom for Hyprland's overhead, hence the higher GPU usage and higher power draw but similar FPS from vkcube (unclear on the exact details here, this is a guess)

Let me know if there is any other info I can help with.

Crash reports, logs, images, videos

No response

vaxerski commented 9 months ago

performance is highly subject to your system, really. On my desktop sway performs slightly worse, on system64's laptop sway performs 3x worse than hl.

Worth noting direct scanout is disabled by default in hyprland.

TrudeEH commented 9 months ago

Similar issue for me on a 4K screen. The Full HD one works flawlessly, while the 4K screen is running at 15-20 FPS.

SputnikRocket commented 8 months ago

I have this same issue

kritag commented 8 months ago

I have the same issue running nouveau drivers on the following hardware:

lspci -k | \grep -A 2 -E "(VGA|3D)"
00:02.0 VGA compatible controller: Intel Corporation TigerLake-H GT1 [UHD Graphics] (rev 01)
    DeviceName: Onboard IGD
    Subsystem: Hewlett-Packard Company TigerLake-H GT1 [UHD Graphics]
--
01:00.0 VGA compatible controller: NVIDIA Corporation GA107GLM [RTX A2000 Mobile] (rev a1)
    Subsystem: Hewlett-Packard Company GA107GLM [RTX A2000 Mobile]
    Kernel driver in use: nouveau

Here are some screenshots of running glxgears and vkcube:

20240110_21h17m21s_grim 20240110_21h18m01s_grim

Notice that I'm getting half the FPS of what the refresh rate is set to, this is not happening in Gnome for example, nor does it happen in sway. Running in 1920x1080 gives me the full FPS, but none of my displays use that resolution.

Is hyprland just too demanding for an iGPU running nouveau?

vaxerski commented 8 months ago

have you tried disabling nvidia_anti_flicker?

kritag commented 8 months ago

Added:

opengl {
    nvidia_anti_flicker = false
}

to my hyprland.conf and ran the benchmarks again, still at the same, low FPS. Also, I'm not using the Nvidia card I think, i', using the iGPU which is Intel wiht nouveau.

Benchmarks are one thing, but I can tell by the mouse cursor, scrolling in vim and scrolling web pages that something is up in Hyprland, that are not present in Gnome, Sway or other DE/WMs.

romanstingler commented 8 months ago

currently when I have an external monitor 4k plugged in to my notebook (internal 4k) and use my iGPU (i7-10750H) and I disable the internal monitor, so that only the external monitor is used, disable VFR and enable the debug overlay. I get only 30fps constantly no matter what I do tested watching 60fps and 30fps vids.

image

❯ hyprctl monitors
Monitor DP-3 (ID 1):
    3840x2160@60.00000 at 2560x0
    description: Samsung Electric Company U32R59x H4ZM600322 (DP-3 via HDMI)
    make: Samsung Electric Company
    model: U32R59x
    serial: H4ZM600322
    active workspace: 2 (2)
    special workspace: 0 ()
    reserved: 0 33 0 0
    scale: 1.00
    transform: 0
    focused: yes
    dpmsStatus: 1
    vrr: 0
    activelyTearing: false

Monitor eDP-1 (ID 0):
    2560x1440@60.00000 at 0x0
    description: California Institute of Technology 0x1500 (eDP-1)
    make: California Institute of Technology
    model: 0x1500
    serial: 
    active workspace: 1 (1)
    special workspace: 0 ()
    reserved: 0 33 0 0
    scale: 1.00
    transform: 0
    focused: no
    dpmsStatus: 1
    vrr: 0
    activelyTearing: false