Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (516)
Games in Android Showcase (122)
games submitted by our members
Games in WIP (577)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Limited frame count?  (Read 1253 times)
0 Members and 1 Guest are viewing this topic.
Offline MrCastle

Junior Newbie





« Posted 2010-07-25 10:50:21 »

Hello community,

as you can see I'm new here and hope that this is the right place to address my issue Cheesy
I recently implemented an FPS counter and was curious if the number it shows is correct, because it seems like the frame count is bound to the configured display refresh rate, even though vertical synchronization is disabled in my graphics driver. Is there some kind of limitation inside JOGL that prevents me from seeing the maximum possible number of frames that can be rendered per second or am I doing something wrong? Cheesy

Here is my code:
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
//declarations

private long time = -1;
private int frames = 0;
private int framesToShow = 0;

// fps calculation inside the display() method:

   frames++;
   long currentTime = System.currentTimeMillis();
   if((currentTime - time) >= 1000){  
      time = currentTime;
      framesToShow = frames;
      frames = 0;
     
      // Neuen Anpasswert fürs TBM setzen
      dt = 1 / framesToShow;
   }

// other opengl relevant calls and fps display etc.


I'm missing the correct number, because it might be a good performance indicator. If you only see the refresh rate, you don't know how far you can go or if some performance tuning may be necessary.

Thanks in advance Smiley

Br
MrCastle
Offline Riven
« League of Dukes »

JGO Overlord


Medals: 823
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #1 - Posted 2010-07-25 11:00:55 »

1  
2  
3  
4  
5  
6  
7  
8  
9  
private long time = System.currentTimeMillis();

...

      time += 1000;

...

                dt = 1.0 / framesToShow;


Other than that, you might want to change it to:
   System.nanoTime() / 1000000L
for more accurate results.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Offline MrCastle

Junior Newbie





« Reply #2 - Posted 2010-07-25 11:11:55 »

Thanks for your fast answer Smiley
But I fear I can't follow, this actually doesn't change anything, except for the things you mentioned (accuracy).
I'm still getting 75fps with a refresh rate of 75 Hz.  Huh
edit: by the way, the time based movement variable (dt) is not used yet, I first wanted to solve this issue.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Riven
« League of Dukes »

JGO Overlord


Medals: 823
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #3 - Posted 2010-07-25 11:18:16 »

this actually doesn't change anything

This changes a lot. You were leaking time. What if the diff between time and System.currentTimeMillis() is 1030ms, with your code you're lose 30ms, with my code you wouldn't lose any time.

Just change what's actually rendered (to nothing, for example) and watch the framerate. If it's still 75fps you might have setup your OpenGL drivers to be vsynced regardless of what the application specified.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Offline MrCastle

Junior Newbie





« Reply #4 - Posted 2010-07-25 11:23:46 »

OK that sounds reasonable.
I will do the changes and then see what happens.

Thanks again
Offline MrCastle

Junior Newbie





« Reply #5 - Posted 2010-07-25 12:18:21 »

For all of those who are interested in the "solution", there is a a limitation in jogl or openGL itself, that limits the frames per second to the monitor refresh rate.

With

1  
gl.setSwapInterval(0);


you can turn it off to get the maximum possible number of fps, with the parameter 1 you can set it back to limit the frame rate, this is also the default value.

Br
MrCastle
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

TehJavaDev (32 views)
2014-10-27 03:28:38

TehJavaDev (26 views)
2014-10-27 03:27:51

DarkCart (41 views)
2014-10-26 19:37:11

Luminem (22 views)
2014-10-26 10:17:50

Luminem (27 views)
2014-10-26 10:14:04

theagentd (33 views)
2014-10-25 15:46:29

Longarmx (61 views)
2014-10-17 03:59:02

Norakomi (58 views)
2014-10-16 15:22:06

Norakomi (47 views)
2014-10-16 15:20:20

lcass (43 views)
2014-10-15 16:18:58
Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!