Pointer screen crossings broken in Xorg server 1.13.0 (regression)

Bug #1068920 reported by Greg Edwards on 2012-10-20
148
This bug affects 30 people
Affects Status Importance Assigned to Milestone
X.Org X server
Fix Released
Medium
xorg-server (Ubuntu)
High
Canonical X.org
Quantal
High
Timo Aaltonen
xorg-server-lts-quantal (Ubuntu)
Undecided
Unassigned
Quantal
Undecided
Unassigned

Bug Description

[Impact]

The Xorg server in quantal suffers from the following upstream regression for zaphod setups:

https://bugs.freedesktop.org/show_bug.cgi?id=54654

[Test case]

When you move the mouse into the second screen, it gets trapped there. When it gets to the
edge where it should move back onto the first screen, it wraps around to the far edge of the
second screen again.

I've rebuilt xserver-xorg-core with the attached patch, which comes from the upstream
bug above, and confirmed it fixes this issue.

[Regression potential]

slim, this has been upstream since 1.13.1

After upgrading from xserver 1.12.99.905 (the very last 1.13 RC) to xserver
1.13.0, screen crossings have ceased to work correctly, in a 2-screen Zaphod
setup. The pointer starts on the left screen (0); when attempting to move it
rightwards across the boundary to the right screen (1), instead of actually
changing screens, the pointer teleports all the way to the left of the screen
it's already on.

Bisection pinpoints the following:

bafbd99080be49a17be97d2cc758fbe623369945 is the first bad commit
commit bafbd99080be49a17be97d2cc758fbe623369945
Author: Peter Hutterer <email address hidden>
Date: Wed Aug 8 11:34:32 2012 +1000

    dix: work around scaling issues during WarpPointer (#53037)

    In WarpPointer calls, we get input in screen coordinates. They must be
    scaled to device coordinates, and then back to screen coordinates for screen
    crossing and root coordinates in events.

    The rounding errors introduced (and clipping in core/XI 1.x events) can lead
    to the actual position being different to the requested input coordinates.
    e.g. 200 scales to 199.9999, truncated to 199 in the event.

    Avoid this by simply overwriting the scaled screen coordinates with the
    input coordinates for the POINTER_SCREEN case.

    X.Org Bug 53037 <http://bugs.freedesktop.org/show_bug.cgi?id=53037>

    Signed-off-by: Peter Hutterer <email address hidden>
    Reviewed-by: Keith Packard <email address hidden>

:040000 040000 f187f7ca2569a510c2f614cc75f9d5e3f4b09b85 394c22bc56781077b7384804648db21c6354eca8 M dix

Reverting this commit on top of 1.13.0 resolves the issue.

Hi,

Arch (stable) upgraded xorg-server to 1.13.
I use a similar Zaphod configuration as described above and
I'm facing the same annoying bug now.

Any news on this issue?

With best regards,
Till

In the meantime, you can still revert the commit without any other problems but that's probably a little easier to do on Gentoo (my distro) than it is on Arch. ;)

I guess my comment was a bit misleading... :)

While it would be possible to revert the commit (thanks to Nick), I just wanted to ask if the issue will be addressed in 1.13.1. The status is still set to NEW.

Shouldn't the "Component" be changed to "Input/*"?
Not sure if Peter Hutterer knows about this regression.

Unfortunately, I'm not familiar with the inner workings of X to provide a patch.

~Till

