Bug 15259

Summary: [i945] tiling corruption with OpenGL
Product: Drivers Reporter: Alexandre Demers (alexandre.f.demers)
Component: Video(DRI - Intel)Assignee: Chris Wilson (chris)
Severity: normal CC: jbarnes, maciej.rutecki, rjw
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.33-rc4 Subsystem:
Regression: Yes Bisected commit-id:
Bug Depends on:    
Bug Blocks: 14885    
Attachments: XBMC results

Description Alexandre Demers 2010-02-08 13:19:07 UTC
Ever since the big DRM inclusion in 2.6.33-rc4, some icons on Cairo Dock and in XBMC are not displayed correctly on my aspire one (i945). With Cairo Dock (using OpenGL), icons are displayed with empty interlaced lines, some widgets are also experiencing this same behaviour. On mouse over, icons flicker. The problem is not seen if I start Cairo Dock without OpenGL. On XBMC, it's pretty much the same thing that's happening with some icons (stop button, mouse icon, moving news text, description and date, etc.). On gnome desktop, pressing alt-tab to go from one window to the other shows the same glitch.

When I go back to versions prior to 2.6.33-rc4, the glitch disappears. Since I'm on Ubuntu, I tried updating libdrm, mesa and Xorg video driver to the latest versions through Xorg-Edgers PPA : however, the problem is still there. So, it means the problem arises from the kernel, not from a library or the Xorg i915 driver. It's trigged by a DRM modification in the kernel.
Comment 1 Alexandre Demers 2010-02-08 18:31:14 UTC
By the way, I didn't mention it, but the problem is still there up until now (RC7), I experienced it in each RC since RC4.
Comment 2 Alexandre Demers 2010-02-08 19:56:05 UTC
Problem also seen on some OpenGL screensavers (ex.: Euphoria, Flux, Solar Wind, but not on Bitmap Flag or KPendulum).
Comment 3 Jesse Barnes 2010-02-09 23:38:22 UTC
Would it be possible to bisect into the merge to see exactly which commit caused the problem?  Also, please try different versions of the X driver, iirc we had some rendering issues with that recently that may be exposed with new kernels, but hopefully they're fixed now.
Comment 4 Alexandre Demers 2010-02-10 19:45:13 UTC
OK, I'll use the 2.6.33-rc3 and merge one at a time the DRM commits. I hope I'll find it easily. However, I don't have time to do it before friday.

About the X driver, I'm using 2.9.0. However, I tested version 2.9.1 with updated libdrm and mesa against different kernel versions (rc3 and above), and with version 2.10.0 with updated libdrm and mesa (all from PPA Xorg-edgers). The problem appeared with rc4 and above, but not with prior version (rc3). So I'm pretty sure it comes from one of the commits in the kernel.

So, I'll be back on the track friday.
Comment 5 Jesse Barnes 2010-02-11 18:07:50 UTC
Great, thanks.  You might try the drm-intel-next branch from the drm-intel tree at git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel.git, that has our very latest fixes.  There have also been a good number of libdrm fixes landed recently, Xorg edgers may include those now...
Comment 6 Alexandre Demers 2010-02-11 20:58:25 UTC
Well, quickly, I tested the latest kernel version under drm-intel-next available (2.6.33-997-20100211) from http://kernel.ubuntu.com/~kernel-ppa/mainline/drm-intel-next/current/. The problem was still there. I then upgraded to the latest X driver (2.10.0), mesa and libdrm from Xorg Edger (code tagged from 20100210). Conclusion : the problem persisted. So either the kernel from ubuntu doesn't contain the latest fixes or it's not fixed at all.

I don't have other choices than to bisect commits linked to drm/i915 between rc3 and rc4. I'll do it tonight and tomorrow. I'll give you my results when completed. It may not come from the kernel, but as you stated previously, it may now be exposed from a commit. I'll find from which commit it comes from, then we'll see if it's caused by it or exposed by it.
Comment 7 Alexandre Demers 2010-02-14 21:42:33 UTC
Ok, I found out the commit in question. I retrieved eevery commits related to the general DRM or i915. When I apply commit 76446cac68568fc7f5168a27deaf803ed22a4360, named drm/i915: execbuf2 support, pushed on January 6th, the problem appears.

How can I help you from here?
Comment 8 Rafael J. Wysocki 2010-02-14 21:53:47 UTC
First-Bad-Commit : 76446cac68568fc7f5168a27deaf803ed22a4360

commit 76446cac68568fc7f5168a27deaf803ed22a4360
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Thu Dec 17 22:05:42 2009 -0500

    drm/i915: execbuf2 support

    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    [ickle: Remove pre-emptive clear_fence_reg()]
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
    [anholt: Removed dmesg spam]
    Signed-off-by: Eric Anholt <eric@anholt.net>
Comment 9 Jesse Barnes 2010-02-19 20:48:37 UTC
Does the corruption still occur if you use the latest libdrm, 2.4.18?

Chris, can you take a look?
Comment 10 Alexandre Demers 2010-02-19 23:22:16 UTC
I tested libdrm 2.4.18 with kernel 2.6.33-rc8 and it's even worst than with libdrm from Ubuntu 9.10. Instead of having only some crippled elements under XBMC, everything is now displayed incorrectly.
Comment 11 Alexandre Demers 2010-02-21 05:41:08 UTC
I have to add something about XBMC using kernel 2.6.33-rc8 and libdrm 2.4.18:

I said that the corruption was worst because it's now on all the screen, not only limited to some components (text and icons overlapping background). However, I forgot to tell that there is a kind of pattern in the corruption since I installed libdrm 2.4.18. It's like there was a number of columns appearing created by the pattern of the corruptions (similar to random interlacing) : 10 columns wide (my screen is 1024X600) where I can still figure out the image or text through that randomly interlaced fence.

I also updated to latest Xorg-Edgers versions of libdrm (2.4.18+git20100217) + mesa (7.8) and Xorg driver (2.10.0). The problem was exactly the same as described above.

I then downgraded to stock libdrm (2.4.12), mesa (7.6) and xorg driver (2.9.0), but with kernel 2.6.33-rc8, and the corruption went back to being limited to what it was prior updating libdrm (mostly some overlay icons and text, like if it was interlaced and/or wrongly sized (I saw a jpeg picture being displayed twice next to the other and randomly interlaced in one of the widget of Cairo dock)).

I hope it can help your search in a way or another.
Comment 12 Alexandre Demers 2010-03-04 04:04:56 UTC
I didn't hear anything since my last comment. I was wondering if I could be of any other help?
Comment 13 Alexandre Demers 2010-03-21 21:08:16 UTC
I'll be upgrading my netbook from to Ubuntu 10.04 beta1 tomorrow. I'll then test with the latest kernel (2.6.34-rc2), latest stable libdrm, latest stable libpixman and latest stable intel driver. I could also have a look at Mesa if you think it could be usefull? I'll give an update in the next couple of days.
Comment 14 Alexandre Demers 2010-03-24 14:46:45 UTC
Created attachment 25687 [details]
XBMC results

This is what I get when using kernel 2.6.33 with the combination previously enumerated for the worst case.
Comment 15 Alexandre Demers 2010-03-24 14:48:10 UTC
I couldn't update to the latest version as wished, I'll let you know once done.
Comment 16 Alexandre Demers 2010-05-29 03:35:14 UTC
Well, it was the end of the semester, Ubuntu was about to release a new version, as for Fedora, so I didn't had time to test anything new. However, I installed Fedora 13 (which uses a more recent kernel, mesa stack and so on) than Ubuntu and everything is now fine... for now at least. I've only tested it today, so I'll play with it a bit and if everything is fine, I'll come back to tell you the bug can be closed.
Comment 17 Alexandre Demers 2010-06-01 12:58:04 UTC
Tested and everything is now fine with the latest stack. Closing bug.