Bug 28497

Summary: Graphics corruption after opening a specific website
Product: xorg Reporter: Stefan Glasenhardt <stefan>
Component: Driver/intelAssignee: Chris Wilson <chris>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Screenshot of error in Firefox
none
Screenshot of after surfing to the website none

Description Stefan Glasenhardt 2010-06-11 01:18:54 UTC
Created attachment 36208 [details]
Screenshot of error in Firefox

Hi,

I'm getting graphics errors and screen corruptions with the latest git-version of the intel-driver.

The bug is very easy to reproduce for me :

Just open Firefox and surf to the website "www.windowsbase.de". Sometimes the errors are even worse and the xserver is crashing immediately.

The strange thing is, that Google Chrome does not trigger this error, but Epiphany Webkit does (Both based on Webkit). Perhaps a problem with Cairo?

intel-driver git (latest version)
libdrm 2.4.21
Linux vanilla 2.6.34
Comment 1 Stefan Glasenhardt 2010-06-11 01:20:25 UTC
Created attachment 36209 [details]
Screenshot of after surfing to the website
Comment 2 Chris Wilson 2010-06-22 06:11:01 UTC
Hmm, I'm sure I've just looked at this or a very similar bug... bug 28135. Stefan, can you attach your Xorg.log?
Comment 3 Chris Wilson 2010-06-22 06:12:23 UTC
Ah, I had forgotten entirely about the rendering corruption from that bug. :(
Comment 4 Chris Wilson 2010-06-23 10:47:15 UTC
Bah, I rewrote the handling of the over-sized sources and that site is still misrendered! Seems like I am barking up the wrong tree here.
Comment 5 Chris Wilson 2010-06-23 13:38:09 UTC
I found one bogosity in that site triggered firefox to create and handle a 5000x300 surface, for which we were using a pitch of 32,768 bytes. Apparently this exceeded the hardware limits and so was causing the GPU to misbehave. Having fixed that the site renders on the screen properly, but off-screen still has the same corruption. Bizarre.


commit 6d33e578de4e23336ac69cc3c5d0935a65d4dda1
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 23 21:28:50 2010 +0100

    Limit maximum tiled stride to 8k and untiled to 32k.
    
    Tiling on gen 2/3 hardware is only supported for pitches up to 8192
    bytes, so above this limit the surface will be untiled and we will no
    longer have to comply with the power-of-two pitch alignment. So
    disabling tiling for these too wide surface should ~halve the memory
    requirement for the full surface.
    
    Also the absolute limit for the 2D blitter is 32,768 bytes. The
    documentation says "up to 32,768 bytes" and my PineView box was
    malfunction with a surface stride of 32,768 so set the limit to be
    32,767.
    
    References:
    
      Bug 28497 - Graphics corruption after opening a specific website
      https://bugs.freedesktop.org/show_bug.cgi?id=28497
Comment 6 Chris Wilson 2010-06-23 15:59:36 UTC
commit b58a6a39c1568800938eb0e3ebc7664683b61200
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 23 23:56:44 2010 +0100

    uxa: Fallback to pixman if source is out-of-bounds
    
    If the source is outside the drawable, then CopyArea will fail to
    initialise the source correctly. The simplest fix in this case is to
    fallback to pixman to generate the source texture.
    
    Fixes:
    
      Bug 28497 - Graphics corruption after opening a specific website
      https://bugs.freedesktop.org/show_bug.cgi?id=28497
Comment 7 Stefan Glasenhardt 2010-06-24 04:59:26 UTC
Hi Chris,

Thanks for the work. I've tested the new version of the driver on two systems (i830-based and i945-based) and the rendering bug is now gone.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.