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
21.05k stars 881 forks source link

Hyprland performance issues #2442

Open System64fumo opened 1 year ago

System64fumo commented 1 year ago

Hyprland has a noticeable performance difference between it and other wayland compositors Examples: Tinywl Wayfire Labwc

And in some cases it also affects general use (Moving a window, Animations, Ect)

Steps to reproduce: Install hyprland Launch hyprland Run glxgears or glmark

Expected outcome: A lot of fps

Actual outcome: Approximately 2.3 times less fps than alternatives

This is just a performance issue not a crash issue

Notes: Performance issues occur on my daily driver (i7-9700F rtx 3060 ti) and all models of raspberry pi Performance issues do not occur on my M2 Mac which is not supported at all by hyprland and has visual issues

NotAShelf commented 1 year ago

Appears to be something I can easily reproduce on my device

glmark-wayland results on my gtx 1050:

tinywl: 481 hyprland: 256 wayfire: 513

and with intel hd graphics 630:

tinywl: 1651 hyprland: 942 wayfire: 1203

Fxzzi commented 1 year ago

Can confirm I also get sad performance on this shitty compositor

This compositor is so shitty I use it every day just to hurt myself

Fix your compositor bae

vaxerski commented 1 year ago

tinywl's score is surprising to say the least. No clue what the issue is atm, but I'll try digging a bit

NotAShelf commented 1 year ago

Noticed I ran tinywl on my intel igpu, will update the results for each compositor in a few minutes.

System64fumo commented 1 year ago

A solution to getting xorg programs running better under hyprland would be to launch a new Xwayland process and tell xorg programs to run there

A solution to getting wayland programs running better would be to launch tinywl inside hyprland and tell wayland programs to run there

How this increases framerates i have absolutely no idea But i am not sure if this also applies to games yet or not Will test soon

System64fumo commented 1 year ago

Games run ever so slightly faster tho in margin of error so no they are not really that affected However the main concern is in general use Which hyprland feels sluggish while for example wayfire feels buttery smooth

On my gaming desktop it is not that noticable if at all but it still exists if you look really closely On my raspberry pi's however? It is very noticable, Odd thing is, If i enable hyprland's debug overlay it says that it's running at 20-30 fps but if i run stress in the background and max all 4 cores it jumps to 60 and hyprland starts being as smooth if not smoother than wayfire? What gives?

System64fumo commented 1 year ago

Update: I've ran a few tests on a few of my systems and concluded that this issue only applies to a select few machines.

3/4 Machines that i've tested gained performance by using either wayfire (More consistent gains) or tinywl (Sometimes hurts performance)

My desktop: Runs Hyprland poorly Runs Wayfire/Tinywl Perfectly Performance difference is not that noticeable in real world scenarios but still exists

My m2 Macbook air: Runs Everything at about the same fps Performance difference is not noticeable at all

Data table of things i tried:

Desktop | Hyprland | GLXGears | Built in Xwayland | 4816
Desktop | Hyprland | GLXGears | Xwayland :2       | 12806

Desktop | Wayfire  | GLMark   | Wayland           | 3920
Desktop | Wayfire  | GLXGears | Built in Xwayland | 9565
Desktop | Wayfire  | GLXGears | Xwayland :2       | 14134

Desktop | Tinywl   | GLMark   | Wayland           | 9155
Desktop | Tinywl   | GLXGears | Xwayland :2       | 13052

Mac     | Hyprland | GLMark   | Wayland           | 6717
Mac     | Hyprland | GLXGears | Built in Xwayland | 8257
Mac     | Hyprland | GLXGears | Xwayland :2       | 4767

Mac     | Wayfire  | GLMark   | Wayland           | 6821
Mac     | Wayfire  | GLXGears | Built in Xwayland | 8513
Mac     | Wayfire  | GLXGears | Xwayland :2       | 4477

Mac     | TinyWl   | GLMark   | Wayland           | 6848
Mac     | Tinywl   | GLXGears | Xwayland :2       | 3941

This needs more testing on different hardware to find out if it's possibly a Nvidia issue? Seems to also affect intel according to raf (and from my own testing) And it also affects broadcom chips (Raspberry pi's 02,3B+,4B) No clue if it affects AMD or other ARM SOC's

vaxerski commented 1 year ago

AMD iGPU = ~22k in glxgears on hyprland, ~27k in wayfire, slight difference, might even be the fact I have firefox and a status bar open, as if I move any window in wf it drops to around 22k too.

VeilSilence commented 1 year ago

