What is driverSwapMethod = DRI_HIDE_X_CONTEXT?

Felix Kühling fxkuehl at gmx.de
Sat Oct 16 07:35:40 PDT 2004


Am Mi, den 13.10.2004 schrieb Michel Dänzer um 22:57:
> On Wed, 2004-10-13 at 19:42 +0200, Felix Kühling wrote:
> > Am Mi, den 13.10.2004 schrieb Jon Smirl um 18:53:
> > > I just changed DRM to alternative between zero and POLLIN.... This
> > > will make the DRM poll() function work like the kernel expects it to
> > > and still work with existing X servers. Can someone please get this
> > > incorrect code out of the X server?
> > 
> > As I mentioned earlier, setting driverSwapMethod to DRI_KERNEL_SWAP
> > seems to work for the savage driver. I bet it works for many others too.
> > AFAICT this tells the common DRI code not to use the DRM file handle.
> > Once this is proven to work with all drivers we could axe the code for
> > the other methods.
> 
> I doubt it's that simple, e.g. the DDX driver's SwapContext() function
> is only called with DRI_HIDE_X_CONTEXT AFAICT.

[slowly starting to make sense of all this ...]

Right. The default Block and Wakeup handlers only call SwapContext if
DRI_HIDE_X_CONTEXT is set. But a driver can install its own Block and
Wakeup handlers. I think that's what I'm going to do for the Savage
driver. I believe it should work for Radeon (for example) too. The
custom handlers would lock/unlock and call RADEONEnterServer or
RADEONLeaveServer respectively.

If I understand Keith correctly then all the modern drivers don't use
the SIGIO method (kernel notifies Xserver of context switches) any more.
So there is really no need for the full HIDE_X_CONTEXT+SERVER_SWAP
overhead.

-- 
| Felix Kühling <fxkuehl at gmx.de>                     http://fxk.de.vu |
| PGP Fingerprint: 6A3C 9566 5B30 DDED 73C3  B152 151C 5CC1 D888 E595 |




More information about the xorg mailing list