Bernie Thompson | 13 Oct 21:32 2010

Re: xorg 1.9 crash

Hi Christoph and Jelle,

On Wed, Oct 13, 2010 at 1:44 AM, Christoph Rissner <c.r@...> wrote:
> I think I've read somewhere that even XRandR 1.3 isn't up to multi GPU
> environments, so I guess Xinerama is the only option here.

Yes, unfortunately that's the fundamental problem.
http://superuser.com/questions/139818/ubuntu-10-04-not-detecting-multiple-monitors

I really only understand the low-level stuff (framebuffer driver), but
here's my understanding ...

The plumbing isn't there in X to support multiple graphics cards the
way Windows has since Win 98.

The main low-level features xorg needs are in the area of things like
"GPU object" and "shatter" support to allow screens to be split across
GPUs/framebuffers.

Right now, with RandR hand-config, you can get multiple X screens
[can't drag windows between them], one per-GPU, each of which can have
multiple monitors connected if that particular GPU reports multiple
outputs. With GPU object support, rendering could span GPUs and
several GPUs could be merged into one X screen similar to the
classical Xinerama setup.

It has been talked about by the xorg-dev community since at least
2006, but has never been finished. It's now slated to a future
xorg/xrandr release, but there doesn't seem to be enough user demand
or discussion to drive it forward. It doesn't seem promising.

So implementing any current xrandr support in fbdev or a
displaylink-specific xorg driver doesn't buy anything yet.  As with
everyone doing multi-card, we're still stuck with Xinerama for the
extended desktop scenario (even as compatibility with that
deteriorates).

As a response, Roberto DeIoris (the original author of udlfb) started
work last year to patch the Intel X server to treat USB displays as
additional outputs of the main GPU (so to X, there'd only appear to be
one GPU, so spanning them wouldn't be an issue).

This is a good strategy for a per-gpu-vendor solution, but one that
really needs involvement from the Intel folks to give it any chance of
the patches getting accepted back, etc. Then there'd need to be
follow-on work to repeat that with ATI or nVidia.  And it has other
big pros (performance, compatibility) and cons (flexibility) over a
cross-GPU solution.

So - long story short - Linux doesn't have support for multiple PCI
graphics cards the way Windows does (and of course a mix of PCI and
USB "GPUs" adds extra issues).  The plumbing isn't there for this, and
it's not clear if anyone is really pushing the ball forward because
the fundamental issues (like GPU object support) are complex and
require time commitment from core developers on the affected projects.
 So on Linux, USB displays can work as a independent screen, but not
easily as a extended desktop like users expect from Windows (without
configuring Xinerama)

But some polite end-user requests and discussions would certainly do
no harm in getting and keeping this on the radar.  I'd say the right
place to start "I'm trying to get this to work..." threads is probably
the "xorg" mailing list.

If any of those core developers show a serious interest and USB
hardware would help, Plugable will do what it can:
http://plugable.com/2010/09/16/plugable-open-source-hardware-samples-program/

Best wishes,
Bernie

Other discussions/resources:
http://lwn.net/Articles/355821/
http://superuser.com/questions/55845/triple-3-monitors-under-linux
http://lists.freedesktop.org/archives/libdlo/2009-October/000400.html

Gmane