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
Every 1/2 second or so during Steam (Proton) games, a dip in framerate #2192
Comments
If we're talking about the unreleased master branch here, try changing the value of:
or
to something like 2000. Does that then change the frequency of the blip? |
Thanks for your reply! I've only had time to try changing the value in docking.js (not prefs.js) so far, but before I saw your suggestion of 2000, I tried 1000. That improved the benchmark score to within 1% of previous/without Dash-to-Dock, and changing it to 2000 made it slightly worse, but still in the 1~1.5% range. Anecdotally, the blips seemed spaced at the same interval they had been before, and with the value set to 2000, there were as many... not blips, but 1/4ish second-long up/down dithers, I suppose you could call them (?) as with the original value of 500. Also anecdotally and as expected given the file I edited, startup of Dash-to-Dock took longer, with the longer values (I assume they're for milliseconds?). Also also anecdotally, I see from the source code for v89 from October (last stable release), than at least within docking.js, this STARTUP_ANIMATION_TIME value is not set, but referred to as a variable. Maybe it's set in another doc; I haven't checked. Let me know if you suggest another value, or that I try it another time around with prefs.js instead. Not possible now, but I could try tomorrow. Thanks again! |
If it's "1/4ish second-long" then the value we're searching for is 250. I will try to do some measurements myself. Thanks. |
I have not been able to reproduce this bug but I did rediscover an upstream bug affecting Xorg sessions.
|
• I’m using Wayland, though Steam *UPDATE: |
UPDATE: Finally taught myself the much more useful Further can confirm that this effect and its current solution of rolling back to the latest 4/2 commit is not confined to my daily-driver vanilla (archinstall) Arch installation. Both a performance hit from the latest commit & an apparent restoration of performance from the 4/2 commit happen on an external CachyOS installation (so, Arch with v3 optimizations & some other specific choices) on the same hardware. I have not tried it on a Debian/Ubuntu- or Fedora-based (or -derived) installation. |
Thanks, yes I was talking about using Also the "squishing FHD by drawing an unfilled panel at the top" in GNOME 46 is https://gitlab.gnome.org/GNOME/mutter/-/issues/3425 |
I’ll edit the below once I can have a bit more time in front of the system. For now, the 4/2 commit with (short) hash 44a4726 works (eg. doesn’t cut into performance), and the latest pull (so I assume the same as 5d417c0) shows the performance hit. I have not yet but would be happy to test the intervening commits (1322cf7, d6c0b6b, etc.). One question which further reveals my layman’s lack of git process knowledge (sorry): If a commit shows a ❌ or nothing, should I bother testing those, or only ✅-ed commits?
And thanks for the tip on Mutter issue #3425; I’ll check it out! |
OK, commits vs performance behavior in Horizon Zero Dawn (Steam w/Proton & gamemode, mangohud) benchmarks:
So it appears that something about the new enable/disable code for unredirect of intellihide in commit d6c0b6b is affecting performance in my use case. I'm currently rolled back to commit 1322cf7, and it's working fine for my current needs, though of course I'm excited to see where Dash-to-Dock goes. There are many similar Gnome extensions; none of them really look as good or configure as well! Thanks for all the work you do, and the chance to participate! |
Oh... It should have let the unredirection enabled when the dock is not showing (playing fullscreen games, etc). I would try if I could reproduce this issue today. |
I could confirm that the unredirection is disabled for multiple times when showing/hiding overview, as I didn't notice this when writing code. I have worked out a fix: taoky@73afb79. @juanejot would you like to try if this works (If so I would submit a PR for further review)? Also enabling "RENDER" flag in looking glass (Alt+F2 => |
Thank you for the hard work, @vanvugt & @taoky! |
@vanvugt @3v1n0 What was the rationale for dash-to-dock to touch internal unredirect in the first place? If it's performance related, shouldn't mutter MR 1441 mitigate that? To me it seems to make more sense to keep extensions really simple, and cutting this out. Then fix performance and rendering bugs upstream instead. |
It's in "Flags" => "MetaDebugTopic". After this mutter (gnome-shell) would output more log that could be get by |
It's not related to triple/double buffering. The glitch I tried fixing is #1381, which could be triggered under Wayland session with maximized apps (such as Firefox with hardware acceleration on) on displays with no top bar (in a multi-screen setup, or when users install some other extension to hide the top bar).
In gnome-shell's code, the unredirect is disabled when the activated widgets (like the notification list, the system menu, or popups from the input method) could overlap with the window. But for extensions' own widgets, unfortunately this is not done automatically (though in gnome-shell, this is also done by explicitly calling Currently the unredirect APIs control a counter inside mutter -- this means if I agree that the unredirect APIs are not quite easy to use, and I don't know if https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3043 could alleviate this issue. |
This is a weird one, and my searches of similar issues reveals nothing that is both recent & similar: Under GNOME 46, the latest build (as of 4/8) seems to do this weird little blip to the frametime about every half second or so. Overall, this affects performance in a Horizon Zero Dawn benchmark by 2.5% or so. Not hugely significant, except that stutters are visible & the behavior is repeatable and consistent.
I wouldn't tie it to Dash-to-Dock at all, except that I've eliminated everything else (tried removing & replacing other extensions, scrutinizing & reverting recent package upgrades, etc.); turning off Dash-to-Dock makes the behavior go away* (as does removing it), and
make -C install dash-to-dock install
-ing it again (even after agit pull
inside the dash-to-dock directory) & turning it on, brings the behavior back. I don't believe I noticed this before the most recent 4/8 commits (was not doing it, to my memory, after the 4/1 commits).32GB 3600MT/s DDR4, 9700K, RX6600XT. Arch Linux (so, latest unless I've reverted anything, which I have not currently… the only exception being gamemode 1.7, because gamemode 1.8.1--any build--doesn't work.). Steam, mangohud, gamemode, all system packages (not flatpak).
That may already have been too much superfluous configuration info, but feel free to let me know of any other info you may need to explore & hopefully diagnose what's going on. Thanks for any time you can spend on this!
*And performance go back up to the expected range.
The text was updated successfully, but these errors were encountered: