Mouse scrolling works randomly with games using DGA for mouseinput

Bug #953960 reported by Alexander
32
This bug affects 6 people
Affects Status Importance Assigned to Milestone
xorg-server (Ubuntu)
Expired
Low
Unassigned

Bug Description

Here's an interesting problem:

Games like Warsow and QuakeLive (probably all other freebie q-engine-fps'es like Xonotic, etc too) use DGA by default for mouse input. Albeit being a bit ancient way already, it's default for all of these games (in_dgamouse).

The huge problem is, with 12.04 version of X, mouse scroll works completely randomly through DGA input, and more you press keys from the keyboard, more the scroll gets stuck. I have development version of Warsow which supports input through Xinput2, but scrolling doesn't work correctly through Xinput2 either. Reading input directly from evdev does not have this problem (or 11.10).

1) Expected: Mouse scroll respons on up/down scrolling.

2) What happens: Mouse scroll doesn't respond at all, respons randomly, or respons only after you stop pushing keys from the keyboard. It gets especially bad if you move / press keyboard while trying to scroll - then it doesn't respond at all. If you let go of movement keys, it takes around 1-2 seconds before mouse scroll respons again. Stops responding again on stressing the keyboard input.

3) How to reproduce: Bind next/previous weapon in any quake-derivated game or *ANY game that uses dgamouse* for input to MWHEELUP/MWHEELDOWN, press keyboard while doing it (regular in-game movement for example), and see how mouse scroll stops responding.

This basically breaks every single game I play on Linux.

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: libxxf86dga1 2:1.1.2-1
ProcVersionSignature: Ubuntu 3.2.0-18.29-generic 3.2.9
Uname: Linux 3.2.0-18-generic x86_64
ApportVersion: 1.94.1-0ubuntu2
Architecture: amd64
Date: Tue Mar 13 13:43:42 2012
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release amd64 (20111012)
SourcePackage: libxxf86dga
UpgradeStatus: Upgraded to precise on 2012-03-12 (0 days ago)

Revision history for this message
Alexander (alexander-) wrote :
Revision history for this message
Alexander (alexander-) wrote :

This should be worked on asap and block / delay the 12.04 release altogether - not being to able to play anything due borked mouse wheel support is just unacceptable.

Timo Aaltonen (tjaalton)
affects: libxxf86dga (Ubuntu) → xorg-server (Ubuntu)
Revision history for this message
Launchpad Janitor (janitor) wrote :

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

Changed in xorg-server (Ubuntu):
status: New → Confirmed
Revision history for this message
Mirco (0cs935kb517wwmwa7m9428daadkyev-mail) wrote :

I can confirm this. Also happens in OpenArena at 12.04.

Revision history for this message
Alexander (alexander-) wrote :

So I assume the only fix for this will be installing Windows back. Sigh. Does anyone except this Janitor bot even read these reports?

tags: added: i386
Revision history for this message
Alexander (alexander-) wrote :

Any hope someone will ever take a look at this?

Kinda no reason to boot back to Ubuntu anymore when the only game I play doesn't work due a broken mouse support. How can you break sucha basic things as scroll input in an LTS cycle? Mouse scrolling still this works at 11.10...

Revision history for this message
Alexander (alexander-) wrote :

Could you please revert back to 11.10 version of X.org and ship it to 12.04 users as simple things like mouse wheel not working is unacceptable.

Revision history for this message
Alexander (alexander-) wrote :

I'm willing to pay for someone to fix this.

Revision history for this message
Alexander (alexander-) wrote :

Possibly manually downloading 11.10 X packages and sudo dpkg -i --force-all *.deb could work to fix this.

Revision history for this message
Marcin Slusarz (marcin-slusarz) wrote :

I believe bug description is wrong. Just moving mouse was enough to make scroll not working. I said "was", because I fixed this a few days ago - see http://cgit.freedesktop.org/xorg/xserver/commit/?id=2d4fda4b09e67e47d3e6fc4743fc6e81bfe40f28 .

