Bug 23803

Summary: [bisected i915] gnome characters disappear
Product: xorg Reporter: fangxun <xunx.fang>
Component: Driver/intelAssignee: Chris Wilson <chris>
Status: VERIFIED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: blocker    
Priority: highest CC: chris, cworth, j, zhenyu.z.wang
Version: unspecified   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
screeshot none

Description fangxun 2009-09-08 21:20:11 UTC
Created attachment 29344 [details]
screeshot

System Environment:
--------------------------
Host:           x-915gm
Arch:           i386
Platform:       i915
Libdrm:     (master)121b9648f846d900e67818869974ee82046e9b25
Mesa:       (master)9778731732b4753e79a1b786c65325a52392411d
Xserver:         (master)1747120043cc5b5d201b7efd06b75ef08b032922
Xf86_video_intel: (master)94fc93d4e2b88565dca17f72903d8991213c9ee8
Kernel_unstable:  (drm-intel-next)01dfba93d9dfcf6d7abfc55ff5d9d6e7


Bug detailed description:
-------------------------
Start gnome, you will see all the characters disappear(as shown in the attached screenshot). It works well on i965 platform. I have bisected and found it is the following Xf86_video_intel commit caused the problem:

commit 94fc93d4e2b88565dca17f72903d8991213c9ee8
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sat Sep 5 09:35:10 2009 +0100

    i830/i915: Set the sample position to the pixel center.

    And in particular we apply the nearest sample bias separately for
    src/mask.


 
Reproduce steps:
----------------
1. xinit&
2. gnome-session&
Comment 1 Gordon Jin 2009-09-09 00:34:53 UTC
This should be the one zhenyu raised on intel-gfx@.

Chris, we are going to build Q3 rc2 tomorrow. It will be great if you could fix this before that time.
Comment 2 Chris Wilson 2009-09-09 02:03:30 UTC
I've reproduced this using cairo and creating argb32, a8 and a1 glyphs. Only the argb32 glyphs are visible on an i945.
Comment 3 Chris Wilson 2009-09-09 04:50:45 UTC
commit 1a77ca74bc829e019a06fe9ad559f013054c27ff
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Sep 9 12:09:05 2009 +0100

    i915: Restore nearest sampling
    
    My recent commit [94fc93] to use the pixel centre for sampling with the i830
    broke the i915. This restores the previous sampling coordinates for the
    i915 whilst preserving the correct coordinates for i830.
Comment 4 fangxun 2009-09-09 18:08:39 UTC
It works fine. Verified.
Comment 5 Gordon Jin 2009-09-09 18:21:47 UTC
Chris, thanks for the quick fix.
Closing.
Comment 6 Gordon Jin 2009-09-09 18:22:13 UTC
the fix has been made into 2.8.99.901
Comment 7 fangxun 2009-11-20 00:57:23 UTC
The same issue happened on i915 platform with recently driver. With bisect and find it is the following Xf86_video_intel commit caused the problem:

commit e581ceb7381e29ecc1a172597d258824f6a1d2d3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 10 11:14:23 2009 +0000

    i915: Use the color channels to pass along solid sources and masks.

    Instead of allocating and utilising the texture samplers for 1x1R
    solid sources and masks we can simply use the default diffuse and
    specular colour channels and adjust the fragment shader appropriately.
    The big advantage is the reduction in size of batches which should give
    a good boost to glyph performance, irrespective of the additional boost
    from using simpler shaders.

    However, the motivating factor behind the switch is that our use of 1x1
    textures turns out to be buggy...

So reopen this bug.

Comment 8 Jürg Billeter 2009-11-23 03:06:24 UTC
I can confirm this issue on a Q35 system with xf86-video-intel master and 2.6.32-rc8. It works fine with xf86-video-intel 2.9.1.
Comment 9 Gordon Jin 2009-11-26 00:18:15 UTC
Chris, can you reproduce this regression? I'm considering this as 2.10 rc1 blocker.

(though this is actually a new issue so it's not proper to reopen this old bug. Anyway, the bisect info has been added here)
Comment 10 Chris Wilson 2009-11-26 00:48:35 UTC
(In reply to comment #9)
> Chris, can you reproduce this regression? I'm considering this as 2.10 rc1
> blocker.

I only made the commit after verifying that it passed the test cases added after the last failure. Though as the two failure reports from rendercheck show, there is still some confusion along some paths. I'm optimistic that I can resolve those, otherwise we will have to revert back to incorrect rendering of images just to be able to see text.

Can you please confirm which versions of the driver and xserver are being tested?
Comment 11 Gordon Jin 2009-11-26 00:59:51 UTC
(In reply to comment #10)
> Can you please confirm which versions of the driver and xserver are being
> tested?

We use xf86-video-intel master, and server-1.7-branch.
Comment 12 Chris Wilson 2009-11-30 06:07:03 UTC
This should restore text whilst I try to understand what the actual failure is:

commit cfcabc45140d19bfbfa4737c0a11cdbb042d11eb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Nov 30 13:58:30 2009 +0000

    i915: Disable centre-point sampling.
    
    I still have no idea how this is triggering failures, but it is. So
    revert until the problem is solved.
    
    Should fix once again:
    
      Bug 23803 [bisected i915] gnome characters disappear
      http://bugs.freedesktop.org/show_bug.cgi?id=23803
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

Comment 13 fangxun 2009-11-30 19:18:34 UTC
Verified with commit cfcabc45140d19bfbfa4737c0a11cdbb042d11eb.

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.