#2324 posted by mh on 2018/07/13 09:34:25
As I've now said twice, it's a display mode change. Probably two. Seen it once, seen it a million times. I don't understand why dumptruck is being resistant to helping diagnose this further, though.
Traditionally Quake engines only track width, height and bpp when matching display modes. Some engines add refresh rate. A real display mode contains other values, however, and it's possible for two or more modes to exist which are the same so far as these traditional values are concerned but which are actually otherwise different.
Don't be surprised if Windows 10 adds additional modes that aren't in 7. It's a higher version of the driver model with extra capabilities.
What's happening is that dumptruck is running with -current but the engine is not starting in the current mode. It's starting in some other mode, which involves a display mode change, then switching to the current mode which involves another.
There's no delay when shutting down because it's already in the current mode and so doesn't need to switch back.
The other engines have a shorter delay at both startup and shutdown because they're doing a single mode change at each.
There's no delay running -windowed because it doesn't do a mode change at all.
In an ideal world that first mode would be a windowed one and all of this would go away - instant startups would be back. But when I tried to do this years ago I got HUGE pushback from the community. Yayy community.
Anyway, I asked dumptruck to check his console debug log which would tell us which mode it was starting in first, which could have been useful information. But once more he's being resistant to helping us to help him, so I guess that's where it's gonna end, unless he comes round.
@dumptruck - just to be clear.
I am NOT saying "you silly person, ha ha ha",
I AM saying "it's an engine bug. Help us to help you. Please"
Come On Now Mh
#2325 posted by Joel B on 2018/07/13 09:38:01
I'm not sure why you're bagging on the one guy who is downloading extra builds and running all sorts of tests on request. If he's overlooked something you asked him to do then you could make that clear.
#2326 posted by mh on 2018/07/13 09:46:04
I've previously told him twice that it was a display mode change. He responded the first time to insist it wasn't, he ignored the second. I've previously asked for his console log and the output of some vid_describe commands. He ignored that too. So obviously I'm the bad guy here. Yayy Community. Again.
@baker
#2327 posted by spy on 2018/07/13 09:58:52
If sounds like you have an app running in the background that is forcing video sync.
yep, It frequently happens when i run the online widz etc
but
sometimes it happens just for no reason , switching to desktop and back to the game's solving the issue
@dumptruck
#2328 posted by Baker on 2018/07/13 15:10:35
Looks like I need to experience the problem firsthand and see if I can get the problem.
It is possible something non-obvious is going on.
mh brings up bits per pixels and some other factors.
Mark V always tries to use what it thinks are the desktop "current" parameters with -current (ignoring all config settings), but maybe Windows 10 adds some additional parameters I didn't consider.
@mh - Eventually I'll get to the bottom of what is going on. The main issue to trying to find technical info on what Windows 10 updates changes/impacts has been difficult.
#2329 posted by mh on 2018/07/13 16:41:33
THE FIRST DISPLAY MODE CHANGE
This is happening inside VID_Local_Vsync_Init where a call is made to sysplat.wglSwapIntervalEXT(0) - under OpenGL this is not a display mode change; under Direct3D it is.
Suggested solution: suppress this test if running under the D3D9 wrapper; you can safely assume that vsync control is always available in D3D9. This will shave 3 seconds off the startup time.
#2330 posted by Baker on 2018/07/13 16:56:59
Got it. I'll give that a try.
Thanks, mh!
#2331 posted by mh on 2018/07/13 17:02:59
THE SECOND AND THIRD DISPLAY MODE CHANGES
In classic Fitz, at the end of VID_Init there is this block of code:
if (COM_CheckParm("-width") || COM_CheckParm("-height") ||
COM_CheckParm("-bpp") || COM_CheckParm("-window"))
{
vid_locked = true;
}
This needs to have "-current" added to the list of params checked, otherwise the engine will run the configs during startup and trigger two display mode changes (assuming a clean config, could be more). The first of these changes is slow, the second is fast (in my test the first went from fullscreen to windowed, the second just changed the size of a windowed mode).
In MarkV I think the equivalent is the video_override_commandline_params array, which is missing "bpp" from classic Fitz's list.
Fixing this up shaves a further 3 seconds off the startup time, and startup times are now instantaneous with no display mode changes happening.
#2332 posted by Baker on 2018/07/13 17:10:47
I'll examine that as well.
Yeah, bpp is gone (that's a relic from the 1990s when 65536 color mode was a thing).
#2333 posted by mh on 2018/07/13 17:16:51
As a troubleshooting tip...
In context_t::PreReset I added the following at the start:
Con_Printf ("context_t::PreReset: %f\n", Sys_FloatTime ());
In context_t::PostReset I added the following at the end:
Con_Printf ("context_t::PostReset: %f\n", Sys_FloatTime ());
I was then able to track when display mode changes occurred and cross-reference that with whatever else was going on in the console during startup, as well as time how long each change took. Makes it very quick for hunting down this kind of thing.
@mh
I don't understand why dumptruck is being resistant to helping diagnose this further, though.
I need to read the rest of the thread above but I promise you I am not ignoring this situation. I can only test after work and family stuff kept me busy last night until pretty late.
Honesty, I didn't notice anything in the console and I was definitely paying attention the other night when I DID test.
So my desktop is set to 144. The game is set to 144 there's still a mode change in FS? I don't get that.
What I will ask is that someone let me know what I can look at in Windows to help troubleshoot. I am not stellar with troubleshooting the OS.
2nd Post
Sorry.
There's no delay when shutting down because it's already in the current mode and so doesn't need to switch back.
There IS a delay when shutting down but not 7 seconds. The game will close but the Mark V icon is still in the Quicklaunch bar and the system is unresponsive until it closes.
I will post console logs with the info mh is targeting as soon as I can.
@dumptruck
#2336 posted by Baker on 2018/07/13 19:49:59
You don't need to do anything.
mh solved it. It's all on me now.
I want to wrap up the SnapTile editor (yeah, going with the name mankrip chose -- I can't do better) before doing a Mark V fix.
So give me a few days.
When I get close to completing something, I develop a one-track mind where I want to finish it.
@Baker
Thanks. And please no pressure on a timeline. Do your thing, happy to wait for your fine work. :) Excited to see this SnapTile project in action.
Mark_v Takes 7 Full Seconds To Load
Seems like a lot. Just tested it with latest build.
Windowed mode is instant.
Tried changing my refresh rates and this doesn't change the delay (I have a 144hz monitor).
Closing Mark_V takes 4 full seconds fullscreen and closes instantly when in windowed mode.
@dumptruck
#2339 posted by mh on 2018/07/13 23:14:09
Yeah, we tracked it down.
I owe you an apology for being a dickhead about this. On the other hand, MarkV will get better as a result.
Mh
No worries! Poor Baker though. Coding during the summer. ;)
#2341 posted by mh on 2018/07/14 01:17:11
I'm only the idiot who wrote the code, Baker's the idiot who has to maintain it!
Video: High Definition Pack With More Realistic Shadows
#2342 posted by Baker on 2018/07/14 05:37:59
High Definition Pack Video With More Realistic Shadows:
Watch Video
1) r_shadows 3
2) r_waterripple 3
3) QMB on, obviously
4) With HD Pack and Transparent Water .Vis/.Lits Pack
For illustration purposes.
#2343 posted by Gunter on 2018/07/14 21:43:58
dumptruck_ds: Thanks I am no Gunter tho.
Hey, you're doing extensive testing and detailed reports to help squash obscure bugs AND getting mh miffed, so you're well on your way!
#2344 posted by mankrip on 2018/07/15 20:06:19
Cool shadows. Any chance for lit liquids in the future?
#2345 posted by Baker on 2018/07/15 21:18:12
I can't remember if mh wrote a full fledged prototype or not and if the one or two small but important barriers were solved (i.e. detecting lit water and maybe something else).
I think if he did, it would eventually happen.
#2346 posted by mankrip on 2018/07/15 22:36:54
I've solved the detection and posted the solution in some thread here or at InsideQC a long time ago.
The other problem was to compile the maps properly, but EricW solved that.
Lit Liquids
Wasn't there an issue with the surface warping making it look really bad?
#2347
#2348 posted by mankrip on 2018/07/16 01:36:56
Not in my engine.
And in hardware-accelerated engines it should be easy to combine warped textures with non-warped lighting through shaders.
|