(In reply to comment #3)
> While it would be possible to revert the commit (thanks to Nick), I just
> wanted to ask if the issue will be addressed in 1.13.1. The status is still
> set to NEW.

Yes, it would be nice to have some feedback about this 11th-hour regression.

What's the point in testing the release candidates if regressions are going to
be introduced (and apparently reports ignored) right before release anyway?

> Shouldn't the "Component" be changed to "Input/*"?

That's what I thought at first, but all the Input/ components seem to be for
specific drivers. This issue isn't driver-specific, it's a problem with the
server.

That being said, this bugtracker has waaaaaaaaay too many components.

*** Bug 55993 has been marked as a duplicate of this bug. ***

Wouldn't it make sense to assign this bug report to Peter Hutterer?

Created attachment 68748
0001-dix-fix-zaphod-screen-scrossing-54654.patch

adding the offset of the new screen should be enough, can you please test this? thanks

(In reply to comment #7)
> Created attachment 68748 [details] [review]
> 0001-dix-fix-zaphod-screen-scrossing-54654.patch
>
> adding the offset of the new screen should be enough, can you please test
> this? thanks

Seems to work, thanks!

Thanks. I can also confirm this patch to work on two different zaphod setups.

FWIW, it fixes the problem for me too. Is this going to be merged at some point? I don't see it in git yet.

Greg Edwards (gedwards) wrote :

The attachment "Patch from X.Org Bug 54654" of this bug report has been identified as being a patch. The ubuntu-reviewers team has been subscribed to the bug report so that they can review the patch. In the event that this is in fact not a patch you can resolve this situation by removing the tag 'patch' from the bug report and editing the attachment so that it is not flagged as a patch. Additionally, if you are member of the ubuntu-reviewers team please also unsubscribe the team from this bug report.

[This is an automated message performed by a Launchpad user owned by Brian Murray. Please contact him regarding any issues with the action taken in this bug report.]

tags: added: patch
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in xorg-server (Ubuntu):
status: New → Confirmed

Looking good here, thanks Peter.

Ron (ron-neversleep) wrote :

I can confirm applying this patch solves the mouse wrapping (being trapped) in second screen.

Timo Aaltonen (tjaalton) on 2012-11-28
Changed in xorg-server (Ubuntu):
assignee: nobody → Canonical X.org (canonical-x)
importance: Undecided → High
status: Confirmed → Triaged
Bryce Harrington (bryce) on 2012-11-28
tags: added: quantal
Changed in xorg-server:
importance: Unknown → Medium
status: Unknown → In Progress

commit e7cd5cce740e653000fb1192b600268dcf77dde2
Author: Peter Hutterer <email address hidden>
Date: Thu Oct 18 15:11:31 2012 +1000

    dix: fix zaphod screen scrossing (#54654)

Changed in xorg-server:
status: In Progress → Fix Released
Timo Aaltonen (tjaalton) wrote :

the patch is included in 1.13.0.901 which is staged in git.debian.org.

Changed in xorg-server (Ubuntu Quantal):
assignee: nobody → Timo Aaltonen (tjaalton)
importance: Undecided → High
status: New → Triaged
tags: added: raring
Changed in xorg-server (Ubuntu):
status: Triaged → Fix Committed
Thomas Lundquist (thomasez) wrote :

Upgrading to the ubuntu8 package set did not help me.

Loking at the text in the fix:

> * Revert the change to 500_pointer_barrier_thresholds.diff, causes issues with unity launcher.

Does not really look like the text for the patch applied in the freedesktop bug:

> 0001-dix-fix-zaphod-screen-scrossing-54654.patch

I have not looked at the content but again; This does not fix my X.

Timo Aaltonen (tjaalton) wrote :

"fix committed" != "fix released"

Thomas Lundquist (thomasez) wrote :

The new packages for Raring has the patch and they work. More than released enough for me :=)

Timo Aaltonen (tjaalton) on 2012-12-17
Changed in xorg-server (Ubuntu):
status: Fix Committed → Fix Released

Glad the bug has been fixed with the attached patch.
Now, please, suppose that an average-minded-ordinary-linux user had not any clues about HOW TO APPLY IT....could someone explain how to do this?

Thanks,

deschmit (deschmit) wrote :

I'm running
2:1.13.0.902+git20121207+server-1.13-branch.ede07c1a-0ubuntu0ricotz~quantal amd64 Xorg X server - core server

I can now move the the mouse from x screen 0 to x screen 1. Screen 1 is physically to the right of screen 0. However, when I move the mouse from screen 1 back to screen 0 the mouse jumps from the left edge of screen 1 to the left edge of screen 0. I expected the mouse to move from the left edge of screen 1 to the right edge of screen 0.

seawolf (seawolfmax) wrote :

If the screen sizes are not the same, the cursor gets stuck on one.

wrapperband (drajdoyle) wrote :

Help, it's now 28th / 2/2013 and this drastic screen bug in x org server has not been fixed and released?

Sami J. Mäkinen (sjm-m) wrote :

Yes, I got frustrated too. Then I searched for instructions to build Ubuntu packages from source.
I was able to build an Ubuntu package which includes the fix for this.

You can find my strictly unofficial and unsupported fixed package here:

http://eivoittoa.fi/~sjm/prkl/

There is NO warranty or ANY kind of support. Use it at your OWN RISK.
It works for me, though. And there is only 64-bit package, sorry.

Jens Heise (heise-s) wrote :

Thank you, Sami
I used your package to fix this - a 2-screen setup with 3 monitors on quantal, latest drivers from nvidia (313.26)

deschmit (deschmit) wrote :

Any one know if this will be fixed in ubuntu 13.04?

Chris (c-rooney) wrote :

Hi, I've just tried installing Sam's package and get the following error:

chris@Powerwall:~$ sudo dpkg -i xserver-xorg-core_1.13.0-0ubuntu6.1_amd64.deb

dpkg: regarding xserver-xorg-core_1.13.0-0ubuntu6.1_amd64.deb containing xserver-xorg-core:
 xserver-xorg-core-lts-quantal conflicts with xserver-xorg-core
  xserver-xorg-core (version 2:1.13.0-0ubuntu6.1) is to be installed.
dpkg: error processing xserver-xorg-core_1.13.0-0ubuntu6.1_amd64.deb (--install):
 conflicting packages - not installing xserver-xorg-core
Errors were encountered while processing:
 xserver-xorg-core_1.13.0-0ubuntu6.1_amd64.deb

I figured it would safer to seek help before I start uninstalling things.

Timo Aaltonen (tjaalton) wrote :

finally pushed this to the queue..

description: updated
Changed in xorg-server (Ubuntu Quantal):
status: Triaged → In Progress
Timo Aaltonen (tjaalton) on 2013-10-10
Changed in xorg-server-lts-quantal (Ubuntu):
status: New → Incomplete
status: Incomplete → Invalid
Changed in xorg-server-lts-quantal (Ubuntu Quantal):
status: New → In Progress

Hello Greg, or anyone else affected,

Accepted xorg-server into quantal-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/xorg-server/2:1.13.0-0ubuntu6.5 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in xorg-server (Ubuntu Quantal):
status: In Progress → Fix Committed
tags: added: verification-needed
Timo Aaltonen (tjaalton) wrote :

anyone able to test that the update fixes things?

wrapperband (drajdoyle) wrote :

Did I hold my breath for a year while this bug I reported was fixed?

Hi Timo Aaltonen (tjaalton) -

I would like to help, but I can't test it as my PC is busy,

Can you re-post when it's in the Repo's?

Be great to have 2 monitors, I've sort of got used to not having them....

Timo Aaltonen (tjaalton) wrote :

enable quantal-proposed, the update is in there..

Thomas Lundquist (thomasez) wrote :

I haven't had any issues, running Saucy now.

Consider it fixed, is my suggestion. Thanks.

tags: added: verification-done
removed: verification-needed

The verification of this Stable Release Update has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regresssions.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package xorg-server-lts-quantal - 2:1.13.0-0ubuntu6.5~precise1

---------------
xorg-server-lts-quantal (2:1.13.0-0ubuntu6.5~precise1) precise; urgency=low

  * sync from quantal-proposed
 -- Timo Aaltonen <email address hidden> Tue, 29 Oct 2013 15:10:01 +0200

Changed in xorg-server-lts-quantal (Ubuntu):
status: Invalid → Fix Released
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package xorg-server - 2:1.13.0-0ubuntu6.5

---------------
xorg-server (2:1.13.0-0ubuntu6.5) quantal-proposed; urgency=low

  [ Maarten Lankhorst ]
  * add patch to fix starting xorg-server with no outputs connected (LP: #1122072)
    - fixup-headless.patch

  [ Shih-Yuan Lee ]
  * Add 238-fix-erratic-cursor-movement.patch to fix erratic cursor movement
    when using cursor movement when using "Coordinate Transformation Matrix".
    (LP: #1212123)

  [ Timo Aaltonen ]
  * Fix patch 500 to apply.
  * dix-fix-zaphod-screen-crossing.diff: Fix pointer screen crossing. (LP: #1068920)
 -- Maarten Lankhorst <email address hidden> Tue, 12 Feb 2013 15:18:32 +0100

Changed in xorg-server (Ubuntu Quantal):
status: Fix Committed → Fix Released
Rolf Leggewie (r0lf) wrote :

quantal has seen the end of its life and is no longer receiving any updates. Marking the quantal task for this ticket as "Won't Fix".

Changed in xorg-server-lts-quantal (Ubuntu Quantal):
status: In Progress → Won't Fix
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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