From: Hartwig Distler (vrtainment++at++web.de)
Date: 04/09/2003 12:17:05
Hi,
I had send this question some time ago, but did not receive feedback so far. Here is some more detail now ...
I am running a Ti4800-card, Linux-kernel 2.4.20 and latest nVidia-drivers for linux ... page flipping is enabled as well as __GL_SYNC_TO_VBLANK is enabled ... modeline is adjusted such that refresh rate is 60 HZ. The application I am working on is very time critical (60Hz, but actually does not spend too much time drawing less then 6 ms per frame). Since we are rotating the observer inside a textured cylinder, every kind of jerkyness can be detected easily ...
Given the above configuration of the graphics environment, I ran several different types of phase locking and experienced results which I cannot explain at all ...
When adjusting pfPhase to FREE_RUN, and target frame rate to 60 HZ, I observer a constant system load in the statistics at a very high level .... changing the target frame rate to 30 or 20 Hz result in a significant reduction in load (????) -> actual frame rate is still 60 Hz ... As mentioned before we should have enouigh resources in our application to keep a constant frame rate of 60 Hz ... however, under this conditions the smallest changes in load result in a wobble ...
Now changing the phase to either LOCK, LIMIT OR FLOAT I observer the following ... under all conditions I have a significant reduction in load as compared to the free run condition. However, we no longer have a constant load. The load over some period increases until it reaches a critical level, and then completely drops (which is acommpanied by a jerk) ... then the load increases again, etc ... Depending on the phase selected, the increase in load is reflected by an increase in drawing time or application time , though the scene does not change at all.
Another interesting oberservation is that when I am switching refresh and frame rate to 78 HZ, I oberserve the same behaviour of increasing load and rapid drop, however, the increase is much much slower than at 60 Hz ... Overall the application runs much smoother at 78 Hz than at 60 Hz, which at least to me is really strange ...
Since the application is featuring lots of gl-code in draw callbacks I thought that this might be the reason. To check, I first of all ran the same tests in perfly (observing the same behaviour) and using a min. application, which does clear the channel and draw an empty scene. Even there I observe the same increase and drop stuff ...
What am I doing wrong? Is there a way to use SYNC_TO_VBLANK and PFPHASE_LOCK and receive a constant load ? SYNC_TO_VBLANK seems to be mandatory since without I get tearing.
regards,
Hartwig
Hartwig Distler
VRtainment
http://www.vrtainment.de
______________________________________________________________________________
UNICEF bittet um Spenden fur die Kinder im Irak! Hier online an
UNICEF spenden: https://spenden.web.de/unicef/special/?mc=021101
This archive was generated by hypermail 2b29 : Wed Apr 09 2003 - 12:18:31 PDT