Bug 47345

Summary: [Pineview GM] [UXA] display corruption when rendering dynamic HTML
Product: xorg Reporter: Thierry Reding <thierry.reding>
Component: Driver/intelAssignee: Chris Wilson <chris>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: git   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Xorg log
none
output of lspci -vv
none
reduced testcase
none
screenshot of the corruption
none
configure: Keep passed-in CFLAGS for DRI tests none

Description Thierry Reding 2012-03-15 04:05:39 UTC
Created attachment 58491 [details]
Xorg log

I've been seeing display corruption under some circumstances for some time
now. The issue can be easily reproduced with the attached reduced test case,
although it is not as reduced as I would have liked. The test case is from a
phone number dialing application. The corruption usually happens after
entering or clearing some numbers. I'm attaching a screenshot of a case where
the corruption is visible.

I'm also attaching the output of lspci and the Xorg.log. I'm using the Linux
kernel 3.1.10.

While investigating, I tried several of the options listed in the X driver's
manpage and noticed that the problem goes away when I put the following in a
file in the xorg.conf directory:

    Section "Device"
        Driver "intel"
        Identifier "intel"
        Option "DebugFlushBatches" "true"
    EndSection

Also it seems like the corruption cannot be reproduced when using SNA.
However SNA turned out to be somewhat unstable, but that should go into a
separate bug report.

Thierry
Comment 1 Thierry Reding 2012-03-15 04:06:16 UTC
Created attachment 58492 [details]
output of lspci -vv
Comment 2 Thierry Reding 2012-03-15 04:10:18 UTC
Created attachment 58493 [details]
reduced testcase

With this test-case I can reproduce the issue easily using
the GtkLauncher from WebKitGtk 1.7.5.
Comment 3 Thierry Reding 2012-03-15 04:11:03 UTC
Created attachment 58494 [details]
screenshot of the corruption
Comment 4 Chris Wilson 2012-03-15 04:19:15 UTC
The corruption is the line join the baseline of the "2222" and the rainbow line inside the textbox, right?
Comment 5 Thierry Reding 2012-03-15 04:29:38 UTC
(In reply to comment #4)
> The corruption is the line join the baseline of the "2222" and the rainbow line
> inside the textbox, right?

Yes. Although the corruption can be different. I've seen problems where
there's only the rainbow line, and the line width varies. Sometimes,
though much less often, it can also happen that the frame around the
textbox gets "displaced" downwards by some pixels, such that the top of
the frame is doubled.

If it helps I can try to get a screenshot of that particular case.

Thierry
Comment 6 Chris Wilson 2012-03-15 04:34:10 UTC
In http://cgit.freedesktop.org/~ickle/xf86-video-intel/log/?h=uxa I've put some patches to dumb down UXA slightly. Can you apply those and see if the removal of the extra layer of caching prevents this corruption?
Comment 7 Thierry Reding 2012-03-15 05:04:35 UTC
(In reply to comment #6)
> In http://cgit.freedesktop.org/~ickle/xf86-video-intel/log/?h=uxa I've put some
> patches to dumb down UXA slightly. Can you apply those and see if the removal
> of the extra layer of caching prevents this corruption?

I checked out your uxa branch, rebuilt the driver and ran my tests again and
I can no longer reproduce the corruption. I've even tested the original setup
from which I reduced the test-case and I no longer see the corruption there
either.

One thing though: I had to remove the src/legacy directory from the driver
build because it didn't compile.
Comment 8 Thierry Reding 2012-03-15 05:12:56 UTC
(In reply to comment #7)
> One thing though: I had to remove the src/legacy directory from the driver
> build because it didn't compile.

I just remembered that this is an issue with the driver's build system in the
cross-compilation setup that I have. I sent a patch for that some time ago
but I think it must have gone unnoticed. I'll attach it here again for
reference.
Comment 9 Thierry Reding 2012-03-15 05:16:53 UTC
Created attachment 58502 [details] [review]
configure: Keep passed-in CFLAGS for DRI tests

Note that this patch doesn't fix the original bug in this report but is
rather a build fix for cross-compilation setups.
Comment 10 Chris Wilson 2012-03-15 05:46:33 UTC
Applied the branch and your build fix, thanks.

commit 0e2fbb6a1c1ad6b0971d07a91a790b0b3236dad3
Merge: 64ccc66 84d7a82
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Mar 15 12:43:47 2012 +0000

    uxa: Merge 'remove complicated second level caching'
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=47345
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

Don't forget to create a bug report for the SNA instability!

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.