Pages: 1 2 »
  Print  
Author Topic: Testing and logging fps on different systems  (Read 2067 times)
Offline (Unknown gender) forthevin
Posted on: May 25, 2013, 08:14:15 AM

Contributor
Joined: Jun 2012
Posts: 171

View Profile
As you may know, there are big issues with the fps on several different systems. In order for me to figure out the issues and fix them, it would be very helpful if I could get some data on the fps on different systems. I have already fixed the issues on the systems I have direct access to myself.

What I would like you to do is to download the following test, run it with ENIGMA, and copy the results from the resulting file "fps_loggin_data.txt", along with information about your OS, the version/distribution of it, and what CPU your computer has/how many cores it got. If you are using a VM, you should instead skip this test, since VMs tend not to be reliable in regards to precise timing.

The link to the test: https://www.dropbox.com/s/9p7kszhy2sngns1/fps_logging.gm81
Logged
Offline (Male) polygone
Reply #1 Posted on: May 25, 2013, 08:27:58 AM

Contributor
Location: England
Joined: Mar 2009
Posts: 803

View Profile
There's still that >= 170 room_speed code in ENIGMA. I asked Josh about it, he seems to think it's fine.

My specs:
http://pastebin.com/S2neAq4S

Anyway for some reason mine is coming out in ENIGMA as:
http://pastebin.com/5P2YxS3V

In GM as:
http://pastebin.com/d2KZ4GWr

So wtf, why is the fps getting capped at 100? EDIT: Ok I changed the fps of room 4 to 140 and then it gets stuck at that instead it isn't getting capped, so it's just not updating at room 5 (ie where the room_speed goes above the 170). But why, I''m not sure. EDIT: Oh I see, that code that Josh said to add is all wrong, all it's doing is stopping the current_room_speed variable being set. So the reason it must have worked before is because it was always tested in the first room - where it was keeping the room speed at 0 - which conveniently forthevin added a clause to remove the sleep at :P

One of those magically cases where doing something completely wrong made it look like it was actually working somehow.
« Last Edit: May 25, 2013, 09:05:02 AM by polygone » Logged
I honestly don't know wtf I'm talking about but hopefully I can muddle my way through.
Offline (Male) Goombert
Reply #2 Posted on: May 25, 2013, 08:32:21 AM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3110

View Profile
Here is a x64bit Linux executable for anybody to lazy to compile...

Download: https://www.dropbox.com/s/37w694x34lmk0ts/fps_logging
Size: 1.37mb's

OS: Ubuntu/GNU + Linux
Release: 13.04 Raring Ringtail
Graphics Capability: DX10/11 & Shader Model 3.0 and OpenGL3 with GLSL 3.0
CPU: Advanced Micro-Devices AMD x64 Quad Core at like 2.1 GHZ or something

Here are my results...
Code: [Select]
room_speed: 10, fps: 10
room_speed: 30, fps: 30
room_speed: 45, fps: 45
room_speed: 60, fps: 60
room_speed: 100, fps: 100
room_speed: 200, fps: 200
room_speed: 500, fps: 500
room_speed: 1000, fps: 967
room_speed: 2000, fps: 984
« Last Edit: May 25, 2013, 09:41:13 AM by Robert B Colton » Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Offline (Unknown gender) forthevin
Reply #3 Posted on: May 25, 2013, 09:22:37 AM

Contributor
Joined: Jun 2012
Posts: 171

View Profile
polygone: Many thanks, I had totally forgot about that part, and when I tested the logging I had reverted that part locally.

Robert: Thank you very much, I would also appreciate it if you also post which processor/how many cores you have, the number of cores can have affect on the scheduling and the resolution of the timers.

I have committed a revert of that part, so I would appreciate if you would try again with the latest commit.
« Last Edit: May 25, 2013, 09:24:50 AM by forthevin » Logged
Offline (Male) Goombert
Reply #4 Posted on: May 25, 2013, 09:41:44 AM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3110

View Profile
Done. And no need to thank us forthevin, just help me get that OpenGL3 graphics system workin on Windows :P
Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Offline (Male) polygone
Reply #5 Posted on: May 25, 2013, 09:57:01 AM

Contributor
Location: England
Joined: Mar 2009
Posts: 803

View Profile
OK my proper results:

room_speed: 10, fps: 10
room_speed: 30, fps: 30
room_speed: 45, fps: 45
room_speed: 60, fps: 60
room_speed: 100, fps: 100
room_speed: 200, fps: 200
room_speed: 500, fps: 500
room_speed: 1000, fps: 738
room_speed: 2000, fps: 735

Using GL1. You can get the fps a lot higher with a smaller room and turning off the background colour.
Logged
I honestly don't know wtf I'm talking about but hopefully I can muddle my way through.
Offline (Unknown gender) forthevin
Reply #6 Posted on: May 25, 2013, 10:03:27 AM

Contributor
Joined: Jun 2012
Posts: 171

View Profile
Both of the results look just like they should, the fps does not degrade until it reaches the cap, and it stays at that cap.
Logged
Offline (Male) polygone
Reply #7 Posted on: May 25, 2013, 10:07:45 AM

Contributor
Location: England
Joined: Mar 2009
Posts: 803

View Profile
Yeah, it's been fine for me. I've not been seeing any odd results or strange speeds, it's all correlated very well with GM as well as to what I would expect.
Logged
I honestly don't know wtf I'm talking about but hopefully I can muddle my way through.
Offline (Unknown gender) TheExDeus
Reply #8 Posted on: May 25, 2013, 04:32:45 PM

Developer
Joined: Apr 2008
Posts: 1872

View Profile
I am for some reason capped on 60.
room_speed: 10, fps: 10
room_speed: 30, fps: 30
room_speed: 45, fps: 45
room_speed: 60, fps: 60
room_speed: 100, fps: 60
room_speed: 200, fps: 60
room_speed: 500, fps: 60
room_speed: 1000, fps: 60
room_speed: 2000, fps: 60

vsync is set to "use 3D application settings" in NVidia control panel. My monitor refresh rate is 60Hz though.

edit: Also tried set_synchronization(false) which worked previously with my 8800GTS, but now it for some reason doesn't. Now I have 660TI.
Logged
Offline (Male) polygone
Reply #9 Posted on: May 25, 2013, 04:38:51 PM

Contributor
Location: England
Joined: Mar 2009
Posts: 803

View Profile
Did you not update / rebuild?

Btw Deus could you please look at this:
http://enigma-dev.org/forums/index.php?topic=1268.0

I'm most interesting in what's happening to you, because you reported it flickering before.
Logged
I honestly don't know wtf I'm talking about but hopefully I can muddle my way through.
Offline (Unknown gender) forthevin
Reply #10 Posted on: May 26, 2013, 03:24:00 AM

Contributor
Joined: Jun 2012
Posts: 171

View Profile
Also TheExDeus, what CPU and OS do you have?
Logged
Offline (Unknown gender) TheExDeus
Reply #11 Posted on: May 26, 2013, 05:46:52 AM

Developer
Joined: Apr 2008
Posts: 1872

View Profile
Quote
Operating System: Windows 7 Ultimate 64-bit (6.1, Build 7601) Service Pack 1 (7601.win7sp1_gdr.130318-1533)
Processor: Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz (8 CPUs), ~3.5GHz
Memory: 16384MB RAM
Available OS Memory: 16270MB RAM
Page File: 2401MB used, 30134MB available
Windows Dir: C:\Windows
DirectX Version: DirectX 11
The CPU is actually OC'd to 4.6, but that doesn't show up in Dxdiag.
Logged
Offline (Unknown gender) forthevin
Reply #12 Posted on: May 26, 2013, 06:10:42 AM

Contributor
Joined: Jun 2012
Posts: 171

View Profile
TheExDeus: Many thanks, that is very useful.

So far, it seems like the fps-handling now works as it should, except in regards to the 60 fps cap on some systems.
Logged
Offline (Male) polygone
Reply #13 Posted on: May 26, 2013, 06:17:57 AM

Contributor
Location: England
Joined: Mar 2009
Posts: 803

View Profile
Must be the vsync then.
Logged
I honestly don't know wtf I'm talking about but hopefully I can muddle my way through.
Offline (Unknown gender) TheExDeus
Reply #14 Posted on: May 26, 2013, 06:47:38 AM

Developer
Joined: Apr 2008
Posts: 1872

View Profile
Must be, as my monitor is set to 60Hz as well. But previously set_synchronization(false) worked to disable it. Not it doesn't.
Logged
Pages: 1 2 »
  Print