Extremely low FPS in Reaction Engine
by Jeff Peck · in General Game Discussion · 05/23/2003 (6:38 pm) · 13 replies
Hello,
I'm having a bit of a problem with the RE SDK. Upon running the demo apps (even when they've been freshly compiled from the source files) my FPS is extremely low (in the range of 7-10 fps) which I find to be quite _odd_ considering I'm using a Radeon 9700 Pro. I have the latest drivers from ATI and I'm using the DX9 Developers SDK. Has anyone else experienced this problem?
Any help would be appreciated,
Jeff (Sanguinus)
I'm having a bit of a problem with the RE SDK. Upon running the demo apps (even when they've been freshly compiled from the source files) my FPS is extremely low (in the range of 7-10 fps) which I find to be quite _odd_ considering I'm using a Radeon 9700 Pro. I have the latest drivers from ATI and I'm using the DX9 Developers SDK. Has anyone else experienced this problem?
Any help would be appreciated,
Jeff (Sanguinus)
#2
05/23/2003 (10:38 pm)
Are you perhaps running the DX drivers in debug/development mode? Do you have a low refresh rate on your monitor? Scour those obscure driver settings, might be something there :)
#3
The example programs cap the framerate. If you look at the source to the StartupAppInit function and you'll see a line like:
Device_OS->SetFrameRate(40);
Change the value to 0 (it's a per frame delay) and you should see your frame rate rocket up.
Stay Casual,
Ken
05/24/2003 (6:21 am)
G'day!The example programs cap the framerate. If you look at the source to the StartupAppInit function and you'll see a line like:
Device_OS->SetFrameRate(40);
Change the value to 0 (it's a per frame delay) and you should see your frame rate rocket up.
Stay Casual,
Ken
#4
This is the second comment I've heard about the frame cap I added to the examples. These examples were intended to be very simple for beginners, so I used a delta frame progression NOT a delta time progression, as most applications use these days.
It's a minor difference to the code if you're advanced but I think it creates a barrier to beginners.
What are your thoughts?
Chris
05/24/2003 (11:06 am)
Hey guys,This is the second comment I've heard about the frame cap I added to the examples. These examples were intended to be very simple for beginners, so I used a delta frame progression NOT a delta time progression, as most applications use these days.
It's a minor difference to the code if you're advanced but I think it creates a barrier to beginners.
What are your thoughts?
Chris
#5
05/25/2003 (5:17 pm)
thanks guys!
#6
07/14/2003 (10:07 am)
Yes, the limitted frame rate in the demo seems to give the impression that there's something wrong with the performance of the engine. (BTW, on my system it's capped to 21 fps, which makes the examples quite 'choppy'.)
#7
Think thier is something that needs to be done with the game messageing etc....
-Ron
07/14/2003 (10:43 am)
Ever notice how the demos (even the A80C SDK) chew up 100% of the cpu all the time???Think thier is something that needs to be done with the game messageing etc....
-Ron
#8
- controlling framerate with a WM_TIMER and use WaitMessage() in the main loop
- synchronizing framework with checking for some high resolution timer in the mainloop (e.g. QueryPerformanceCounter()) & Sleep(0) or Sleep(1) when a frame switch isn't needed yet.
But of course a capped frame rate usually is a bad idea (I know, used for simplicity, but makes the examples look bad performance wise)
cheers,
D.
07/14/2003 (1:10 pm)
Yes, true. Two possible solutions I can see (if a capped frame rate is needed) : - controlling framerate with a WM_TIMER and use WaitMessage() in the main loop
- synchronizing framework with checking for some high resolution timer in the mainloop (e.g. QueryPerformanceCounter()) & Sleep(0) or Sleep(1) when a frame switch isn't needed yet.
But of course a capped frame rate usually is a bad idea (I know, used for simplicity, but makes the examples look bad performance wise)
cheers,
D.
#9
#1: The Sleep() stuff does *NOT* work. Sleep(1) slows the engine down way too much, and Sleep(0) doesn't relinquish enough time so there's still 100% CPU usage.
#2: I tried rearranging the message loop to use GetMessage() instead of PeekMessage() and called the update/render stuff elsewhere (using WM_TIMER I *think* but I can't quite remember) which didnt work either.
Trouble is, it has to work for both capped and uncapped frame rate. The message processing/rendering needs a bit of a rewrite/redesign, but it's going to be a tricky problem to solve.
I dont have time to look into it any further, but just thought I'd save someone some time so they don't have to repeat what's already been tried :)
T.
07/15/2003 (2:45 am)
When Ron and I were talking about the 100% CPU thing on IRC the other day, I did a few little hacks:#1: The Sleep() stuff does *NOT* work. Sleep(1) slows the engine down way too much, and Sleep(0) doesn't relinquish enough time so there's still 100% CPU usage.
#2: I tried rearranging the message loop to use GetMessage() instead of PeekMessage() and called the update/render stuff elsewhere (using WM_TIMER I *think* but I can't quite remember) which didnt work either.
Trouble is, it has to work for both capped and uncapped frame rate. The message processing/rendering needs a bit of a rewrite/redesign, but it's going to be a tricky problem to solve.
I dont have time to look into it any further, but just thought I'd save someone some time so they don't have to repeat what's already been tried :)
T.
#10
As soon as I'm done with this I'll tackle the CPU usage problem.
Thanks for the heads up.
Chris
07/15/2003 (8:53 am)
I'm just finishing up some work on the graphic system to help the port to Mac/Linux move forward.As soon as I'm done with this I'll tackle the CPU usage problem.
Thanks for the heads up.
Chris
#11
07/16/2003 (10:27 am)
The thing about that 100% CPU usage is that it's "soft" usage. The engine expands to use all available cycles, so if you start up other apps, the system CPU usage will remain at 100%, but the other apps will still get the cycles they need.
#12
07/17/2003 (1:00 am)
Yes, ok, but when the framerate is capped, there is no point in wasting cpu cycles, even if they're available tot the system. (an idle cpu uses less power)
#13
For example try the mesh viewer with directx.
Well atleast the direct3d stuff.
08/21/2003 (5:38 pm)
Don't most all DirectX apps use 100% of the cpu?For example try the mesh viewer with directx.
Well atleast the direct3d stuff.
Torque Owner Jeff Peck
Now my problem is, all DX programs cap at 25 FPS... any clues anyone?
~ Jeff