[PATCH 0/2] Attempt to fix FIXES for Xinerama

Adam Jackson ajax at redhat.com
Mon Nov 4 23:49:32 CET 2013


Regular readers will be noticing a theme, by this point.  Basically the
Xinerama enablement in the Composite stack works if and only if all your
backend screens are overlapped at +0+0.  This was sufficient for Nomad, since
effectively all the backends are intentionally mirrored views, but people
running hardware servers typically want Big Desktop not Mirror All The Things.

The first patch in this series is sufficient to fix 'xcompmgr -n', which is the
trivial Render-based mode.  But I think it's wrong conceptually.  One there's
nothing comparable in RenderSetPictureClipRectangles, and two it isn't
symmetric with how GC clips work (where the translation happens in ValidateGC).
So I think Xinerama wants to wrap ValidatePicture, and that the existing
R[ender]SPCR[ects] is merely exactly as broken as F[ixes]SPCR[egion].
Hopefully Keith will tell me if I'm on the right track, and/or someone else
will join me in the Xineramarchaeology.

The second patch I merely believe to be correct since it's the same pattern in
the code.

With this, the damageext series, the COW fix, and LIBGL_ALWAYS_SOFTWARE=1 (so
as to use drisw's I Can't Believe It's Not GLX, ie PutImage), I can run mutter
with Xinerama active.  I haven't started hacking at making GLX Xinerama-aware
quite yet; I plan to, though whether that's for 1.15 or later I don't know yet.
But if some other vendor, cough, has a Xinerama-aware libglx, this could
hopefully be sufficient to make Xin + GLX + Composite work together.

- ajax



More information about the xorg-devel mailing list