Skip to content
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

Gtk 3 re-layout in ddterm gets progressively slower after playing games under gamescope+Wine #1083

Open
2 tasks done
amezin opened this issue Oct 20, 2024 · 8 comments
Open
2 tasks done
Labels
bug Something isn't working

Comments

@amezin
Copy link
Member

amezin commented Oct 20, 2024

GNOME Shell version

GNOME Shell 47.1

Linux distro

Arch Linux

ddterm version

ddterm 56 revision 8c6103b
Extension 56 revision 8c6103b

Session type

Wayland (echo $WAYLAND_DISPLAY output is non-empty)

Special configuration

  • High DPI
  • More than one monitor

All installed extensions

lockkeys@vaina.lt
  Name: Lock Keys
  Description: Numlock & Capslock status on the panel.
  Path: /home/amezin/.local/share/gnome-shell/extensions/lockkeys@vaina.lt
  URL: https://github.com/kazysmaster/gnome-shell-extension-lockkeys
  Version: 59
  Enabled: Yes
  State: ACTIVE

dash-to-dock@micxgx.gmail.com
  Name: Dash to Dock
  Description: A dock for the Gnome Shell. This extension moves the dash out of the overview transforming it in a dock for an easier launching of applications and a faster switching between windows and desktops. Side and bottom placement options are available.
  Path: /home/amezin/.local/share/gnome-shell/extensions/dash-to-dock@micxgx.gmail.com
  URL: https://micheleg.github.io/dash-to-dock/
  Original author: micxgx@gmail.com
  Version: 99
  Enabled: No
  State: INITIALIZED

blur-my-shell@aunetx
  Name: Blur my Shell
  Description: Adds a blur look to different parts of the GNOME Shell, including the top panel, dash and overview.

You can support my work by sponsoring me on:
- github: https://github.com/sponsors/aunetx
- ko-fi: https://ko-fi.com/aunetx

If you use Ubuntu, you may want to change the radius of the corner effect for Dash-to-Dock in preferences, else you may see unpleasantly mixed radii in your dock.

Note: if the extension shows an error after updating, please make sure to restart your session to see if it persists. This is due to a bug in gnome shell, which I can't fix by myself.
  Path: /home/amezin/.local/share/gnome-shell/extensions/blur-my-shell@aunetx
  URL: https://github.com/aunetx/blur-my-shell
  Version: 67
  Enabled: No
  State: INITIALIZED

activate_gnome@isjerryxiao
  Name: Activate GNOME
  Description: Shows Activate GNOME watermark on your screen. Migrating from Windows has never been easier!
  Path: /home/amezin/.local/share/gnome-shell/extensions/activate_gnome@isjerryxiao
  URL: https://github.com/isjerryxiao/gnome-shell-extension-activate-gnome
  Version: 12
  Enabled: No
  State: INITIALIZED

ddterm@amezin.github.com
  Name: ddterm
  Description: Another drop down terminal extension for GNOME Shell. With tabs. Works on Wayland natively
  Path: /home/amezin/.local/share/gnome-shell/extensions/ddterm@amezin.github.com
  URL: https://github.com/ddterm/gnome-shell-extension-ddterm
  Version: 56
  Enabled: Yes
  State: ACTIVE

apps-menu@gnome-shell-extensions.gcampax.github.com
  Name: Apps Menu
  Description: Add a category-based menu for apps.
This extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.
  Path: /usr/share/gnome-shell/extensions/apps-menu@gnome-shell-extensions.gcampax.github.com
  URL: https://gitlab.gnome.org/GNOME/gnome-shell-extensions
  Enabled: No
  State: INITIALIZED

auto-move-windows@gnome-shell-extensions.gcampax.github.com
  Name: Auto Move Windows
  Description: Move applications to specific workspaces when they create windows.
  Path: /usr/share/gnome-shell/extensions/auto-move-windows@gnome-shell-extensions.gcampax.github.com
  URL: https://gitlab.gnome.org/GNOME/gnome-shell-extensions
  Enabled: No
  State: INITIALIZED

