Bug 25047

Summary: [945GM bisected] rendercheck/repeat/triangles regressed
Product: xorg Reporter: Shuang He <shuang.he>
Component: Driver/intelAssignee: Chris Wilson <chris>
Status: VERIFIED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: major    
Priority: high CC: chris
Version: git   
Hardware: Other   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Shuang He 2009-11-11 18:25:19 UTC
System Environment:
--------------------------
Xf86_video_intel        (master)14109abf285866ad4cd99d0cd16b0954a0a73a62 
Mesa    (master)e4a19ffb13746ae4f62adca412d086d9461ff432 
Kernel  (drm-intel-next)5b8f0be0dce012d190a53d55240fe3fde6306476 
Libdrm  (master)89cc98c0d5c1b43a883f13210c472339dde1a4cf
Xserver (master)f4377afcf002be89632cbb0700f4d8e4ad7db45c

Bug detailed description:
-------------------------
This issue happens on both 945GM and 945GME.
rendercheck case epeat and triangles regressed.
This is due to following commit:
commit 14109abf285866ad4cd99d0cd16b0954a0a73a62
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 10 11:17:23 2009 +0000

    i915: Fix texture sampling coordinates.

    RENDER specifies that texels should sampled from the pixel centre. This
    corrects a number of failures in the cairo test suite and a few
    off-by-one bug reports.

      Grey border around images
      https://bugs.freedesktop.org/show_bug.cgi?id=21523

    Note that the earlier attempt to fix this was subverted by the buggy use
    of 1x1R textures for solid sources -- which caused the majority of text
    to disappear.

    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Comment 1 Chris Wilson 2009-11-13 09:11:43 UTC
One other bit of useful info when filing these conformance regressions is the error message from rendercheck. Thanks.
Comment 2 Chris Wilson 2009-11-13 12:24:51 UTC
commit c180baf43b8a0e407448018f3a7e42491cf974ae
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Nov 13 19:35:23 2009 +0000

    i915: Derive the correct target color from the pixmap by checking its format
    
    Particularly noting to route alpha to the green channel when blending
    with a8 destinations.
    
    Fixes:
    
      rendercheck/repeat/triangles regressed
      http://bugs.freedesktop.org/show_bug.cgi?id=25047
    
    introduced with commit 14109a.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

