Xgl server

David Reveman c99drn at cs.umu.se
Sun Nov 14 15:10:43 PST 2004


On Sat, 2004-11-13 at 14:16 -0500, Michel Dänzer wrote:
> On Fri, 2004-11-05 at 01:03 +0100, David Reveman wrote: 
> > I've been doing some work to get an X server running on top of
> > OpenGL/glitz and I've got something that works pretty well now.
> 
> Very cool!
> 
> > With a good OpenGL driver and some luck, you should be able to run most
> > applications on it. 
> 
> Unfortunately, it's not really usable for me with the r200 DRI driver.
> Is that due to the lack of pbuffers?
> 
> > However, you should know that the Xglx server is really simple, there's 
> > no real cursor 
> 
> Any plans to change that?

Yes, sure. We probably only want hw cursors with Xglx, so it's basically
just to copy the cursor stuff in Xnest into xglx.c.

> 
> > and compared to the Xnest server, Xglx must always run on top of all 
> > other windows as the back buffer is used for pixmap memory.
> 
> I didn't see the connection between these two things, so I whipped up a
> patc88h that handles Expose events. Now this might be a horrible way of
> doing it, in which case I'd appreciate an appropriate clue bat being
> applied to me. :) I certainly prefer this over not handling exposures at
> all though.

If I'm not mistaken, GLX doesn't ensure that the contents of the back
buffer is unmodified when the window is covered by another window. This
means that as the back buffer is used for pixmaps, exposures might
destroy pixmap content.

Most of the time, it's probably working fine as for most X servers, the
back buffer of a GLX drawable is never modified by exposures, but we
need to follow the spec here as otherwise we might end up with some
really weired errors. If we don't handle exposures, it's more obvious
that if the window gets covered by another window, things might not work
correctly anymore.

It might still be interesting to handle exposures but it will have to be
an option and the back buffer cannot be used for pixmaps when this is
used.

> 
> The patch also fixes a segfault in fbPixmapToRegion() that gets
> triggered for me sometimes when running GNOME in Xglx.

I've committed an appropriate fix for this. Can you please check that it
works OK now. Thanks for noticing!
 
-David




More information about the xorg mailing list