1
0
Fork 0
mutter-performance-source/src/core
Jonas Ådahl d43c8cd842 window: Freeze stack when calculating showing state
Constantly manipulating the stack caused severe stalls (several seconds)
with many open windows when switching workspaces. The cause for this was
that each show/hide call dealt with the stack in isolation, meaning if
you hid N windows, we'd manipulate and synchronize the stack N times,
potentially doing synchronous calls to the X server while doing so.

Avoid the most severe stalls by freezing the stack while calculating
showing; this made the worst case go from several seconds to around
10-20 ms, which is still bad, but by far not as bad.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1616>
2020-12-01 11:41:11 +00:00
..
bell.c *: Fix spelling mistakes found by codespell 2020-08-29 09:10:31 +00:00
bell.h frame: Remove flashing support 2019-03-12 00:27:07 +00:00
boxes-private.h *: Fix spelling mistakes found by codespell 2020-08-29 09:10:31 +00:00
boxes.c Remove misplaced line break in g_* logging functions 2020-10-08 16:38:41 +02:00
constraints.c constraints: Use "orig" rectangle for interactive resize 2020-10-19 11:16:12 +02:00
constraints.h window: Implement asynchronous popup moving 2020-02-29 21:01:50 +00:00
delete.c Make meta_* logging utilities not require line break 2020-10-08 16:38:41 +02:00
display-private.h backends: Split pad action mapping to a separate object 2020-11-27 15:14:33 +00:00
display.c backends: Make MetaInputMapper take over MetaInputSettings public API 2020-11-27 15:14:33 +00:00
edge-resistance.c window: "Hide" edge resistance behind modifier key 2020-10-14 15:45:24 +00:00
edge-resistance.h edge-resistance: Replace booleans with flags parameter 2020-10-14 15:45:23 +00:00
events.c backends: Split pad action mapping to a separate object 2020-11-27 15:14:33 +00:00
events.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
frame.c Make meta_* logging utilities not require line break 2020-10-08 16:38:41 +02:00
frame.h frame: Pass the frame area for get_mask() 2020-01-29 10:44:50 +00:00
keybindings-private.h keybindings: Do not grab the locate-pointer key if unnecessary 2019-07-18 13:10:32 +00:00
keybindings.c backends/x11: Move to backend-specific meta_input_device_x11_get_device_id() 2020-11-18 19:10:48 +00:00
main-private.h tests/clutter: Disable X11 client support 2020-11-09 16:12:35 +00:00
main.c tests/clutter: Disable X11 client support 2020-11-09 16:12:35 +00:00
meta-accel-parse.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-accel-parse.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-anonymous-file.c Add read-only anonymous file abstraction MetaAnonymousFile 2020-04-21 17:52:08 +02:00
meta-anonymous-file.h Add read-only anonymous file abstraction MetaAnonymousFile 2020-04-21 17:52:08 +02:00
meta-border.c MetaBorder: Use float constants and functions instead of double variants 2016-02-16 19:02:48 +08:00
meta-border.h Move out generic math parts out of the native barrier implementation 2016-02-16 19:02:48 +08:00
meta-clipboard-manager.c core: Free clipboard selection source on shutdown 2020-06-08 12:11:11 +00:00
meta-clipboard-manager.h core: Add clipboard manager 2019-05-02 16:22:45 +02:00
meta-close-dialog-default-private.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-close-dialog-default.c Make meta_* logging utilities not require line break 2020-10-08 16:38:41 +02:00
meta-close-dialog.c Use a consistent style for enum braces 2019-02-28 09:31:01 +01:00
meta-fraction.c Add MetaFraction for dealing with fractions 2017-08-29 14:39:04 +08:00
meta-fraction.h Add MetaFraction for dealing with fractions 2017-08-29 14:39:04 +08:00
meta-gesture-tracker-private.h display: Move finishing of touch sequence to the backend 2019-10-28 18:40:43 +00:00
meta-gesture-tracker.c cleanup: Use g_clear_handle_id() for g_source_remove() 2019-11-22 01:27:40 +01:00
meta-inhibit-shortcuts-dialog-default-private.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-inhibit-shortcuts-dialog-default.c Use a consistent style for enum braces 2019-02-28 09:31:01 +01:00
meta-inhibit-shortcuts-dialog.c core: add MetaInhibitShortcutsDialog 2017-08-02 11:58:55 +02:00
meta-launch-context.c core: Use DISPLAY envvar to forward in the launch context 2020-02-29 20:41:26 +00:00
meta-pad-action-mapper.c backends: Split pad action mapping to a separate object 2020-11-27 15:14:33 +00:00
meta-pad-action-mapper.h backends: Split pad action mapping to a separate object 2020-11-27 15:14:33 +00:00
meta-selection-private.h core: Add private function to get the current selection owner 2020-04-09 21:30:05 +00:00
meta-selection-source-memory.c core: Fix task leak in meta_selection_source_memory_read_async 2020-02-01 14:02:19 +00:00
meta-selection-source.c Make MetaSelection, MetaSelectionSource and MetaMemorySelectionSource public 2019-05-02 16:31:45 +02:00
meta-selection.c core: Cater for reading selection in chunks 2020-04-16 16:26:04 +00:00
meta-sound-player.c cleanup: remove controversial naming 2020-08-04 10:04:16 +02:00
meta-workspace-manager-private.h Move workspace related code from MetaDisplay to MetaWorkspaceManager 2018-07-06 19:47:17 +02:00
meta-workspace-manager.c Make meta_* logging utilities not require line break 2020-10-08 16:38:41 +02:00
mutter.c plugin: Rename the .so file from plugin.so to libplugin.so 2018-11-06 17:17:36 +01:00
place.c Make meta_* logging utilities not require line break 2020-10-08 16:38:41 +02:00
place.h place: Make placement rule processing provide relative coordinates 2020-02-29 21:01:50 +00:00
prefs.c Make meta_* logging utilities not require line break 2020-10-08 16:38:41 +02:00
restart-helper.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
restart.c Make meta_* logging utilities not require line break 2020-10-08 16:38:41 +02:00
stack-tracker.c Make meta_* logging utilities not require line break 2020-10-08 16:38:41 +02:00
stack-tracker.h meta: Hide libmutter symbols by default and selectively export them 2019-01-23 14:18:13 +01:00
stack.c Remove misplaced line break in g_* logging functions 2020-10-08 16:38:41 +02:00
stack.h stack: Style and introspection doc fixes 2019-07-08 11:46:52 +02:00
startup-notification-private.h meta, startup-notification: Make type declarations public 2019-01-24 16:38:09 +00:00
startup-notification.c Make meta_* logging utilities not require line break 2020-10-08 16:38:41 +02:00
util-private.h meta: Hide libmutter symbols by default and selectively export them 2019-01-23 14:18:13 +01:00
util.c util: Add META_DEBUG_WAYLAND debug topic 2020-10-20 09:53:52 +00:00
window-private.h core/window: Store/load window dimensions before/after fullscreen 2020-10-22 16:29:09 +00:00
window.c window: Freeze stack when calculating showing state 2020-12-01 11:41:11 +00:00
workspace-private.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
workspace.c Make meta_* logging utilities not require line break 2020-10-08 16:38:41 +02:00