Re: Performance problems

New Message Reply Date view Thread view Subject view Author view

Javier Castellar (javier++at++sixty)
Fri, 9 Jun 1995 11:51:36 -0700


        The main reason of your problems is related on the graphics context
switch which is being suffered by the graphics pipe when you go into X.
        The DRAW in performer is GL and graphics activity from X is going to
create this graphics context. No matter if you are running the GL on a top non
degrading priority, no matter if you fork/sproc you Xwindows activity on other
CPU, keep in mind that X AND GL_DRAW ARE SHARING A COMMON GFX RESOURCE. This
resource support nicely different graphics contexts (GL, X, msampling in some
windows, rgb, color map ... etc) but the changes between them have some cost.
The problem here IS NOT THE COST OF THE GFX CONTEXT SWITCHING, the problem is
HOW MUCH TIMES DO YOU PERFORM this switching. If the Xwindows process priority
is low it will go into gfx context with too much granularity (drawing a shadow
of an Xbutton will produce several switchings (per a couple of Xlines or
Xpixels), then the small overhead of X to GL gfx context switch is going to be
multiplied by 10 or more ...
        Choices (A or B ...):
A) Devote the gfx pipe to the Performer DRAW (if your application needs some
Xinteraction this is not for you, maybe you can use a gial box or a button box
using the serial port)

B) ok , you need also X io. Syncronize with semaphores Xlib calls and the start
and begining of pfDraw.
        PreDraw:
                stopXplease [only the X GRAPHICS activity]
        pfDraw()
        PostDraw:
                startXplease
It should decrease the number of gfx context changes.

C) ok, you need also X io but you do not know how to syncronize.
        PreDraw:
                        ...GrabServer(display) (it is an X call but a cannot
remember the complete name)
        pfDraw()
        PostDraw:
                        ...UnGrabServer(display)
It is not going to work in multipipe since the xwm is only one.

-Javier

-- 
*************************************************************************
* Javier Castellar Arribas     * Email:              javier++at++asd.sgi.com *                 
*                              * Vmail:            		 3-1589 *            
* Member of Technical Staff    * Phone:                  (415)-390-1589 *
* Advanced Graphics	       * Fax:                    (415)-964-8671 *     
* Advanced Systems Division    * MailStop:                       8U-800 *
************************************************************************* 
* Silicon Graphics Inc.                                                 *
* 2011 N. Shoreline Boulevard,                                          *                        
* Mountain View, California 94043-1386, USA                             *
*************************************************************************

New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:51:35 PDT

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