directx9 windowmode vsync bug

New releases and general discussions.

Post » Sat Mar 26, 2011 8:06 am

directx has problems to maintain stable fps with vsync on and higher monitor hz than 60.
a bigger windowsize results in more fluctuations - from 1024 it becomes what i call really
unstable - 1280 and up with high monitor hz is unplayable.

tested on: ati and nvidia. dx9 aug08, dx9 jun10. 75,85,100,120hz. 640-1600 resolutions.

this does not happen in opengl games.
it does not happen in directx games fullscreen.
it is a problem with all directx games i have tested, so not a bug in construct runtime. 3d games too.

not tested on: win7

solution: i have looked through various engines how they solve this because with unstable vsync
the screen and the gameplay becomes unacceptable, the bigger the windowsize the worse.
good console, arcade emulators or fps engines solve this issue with a frame cap.
this is called fps cap, throttle, fps limiter, maxfps or something similar.
so then your fps stay at e.g 60 frames per second with 120 hz vsync on. and gameplay stays stable and the same way even in window mode and high screen and window resolutions.

devrequests
1.: fps limiter command
2.: ability to toggle vsync at runtime (or at least as startup switch, didnt found something like that)


searched the forum and wiki for a solution based on events, i guess its not possible atm ?

thanks in advance for answers and solutions
B
4
S
1
G
4
Posts: 36
Reputation: 1,649

Post » Sat Mar 26, 2011 12:49 pm

just tried some settings:
50 and 60hz are stable
85hz is unstable in between 1-5fps differences
75,100 and 120hz are bad - if someone wanna test it, i recommend a window resolution minimum 1024, better 1152x864, 1280x720, 1280x960, 1280x1024 ..
can be tested with every .cap game or even mame
would be nice to hear from a win7 user if someone is interested and has time to try: set your monitor to 75hz and window mode with vsync on in your game
B
4
S
1
G
4
Posts: 36
Reputation: 1,649

Post » Sat Mar 26, 2011 2:12 pm

This is, as you say, something DirectX is doing, so we can't directly fix it. I think it's because the process priority is lower for windowed games, so it doesn't try quite so hard to sync up exactly. When fullscreen, you get a higher process priority because Windows assumes that's the only thing you're currently doing, and it v-syncs accurately.

I think the solution is simply that for high quality v-sync you need to be fullscreen.
Scirra Founder
B
359
S
214
G
72
Posts: 22,946
Reputation: 178,468


Return to Construct Classic Discussion

Who is online

Users browsing this forum: No registered users and 3 guests