Forwarding this bug from Ubuntu reporter Jonathan Voss:
Mouse cursor corruption when switching users with an older ATI card
I'm guessing the box is 64x64 pixels. It's got horizontal lines across it. The mouse pointer looks completely normal in screenshots, so I am including a picture taken with my phone.
It looked messed up in the same way on the other account, and continues to look messed up now that I have switched back. It still functions normally, but it's a little hard to know where you're clicking since the actual pointer seems to be a bit away from the upper left corner of this box.
I've just reproduced it twice tonight. It seems to happen randomly when switching to other accounts or to the login screen. I can't get it to happen consistently however so it's hard to tell what's causing it. Since my last reboot, I've switched through a bunch of accounts, gnome3, unity, and unity 2d, without getting the mouse corruption.
By the way, I use a program called redshift, which causes a reddish hue at night, as can be seen in the picture. Redshift does not appear to affect the mouse pointer though. It may also cause this bug I guess.
DistroRelease: Ubuntu 12.04
Package: xorg 1:7.6+10ubuntu1
ProcVersionSignature: Ubuntu 3.2.0-14.23-generic 3.2.3
Uname: Linux 3.2.0-14-generic i686
Date: Thu Feb 9 21:35:01 2012
DistUpgraded: Log time: 2012-01-29 13:29:25.075442
ExtraDebuggingInterest: Yes, whatever it takes to get this fixed in Ubuntu
Advanced Micro Devices [AMD] nee ATI R423 UK [Radeon X800SE (PCIE)] [1002:554b] (prog-if 00 [VGA controller])
Subsystem: C.P. Technology Co. Ltd Device [148c:2154]
Subsystem: C.P. Technology Co. Ltd Device [148c:2155]
InstallationMedia: Ubuntu 10.04.1 LTS "Lucid Lynx" - Release i386 (20100816.1)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 003: ID 0bc2:0503 Seagate RSS LLC
Bus 002 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver
MachineType: System manufacturer System Product Name
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.2.0-14-generic root=UUID=9735bb88-e60b-48fc-8db3-4153611e79a3 ro quiet splash vt.handoff=7
UpgradeStatus: Upgraded to precise on 2012-02-08 (1 days ago)
dmi.bios.vendor: Phoenix Technologies, LTD
dmi.bios.version: ASUS A8N5X ACPI BIOS Revision 0502
dmi.board.vendor: ASUSTeK Computer INC.
dmi.chassis.vendor: Chassis Manufacture
dmi.chassis.version: Chassis Version
dmi.product.name: System Product Name
dmi.product.version: System Version
dmi.sys.vendor: System manufacturer
version.compiz: compiz 1:0.9.6+bzr20110929-0ubuntu8
version.libdrm2: libdrm2 2.4.30-1ubuntu1
version.libgl1-mesa-dri: libgl1-mesa-dri 8.0~rc2-0ubuntu4
version.libgl1-mesa-dri-experimental: libgl1-mesa-dri-experimental N/A
version.libgl1-mesa-glx: libgl1-mesa-glx 8.0~rc2-0ubuntu4
version.xserver-xorg-core: xserver-xorg-core 2:1.11.3-0ubuntu10
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev 1:18.104.22.1681-1ubuntu3
version.xserver-xorg-video-ati: xserver-xorg-video-ati 1:6.14.99~git20111219.aacbd629-0ubuntu2
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.17.0-1ubuntu3
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau 1:0.0.16+git20111201+b5534a1-1build2
Created attachment 57834 [details]
Created attachment 57835 [details]
Created attachment 57836 [details]
Created attachment 57837 [details]
Created attachment 57853 [details] [review]
Restrict offset for legacy hardware cursor.
Does this kernel patch fix the problem?
Created attachment 58066 [details] [review]
Verbose test patch
In order to facilitate testing, here's another version of the fix which prints a message
[drm] Fixing large cursor offset 0xXXXXXXXX >= 0x08000000
when the suspected problem would have occurred. So if such a message appears in dmesg but the cursor is unharmed, we know this is indeed the proper fix.
This is a bit above my head I think. I got the source for xserver-xorg-video-ati from the Ubuntu repositories and tried to apply the patch to it. It looks like a lot of the right files are there, but there's no radeon_gem.c. The package version is 6.14.99~git20111219.aacbd629-0ubuntu2, which includes a date that I think indicates that it's not TOO old, however I cloned the git repository at git://anongit.freedesktop.org/xorg/driver/xf86-video-ati and had the same problem. I've also never tested a kernel mod so I'm not sure what I would do if I got the patch to compile.
(In reply to comment #7)
> I got the source for xserver-xorg-video-ati from the Ubuntu repositories and
> tried to apply the patch to it.
That can't work, as the patch is for the kernel, not the X driver.
You should be able to get the source for your running kernel with
apt-get source linux-image-$(uname -r)
> I've also never tested a kernel mod so I'm not sure what I would do if
> I got the patch to compile.
Boot the patched kernel (or load the patched radeon kernel module) and try to reproduce the problem. Look for the message from comment #6 in dmesg.
This patch causes my computer to crash at login. However, it's not a super bad crash because I was able to ssh in and check dmesg. The comment did not appear. Just to make sure it wasn't something I did when trying to compile a kernel, I reversed the patch and recompiled, and I'm running that kernel now, so I'm pretty sure it's the patch.
Created attachment 58312 [details] [review]
Verbose test patch with crash fixed
(In reply to comment #9)
> This patch causes my computer to crash at login. However, it's not a super bad
> crash because I was able to ssh in and check dmesg.
Sorry about that, here's another test patch which shouldn't crash.
I think this patch works as intended. Well actually, it's hard for me to say it actually fixed the problem due to its random nature, but I haven't had the mouse corruption issue on this patched driver, and the message appears in dmesg:
[ 524.112945] [drm] Fixing large cursor offset 0x0d1e0000 >= 0x00000000
[ 537.020931] [drm:drm_mode_getfb] *ERROR* invalid framebuffer id
[ 537.308976] [drm] Fixing large cursor offset 0x0cf80000 >= 0x00000000
[ 607.000940] [drm:drm_mode_getfb] *ERROR* invalid framebuffer id
I have to say that the log confuses me since 1 << 27 is not 0.
Created attachment 58436 [details] [review]
(In reply to comment #11)
> [...] I haven't had the mouse corruption issue on this patched driver, and the
> message appears in dmesg:
Okay, so an unpatched driver probably would use too large offsets sometimes, which would definitely explain the corrupted cursor. So the fix seems to be working.
> I have to say that the log confuses me since 1 << 27 is not 0.
Indeed, but that's just a bug of the DRM_INFO call. :) (Type mismatch between format string and values)
I'm attaching the fix as I submitted it for inclusion into the kernel.
Duplicate of #36769, perhaps?
A patch referencing this bug report has been merged in Linux v3.4-rc1:
Author: Michel DÃ¤nzer <firstname.lastname@example.org>
Date: Wed Mar 14 17:12:41 2012 +0100
drm/radeon: Restrict offset for legacy hardware cursor.
Resolving per comment #14, reopen if you're still seeing the problem with the fix.
*** Bug 36769 has been marked as a duplicate of this bug. ***