Revision history for this message
Jargon Scott (jarglpa) wrote :

Thanks for fixing the bug, Marcin. :)

For the rest of us:

The most recent release of the X.Org server at the time of this writing, xorg-server-1.12.2.901, still has the bug. Ubuntu 12.04 (Precise) ships with X.org server 1.11.4, and the most recent tagged version on this branch, xorg-server-1.11.99.902, also has the bug.

Unless the fix finds its way back into the X.Org server 1.11 branch, I wouldn't expect to see this bug fixed in Ubuntu 12.04 (Precise) at all. If the only way to fix this bug is to upgrade all of the X.Org packages to a newer branch (1.12 or beyond), then the Ubuntu maintainer who wanted such a change would have to justify why he needed to upgrade so many important packages at once. That's a tall order.

Arguing for such a big change seems like it would be especially difficult because (a) 12.04 is an LTS release and (b) the problem doesn't cause severe problems in packages other than games.

Revision history for this message
Alexander (alexander-) wrote :

Big change? The patch is barely few lines.

I don't think leaving gamers wait another 6 months with buggy non-working release in hands is any option (I've already waited for almost 4 months..). No wonder Linux doesn't succeed on desktop... I thought whole point of LTS was it gets bugfixes for years to come. Sigh...

I don't wanna sound trollish but I'm just so frustrated with this bug. Guess I'll just have to 'eat it' and go buy that Windows 7.

Revision history for this message
Jargon Scott (jarglpa) wrote :

No worries, Alexander: I'm on your side. :) I found your bug report because I, too, was unable to play my favorite games on my favorite operating system.

While it's true that Marcin's patch is small, don't forget that it hasn't yet appeared in xorg-server-1.11.99.902 or xorg-server-1.12.2.901.

This means that if some enterprising Ubuntu developer wanted to roll the fix into the X.Org server shipped with 12.04, it would be his responsibility to make sure that the change didn't break anything across any of the other 70 xserver-xorg-* packages. That alone is hard enough to do-- even trivial changes tend to expose bugs elsewhere. But even if the enterprising developer did all that work, he should expect his support from upstream to be minimal, given that he'd be integrating pieces that hadn't yet been "signed off" as ready to use. And woe be him if even one bug would appear elsewhere: he'd have people asking him why he introduced bugs into a stable LTS release.

So in effect, when we ask a maintainer to integrate the mousewheel patch, we're asking them to take on 71 high-profile packages' worth of risk-- with the understanding that they will likely not receive any support-- on unreleased code that no one has yet had a chance to hammer on.

Viewed from this angle, the developer would make better use of his time (and not risk his reputation) by waiting for Marcin's bugfix to be merged into an official release of the X.Org server upstream. Then, after the fix found its way into Debian testing, he could submit an SRU request (see https://wiki.ubuntu.com/StableReleaseUpdates ) to have the newer X.Org server (and perhaps its 70 related X.Org packages) packaged for Ubuntu 12.04.

This is why I say it's unlikely we'll see this bug fixed in 12.04.

We've got to wait for a new upstream release of the X.Org server that incorporates this change, then we've got to wait for Debian to accepting the new version into Debian testing, and then we've got to lobby a developer to submit an SRU request for the new version of X.Org.

Revision history for this message
Marcin Slusarz (marcin-slusarz) wrote :

This patch is in xorg-server-1.12.2.901. Can you still reproduce it on this version?

Note that this bug can be workarounded by disabling smooth scrolling on xf86-input-evdev side - it's one line change:

diff --git a/src/evdev.h b/src/evdev.h
index 309b215..1333bc1 100644
--- a/src/evdev.h
+++ b/src/evdev.h
@@ -64,7 +64,7 @@
 #endif

 #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 14
