linux-mips
[Top] [All Lists]

Re: Linux/SGI Xsgi server: /dev/opengl ioctl NG1_SETDISPLAYMODE

To: Miguel de Icaza <miguel@nuclecu.unam.mx>
Subject: Re: Linux/SGI Xsgi server: /dev/opengl ioctl NG1_SETDISPLAYMODE
From: "William J. Earl" <wje@fir.engr.sgi.com>
Date: Thu, 18 Sep 1997 09:19:03 -0700
Cc: linux@fir.engr.sgi.com
In-reply-to: <199709180323.WAA12615@athena.nuclecu.unam.mx>
References: <199709180203.TAA17980@fir.engr.sgi.com> <199709180323.WAA12615@athena.nuclecu.unam.mx>
Sender: owner-linux@cthulhu.engr.sgi.com
Miguel de Icaza writes:
 > 
 > Another question regarding the Newport:
 > 
 > >      After waiting for the rex3 FIFO to drain, and the the xmap9 FIFO
 > > to not be full, it sets the xmap9 mode register for the given "wid":
 > > 
 > >      xmap9SetModeReg( rex3, wid, displaymode, 
 > > ng1_video_timing[bd->boardnum]->cfreq ); 
 > 
 > If the newport registers are available to the userland application,
 > why the X server does not directly call those routines instead of
 > relying on the kernel to perform them?  Is it a convention that
 > applications should only touch the rex3 registers and not attempt to
 > program any of the other chips on the dcb?
 > 
 > It would make sense since the graphics context switching would not
 > involve the kernel peeking at the chips on the dcb what their context
 > is and then the pain of restoring this.  

      I believe that making this work reasonably would require some way
of making a given user-mode primitive atomic.  This can be hacked by via various
schemes, but the current IRIX implementation does all sequences which must
be atomic in the kernel.  (For example, if I must BFIFOWAIT and then do
some stores, but I context switch after the BFIFOWAIT, there is no guarantee
that the FIFO is not full when I regain control.)  

<Prev in Thread] Current Thread [Next in Thread>