Discuss programming topics for the various GPL'd game engine sources.

Moderator: InsideQC Admins


Postby r00k » Tue Jul 18, 2017 7:14 pm

I'm trying to find the correct value for MAX_MODE_LIST (i think thats the variable) for vid_init. Quake defaults to 30, but I had upped that value in the past to allow more refresh rates for each resolution. A few players now have 4k monitors and I wanted to increase the modes to allow for higher resolutions. But the problem I'm having is finding the correct value; as if I say put it at 600 it takes almost 5 minutes to initialize the game on some machines...

Posts: 1110
Joined: Sat Nov 13, 2004 10:39 pm

Re: Max_mode_list

Postby frag.machine » Tue Jul 18, 2017 11:40 pm

I don't think there is a "correct" value to MAX_MODE_LIST (I suspect it was set at 30 back then for convenience when drawing the list).
Are you sure the query to EnumDisplaySettings is the culprit here ? From what I read in the documentation the first call passing 0 as the desired video mode should create a cache to the info in all available modes, so subsequent calls would be fast.
I know FrikaC made a cgi-bin version of the quakec interpreter once and wrote part of his website in QuakeC :) (LordHavoc)
User avatar
Posts: 2120
Joined: Sat Nov 25, 2006 1:49 pm

Re: Max_mode_list

Postby r00k » Wed Jul 19, 2017 12:55 am

it's something in vid_init
pressing f11 (trace-into) anytime i pressed it would traverse quickly but once it hit vid_init_FULLDB it took awhile.
I dont have shaders enabled but that's how long it feels like; as if its compiling shaders before the black screen then menu shows up.

edit: wonder if it's just a wondows 10 thing 'cause my xp laptop loads it up in 5 seconds, yet my windows10 machine with a 960 gtx and an intel i5 + ssd takes over 10seconds.
Posts: 1110
Joined: Sat Nov 13, 2004 10:39 pm

Re: Max_mode_list

Postby Spike » Wed Jul 19, 2017 4:58 am

the way I see it, modes are obsolete. windows won't report 320*240. drivers can scale pretty much any sized image to full screen (or letterbox them), or your monitor can. etc.
when you combine all of that with refresh rates and colour depth and stuff, things get even worse.
imho its better to have an internal list of common width+height values and filter based upon the desktop's size.
this is why fte has only width+height+bpp+refreshrate cvars, and no modes at all (the menu has a list of common resolutions but they're basically just hints and exist solely in the menu). and if width+height are 0, then it uses your desktop's resolution because frankly that's usually the only resolution that will actually look correct (unless you care about pixel doubling, but even then you often get some ugly bilinear filter or double letterboxing or both).

if nothing else you should split size and bpp+refresh rate. there's too many possible modes otherwise.
Posts: 2911
Joined: Fri Nov 05, 2004 3:12 am
Location: UK

Re: Max_mode_list

Postby Baker » Wed Jul 19, 2017 1:17 pm

Does Quakespasm have this problem on your Windows 10 machine?

If no, then it isn't EnumDisplaySettings being slow. Although Quakespasm is SDL, the SDL functions for getting available video modes just callls EnumDisplaySettings.

You may also try a different NVIDIA driver version, it is remarkable how often they put out a update that causes serious issues in some rare circumstances but it seems like it is 2 times a year.
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Return to Engine Programming

Who is online

Users browsing this forum: No registered users and 1 guest