-#define HAVE_SMOOTH_SCROLLING 1
+//#define HAVE_SMOOTH_SCROLLING 1
 #endif

 #define EVDEV_MAXBUTTONS 32

That's what I'm running right now...

Revision history for this message
Jargon Scott (jarglpa) wrote :

Marcin, you're right. The patch is, in fact, in xorg-server-1.12.2.901 . I was wrong in comments #11 and #13.

Alexander: If you switch over to the "xorg-edgers" PPA ( https://launchpad.net/~xorg-edgers/+archive/ppa ), you might be gaming again in no time. They adopted the bug-fixed xorg-server-1.12.2.901 on June 24, 2012.

If the xorg-edgers PPA works for you, please be sure to comment on this bug report so that other people who find it might benefit from it.

Revision history for this message
Alexander (alexander-) wrote :

Well, for me xorg-edgers version just segfaults with ati's proprietary driver... :/ Or ati's driver crashes, I don't know. Either way, no help for me (tried 12.4 version of catalyst too).

Revision history for this message
Alexander (alexander-) wrote :

Anyway, I already bought Windows 7 for my box and I don't think I'll bother fighting with these random problems again, I already waited for several months hoping this would get fixed. I mean really, moving the mouse kills mouse scroll and it doesn't get patched, in a release which is supposed to be LTS? Especially considering the bug was reported 2 months prior the release...

Thanks for suggesting solutions and helping anyway. Maybe I'll re-try Linux when 14.04 comes out, assuming sucha complex things as mouses work :)

Revision history for this message
Allan Bruno Petersen (metalight) wrote :

Here's a workaround:
SDL_VIDEO_X11_DGAMOUSE=0

/Allan

Revision history for this message
Jargon Scott (jarglpa) wrote :

Thank you, Allan.

I have confirmed that your workaround -- setting the environment variable SDL_VIDEO_X11_DGAMOUSE=0 -- solves the problem for me.

Revision history for this message
Alexander (alexander-) wrote :

Doesn't solve anything for me in either Warsow or in Quakelive.

Revision history for this message
Marcin Slusarz (marcin-slusarz) wrote :

Well, you can disable DGA in Warsow by "/in_dgamouse 0", but it makes the game unplayable.

Revision history for this message
Allan Bruno Petersen (metalight) wrote :

If the above workaround doesn't work for you, you can disable DGA entirely in your xorg.conf:

Section "Module"
        SubSection "extmod"
                Option "omit xfree86-dga"
        EndSubSection
EndSection

That will take care of the remaining cases.
Some things use DGA for special resolution screens, they will now fallback to resizing your desktop resolution during runtime.

/Allan

Revision history for this message
Alexander (alexander-) wrote :

Disabling DGA isn't a solution when it makes games unplayable. Fixing it is.

Revision history for this message
Jargon Scott (jarglpa) wrote :

Confirming that this bug no longer appears in Ubuntu 12.10 with xserver-xorg-core 1.13.0-0ubuntu6 .

Revision history for this message
penalvch (penalvch) wrote :

Alexander, this bug was reported a while ago and there hasn't been any activity in it recently. We were wondering if this is still an issue? If so, could you please test for this with the latest development release of Ubuntu? ISO images are available from http://cdimage.ubuntu.com/daily-live/current/ .

If it remains an issue, could you please run the following command in the development release from a Terminal (Applications->Accessories->Terminal), as it will automatically gather and attach updated debug information to this report:

apport-collect -p xorg-server REPLACE-WITH-BUG-NUMBER

Please note, given that the information from the prior release is already available, doing this on a release prior to the development one would not be helpful.

Thank you for your understanding.

Helpful bug reporting tips:
https://wiki.ubuntu.com/ReportingBugs

Changed in xorg-server (Ubuntu):
importance: Undecided → Low
status: Confirmed → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for xorg-server (Ubuntu) because there has been no activity for 60 days.]

Changed in xorg-server (Ubuntu):
status: Incomplete → Expired
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.