radeon and wgl_ext_swap_control

I am luck enough to have a GeForce 256 and a Radeon 64MB DDR. And before anybody asks I’m not using them at the same time…

my problem is I have an application that uses the extension wgl_ext_swap_control, and I do all the correct checking when getting the function pointers etc…

The application works fine on the GeForce, limiting the frame rate just as i want it. But when I come to run it on the Radeon the application runs fine and seems to set up the function pointers fine, but when I call these functions nothing happens.

any suggestions from a very confused person.

Are you sure your driver is not set to disable Vsync?

  • In the “OpenGL” tab in the “Advanced Display Settings”…do you have “Wait for vertical sync” turned off? If you do, the value passed into wglSwapIntervalEXT() is ignored on Radeon.

  • Additionally, Radeon only supports values of 0 or 1: 0 means don’t sync to the vertical retrace, 1 means sync.

  • Also, I’m not sure that the swap interval has any effect on non full-screen apps.

The Radeon also automatically does tripplebuffering when Vsync is on. This will make you get reported framerate above the vertical refresh rate since some frames may get dropped because a newer frame was ready before the next refresh.

the v-sync is definately on in the driver settings. (now!!)…

but it still doesn’t work…

my application is not running in full screen mode, and the frame rates that i am getting reported are ~300fps on my 60Htz refresh rate monitor, so i don’t think that it can be the triple buffering, I also get no change in fps when i switch between 0 and 1.

any further suggestions welcome… has anybody else suffered this problem…

I know my application works because it works fine on my GeForce 256…

thanks in advance… a very troubled programmer

I suspect this is a driver problem then that the value sent to wglSwapIntervalEXT is ignored for windowed applications. I will look into this…thanks for your patience.

I think that vsync or swapinterval doesn’t work on windowed applications…AFAIK this is a limitation of Windows that prevents you from doing this.

-Won

It definately does not work in windowed mode !

Originally posted by Moz:
It definately does not work in windowed mode !

Then why do the functions return sensible values when they are executed? You would think they would return some kind of error.

Which mode should I be using then???

somebody higher up mentioned that it doesn’t work in full-screen mode…

If anybody has any example code that they could send me, or point me at, that definately works on the Radeon, that would help me grately

Originally posted by Won:
[b]I think that vsync or swapinterval doesn’t work on windowed applications…AFAIK this is a limitation of Windows that prevents you from doing this.

-Won[/b]

There is no such limitation in Windows.

  • Matt

Originally posted by leekerley:
[b]the v-sync is definately on in the driver settings. (now!!)…

but it still doesn’t work…

my application is not running in full screen mode, and the frame rates that i am getting reported are ~300fps on my 60Htz refresh rate monitor, so i don’t think that it can be the triple buffering, I also get no change in fps when i switch between 0 and 1.

any further suggestions welcome… has anybody else suffered this problem…

I know my application works because it works fine on my GeForce 256…

thanks in advance… a very troubled programmer[/b]

There’s nothing preventing the fps to go beyond 300fps with Vsync enabled if you have vsync enabled. With tripplebuffering you shouldn’t see a fps change when enabling Vsync.
There are however some problems with Vsync on Radeon, it worked in the release drivers but in later releases it seams to not always work. Personally I don’t care since I always turn it off anyway.

[This message has been edited by Humus (edited 03-02-2001).]

I have now tested this in full screen mode and am still unable to get the card to v-sync.

could somebody please help…