Nvidia rtx 3090. Tested in clear sway, my current Hyprland setup and clear Hyprland setup. Sway: glmark2 Score: 9720. Hyprland: glmark2 Score: 2775. Clear hyprland setup provide almost same score. glmark2-hyprland.txt glmark2-sway.txt Gamescope-glmark2.txt Edit: using "Gamescope" inside Hyprland session provide "glmark2 Score: 10483" Nvidia-smi report GPU-Util 97% when i'm running with "gamescope glmark2", and 70% GPU-Util on Hyprland.

System64fumo commented 1 year ago

Update: I've tried hyprland release 3.0 (Since i couldn't get the older ones working) And performance is better, still not perfect but noticeably better

Glxgears gets approximately 7.6k gps And glmark gets a clean 4k fps

While yes it's not as perfect It is an improvement over what current modern day hyprland performance gets About uh 125% to 200% better more or less

Notes: I have used the precompiled binary without my custom system native optimizations or nvidia patch, It also seems like i have forgotten to provide a glmark score for hyprland before but it's 3048

vaxerski commented 1 year ago

if you can at least narrow down the release that introduced the issues it would help

romanstingler commented 1 year ago

@AmirDahan can you benchmark again with disabled overlay

System64fumo commented 1 year ago

I am aware of hyprland's performance updates, performance has gone up since this issue was made It's still not perfect but vaxry is working on it

System64fumo commented 1 year ago

Either way results are in Commit: da46e01b9710fdb1d8b89d577677321101f9ed96

Desktop | Hyprland | GLMark   | Wayland           | 3047
Desktop | Hyprland | GLXGears | Built in Xwayland | 5942
Desktop | Hyprland | GLXGears | Xwayland :2       | 9861
MiguelCarino commented 1 year ago

Not sure if this would help but I noticed this issue appears when setting the monitor's refresh rate to its maximum, a lot of monitors and laptops only support one refresh rate (mostly 60Hz). Tried with a 144Hz monitor and as long as I don't use 144 Hz games are fine, settled for 120 Hz in the meantime.

System64fumo commented 1 year ago

Na most programs are fine and all that but the general feel of the compositor itself is the issue, i could care less about 3-5 fps difference in games but when the thing that handles them decides to run at like 20 fps (visually) and lags behind every couple or so frames then there's an issue

That has mostly been fixed however on some devices i still notice a difference in animation speed or general smoothness Unlikely that vaxry could do anything about those devices as they run on an arm cpu

He did mention that he is aware of some other performance issues and he's willing to work them out Praying that his work will eventually iron out the performance gap between hyprland and wayfire/labwc

romanstingler commented 1 year ago

@AmirDahan maybe you should set VFR to 0 in the hyprland config

System64fumo commented 1 year ago

I've tried that before whenever i was testing things, nothing made a difference.

romanstingler commented 1 year ago

for me this just sounds so strange, maybe this is an issue with nvidia or it is your specific system. (some driver crap or so) On my notebook with intel iGPU I get about 6800 GLMark2.

System64fumo commented 1 year ago

This issue seems to happen on my nvidia desktop, my intel tablet, all of my raspberry pi's, and my qcom phone This issue does not happen to me on my M2 Macbook Pro however

It also only happens on hyprland, other compositors are fine implying that there is something wrong with the way hyprland handles things

cenunix commented 1 year ago

I'm running two 240hz monitors with a 3070ti, I never reach 240hz with the debug overlay on. And I have noticed this for months. I average around 110 fps on my 1440p monitor and 150 on the 1080p one. Games like csgo are virtually unplayable sadly, a mixture of input lag and weird frame drops. Just providing input that this issue may have been present for a LONG time, and may not be caused by a recent commit.

MightyPlaza commented 1 year ago

overlay seems to use a lot of cpu (single core), simply having the overlay on messes up your metrics

cenunix commented 1 year ago

ah, in that case, I'm assuming its just an issue with csgo for me then. Have tried gamescope and disabling all the decorations for hyprland but still have weird frame stutter issues. glxgears reports near 238fps+ for me consistently.

romanstingler commented 1 year ago

@AmirDahan does this help you

export CLUTTER_PAINT=disable-dynamic-max-render-time

System64fumo commented 1 year ago

Vaxry has fixed most performance issues and is actively working on making performance better

Also what you have just sent seems like a clutter related thing?

System64fumo commented 10 months ago

Latest hyprland update as of today (Commit 99ca26d4eb84e0071264713902e5b287fcab392e) Has finally fixed all performance issues as far as i'm aware of (At least on my desktop) I've ran glxgears 3 times and glmark for the first 5 benchmarks on both the old and new one The after results are similar if not a little higher than other solutions (xorg/wayfire/labwc/ect)

Before                       | After
GLX 5817.256 FPS             | 27201.131 FPS
GLX 5879.145 FPS             | 24951.129 FPS
GLX 5871.233 FPS             | 24947.967 FPS