drive-menu@gnome-shell-extensions.gcampax.github.com
  Name: Removable Drive Menu
  Description: A status menu for accessing and unmounting removable devices.
  Path: /usr/share/gnome-shell/extensions/drive-menu@gnome-shell-extensions.gcampax.github.com
  URL: https://gitlab.gnome.org/GNOME/gnome-shell-extensions
  Enabled: Yes
  State: ACTIVE

launch-new-instance@gnome-shell-extensions.gcampax.github.com
  Name: Launch new instance
  Description: Always launch a new instance when clicking in the dash or the application view.
This extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.
  Path: /usr/share/gnome-shell/extensions/launch-new-instance@gnome-shell-extensions.gcampax.github.com
  URL: https://gitlab.gnome.org/GNOME/gnome-shell-extensions
  Enabled: No
  State: INITIALIZED

native-window-placement@gnome-shell-extensions.gcampax.github.com
  Name: Native Window Placement
  Description: Arrange windows in overview in a more compact way.
  Path: /usr/share/gnome-shell/extensions/native-window-placement@gnome-shell-extensions.gcampax.github.com
  URL: https://gitlab.gnome.org/GNOME/gnome-shell-extensions
  Enabled: No
  State: INITIALIZED

places-menu@gnome-shell-extensions.gcampax.github.com
  Name: Places Status Indicator
  Description: Add a menu for quickly navigating places in the system.
This extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.
  Path: /usr/share/gnome-shell/extensions/places-menu@gnome-shell-extensions.gcampax.github.com
  URL: https://gitlab.gnome.org/GNOME/gnome-shell-extensions
  Enabled: No
  State: INITIALIZED

screenshot-window-sizer@gnome-shell-extensions.gcampax.github.com
  Name: Screenshot Window Sizer
  Description: Resize windows for GNOME Software screenshots
  Path: /usr/share/gnome-shell/extensions/screenshot-window-sizer@gnome-shell-extensions.gcampax.github.com
  URL: https://gitlab.gnome.org/GNOME/gnome-shell-extensions
  Enabled: No
  State: INITIALIZED

user-theme@gnome-shell-extensions.gcampax.github.com
  Name: User Themes
  Description: Load shell themes from user directory.
  Path: /usr/share/gnome-shell/extensions/user-theme@gnome-shell-extensions.gcampax.github.com
  URL: https://gitlab.gnome.org/GNOME/gnome-shell-extensions
  Enabled: No
  State: INITIALIZED

window-list@gnome-shell-extensions.gcampax.github.com
  Name: Window List
  Description: Display a window list at the bottom of the screen.
This extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.
  Path: /usr/share/gnome-shell/extensions/window-list@gnome-shell-extensions.gcampax.github.com
  URL: https://gitlab.gnome.org/GNOME/gnome-shell-extensions
  Enabled: No
  State: INITIALIZED

windowsNavigator@gnome-shell-extensions.gcampax.github.com
  Name: windowNavigator
  Description: Allow keyboard selection of windows and workspaces in overlay mode. <Ctrl>number selects a workspace, and <Alt>number selects a window.
  Path: /usr/share/gnome-shell/extensions/windowsNavigator@gnome-shell-extensions.gcampax.github.com
  URL: https://gitlab.gnome.org/GNOME/gnome-shell-extensions
  Original author: zaspire@rambler.ru
  Enabled: No
  State: INITIALIZED

workspace-indicator@gnome-shell-extensions.gcampax.github.com
  Name: Workspace Indicator
  Description: Put an indicator on the panel signaling in which workspace you are, and give you the possibility of switching to another one.
  Path: /usr/share/gnome-shell/extensions/workspace-indicator@gnome-shell-extensions.gcampax.github.com
  URL: https://gitlab.gnome.org/GNOME/gnome-shell-extensions
  Enabled: No
  State: INITIALIZED

light-style@gnome-shell-extensions.gcampax.github.com
  Name: Light Style
  Description: Switch default to light style
  Path: /usr/share/gnome-shell/extensions/light-style@gnome-shell-extensions.gcampax.github.com
  URL: https://gitlab.gnome.org/GNOME/gnome-shell-extensions
  Enabled: No
  State: INITIALIZED

