Advertisement Jump to content
Sign in to follow this  

OpenGL Application efficiency in opengl

This topic is 3825 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello every one, I have an application which is written in c++ and opengl and now I want to compare two methods: So, first question that I want to know 1 . how can we know that our funtion is at run time i.e in opengl is this, when the function is interactived with the user ( keyboard or mouse)? or it is used in display function or.... : - 2 . how can I know the speed of this function is this the same of knowing FPS and if it is so how can we compute FPS in opengl, actually I have some ideas about that so for instace we can use this snippet : //----------------------------------------------- // frame rate //------------------------------------------------ frame++; ttime=glutGet(GLUT_ELAPSED_TIME); if (ttime - timebase > 1000) { cout<<s<<"FPS: "<<(frame*1000.0/(ttime-timebase))<<"\n"<<endl; timebase = ttime; frame = 0; } //------------------------------------------------ that could give us the number of frames per second But I still want to know where is the best place in my application to put it, and it says that it gives me the FPS for the etire application when we put it somewhere befor display function call, !!what about only to evaluate one function !! 3 . what is the best number of frames I have got ~ 60 - 75 FPS and I still don't know what is the masurement to be considered during this varying process this FPS increases when we have more goemetry to render or.... 4 . again if this doesn't help for enabling us to evalute the speed of the application .....then ...what do you think. If you have any resources, links, tutorial , ideas to give me a clear clue of efficency of the application I will appreciate any efforts S H E R E E

Share this post

Link to post
Share on other sites
1.) What do you mean with "your function is in opengl"?
2.) looks good
3.) With my very own OpenGL-Framework (Win32, Linux yet to come) and RenderMachine I have about 1500 FPS with no Geometry displayed and minimal code for swapping/clearing the display and a framecounter.
4.) FPS is the most common way to evaluate the Speed. You may use a profiler also (look into Codeblocks, they have a very neat one onboard) which tells you where your bottleneck is.

Share this post

Link to post
Share on other sites
When you use framerate to evaluate the performance of your application, you need to be very careful about what you are talking about.

In general, the framerate measured during the actual rendering is not very useful.

The major problem is came from vsync.

When you do your measurement with vsync on simply, the frame rate will be bounded by the screen refresh rate which is usually 60 Hz (or 75 Hz). So, when you saw a frame rate of 60 Hz, it only represents that your application can run faster than 60 Hz. Not very useful a figure, right?

However, it is not very useful by measuring framerate with vsync off simply neither. When you have vsync off, all function calls to OpenGL become asynchronous. That is just like..., you make a command to someone and return to your own job immediately regardless of the command completed or not. The framerate measured in this case is only reflecting the speed of delivering commands to OpenGL but not the actually loading of the more demanding graphics routines. And so, you can easily write a lousy program but having 2000+ fps.

To measure a more meaningful framerate, you need to turn off vsync, make a call glFinish() at the end of each frame and measure the time to render a number of frames. Of course, you cannot call glFinish() in normal scenario, that's why the framerate measured during the actual rendering is not very useful. (Note that, glFinish() is a synchronous call.)

Just measure the framerate separately and leave it in your documentation. Don't mix it with the actual rendering. Framerate is not an entertaining figure for most people anyway (except the developers), why bother?

[Edited by - ma_hty on August 1, 2008 11:59:11 AM]

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!