Comment 3 Shuang He 2009-11-14 19:46:54 UTC
(In reply to comment #1)
> One other bit of useful info when filing these conformance regressions is the
> error message from rendercheck. Thanks.
> 

Oh, I've forgotten it. 
Comment 4 Shuang He 2009-11-14 19:49:06 UTC
With this commit, only case triangles is fixed on both 945GM and 945GME.
repeat is still failed.
So I'd reopen the bug.

(In reply to comment #2)
> commit c180baf43b8a0e407448018f3a7e42491cf974ae
> Author: Chris Wilson <chris@chris-wilson.co.uk>
> Date:   Fri Nov 13 19:35:23 2009 +0000
> 
>     i915: Derive the correct target color from the pixmap by checking its
> format
> 
>     Particularly noting to route alpha to the green channel when blending
>     with a8 destinations.
> 
>     Fixes:
> 
>       rendercheck/repeat/triangles regressed
>       http://bugs.freedesktop.org/show_bug.cgi?id=25047
> 
>     introduced with commit 14109a.
> 
>     Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> 

Comment 5 Shuang He 2009-11-14 19:49:50 UTC
Output for the failed rendercheck/repeat:
rendercheck 1.3
Render extension version 0.10
Window format: r8g8b8
Found server-supported format: a8
Found server-supported format: a8r8g8b8
Found server-supported format: x8r8g8b8
Found server-supported format: b8g8r8a8
Found server-supported format: b8g8r8x8
Found server-supported format: r8g8b8
Found server-supported format: b8g8r8
Found server-supported format: r5g5b5
Found server-supported format: b5g5r5
Found server-supported format: x1r5g5b5
Found server-supported format: x1b5g5r5
Found server-supported format: r5g6b5
Found server-supported format: b5g6r5
Found server-supported format: x8b8g8r8
Found server-supported format: x2r10g10b10
Found server-supported format: x2b10g10r10
Beginning Src src repeat test on a8
Beginning Src mask repeat test on a8
Beginning Src src repeat test on a8r8g8b8
Beginning Src mask repeat test on a8r8g8b8
Beginning Src src repeat test on x8r8g8b8
Beginning Src mask repeat test on x8r8g8b8
Beginning Src src repeat test on b8g8r8a8
Beginning Src mask repeat test on b8g8r8a8
Beginning Src src repeat test on b8g8r8x8
Beginning Src mask repeat test on b8g8r8x8
Beginning Src src repeat test on r8g8b8
Beginning Src mask repeat test on r8g8b8
Beginning Src src repeat test on b8g8r8
Beginning Src mask repeat test on b8g8r8
Beginning Src src repeat test on r5g5b5
Beginning Src mask repeat test on r5g5b5
Beginning Src src repeat test on b5g5r5
Beginning Src mask repeat test on b5g5r5
Beginning Src src repeat test on x1r5g5b5
Beginning Src mask repeat test on x1r5g5b5
Beginning Src src repeat test on x1b5g5r5
Beginning Src mask repeat test on x1b5g5r5
Beginning Src src repeat test on r5g6b5
Beginning Src mask repeat test on r5g6b5
Beginning Src src repeat test on b5g6r5
Beginning Src mask repeat test on b5g6r5
Beginning Src src repeat test on x8b8g8r8
Beginning Src mask repeat test on x8b8g8r8
Beginning Src src repeat test on x2r10g10b10
Beginning Src mask repeat test on x2r10g10b10
Beginning Src src repeat test on x2b10g10r10
Beginning Src mask repeat test on x2b10g10r10
Beginning Src src repeat test on r8g8b8 window
Beginning Src mask repeat test on r8g8b8 window
Beginning Over src repeat test on a8
Beginning Over mask repeat test on a8
Beginning Over src repeat test on a8r8g8b8
Beginning Over mask repeat test on a8r8g8b8
Beginning Over src repeat test on x8r8g8b8
Beginning Over mask repeat test on x8r8g8b8
Beginning Over src repeat test on b8g8r8a8
Beginning Over mask repeat test on b8g8r8a8
Beginning Over src repeat test on b8g8r8x8
Beginning Over mask repeat test on b8g8r8x8
Beginning Over src repeat test on r8g8b8
Beginning Over mask repeat test on r8g8b8
Beginning Over src repeat test on b8g8r8
Beginning Over mask repeat test on b8g8r8
Beginning Over src repeat test on r5g5b5
Beginning Over mask repeat test on r5g5b5
Beginning Over src repeat test on b5g5r5
Beginning Over mask repeat test on b5g5r5
Beginning Over src repeat test on x1r5g5b5
Beginning Over mask repeat test on x1r5g5b5
Beginning Over src repeat test on x1b5g5r5
Beginning Over mask repeat test on x1b5g5r5
Beginning Over src repeat test on r5g6b5
Beginning Over mask repeat test on r5g6b5
Beginning Over src repeat test on b5g6r5
Beginning Over mask repeat test on b5g6r5
Beginning Over src repeat test on x8b8g8r8
Beginning Over mask repeat test on x8b8g8r8
Beginning Over src repeat test on x2r10g10b10
Beginning Over mask repeat test on x2r10g10b10
Beginning Over src repeat test on x2b10g10r10
Beginning Over mask repeat test on x2b10g10r10
Beginning Over src repeat test on r8g8b8 window
Beginning Over mask repeat test on r8g8b8 window
Beginning OverReverse src repeat test on a8
Beginning OverReverse mask repeat test on a8
Beginning OverReverse src repeat test on a8r8g8b8
Beginning OverReverse mask repeat test on a8r8g8b8
Beginning OverReverse src repeat test on x8r8g8b8
Beginning OverReverse mask repeat test on x8r8g8b8
Beginning OverReverse src repeat test on b8g8r8a8
Beginning OverReverse mask repeat test on b8g8r8a8
Beginning OverReverse src repeat test on b8g8r8x8
Beginning OverReverse mask repeat test on b8g8r8x8
Beginning OverReverse src repeat test on r8g8b8
Beginning OverReverse mask repeat test on r8g8b8
Beginning OverReverse src repeat test on b8g8r8
Beginning OverReverse mask repeat test on b8g8r8
Beginning OverReverse src repeat test on r5g5b5
Beginning OverReverse mask repeat test on r5g5b5
Beginning OverReverse src repeat test on b5g5r5
Beginning OverReverse mask repeat test on b5g5r5
Beginning OverReverse src repeat test on x1r5g5b5
Beginning OverReverse mask repeat test on x1r5g5b5
Beginning OverReverse src repeat test on x1b5g5r5
Beginning OverReverse mask repeat test on x1b5g5r5
Beginning OverReverse src repeat test on r5g6b5
Beginning OverReverse mask repeat test on r5g6b5
Beginning OverReverse src repeat test on b5g6r5
Beginning OverReverse mask repeat test on b5g6r5
Beginning OverReverse src repeat test on x8b8g8r8
Beginning OverReverse mask repeat test on x8b8g8r8
Beginning OverReverse src repeat test on x2r10g10b10
Beginning OverReverse mask repeat test on x2r10g10b10
Beginning OverReverse src repeat test on x2b10g10r10
Beginning OverReverse mask repeat test on x2b10g10r10
Beginning OverReverse src repeat test on r8g8b8 window
Beginning OverReverse mask repeat test on r8g8b8 window
Beginning Xor src repeat test on a8
Beginning Xor mask repeat test on a8
Beginning Xor src repeat test on a8r8g8b8
Beginning Xor mask repeat test on a8r8g8b8
Beginning Xor src repeat test on x8r8g8b8
Beginning Xor mask repeat test on x8r8g8b8
Beginning Xor src repeat test on b8g8r8a8
Beginning Xor mask repeat test on b8g8r8a8
Beginning Xor src repeat test on b8g8r8x8
Beginning Xor mask repeat test on b8g8r8x8
Beginning Xor src repeat test on r8g8b8
Beginning Xor mask repeat test on r8g8b8
Beginning Xor src repeat test on b8g8r8
Beginning Xor mask repeat test on b8g8r8
Beginning Xor src repeat test on r5g5b5
Beginning Xor mask repeat test on r5g5b5
Beginning Xor src repeat test on b5g5r5
Beginning Xor mask repeat test on b5g5r5
Beginning Xor src repeat test on x1r5g5b5
Beginning Xor mask repeat test on x1r5g5b5
Beginning Xor src repeat test on x1b5g5r5
Beginning Xor mask repeat test on x1b5g5r5
Beginning Xor src repeat test on r5g6b5
Beginning Xor mask repeat test on r5g6b5
Beginning Xor src repeat test on b5g6r5
Beginning Xor mask repeat test on b5g6r5
Beginning Xor src repeat test on x8b8g8r8
Beginning Xor mask repeat test on x8b8g8r8
Beginning Xor src repeat test on x2r10g10b10
Beginning Xor mask repeat test on x2r10g10b10
Beginning Xor src repeat test on x2b10g10r10
Beginning Xor mask repeat test on x2b10g10r10
Beginning Xor src repeat test on r8g8b8 window
Beginning Xor mask repeat test on r8g8b8 window
133 tests passed of 136 total
Comment 6 Chris Wilson 2009-12-01 10:32:21 UTC
I've fixed one bug in the shader generation and reverted the centre-point sampling that was causing rendering errors elsewhere -- so I believe this bug to be fixed, except that rendercheck is reporting lots of unrelated errors on all platforms so I can't confirm.

commit 5e04ded2bce4c135b57d391f5f4e24e030103e61
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Nov 30 10:57:04 2009 +0000

    i915: Fix missing texture offset for mask.

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

    i915: Disable centre-point sampling.
    

Comment 7 Shuang He 2009-12-02 17:51:18 UTC
(In reply to comment #6)
> I've fixed one bug in the shader generation and reverted the centre-point
> sampling that was causing rendering errors elsewhere -- so I believe this bug
> to be fixed, except that rendercheck is reporting lots of unrelated errors on
> all platforms so I can't confirm.
> 
> commit 5e04ded2bce4c135b57d391f5f4e24e030103e61
> Author: Chris Wilson <chris@chris-wilson.co.uk>
> Date:   Mon Nov 30 10:57:04 2009 +0000
> 
>     i915: Fix missing texture offset for mask.
> 
> commit cfcabc45140d19bfbfa4737c0a11cdbb042d11eb
> Author: Chris Wilson <chris@chris-wilson.co.uk>
> Date:   Mon Nov 30 13:58:30 2009 +0000
> 
>     i915: Disable centre-point sampling.
> 
> 

Yes, It's fixed, mark it as fixed.
Comment 8 Shuang He 2009-12-02 17:53:32 UTC
Thanks, verified on 945GM and 945GME against:
Libdrm:         (master)8ffd2e142e38d19326a40ff66dc99d052ce22100
Mesa:           (mesa_7_7_branch)e84dddde9b6eb7727760814ae211c95218bb28a3
Xserver:               
(server-1.7-branch)1fff1b37a91c989c046d96d961862d592a307496
Xf86_video_intel:              
(master)637f003b047e426901cab6b1fe3a0924bcb9a38a
Kernel:       (master)648f4e3e50c4793d9dbf9a09afa193631f76fa26

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.