appindicatorsupport@rgcjonas.gmail.com
  Name: AppIndicator and KStatusNotifierItem Support
  Description: Adds AppIndicator, KStatusNotifierItem and legacy Tray icons support to the Shell
  Path: /usr/share/gnome-shell/extensions/appindicatorsupport@rgcjonas.gmail.com
  URL: https://github.com/ubuntu/gnome-shell-extension-appindicator
  Enabled: Yes
  State: ACTIVE

arcmenu@arcmenu.com
  Name: ArcMenu
  Description: Application Menu Extension for GNOME
  Path: /usr/share/gnome-shell/extensions/arcmenu@arcmenu.com
  URL: https://gitlab.com/arcmenu/ArcMenu
  Version: 61 (61)
  Enabled: No
  State: INITIALIZED

caffeine@patapon.info
  Name: Caffeine
  Description: Disable the screensaver and auto suspend
  Path: /usr/share/gnome-shell/extensions/caffeine@patapon.info
  URL: https://github.com/eonpatapon/gnome-shell-extension-caffeine
  Version: 55
  Enabled: Yes
  State: ACTIVE

system-monitor@gnome-shell-extensions.gcampax.github.com
  Name: System Monitor
  Description: Monitor system from the top bar
  Path: /usr/share/gnome-shell/extensions/system-monitor@gnome-shell-extensions.gcampax.github.com
  URL: https://gitlab.gnome.org/GNOME/gnome-shell-extensions
  Enabled: No
  State: INITIALIZED

dash-to-panel@jderose9.github.com
  Name: Dash to Panel
  Description: An icon taskbar for the Gnome Shell. This extension moves the dash into the gnome main panel so that the application launchers and system tray are combined into a single panel, similar to that found in KDE Plasma and Windows 7+. A separate dock is no longer needed for easy access to running and favorited applications.

For a more traditional experience, you may also want to use Tweak Tool to enable Windows > Titlebar Buttons > Minimize & Maximize.

For the best support, please report any issues on Github. Dash-to-panel is developed and maintained by @jderose9 and @charlesg99.
  Path: /usr/share/gnome-shell/extensions/dash-to-panel@jderose9.github.com
  URL: https://github.com/home-sweet-gnome/dash-to-panel
  Version: 64
  Enabled: Yes
  State: ACTIVE

accerciser@accerciser.gnome.org
  Name: Accerciser
  Description: Provides information to Accerciser Accessibility Explorer
  Path: /usr/share/gnome-shell/extensions/accerciser@accerciser.gnome.org
  Enabled: No
  State: INITIALIZED

status-icons@gnome-shell-extensions.gcampax.github.com
  Name: Status Icons
  Description: Show status icons in the top bar
  Path: /usr/share/gnome-shell/extensions/status-icons@gnome-shell-extensions.gcampax.github.com
  URL: https://gitlab.gnome.org/GNOME/gnome-shell-extensions
  Enabled: No
  State: INITIALIZED

ddterm settings dump

