Closed Iodid closed 6 years ago
Hightly agree. It happends on me everytime.
btw: in china we said:''the best music player in china is music163 and the next is osu!''. that will make it very hard to be a music player if i can not minimize it. :D
Which windows version are you on to make this happen?
Can't replicate on MacOS or Windows 10.
Happens to me on Windows 10 Pro; version 1709; build 16299.19 Though I doubt that it has something to do with it, I'm using a Nvidia GTX 980
When I hover over the taskbar and look at the windows 10 "window preview" it shows me a static image of the screen from the moment I minimized it.
Okay, I've pinned down the cause of the problem:
The issue only occurs when you have the framerate limiter set to any value over VSync. I don't know if it may have something to do with me having a 144hz refreshrate monitor. Can anyone confirm having the same issue with 60hz refreshrate and with framelimter set to anything over VSync?
If you enable the show fps setting and reopen the minimized window the screen is still black and it doesn't register input like posted above, but the fps display is still visible and working.
Are you reproducing on the live build of lazer?
I have reproduced it in build 2017.1116.0
Test results on latest build, Windows 10, NVidia GTX 1070
@ 90Hz - VSync = False @ 90Hz - 4x refresh rate = True @ 90Hz - Unlimited = True
@ 60Hz - VSync = False @ 60Hz - 4x refresh rate = False @ 60Hz - Unlimited = False
@ 50Hz - VSync = False @ 50Hz - 4x refresh rate = True @ 50Hz - Unlimited = True
So yeah, it doesn't like refresh rates that aren't 60Hz without VSync. Tested with and without GSync for complete-ness sake, didn't make a difference.
I also tried with a 144hz monitor, can confirm @PsYcHo96 tests also for 144Hz
Here are some test that i done on my laptop tested on lazer 2017.1116, Windows 10 Pro, NVidia Quadro M2000M
I am using my built-in display (Lenovo ThinkPad LEN40BD) @ 60Hz - VSync = Sometimes happends (first time ok but happends on the next time, still able to see the frame counter) @ 60Hz - 4x = Happend (still able to see the frame counter) @ 60Hz - Unlimited = Happend (still able to see the frame counter)
Hope it can provide some extra test data :)
Hello I don't know if this will fix issue When i debug it, looks like initial window coordinate is not valid (even Y coordinate is NaN)
When i force it to zero, it works
Hope it helps
Nice find, that definitely sounds like something which could cause this to happen.
@PoULkY when the value is NaN, what does your WindowedPositionY
look like in your framework.ini
file?
Sorry but when i run it again, it become normal so i can't reproduce the error again.
But when i try change WindowedPositionY
in framework.ini
file, it doesn't change WindowedPositionY
variable.
And i found that looks like InitialiseDefaults()
function in FrameworkConfigManager.cs
is not sync with framework.ini
When i close osu, some configuration in InitialiseDefaults()
is not saved to framework.ini
file.
2 issues here :
FrameworkSetting.WindowedPositionX
and FrameworkSetting.WindowedPositionY
is having max
and min
limit threshold, so maybe value WindowedPositionX
and WindowedPositionY
in framework.ini
file is some kind of random from max
and min
in Set()
function parameters (but i'm not sure it's because random). But FrameworkSetting.ShowLogOverlay
is set to true
and in my framework.ini
file is still false
WindowedPositionX
and WindowedPositionY
get the value. I almost thought that WindowedPositionX
is from framework.ini
file and WindowedPositionY
from "random value"Maybe this is not answer your question regarding NaN window coordinate problems, but i hope this info will help.
Are you sure you're looking at the right configuration file? Is the modified date up-to-date? Sounds very weird that it'd be out of sync. I can confirm it's saving correctly at my end.
Oops, looks like my mistake.
You're right, my file is synced perfectly.
I thought that by change Set()
function parameter in FrameworkConfigManager
will change value in framework.ini
file as well.
Not opening osu project for a long time makes me confuse with all this code here and there. Sorry
For reference.
Just had this issue a moment ago, and from looking around in the Draw Visualiser (Ctrl + F1, that and also the performance overlay still worked) I could see that the OsuGameDesktop
instance and the Container one instance below it are still "fine" (as in, still display, and have correct values from what I can tell). However, the first child of the Container (the DrawSizePreservingFillContainer
) has some weird values:
Firstly, IsPresent
is false, meaning it's not displaying (that's why the screen is black, or seems to be why).
Then, all the DrawSize
variables (and related LayoutSize
, LayoutRectangle
, etc.) were 1000x that of the OsuGameDesktop
, the Height was 999.9999 instead of 1 (I'm always comparing these values to the OsuGameDesktop
values) and the Scale was 0.001 instead of 1.
This is all I could find before it crashed again when trying to access more values. Hope this helps
Part of the problems mentioned in #1473 were fixed with ppy/osu-framework#1146 in version 2017.1111.0 First problem mentioned in #1473 still remains as in version 2017.1116.0
Obviously since it's impossible to minimze borderless windows or fullscreen. Having lazer in the background instead of minimizing it provides no problems and works fine.