Adding Loading Screen

Post a reply

Smilies
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :geek: :ugeek: :!: :?: :idea: :arrow: :| :mrgreen: :3: :wub: >:( :blergh:
View more smilies

BBCode is OFF
Smilies are ON

Topic review
   

Expand view Topic review: Adding Loading Screen

Re: Adding Loading Screen

by AFADoomer » Sat May 05, 2018 8:27 pm

Sorry for bumping... But doesn't TELEICON only draw if the cluster of the map you're leaving is marked as a hub? ( I think that's what I'm seeing here?)

Perhaps a flag to enable drawing the TELEICON graphic on non-hub levels (or maybe setting D_DrawIcon via MAPINFO key) would be a decent compromise for the time being?

(Obviously, the renderer is still more important.)

Re: Adding Loading Screen

by Graf Zahl » Mon Apr 30, 2018 12:30 am

The main issue here is that all the loading takes place in the main thread so trying to add a loading bar would mean a massive amount of refactoring. Trying to do both in the same one will only slow down the loading process and create bad code.
Right now I'd rather refactor the renderer itself to allow multithreaded processing. This one has very low priority in comparison so I'm putting it on hold.

Re: Adding Loading Screen

by Neonspider » Sun Apr 29, 2018 11:33 pm

Perhaps rather than a "bar", we can just have some animated graphic, or something that'd react to ANIMDEFs to indicate it hasn't frozen and is actually doing something? A project I'm working on uses 80's influenced computer terminals as a big design theme and I can think of some cool ideas that some sort of "loading" screen function would really work well with. (Of course this is just one project, so I don't rightly know how much this would be used by future projects.)

Re: Adding Loading Screen

by RockstarRaccoon » Wed Apr 11, 2018 3:44 pm

Graf Zahl wrote:Progress bar would require some estimation on loading time, and that's not really doable.
In the stuff I program, I have the progress bar take a step between every step of the loading process, so that it's showing that something has changed.
For a simple loading popup you may try using Hexen's original feature using the "TELEICON" graphic being displayed in the center of the screen. That should work.
Yeah, I forgot about that... I'll look into it...

Re: Adding Loading Screen

by Graf Zahl » Wed Apr 11, 2018 3:14 pm

Progress bar would require some estimation on loading time, and that's not really doable.
For a simple loading popup you may try using Hexen's original feature using the "TELEICON" graphic being displayed in the center of the screen. That should work.

Re: Adding Loading Screen

by RockstarRaccoon » Wed Apr 11, 2018 10:59 am

So, on the original topic, I know a few ongoing projects that would really benefit from this. Namely the newer Hexen stuff, Membrane, and Blade of Agony, with their high usage of advanced graphical features and their huge maps. Those can take a whole 10 to 20 seconds for me. Same with Hedon if Zan ever wants to make it look better.

As he said, even just allowing the creator to put up an image that says "Loading" at the beginning of the map-loading process would be hugely helpful for letting the player know the game hasn't crashed. If it's not too much trouble, making it eventually work like the hexen loading screen, with a progress bar, would be a nice touch too... (Though, I don't think tat request for PNG support was ever added to that...)

Re: Adding Loading Screen

by Graf Zahl » Sat Apr 07, 2018 1:02 pm

Ah, yes, that was a misunderstanding. I was thinking about that shit they did with their GL 2 hardware that couldn't handle uniform changes well.

Re: Adding Loading Screen

by dpJudas » Sat Apr 07, 2018 12:41 pm

Graf Zahl wrote:That's not what had me puzzled. That's about saying that NVidia still recompiles shaders when the variables change. That strikes me as odd.
Not sure what you mean with "when the variables change". What I meant is that each time the shader code itself changes (i.e. between releases where we added something, or the misc dev builds Nash been using) then that causes Nvidia to compile the new shader. Whenever the shader doesn't change it grabs it from a shader cache the driver maintains.

Intel doesn't do this. They have no shader cache, so each time GZDoom boots they have have to wait for every shader to be compiled always. We could probably fix it for Intel by using glProgramBinary, but Intel really really should have the resources to create something like a simple shader cache..

Re: Adding Loading Screen

by Graf Zahl » Sat Apr 07, 2018 12:13 pm

Yes, that may be. Shader compilation can take a while, so if there's nothing cached it will result in some form of delay. BTW, the GZDoom shader cache file on my HD is 22 MB! Just to give an idea why this takes longer.
That's not what had me puzzled. That's about saying that NVidia still recompiles shaders when the variables change. That strikes me as odd.

Re: Adding Loading Screen

by AFADoomer » Sat Apr 07, 2018 11:52 am

Wait, is that why my game window looks like this:
Image
...for at least 3-4 seconds on initial engine load, even with just an IWAD loading?

Re: Adding Loading Screen

by Graf Zahl » Sat Apr 07, 2018 4:31 am

They still do that? I never noticed it on my system, actually.
I thought that was a long forgotten relic of GL 2.x times.

Re: Adding Loading Screen

by dpJudas » Sat Apr 07, 2018 3:43 am

He's talking about the various changes I've done to main.fp over time (spotlight, shadowmaps, materials). Each time that has happened Nvidia recompiles the shader and caches the result. With the number of subshaders we got it is actually noticeable when it happens - for a short moment we know how it is to own Intel hardware where there's no caching at all (they get this delay on every boot). :)

Re: Adding Loading Screen

by Graf Zahl » Sat Apr 07, 2018 1:41 am

The main shader is never "updated". What are you talking about?

Re: Adding Loading Screen

by Nash » Fri Apr 06, 2018 6:53 pm

Matt wrote:Come to think of it, is this the same as the just-under-a-second-long black screen I get every time I load a new version of GZDoom the first time?
I notice this happening on my machine every time the main pixel shader (main.fp) is updated - been regularly testing WIP new features by dpJudas and can confirm this behavior. :D

Re: Adding Loading Screen

by Matt » Fri Apr 06, 2018 4:29 pm

Come to think of it, is this the same as the just-under-a-second-long black screen I get every time I load a new version of GZDoom the first time?

Top