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

Treat unready Wayland windows as focused #8953

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

geieredgar
Copy link
Contributor

Objective

Solution

Changelog

  • Added set_ready and is_ready methods to InternalWindowState.

@james7132 james7132 added A-Windowing Platform-agnostic interface layer to run your app in O-Linux Specific to the Linux desktop operating system C-Bug An unexpected or incorrect behavior P-Regression Functionality that used to work but no longer does. Add a test for this! labels Jun 25, 2023
@JayceFayne
Copy link

JayceFayne commented Jun 27, 2023

This does fix the long startup time when building bevy with wayland but after some testing #7974 does not seem to be wayland exclusive...the long startup time can be observed on x11 (xwayland) too

@@ -63,6 +63,9 @@ pub(crate) fn create_window<'a>(
&mut accessibility_requested,
);

#[cfg(not(feature = "wayland"))]
window.internal.set_ready();
Copy link

@JayceFayne JayceFayne Jun 27, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removing this line seems to fix wayland as well as x11 (xwayland)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Simply removing this line would be incorrect, because then the windows would always be considered focused. If we can reassure that Winit will always send a WindowEvent::Focused(true) event after creating the window, we could replace feature = "wayland with any(feature = "wayland", feature = "x11").

However, I couldn't reproduce the long startup time bug using x11 on my machine (XWayland Version 23.1.2).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ic

I am using the same xwayland version and I can reproduce the long startup time on sway (version 1.8.1)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I could also reproduce the issue when using X11 through XWayland on Sway. but not when using X11 through XWayland on Gnome.

I tried out treating X11 the same as Wayland and tested X11 on

  • Gnome (Xorg)
  • Gnome (Wayland) using XWayland
  • Sway using XWayland

The long startup time was fixed in all three cases, but Sway showed a small delay (around 1 second) which I believe had to do with the fact that I have an Nvidia GPU and had to use the --unsupported-gpu option. It would be nice if you could confirm that there is no issue using X11 on Sway with the latest commit.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for looking into this! With the latest commit running a xwayland bevy app has no startup delay.

The long startup time was fixed in all three cases, but Sway showed a small delay (around 1 second) which I believe had to do with the fact that I have an Nvidia GPU and had to use the --unsupported-gpu option. It would be nice if you could confirm that there is no issue using X11 on Sway with the latest commit.

I don't think this is a Nvidia GPU problem. I have an AMD GPU and experience around 4 sec startup delay with a native wayland bevy app. This delay does not exist on xwayland bevy for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Windowing Platform-agnostic interface layer to run your app in C-Bug An unexpected or incorrect behavior O-Linux Specific to the Linux desktop operating system P-Regression Functionality that used to work but no longer does. Add a test for this!
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Bevy 0.10 regression: very long startup if WinitSettings.unfocused_mode is set to UpdateMode::Reactive
3 participants