Re: 1pipe - 2 tasks

New Message Reply Date view Thread view Subject view Author view

Angus Dorbie (dorbie++at++sgi.com)
Wed, 03 Mar 1999 11:11:17 -0800


Kearney, Ken wrote:
>
> Angus,
> Sorry but could you expand on that a little? I'm not sure how to
> "block them against each other through shared memory on the CPU".
>
> Further info:: Right now I'm running the 2D task locked to CPU '0'
> and the 3D task in multiprocessor mode APP_CULL_DRAW. I just switched the
> 3D task to APPCULLDRAW and saw noticed a slight drop in the
> gintr,switch,fifowait numbers. In case it will help pinpoint the
> bottleneck, I have attached a text file containing a copy of the full osview
> window during this last run.
> <<Osdmp.txt>>
> Thanks

This makes sense, the performer process leaves the pipe alone while it
runs the app & culls in single thread, this leaves other application
free to draw for some fraction of the frame without interrupts.

Ideally you want the draw times to be mutually exclusive since you know
that the pipe cannot draw two things at the same time and there is a
hefty penalty for the context switching.

So, you need a software blocking mechanism which uses IPC to schedule
each application sensibly. I'm not going to tell you how to do this,
that's just a programming task involving some type of IPC, but you need
to do something like draw 1 frame with the 2D app then block and free
the Performer draw process, you then draw 1 frame in Performer and block
then free the 2D process etc.

Cheers,Angus.


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Wed Mar 03 1999 - 11:11:28 PST

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