Game Development Community

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)

#1
05/23/2003 (8:34 pm)
Okay, fixed that bug (driver update and three reboots later). (didn't have the latest version as I thought...)

Now my problem is, all DX programs cap at 25 FPS... any clues anyone?

~ Jeff
#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
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
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
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
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
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
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
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.