RandR bugs

Andy Ritger aritger at nvidia.com
Thu Sep 29 17:29:05 PDT 2005



On Fri, 30 Sep 2005, Thomas Winischhofer wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Alan Hourihane wrote:
> > 
> > I'm certainly open if NVIDIA has some code or comments to share here
> > Andy on how NVIDIA's driver deals with RandR and TwinView.
> 
> I can't speak for Nvidia, but the sis driver (and the radeon, if Alex
> took over all it needs) deals very well with MergedFB + RandR.
> 
> There is one little issue, namely identically looking metamodes (ie meta
> modes that consist of different modes for the output devices, but look
> the same to the server, eg 1280x1024-1024x768 and 1024x768-1280x1024). I
> work around the problem that RandR ignores the second one of these modes
> (because it thinks that they are identical) by giving the second one a
> different rate.

:)  We had come up with the same solution in the NVIDIA driver,
and I was feeling dirty about it.  Now I don't feel so bad.

> Also, MergedFB with pseudo-Xinerama works well in combination with
> RandR. Window managers are smart enough nowadays to re-query the
> Xinerama extension upon a screen size change. So I simply change the
> Xinerama info at appropriate times. KDM/Kwin works wonderfully with
> this, and I had positive reports on gdm and a few others as well.

I think I've seen some window manager bugs when growing the root
window; it's on my todo list to track that down and propose patches
to the major wm's.  Haven't gotten to that, yet.

> Putting together (real) Xinerama and RandR is assumingly a bit more
> complicated. Xinerama with its fixed "screen"-boundaries is a real
> problem for RandR, I can imagine.
> 
> Andy, does the Nvidia driver support rotation in TwinView mode? I have
> been thinking about this, but it's logically somewhat beyond me yet,
> especially when it comes to non-rectangular screens.

Yeah, this is somewhat problematic.  Today, it sort of works by
accident, depending on what you want to do.  People who want two
rotated displays positioned horizontally can configure something
like this:

    1280x1024+0+0, 1280x1024+0+1024

to position the unrotated displays vertically, and then rotate the
whole X screen.

Having per-display device control of rotation is something that
I don't think RandR can currently do.  I've been leaning towards
handling the rotation control within the driver, and just exporting
MetaModes out to RandR that are the bounding box; eg:

    1280x1024, 1024x1280

(and yes, you'd end up with a dead region... could use a panning
domain "1280x1024 at 1280x1280, 1024x1280" such that you can pan the
first display to access that region of the screen, but ick)

RandR would unfortunately no longer know about the rotation, though.

We've not actually implemented that, yet, though.

- Andy


> Thomas
> 
> - --
> Thomas Winischhofer
> Vienna/Austria
> thomas AT winischhofer DOT net          http://www.winischhofer.net/
> 
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.2 (GNU/Linux)
> Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
> 
> iD8DBQFDPH/VzydIRAktyUcRAnLuAKDOpp4FyCTUoDD5s4fZG+lMLtDxGQCbBCLp
> tGdQXDR3OdEr6nTq0n9TQBo=
> =JhAa
> -----END PGP SIGNATURE-----
> _______________________________________________
> xorg mailing list
> xorg at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xorg
> 



More information about the xorg mailing list