What would be the best way to measure the frame rate of my OpenGL program?
Asked
Active
Viewed 3,346 times
4 Answers
5
Stick a timer at the start of your main loop and test how long it takes to get back there.
Under windows you would do something like:
double oldTime = 0.0.
while( !exit )
{
__int64 counter;
QueryPerformanceCounter( (LARGE_INTEGER*)&counter );
__int64 frequency;
QueryPerformanceFrequency( (LARGE_INTEGER*)&frequency );
double newTime = (double)counter / (double)frequency;
double frameRate = 1.0 / (newTime - oldTime);
oldTime = newTime;
// Rest of your game loop goes here.
}

Goz
- 61,365
- 24
- 124
- 204
-
1What I said only with actual code so +1 (Although it does assume windows...) – jcoder Sep 03 '09 at 07:26
-
Not that he mentioned the platform or the language ... so its guessing time ;) – Goz Sep 03 '09 at 08:54
3
Measure the elapsed time and count the number of frames. Divide one by the other to give frame rate.
When the elapsed time reached one second, or more if you want to average it over a longer time period reset both counts and start again.

jcoder
- 29,554
- 19
- 87
- 130
-
If I am using glut and I make this call glutIdleFunc(oneFrame); I am assuming that the oneFrame will be called every frame is this correct? – Mike2012 Sep 02 '09 at 22:30
-