ppy / osu-framework

A game framework written with osu! in mind.
MIT License
1.64k stars 405 forks source link

Content not resized to fullscreen after resuming from minimized window on Gnome Desktop #3476

Open cthbleachbit opened 4 years ago

cthbleachbit commented 4 years ago

Describe the bug:

The game cannot restore the correct fullscreen resolution after restoring from minimization. This only happens when window mode is set to fullscreen.

This bug doesn't seem to affect any desktop environment other than Gnome (at time of writing 3.36) on Linux, which somehow caused resize events sent to osu game window when minimizing and restoring.

Screenshots or videos showing encountered issue:

On youtube

osu!lazer version:

Git master, at time of writing, commit 01a5e401d. Note that this regression isn't there before I pull in changes today, which is, according to my git reflog, 5ec8d4924.

Logs:

network.log performance.log runtime.log

peppy commented 4 years ago

Moving to framework. Low priority as yet-another-linux-configuration-with-new-issue.

Xyene commented 4 years ago

I tried reproducing this on my GNOME install, but couldn't. Since you have a known-good commit and a known-bad one, if you have a few minutes you should be able to git bisect which commit the issue started appearing in, which might end up taking the guesswork out.

Also probably useful information would be whether you are running a Wayland or X11 GNOME session, and if it's a Wayland one, whether osu! is running through XWayland or SDL's Wayland backend (you can force one or the other through the SDL_VIDEODRIVER=x11|wayland environment variable when launching osu!)

cthbleachbit commented 4 years ago

I'm running osu on X11 session. I have attempted git bisect however, it seems that after building on the "bad" commit, building again on the "good" commit doesn't make it go away. I suspect there are dotnet build caches somewhere that have picked up a change in the framework (which is restored from nuget).

Xyene commented 4 years ago

Ah, you should be able to make osu use a locally checked-out version of osu-framework: https://github.com/ppy/osu-framework/wiki/Testing-local-framework-checkout-with-other-projects

This means you might have to bisect both at the same time if you get errors compiling, but 6 days of commits doesn't leave too many bisection steps.

cthbleachbit commented 4 years ago

For more background information, my system is connected to two monitors, both 1920x1080 but at different refresh rates. I'll try again with a local framework checkout.

cthbleachbit commented 4 years ago

Okay this is getting weird. I've followed the wiki page, checked out 2020.411.0 for the framework and 5ec8d4924 for the game itself, run dotnet clean, deleted everything in ~/.dotnet ~/.nuget and ~/.local/share/NuGet, and build fresh with this command:

dotnet publish osu.Desktop/osu.Desktop.csproj -c Release -o inst/osu-lazer -r linux-x64 --self-contained

I've tried restarting the game for a few times, and it turns out that this issue is only happening intermittently. Sometimes the game won't resize at all (i.e. "good") no matter how many times the window is minimized and restored.

bdach commented 4 years ago

Could you check if this ever reproduces with the --sdl command line flag set?

cthbleachbit commented 4 years ago

I'm not getting an option to go full screen with --sdl.

bdach commented 4 years ago

Right, I forgot that it's not yet supported, sorry.

DavidHusicka commented 4 years ago

Most likely the same issue as https://github.com/ppy/osu/issues/9505