Re: Does pfFrame a busy wait?

New Message Reply Date view Thread view Subject view Author view

From: Allan Schaffer (allan++at++sgi.com)
Date: 07/10/2001 15:39:31


On Jul 9, 5:42pm, Yves Strube wrote:
> I am using Performer in a program which consist of multiple processes
> and use a locked frame rate. Performer runs in only one of these
> processes. The processes use real-time priorities so that the process
> with the highest priority runs whenever it wants to run.
> When I call pfFrame to perform the CULL and DRAW stages, processes with
> a lower priority than the Performer process are no longer executed until
> the vertical retrace is detected by Performer. So Performer does a busy
> wait for the vertical retrace.
> I am using Performer 2.4 with Linux Kernel 2.2.18. The former Performer
> version did *not* perform a busy wait but I would prefer to stay with
> 2.4.

This is accurate, in Performer 2.4 we added "emulation" of the sync
to vertical retrace in the Performer processes so that pfPhase would
perform its timings accurately.

I think (but haven't tested) there are two workarounds
to avoid the busy-wait emulation:

  1. If you call pfVideoRate(-1) before the first pfFrame() all the
      synchronization logic, including the busy wait, will be
      skipped.

  2. [The "correct" situation] If the video_sync extension is
      reported by GLX, and the glXWaitVideoSyncSGI() and
      glXGetVideoSyncSGI() routines exist in your GLX implementation,
      then they will be called by Performer instead of using
      busy-wait emulation of them.

Good luck,
Allan

-- 
Allan Schaffer                                            allan++at++sgi.com
Engineering Manager, OpenGL Performer                    1-650-933-2160
Silicon Graphics                           http://reality.sgi.com/allan


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Tue Jul 10 2001 - 15:40:13 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.