wrong xinerama scroll/pan using two cards three monitors

Bug #591104 reported by Ian! D. Allen
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
xorg (Ubuntu)
Won't Fix
Wishlist
Unassigned

Bug Description

Binary package hint: xorg

Xinerama has a bug/behaviour in 10.4 Lucid that wasn't there in 9.10.

http://ubuntuforums.org/showthread.php?p=9417686

Under 10.4 Lucid using Xinerama with two monitors (Left,Middle) on an ATI
card (FireMV 2250 with "radeon" driver) and the third monitor (Right)
on an nVidia card (G86 GeForce 8300 GS with "nv" driver or "nvidia"
driver). I did not have this problem under 9.10 Karmic.

With Xinerama turned off, the mouse moves perfectly between all three
monitors - the two monitors on the ATI card (Left,Middle) and the single
monitor on the nVidia card (Right). Unfortunately, it splits my desktop
into two DISPLAYs (ATI and nVidia) and so I can't move windows between
the two.

Under 10.4, with Xinerama on, Left and Middle start out showing the
same content. (This looks like mirror mode, but isn't.) Starting on
Left, I can move the mouse to the right, and it crosses both Left and
Middle simultaneously until it reaches the right side of both. Then,
the mouse leaves Left and we discover that Middle is actually a scrolling
double-width screen with only a single width showing - as I move against
the right edge of Middle, the mouse causes Middle to scroll/pan, until
both virtual Middle screens have been crossed, then Middle stops scrolling
and the mouse moves onto the Right monitor.

At this point, with the mouse all the way to the right, I have three
monitors showing three different 1600x1200 parts of the full 4800x1200
Xinerama desktop.

Moving the mouse back toward the left from the Right monitor, the mouse
crosses Right, leaves Right and moves onto the right edge of Middle,
and crosses left across Middle, then when the mouse hits the left side
of Middle, the mouse also appears on the right side of Left, and as
I continue to move the mouse left, the mouse crosses Left and Middle
scrolls/pans until it is showing exactly the same content as Left.

At this point, with the mouse all the way to the left, I have Left and
Middle mirroring each other (wrong) both showing the leftmost 1600x1200
of the full 4800x1200 Xinerama desktop and Right continues to show the
rightmost 1600x1200. The middle 1600x1200 is no longer visible on Middle.

I need to find out how to tell Middle not to scroll and to show only
the right side of its double-size viewport.

This didn't happen under 9.10. It's new in 10.4

ProblemType: Bug
DistroRelease: Ubuntu 10.04
Package: xorg 1:7.5+5ubuntu1
ProcVersionSignature: Ubuntu 2.6.32-22.36-generic 2.6.32.11+drm33.2
Uname: Linux 2.6.32-22-generic x86_64
Architecture: amd64
Date: Mon Jun 7 22:59:03 2010
DkmsStatus:
 nvidia-173, 173.14.22, 2.6.32-22-generic, x86_64: installed
 nvidia-current, 195.36.15, 2.6.32-22-generic, x86_64: installed
EcryptfsInUse: Yes
InstallationMedia: Ubuntu 10.04 LTS "Lucid Lynx" - Release amd64 (20100429)
MachineType: System manufacturer System Product Name
ProcCmdLine: BOOT_IMAGE=/vmlinuz-2.6.32-22-generic root=UUID=dc727a13-5170-4697-aad8-849090d05426 ro text
ProcEnviron:
 LC_CTYPE=en_CA.utf8
 LC_COLLATE=C
 PATH=(custom, user)
 LANG=C
 SHELL=/bin/bash
SourcePackage: xorg
dmi.bios.date: 06/10/2009
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: 1303
dmi.board.asset.tag: To Be Filled By O.E.M.
dmi.board.name: M4A79T Deluxe
dmi.board.vendor: ASUSTeK Computer INC.
dmi.board.version: Rev 1.xx
dmi.chassis.asset.tag: Asset-1234567890
dmi.chassis.type: 3
dmi.chassis.vendor: Chassis Manufacture
dmi.chassis.version: Chassis Version
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvr1303:bd06/10/2009:svnSystemmanufacturer:pnSystemProductName:pvrSystemVersion:rvnASUSTeKComputerINC.:rnM4A79TDeluxe:rvrRev1.xx:cvnChassisManufacture:ct3:cvrChassisVersion:
dmi.product.name: System Product Name
dmi.product.version: System Version
dmi.sys.vendor: System manufacturer
system:
 distro: Ubuntu
 codename: lucid
 architecture: x86_64
 kernel: 2.6.32-22-generic

Revision history for this message
Ian! D. Allen (idallen) wrote :
Bryce Harrington (bryce)
Changed in xorg (Ubuntu):
status: New → Confirmed
Revision history for this message
James Robinson (ubuntu-james) wrote :

I am having this problem too.

Revision history for this message
James Robinson (ubuntu-james) wrote :

Further I disagree it wasn't in 9.10. In many ways the current scenario is less bad than what happened in 9.10 which just ignored what would be minito 2 and monitors 3 and 4 did not work at all, that is with the same xorg.conf that causes teh current problem in 10.04.

Further so far this problem has not been addressed in 10.10 alpha 2

Revision history for this message
James Robinson (ubuntu-james) wrote :

Hi,

I have now fixed this problem for me.

Looking at what happens I believe the problem is the Xinerama is designed for stitching multiple monitors together and so is not very good at stitching together monitors which have already been stitched together.

I will publish a full walk through once I've got it working fully on my system (and not just the live CD) but it is fairly straightforward.

As I am sure you have seen elsewhere on the internet it is suggested that you need to create a device for each port on your graphics cards and give the devices the same BusId (but different identifiers) and then andd the Screen 0 and Screen 1 options to differentiate between the ports.

I have found that this doesn't quite work. You also need to add

Option "ZaphodHeads" "name of port" #e.g. DVI-0, DVI-1, DVI-2, VGA-0, VDA-1 etc

Then it should work fine.

A copy of my fully working xorg.conf file is available at

http://www.etothepii.co.uk/xorg.conf

What this does (which you will see if you leave xinerma off) is allow the creation of completely seperate X sessions. So in my configuration with xinerama off I get 4 seperate x sessions each of which is capable of having the mouse in it but between which windows can not be dragged.

As a consequence when you enable Xinerama it is only being asked to stitch single monitors together and so works fine.

Revision history for this message
Ian! D. Allen (idallen) wrote :

@JamesRobinson: Yes, your "ZaphodHeads" trick worked for my three-monitor
set-up. I now have Xinerama working correctly across all three monitors.
Here is the xorg.conf file:

Section "ServerLayout"
 Identifier "Ian"
 Screen "Screen Left" 0 0
 Screen "Screen Middle" RightOf "Screen Left"
 Screen "Screen Right" RightOf "Screen Middle"
 Option "Xinerama"
EndSection

Section "Screen"
 Identifier "Screen Left"
 Device "Device Left"
 # this isn't absolutely necessary but it helps window placement
 SubSection "Display"
  Virtual 1600 1200
 EndSubSection
EndSection

Section "Screen"
 Identifier "Screen Middle"
 Device "Device Middle"
 # this isn't absolutely necessary but it helps window placement
 SubSection "Display"
  Virtual 1600 1200
 EndSubSection
EndSection

Section "Screen"
 Identifier "Screen Right"
 Device "Device Right"
 # this isn't absolutely necessary but it helps window placement
 SubSection "Display"
  Virtual 1600 1200
 EndSubSection
EndSection

Section "Device"
 Identifier "Device Left"
 Driver "radeon"
 VendorName "ATI Technologies Inc"
 BoardName "FireMV 2250"
 BusID "PCI:4:0:0"
 Option "ZaphodHeads" "DVI-0"
 Screen 0
EndSection

Section "Device"
 Identifier "Device Middle"
 Driver "radeon"
 VendorName "ATI Technologies Inc"
 BoardName "FireMV 2250"
 BusID "PCI:4:0:0"
 Option "ZaphodHeads" "DVI-1"
 Screen 1
EndSection

Section "Device"
 Identifier "Device Right"
 Driver "nv"
 VendorName "nVidia Corporation"
 BoardName "G86 [GeForce 8300 GS]"
 BusID "PCI:5:0:0"
 Screen 0
EndSection

Revision history for this message
Bryce Harrington (bryce) wrote :

Interesting; didn't even think this was possible.

Changed in xorg (Ubuntu):
assignee: nobody → Bryce Harrington (bryceharrington)
importance: Undecided → Wishlist
status: Confirmed → Triaged
Revision history for this message
James Robinson (ubuntu-james) wrote :

I disagree that this is a "wishlist" item as characterized because xinerama has been depricated without being replaced.

Revision history for this message
Bryce Harrington (bryce) wrote :

Fair enough; if wishlist is an unacceptable state, we'll list it as wontfix.

Changed in xorg (Ubuntu):
status: Triaged → Won't Fix
Revision history for this message
Ian! D. Allen (idallen) wrote :

How can some stranger (James) comment on my reported bug (Ian) and get it downgraded from WishList to WontFix?
That hardly seems fair. I didn't say that WishList was unacceptable.

Revision history for this message
James Robinson (ubuntu-james) wrote :

Sorry Ian, what I meant to say was multi-monitor support is more than a wish-list item. Particularly since someone has gone to all the trouble of actually writing the code to support this in the first place (Xinerama) but then someone else deprecated it without replacing it with a working alternative. This doesn't fit with my understanding of the word deprecated.

Revision history for this message
Ian! D. Allen (idallen) wrote :

The Ubuntu bug triage system is broken if a bug reported by Ian gets thrown out by Bryce because Bryce doesn't like how someone else (James) commented on the bug.

Revision history for this message
James Robinson (ubuntu-james) wrote :

Again, I can only apologise. At least you (Dan) and I (James) have a working system now, though how long it will be before Xinerama is broken since no one is testing to see if their changes break it I can't imagine. There seem to be no end of people on various fora with this problem and no-one seems to be offering even the Triaged solution I have cobbled together.

Bryce, I wasn't asking you to spend any time on it, I just disagree that the multi-monitor support offered by Windows and Mac OS X is more than a wish-list item, especially since someone has already done the work.

Bryce Harrington (bryce)
Changed in xorg (Ubuntu):
assignee: Bryce Harrington (bryce) → nobody
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.