[/]
audible-bell=true
background-color='rgb(23,20,33)'
background-opacity=0.90000000000000002
bold-color='#000000'
bold-color-same-as-fg=true
bold-is-bright=true
command='user-shell'
cursor-background-color='#000000'
cursor-colors-set=false
cursor-foreground-color='#ffffff'
custom-command='ssh localhost'
custom-font='Ubuntu Mono 10'
ddterm-activate-hotkey=@as []
ddterm-toggle-hotkey=['F12']
detect-urls=true
detect-urls-as-is=true
detect-urls-file=true
force-x11-gdk-backend=false
foreground-color='rgb(208,207,204)'
hide-animation='linear'
hide-animation-duration=0.20000000000000001
hide-when-focus-lost=false
hide-window-on-esc=false
highlight-background-color='#000000'
highlight-colors-set=false
highlight-foreground-color='#ffffff'
new-tab-button=true
new-tab-front-button=true
notebook-border=true
override-window-animation=true
palette=['rgb(23,20,33)', 'rgb(192,28,40)', 'rgb(38,162,105)', 'rgb(162,115,76)', 'rgb(18,72,139)', 'rgb(163,71,186)', 'rgb(42,161,179)', 'rgb(208,207,204)', 'rgb(94,92,100)', 'rgb(246,97,81)', 'rgb(51,209,122)', 'rgb(233,173,12)', 'rgb(42,123,222)', 'rgb(192,97,203)', 'rgb(51,199,222)', 'rgb(255,255,255)']
panel-icon-type='toggle-and-menu-button'
preserve-working-directory=true
scroll-on-output=false
scrollback-unlimited=true
shortcut-focus-other-pane=@as []
shortcut-terminal-copy-html=@as []
show-animation='linear'
show-animation-duration=0.10000000000000001
show-scrollbar=true
tab-close-buttons=true
tab-expand=false
tab-label-ellipsize-mode='none'
tab-label-width=0.10000000000000001
tab-policy='always'
tab-position='bottom'
tab-show-shortcuts=true
tab-switcher-popup=true
theme-variant='dark'
transparent-background=true
use-system-font=true
use-theme-colors=false
window-above=true
window-maximize=false
window-monitor='current'
window-monitor-connector='DP-2'
window-position='top'
window-size=0.82129277566539927
window-skip-taskbar=true
window-stick=true
window-type-hint='normal'

Description

ddterm is unresponsive for ~5 seconds when switching between monitors

Steps to reproduce:

  1. Set window-monitor to current
  2. Move mouse cursor to another monitor (not the one where ddterm was shown previously)
@amezin amezin added the bug Something isn't working label Oct 20, 2024
@amezin
Copy link
Member Author

amezin commented Oct 20, 2024

gnome-shell[47314]: Spurious clutter_actor_allocate called for actor 0x56222c50f700/unnamed [ClutterActor] which isn't a descendent of the stage!
gnome-shell[47314]: Spurious clutter_actor_allocate called for actor 0x562234105760/unnamed [ClutterActor] which isn't a descendent of the stage!
...
gnome-shell[47314]: surface_state_changed: assertion 'wl_window->has_last_sent_configuration' failed

@amezin
Copy link
Member Author

amezin commented Oct 20, 2024

Maybe window geometry updates should cause delayed move/resize (i.e. from Meta.idle_add), not immediate

@magnetik
Copy link

Not sure if related but since a recent update (I guess), ddterm is frequently killed with signal 15 while it never happened before. My laptop is connected to two monitors and the kill always happen when the two monitors goes to sleep

@amezin
Copy link
Member Author

amezin commented Oct 23, 2024

@magnetik Please, create a separate bug report. And please try to collect logs when the issue occurs - i.e. start journalctl -f in GNOME Terminal/Console, and wait or make the monitors go to sleep.

@magnetik
Copy link

Will do, sorry if it added some confusion!

@amezin
Copy link
Member Author

amezin commented Oct 29, 2024

Not reproducible anymore - not sure what changed

@amezin amezin closed this as not planned Won't fix, can't repro, duplicate, stale Oct 29, 2024
@amezin amezin changed the title ddterm freezes for a few seconds after external monitor plug/unplug ddterm slow when switching monitors Oct 30, 2024
@amezin
Copy link
Member Author

amezin commented Oct 30, 2024

Incomplete steps to reproduce:

  1. Run a game using gamescope
  2. Set window-monitor to current
  3. Move mouse cursor to another monitor (not the one where ddterm was shown previously)

Persists until ddterm app is restarted. Maybe a Gtk 3 issue.

@amezin amezin reopened this Oct 30, 2024
amezin added a commit that referenced this issue Jan 1, 2025
@amezin
Copy link
Member Author

amezin commented Jan 1, 2025

Switching the split mode also becomes slow.

And looks like it happens even when window size synchronization is removed completely... I.e. Gtk 3 relayout just becomes slow.

For me it originally happened when switching between monitors simply because they have different resolutions -> moving the window means resizing and re-layout.

Not sure if it can be worked around. Maybe just give up and focus on Gtk 4

@amezin amezin changed the title ddterm slow when switching monitors Gtk 3 re-layout in ddterm gets progressively slower after playing games under gamescope+Wine Jan 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants