Bug 94110

Summary: [sna] corrupted images (horizontal lines)
Product: xorg Reporter: Pavel Cahyna <pavel+bzilla>
Component: Driver/intelAssignee: Chris Wilson <chris>
Status: RESOLVED DUPLICATE QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: normal    
Priority: medium CC: ben, joel.bourquard
Version: unspecifiedKeywords: regression
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Screenshot 1
none
Screenshot 2
none
Screenshot of a similar issue on i915 none

Description Pavel Cahyna 2016-02-12 10:35:33 UTC
Created attachment 121705 [details]
Screenshot 1

I often see corrupted images, most often in firefox, but also in other applications. The corruption appears as horizontal lines, two pixels tall, every other line has its contents shifted by 16 pixels horizontally with respect to the adjacent line, creating a haircomb-like pattern. The problem appears both with compiz (compositing) and marco (non-compositing) window managers.

I am using xserver-xorg-video-intel-lts-vivid on Ubuntu trusty, package version is 2:2.99.917-1~exp1ubuntu2.2~trusty1. Xorg.0.log says

X.Org X Server 1.17.1
Release Date: 2015-02-10
X Protocol Version 11, Revision 0
Build Operating System: Linux 3.19.0-28-generic x86_64 Ubuntu
Current Operating System: Linux hapepa 3.19.0-49-generic #55~14.04.1-Ubuntu SMP Fri Jan 22 11:24:31 UTC 2016 x86_64
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.19.0-49-generic root=/dev/mapper/VolGroup-ubu_mate ro quiet splash vt.handoff=7
Build Date: 11 September 2015  10:33:14AM
xorg-server 2:1.17.1-0ubuntu3.1~trusty1 (For technical support please see http://www.ubuntu.com/support)
(...)
(--) intel(0): Integrated Graphics Chipset: Intel(R) G35

I tried to upgrade to xserver-xorg-video-intel-lts-wily (version 2:2.99.917+git20150808-0ubuntu4~trusty2), and the problem appeared even in the login screen (lightdm). Interestingly, the problem did not appear when using the Intel Linux graphics installer from 01.org, version 1.0.7, which had xserver-xorg-video-intel version 2.99.911-0intel1. As my current version is higher, I believe it could be called a regression.

Setting Option      "AccelMethod"  "uxa" in xorg.conf.d fixes it.
Comment 1 Pavel Cahyna 2016-02-12 10:36:41 UTC
Created attachment 121706 [details]
Screenshot 2
Comment 2 Benjamin Hodgetts 2016-02-25 15:23:56 UTC
Same here on xf86-video-intel 1:2.99.917+552+ge41040f-1 (Arch Linux).

The only machines experiencing corruption show under lspci as "Intel Corporation 4 Series Chipset" as the VGA adapter. It's not all Intel GPU machines as there are other machines with Intel onboard graphics which are fine (either newer or older chipsets).
Comment 3 Chris Wilson 2016-02-25 15:32:36 UTC
commit 5eb3e5a5e11d14f9deb2a4b83555443b69ab9940
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Jun 28 09:19:26 2015 +0100

    drm/i915: Declare the swizzling unknown for L-shaped configurations
    
    The old style of memory interleaving swizzled upto the end of the
    first even bank of memory, and then used the remainder as unswizzled on
    the unpaired bank - i.e. swizzling is not constant for all memory. This
    causes problems when we try to migrate memory and so the kernel prevents
    migration at all when we detect L-shaped inconsistent swizzling.
    However, this issue also extends to userspace who try to manually detile
    into memory as the swizzling for an individual page is unknown (it
    depends on its physical address only known to the kernel), userspace
    cannot correctly swizzle.
    
    Note that this is a new attempt for the previously merged one,
    reverted in
    
    commit d82c0ba6e306f079407f07003e53c262d683397b
    Author: Daniel Vetter <daniel.vetter@ffwll.ch>
    Date:   Tue Jul 14 12:29:27 2015 +0200
    
        Revert "drm/i915: Declare the swizzling unknown for L-shaped configurations"
    
    This is cc: stable since we need it to fix up troubles with wc cpu
    mmaps that userspace recently started to use widely.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91105
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: stable@vger.kernel.org
    [danvet: Add note about previous (failed attempt).]
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

*** This bug has been marked as a duplicate of bug 91105 ***
Comment 4 Chris Wilson 2016-02-25 15:34:11 UTC
Hmm, desktop so you actually want:

commit 5eb3e5a5e11d14f9deb2a4b83555443b69ab9940
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Jun 28 09:19:26 2015 +0100

    drm/i915: Declare the swizzling unknown for L-shaped configurations
    
    The old style of memory interleaving swizzled upto the end of the
    first even bank of memory, and then used the remainder as unswizzled on
    the unpaired bank - i.e. swizzling is not constant for all memory. This
    causes problems when we try to migrate memory and so the kernel prevents
    migration at all when we detect L-shaped inconsistent swizzling.
    However, this issue also extends to userspace who try to manually detile
    into memory as the swizzling for an individual page is unknown (it
    depends on its physical address only known to the kernel), userspace
    cannot correctly swizzle.
    
    Note that this is a new attempt for the previously merged one,
    reverted in
    
    commit d82c0ba6e306f079407f07003e53c262d683397b
    Author: Daniel Vetter <daniel.vetter@ffwll.ch>
    Date:   Tue Jul 14 12:29:27 2015 +0200
    
        Revert "drm/i915: Declare the swizzling unknown for L-shaped configurations"
    
    This is cc: stable since we need it to fix up troubles with wc cpu
    mmaps that userspace recently started to use widely.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91105
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: stable@vger.kernel.org
    [danvet: Add note about previous (failed attempt).]
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

(same underlying issue)
Comment 5 Benjamin Hodgetts 2016-02-25 15:47:59 UTC
Chris, Arch's "2.99.917+552+ge41040f-1" version driver uses "git://anongit.freedesktop.org/xorg/driver/xf86-video-intel#commit=e41040f" as the base for the build which is dated 2016-02-16.

The commit that you've posted which apparently fixes the issue is dated Jun 28 2015.

Wouldn't I already be using your fix if that's the same issue?

You appear to have pasted the same thing both times btw.
Comment 6 Chris Wilson 2016-02-25 15:51:51 UTC
No, it was a kernel bug.
Comment 7 Benjamin Hodgetts 2016-02-25 16:11:58 UTC
You say "was". Do you know if it should still be an issue with Kernel 4.4.1? (which these machines are running). The discussions I'm seeing seem to think it was resolved long ago.
Comment 8 joel.bourquard 2016-06-13 22:10:35 UTC
Created attachment 124516 [details]
Screenshot of a similar issue on i915

I might have the same issue as you (see my screenshot).
This is on kernel 4.6.2 with i915.

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.