[Xorg server 1.3+] Should Xinerama's new Xrandr backend be active for 1 screen?
Dan Munckton
lists at munckfish.net
Thu Nov 29 07:00:52 PST 2007
Hi
I've been affected by a change in behaviour between Xorg server 1.2 and
1.3 onwards.
In 1.3 unless Xinerama is compiled-in, the Xinerama calls are now
actually handled by Xrandr [0] (unless Xinerama is compiled in which I
think it isn't by default).
Looking at the Xinerama/Panoramix source code I see that this extension
does not initialise unless there are multiple monitors attached [1].
However the new Xrandr backend only seems to initialise if there is just
one monitor attached [2].
The problem with this is that Xrandr and Xinerama will both appear
active at the same time on single monitor setups. For applications which
are justifiably careful not to use Xrandr if Xinerama is active this is
a problem.
I've been affected by exactly this problem because Java's Full Screen
Exclusive Mode [3] uses Xrandr to change screen resolution. I have a bug
open about it for Ubuntu Gutsy [4], and now I'm trying to work out
whether this problem needs to be resolved in Java or Xorg before I raise
any upstream bugs.
So I have the following questions:
1) Why does Xrandr provide a backend for Xinerama?
2) Can it safely be disabled so that Xinerama appears as not active?
3) Why does this new backend only work for single monitor setups and not
multi? (or have I misunderstood the source code maybe)
4) Would it be acceptable to add an option in the ServerFlags section of
xorg.conf to disable this for those who need to? E.g. like the old
"Xinerama" boolean option but called "RRXinerama" instead.
5) If the Java runtime was to ignore the presence of Xinerama if only
one monitor is attached would that be safe?
Thanks
Dan Munckton
Note: I'm relatively new to C, very new to the X server source, but
enjoying it all massively.
[0] See randr/rrxinerama.c
[1] See PanoramiXExtensionInit() in Xext/panoramiX.c
[2] See RRXineramaExtensionInit() in [0]
[3] http://java.sun.com/docs/books/tutorial/extra/fullscreen/index.html
[4] https://bugs.launchpad.net/ubuntu/+source/sun-java6/+bug/154613
More information about the xorg
mailing list