GLM 2857 FrameTime: 0.350 ms | 5994 FrameTime: 0.167 ms
GLM 3487 FrameTime: 0.287 ms | 10851 FrameTime: 0.092 ms
GLM 3510 FrameTime: 0.285 ms | 9660 FrameTime: 0.104 ms
GLM 3535 FrameTime: 0.283 ms | 7846 FrameTime: 0.127 ms
GLM 3516 FrameTime: 0.284 ms | 7817 FrameTime: 0.128 ms

This needs to be tested on other platforms such as laptops with iGPUs or arm boards to confirm that no other performance issues exist there.

romanstingler commented 10 months ago

yes performance seems reasonable. only issue is that mesa 24 with intel iGPU has performance regression on glmark2 use-vbo=false: but not an Hyprland issue

TrudeEH commented 10 months ago

I have some performance issues with Hyprland too. Not in games, only while using Firefox / terminals and general use. This only happens on my 4K screen, where the fps often falls under 20 or so. On my 75Hz 1080 monitor, everything is very smooth and it's not noticeable at all. I'm running an i5-13500 with integrated graphics on a desktop.

AERDU commented 9 months ago

To piggyback on cenunix comments, I'm using a 240hz monitor as well with a 144hz secondary monitor. with vrr=2 and fullscreen the overlay displays constant 238+fps as expected, but with vrr=1 and without anything fullscreened, it's between 120-180fps. The reason I doubt its cpu related is because when I run wlr-randr --output DP-1 --on or wlr-randr --output DP-2 --on, the overlay seems to display +200fps until I reload hyprctl. There might be a simple explanation to this I'm unaware of. (I have vfr off)

I should also mention that I too get the random fps drop/stutter, but I mostly get them/or notice them when watching youtube in firefox. Not sure if it matters but I'm running on a 7800xt.

SputnikRocket commented 9 months ago

I have an issue where when I open a window, my framerate drops by a significant amount, intel iGPU, mesa graphics

bennypowers commented 8 months ago

cross-posting from gentoo forums. With hyprland 0.34.0, I get about 25-30 fps at 2k60 on a raspberry pi 5, which drops to 10 fps when a window or two is open.

vaxerski commented 8 months ago

great. I get 0 fps on my motorola 6800.

With zero comparisons to other environments (sway / wf / river) And no testing of older versions

Your feedback is, at best, worthless.

System64fumo commented 8 months ago

@bennypowers I feel like i should point this out but Hyprland generally runs like dog poo on all models of raspberry pi At least now i know that it's still an issue

I recommend you try wayfire and post the results since it worked wonders back when i still had a pi

grappas commented 8 months ago

Question is: how it is relating to GPU utilization? obraz glmark2-wayland Note that it's not even boosting to max 2,5GHz, so glmark2 proves nothing and whole this discussion renders useless.

Please bench it with something really gpu intensive (furmark?)

EDIT: https://github.com/mohdforever/GpuTest and furmark

Hyprland: obraz Sway: obraz

bennypowers commented 8 months ago

I ran glmark2 via pts in a stock, fully updated raspberry pi installation about an hour ago.

Then i booted back into gentoo and ran the same suite under hyprland

Then I installed wayfire on the same gentoo installation and ran the same test:

the difference in performance is immediately noticeable. hope this helps clarify the problem

romanstingler commented 8 months ago

@bennypowers if you use your handheld calculator then try disabling all performance degrading bits in the config

another question why do you loose ~30% from debian to gentoo?

izmyname commented 2 months ago

Was it, by chance, fixed?

System64fumo commented 2 months ago

@izmyname What do you mean by fixed? Performance issues in general (intel/amd but primarily intel) Or performance issues on broadcom SoCs?

izmyname commented 2 months ago

@izmyname What do you mean by fixed? Performance issues in general (intel/amd but primarily intel) Or performance issues on broadcom SoCs?

Anything. Sometimes, updates fix stuff.

System64fumo commented 2 months ago

Performance issues on intel and nvidia are fixed as far as i'm aware, Only broadcom SoCs have performance issues on hyprland at the moment

kwankiu commented 1 week ago

Performance issues on intel and nvidia are fixed as far as i'm aware, Only broadcom SoCs have performance issues on hyprland at the moment

Same issue with rockchip rk3588, glmark and vkmark both results in roughly half the performance of gnome.

Arch Linux ARM, btw.

System64fumo commented 1 week ago

@kwankiu I'm going to assume you're on the BSP kernel? Because hyprland is running better than gnome (mutter) here on mainline?.

Hyprland: 2647 Mutter: 2617

Notes: This was ran on an Orange Pi 5 plus running a 6.11 kernel using the panthor driver. CPU and GPU governors were set to performance.