graphical corruption with multiple drivers and classic desktop

Bug #740387 reported by Marc Deslauriers on 2011-03-22
This bug affects 21 people
Affects Status Importance Assigned to Milestone
Ugo Riboni
metacity (Ubuntu)
Ugo Riboni
Ugo Riboni
xserver-xorg-video-intel (Ubuntu)

Bug Description

Binary package hint: xorg

When using classic desktop, I am seeing graphical corruption from incorrect damage handling. This happens on my Thinkpad T61 with binary nvidia driver, and my Thinkpad T510 with the intel driver.

It happens with the classic desktop when using metacity, I don't think I could see it when using compiz.

ProblemType: Bug
DistroRelease: Ubuntu 11.04
Package: xorg 1:7.6~3ubuntu11
ProcVersionSignature: Ubuntu 2.6.38-7.36-generic 2.6.38
Uname: Linux 2.6.38-7-generic x86_64
Architecture: amd64
CompizPlugins: No value set for `/apps/compiz-1/general/screen0/options/active_plugins'
CompositorRunning: None
Date: Tue Mar 22 14:46:02 2011
DistUpgraded: Fresh install
DistroCodename: natty
DistroVariant: ubuntu
 Intel Corporation Core Processor Integrated Graphics Controller [8086:0046] (rev 02) (prog-if 00 [VGA controller])
   Subsystem: Lenovo Device [17aa:21d9]
InstallationMedia: Ubuntu 11.04 "Natty Narwhal" - Alpha amd64 (20110302)
MachineType: LENOVO 4313CTO
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-2.6.38-7-generic root=UUID=66b32bb3-1e18-436e-8f6e-62b8419ed48d ro quiet splash vt.handoff=7
Renderer: Unknown
SourcePackage: xorg
UpgradeStatus: No upgrade log present (probably fresh install) 10/26/2010
dmi.bios.vendor: LENOVO
dmi.bios.version: 6MET81WW (1.41 ) 4313CTO
dmi.board.vendor: LENOVO
dmi.board.version: Not Available
dmi.chassis.asset.tag: No Asset Information
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: Not Available
dmi.modalias: dmi:bvnLENOVO:bvr6MET81WW(1.41):bd10/26/2010:svnLENOVO:pn4313CTO:pvrThinkPadT510:rvnLENOVO:rn4313CTO:rvrNotAvailable:cvnLENOVO:ct10:cvrNotAvailable: 4313CTO
dmi.product.version: ThinkPad T510
dmi.sys.vendor: LENOVO
version.compiz: compiz 1:0.9.4-0ubuntu7
version.libdrm2: libdrm2 2.4.23-1ubuntu5
version.libgl1-mesa-glx: libgl1-mesa-glx 7.10.1-0ubuntu3
version.xserver-xorg: xserver-xorg 1:7.6~3ubuntu11
version.xserver-xorg-video-ati: xserver-xorg-video-ati 1:6.14.0-0ubuntu4
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.14.0-4ubuntu4
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau 1:0.0.16+git20110107+b795ca6e-0ubuntu6

Marc Deslauriers (mdeslaur) wrote :
Marc Deslauriers (mdeslaur) wrote :
Bryce Harrington (bryce) wrote :

Even though it may look the same, let's handle the issue on the -intel box here and the -nvidia issue on a separate bug report (different upstreams, etc.)

Are both of the attached screenshots for the -intel box?

In the first screenshot I notice overlapped icons and a black smudge over the trashcan. Is it just the latter which you consider to be corruption, or both?

description: updated
affects: xorg (Ubuntu) → xserver-xorg-video-intel (Ubuntu)
Changed in xserver-xorg-video-intel (Ubuntu):
status: New → Incomplete
Marc Deslauriers (mdeslaur) wrote :

Both screenshots are from the -intel box.

The black smudge over the trashcan is the corruption, the overlapped icons is normal.

Marc Deslauriers (mdeslaur) wrote :

See bug 740422 for issue on -nvidia.

Michael Vogt (mvo) wrote :

For me the corruption looks this: (on intel)

Bryce Harrington (bryce) wrote :

<mdeslaur> bryceh: I can't seem to reproduce it at the moment with the DX patches ripped out
<bryceh> mdeslaur, 06_Add_UXD_shadows_and_borders.patch ?
<mdeslaur> bryceh: maybe, I'm trying to figure out which one now
<mdeslaur> but that,s the one that I suspect

tags: added: regression-release
Marc Deslauriers (mdeslaur) wrote :

Actually, I think it is the 16-capture-before-unmap.patch patch. If I set the /apps/metacity/general/capture_before_unmap gconf key to false, I can't seem to reproduce the issue anymore.

Changed in xserver-xorg-video-intel (Ubuntu):
status: Incomplete → Invalid
Michael Vogt (mvo) wrote :

Here is the releveant changelog entry:

  [ Ugo Riboni ]
  * debian/patches/16-capture-before-unmap: add an option to capture a
    pixmap of each window before it's unmapped (e.g. minimized or moved
    to another workspace. This is saved in a property of the window and
    can be retrieved by clients that want to display previews of these

Changed in metacity (Ubuntu):
status: New → Confirmed
importance: Undecided → High
Changed in unity-2d:
status: New → Confirmed
importance: Undecided → High
milestone: none → 3.10
Bryce Harrington (bryce) wrote :

Michael, would it be alright for us to disable that patch for the time being?

(We've got several corruption-ish bugs we're trying to resolve on the X side, and would make debugging a bit simpler to eliminate this one.)

Florian Boucault (fboucault) wrote :

Ugo (original writer of the patch) will look into the issue as we really need that patch to be in there and working properly for Unity 2D.
The GConf key /apps/metacity/general/capture_before_unmap is supposed to be set to false by default and only to true when logging in a Unity 2D session. Maybe this is not actually happening. We will look into it as well.

Changed in unity-2d:
assignee: nobody → Ugo Riboni (uriboni)
Changed in metacity (Ubuntu Natty):
milestone: none → ubuntu-11.04-beta-1
Bill Filler (bfiller) on 2011-03-29
Changed in unity-2d:
importance: High → Critical
Changed in unity-2d:
milestone: 3.10 → 3.8.2
Changed in metacity (Ubuntu Natty):
milestone: ubuntu-11.04-beta-1 → ubuntu-11.04-beta-2
Bill Filler (bfiller) wrote :

I was able to reproduce the corruption with /apps/metacity/general/capture_before_unmap set to false which rules out this patch being the problem.

I tested on natty using with nvidia graphics and natty beta and latest from unity-2d dpaily ppa. See attached video. This is how I am able to reproduce reliably:

1) make sure you have files on your desktop (not sure if this is required)
2) open two terminals and have them overlap
3) show dash using Super key
4) hide dash using Super key
5) show applications place by clicking on launcher
6) hide it pressing Super key
7) show dash pressing Super key
bang, the windows that were beneath the apps place are corrupted

Bill Filler (bfiller) wrote :
Bill Filler (bfiller) wrote :

verified bug occurs on -intel graphics as well

Simplier steps to reproduce:

1) open 2 terminals
2) bring up apps place
3) super key to hide apps place
4) super key to show dash
bang - corruption

Marc Deslauriers (mdeslaur) wrote :

Honestly, that doesn't look like exactly like the same type of corruption I was seeing, and I haven't seen corruption come back since I've disabled /apps/metacity/general/capture_before_unmap...

Bill Filler (bfiller) wrote :

Definitely could be multiple corruption issues here. It's pretty clear the one I am able to repnroduce is specific to unity-2d and is independent of capture_before_unmap setting. I will file a seperate bug to track the unity-2d specific problem.

Bill Filler (bfiller) wrote :

Filed bug 750753 to track the unity-2d specific corruption.

Please make sure the capture_before_unmap gconf setting is false by default. It should only be true when logging into unity-2d session.

Can you come up with a reliable way to reproduce the corruption without using unity-2d? We need a test case to help debug possible problems with that patch. Thanks

Marc Deslauriers (mdeslaur) wrote :

This is what I was doing to test:

1- On workspace 1, open firefox, and three terminals. Try and stagger windows
2- Do the same on workspace 2
3- for 10 minutes, switch between workspaces, and switch between windows

One of the first things to corrup was the garbage can icon in the botton left, and I think it's because of the tooltips popping up while alternatively clicking on workspace 1 and workspace 2.

Juan Carlos (arareka-ha) wrote :

Hi, I don't know if is the same bug, but I get corrupt icons on classic desktop. Here is a HP Probook 4535s with ATI Mobility Radeon HD 4200 Series using FGLRX drivers.

Ugo Riboni (uriboni) on 2011-04-06
Changed in unity-2d:
status: Confirmed → In Progress
Ugo Riboni (uriboni) wrote :

Marc, i tried repeating what you suggested and could not reproduce the corruption in the gnome session.

I have some examples of corruption that happen with unity-2d both with and without the patch (not just with the gconf setting turned off, but with the patch entirely reverted too) and I am investigating them.

But to be able to help on the gnome session issues what would really help would be a way to reproduce the bug consistently.

Marc Deslauriers (mdeslaur) wrote :

Could it be the fact that both my laptops have high resolution screens? one is 1920x1080 and the other is 1680x1050...

I'm not quite sure why you aren't able to reproduce it.

@Michael Vogt: do you have a reliable way of reproducing it?

Ugo Riboni (uriboni) wrote :

Marc, I'm running in a VM with a resolution close to your smaller screen, so I don't think that's the case.

JockeTF (jocketf) wrote :

I see corruption as well, when I right click on the desktop I often get this result:

As you can see, parts of the window and panel aren't redrawn (and they probably shouldn't be, the menu never covered the window nor the panel). The artifacts persists until I force the panel and window to redraw by moving them around or switching workspace. It seems to happen more often when I right click in the lower left corner of the desktop.

I also often get some strange results when a window is set to "always on top" and "visible on all workspaces" and I switch workspace:

The problem completely disappears when I start a compositing manager.

Martin Pitt (pitti) on 2011-04-08
Changed in metacity (Ubuntu Natty):
assignee: nobody → Ugo Riboni (uriboni)
Changed in unity-2d:
milestone: 3.8.2 → 3.10
Changed in unity-2d:
milestone: 3.10 → 3.8.4
Colin Watson (cjwatson) wrote :

What's supposed to be responsible for setting capture_before_unmap to true? Right now, it's simply set to true in metacity.schemas, which doesn't fit with how Bill is saying it's supposed to work.

I generally notice this problem when switching workspaces, although it doesn't happen in every such situation. The following is a reliable way to reproduce it for me. I have a grid of four horizontal by three vertical workspaces; I have C-A-1, C-A-2, ..., C-A-0 bound to switch to each of the first ten of those twelve workspaces, and C-A-Left, C-A-Right, C-A-Up, and C-A-Down bound to move around the workspace grid in the obvious way. At the moment, I have maximised terminals open in the first three workspaces (and others). If I start from workspace 1, press C-A-3 to switch to workspace 3, then hold down C-A and press Left twice to switch back through workspace 2 to workspace 1, I find that parts of the workspace switcher remain on screen even after releasing C-A. (Don't release C-A between the two Left presses, or this bug won't happen.) I've attached the resulting screen image.

Bill Filler (bfiller) wrote :

couple of things here:
- capture_before_unmap should be set to false by default in metacity.schemas, so that is a definitely a bug
- unity-2d package should set capture_before_unmap to true in it's debian/20_unity-2d-gconf-default file which sets the gconf defaults for the unity-2d session

We will provide merge requests for these two packages. Thanks for pointing it out, I thought it was already doing it this way.

Also, if you set capture_before_unmap = false can you reproduce the corruption?

Ugo Riboni (uriboni) wrote :

I just had a patch uploaded a few hours ago that makes sure that the "capture_before_unmap" key is disabled by default in the metacity package. It is waiting for approval.

@Colin: as Bill said having some extra information about if the corruption is still reproducible after that key is set to false would be helpful to us

Martin Pitt (pitti) wrote :

The recent metacity upload closed bug 759646, which seems to be the root cause for this bug. Can someone who is affected by this please test the latest version in natty and verify that this fixes it? We'll close the bug then. Thank you!

Martin Pitt (pitti) on 2011-04-15
Changed in metacity (Ubuntu Natty):
status: Confirmed → Fix Committed
Changed in unity-2d:
status: In Progress → Fix Committed
JockeTF (jocketf) wrote :

I can confirm that it fixes the bug. Thanks for the fix!

Changed in metacity (Ubuntu Natty):
milestone: ubuntu-11.04-beta-2 → natty-updates
milestone: natty-updates → ubuntu-11.04
Martin Pitt (pitti) on 2011-04-18
Changed in metacity (Ubuntu Natty):
status: Fix Committed → Fix Released
Changed in unity-2d:
status: Fix Committed → Fix Released
Alin (alin-popa) wrote :

Hi guys,

The same thing is happening for me too (Ubuntu 11.04, release, ATI Technologies Inc Cedar PRO [Radeon HD 5450], radeon module (not fglrx, this is happening on fglrx though).
I'm attaching a screenshot of this.

(Sorry if this is not the best place to report this, but after long searching, this was the 1st defect that seems very similar to what is happening for me)


Xeelee (alex-gaponline) wrote :
Download full text (12.4 KiB)

Also affects me too:

Natty (amd64) on a FSC S7110 with Intel graphics card (see lspci).

Symptom: Black boxes in panel appears and panel won't be refreshed...

$ lspci
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 2 (rev 02)
00:1c.2 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 3 (rev 02)
00:1d.0 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA AHCI Controller (rev 02)
00:1f.3 SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev 02)
02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8055 PCI-E Gigabit Ethernet Controller (rev 12)
05:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection (rev 02)
08:03.0 CardBus bridge: O2 Micro, Inc. OZ711MP1/MS1 MemoryCardBus Controller (rev 21)
08:03.4 FireWire (IEEE 1394): O2 Micro, Inc. Firewire (IEEE 1394) (rev 02)

$ cat /proc/cpuinfo | grep "model name"
model name : Intel(R) Core(TM)2 CPU T7400 @ 2.16GHz
model name : Intel(R) Core(TM)2 CPU T7400 @ 2.16GHz

$ glxinfo
name of display: :0.0
Xlib: extension "NV-GLX" missing on display ":0.0".
Xlib: extension "NV-GLX" missing on display ":0.0".
display: :0 screen: 0
direct rendering: No (If you want to find out why, try setting LIBGL_DEBUG=verbose)
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
    GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
    GLX_OML_swap_method, GLX_SGI_make_current_read, GLX_SGI_swap_control,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
    GLX_SGIX_visual_select_group, GLX_INTEL_swap_event
client glx vendor string: NVIDIA Corporation
client glx version string: 1.4
client glx extensions:
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_visual_info,
    GLX_EXT_visual_rating, GLX_EXT_import_cont...

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