Bug 57903

Summary: [llvmpipe] piglit fbo-blending-formats regression
Product: Mesa Reporter: Vinson Lee <vlee>
Component: OtherAssignee: Jose Fonseca <jfonseca>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: jfonseca
Version: gitKeywords: regression
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Vinson Lee 2012-12-05 06:15:34 UTC
mesa: a64c1eb9b110f29b8abf803a8256306702629bdc (master)

Run piglit fbo-blending-formats on llvmpipe.

$ ./bin/fbo-blending-formats -auto
Using test set: Core formats
Testing 3
Testing 4
Testing GL_RGB
Testing GL_RGBA
Testing GL_ALPHA
Testing GL_LUMINANCE
Testing GL_LUMINANCE_ALPHA
Testing GL_INTENSITY
Probe at (96,0)
  Expected: 0.810000 0.000000 0.000000 1.000000
  Observed: 0.796078 0.000000 0.000000 1.000000
  when testing FBO result, blending with DST_ALPHA.
Testing GL_ALPHA4
Testing GL_ALPHA8
Testing GL_ALPHA12
Testing GL_ALPHA16
Testing GL_LUMINANCE4
Testing GL_LUMINANCE8
Testing GL_LUMINANCE12
Testing GL_LUMINANCE16
Testing GL_LUMINANCE4_ALPHA4
Testing GL_LUMINANCE8_ALPHA8
Testing GL_LUMINANCE12_ALPHA12
Testing GL_LUMINANCE16_ALPHA16
Testing GL_INTENSITY4
Probe at (96,0)
  Expected: 0.810000 0.000000 0.000000 1.000000
  Observed: 0.796078 0.000000 0.000000 1.000000
  when testing FBO result, blending with DST_ALPHA.
Testing GL_INTENSITY8
Probe at (96,0)
  Expected: 0.810000 0.000000 0.000000 1.000000
  Observed: 0.796078 0.000000 0.000000 1.000000
  when testing FBO result, blending with DST_ALPHA.
Testing GL_INTENSITY12
Testing GL_INTENSITY16
Testing GL_R3_G3_B2
Testing GL_RGB4
Testing GL_RGB5
Testing GL_RGB8
Testing GL_RGB10
Testing GL_RGB12
Testing GL_RGB16
Testing GL_RGBA2
Testing GL_RGBA4
Testing GL_RGB5_A1
Testing GL_RGBA8
Testing GL_RGB10_A2
Testing GL_RGBA12
Testing GL_RGBA16
PIGLIT: {'result': 'fail' }

7d44d354bdba853e453ce3991396e2b0933468f4 is the first bad commit
commit 7d44d354bdba853e453ce3991396e2b0933468f4
Author: José Fonseca <jfonseca@vmware.com>
Date:   Tue Dec 4 13:38:52 2012 +0000

    gallivm: Generalize lp_build_mul and lp_build_lerp for signed normalized types.
    
    This fixes fdo bug 57755 and most of the failures of piglit fbo-blending-formats
    GL_EXT_texture_snorm.
    
    GL_INTENSITY_SNORM is still failing, but problem is probably elsewhere,
    as GL_R8_SNORM works fine.

:040000 040000 2516938b50b01e57b07561c913ff734117d16f47 73b5d8f8beac889bfb7bf52a63fae84b2855b903 Msrc
bisect run success
Comment 1 Jose Fonseca 2012-12-06 13:24:52 UTC
I have a llvmpipe fix out for review.

It needs also a piglit tweak, also out for review, as the test is too strict.
Comment 2 Jose Fonseca 2012-12-06 16:00:07 UTC
Fix with 


commit 5e99cd915921d7b863a66badf09941f11120c6ab
Author: José Fonseca <jfonseca@vmware.com>
Date:   Thu Dec 6 09:30:53 2012 +0000

    gallivm: Fix lerping of (un)signed normalized numbers.
    
    Several issues actually:
    
    - Fix a regression in unsigned normalized in the rescaling
      [0, 255] to [0, 256]
    
    - Ensure we use signed shifts where appropriate (instead of
      unsigned shifts)
    
    - Refactor the code slightly -- move all the logic inside
      lp_build_lerp_simple().
    
    This change, plus an adjustment in the tolerance of signed normalized
    results in piglit fbo-blending-formats fixes bug 57903
    
    Reviewed-by: Brian Paul <brianp@vmware.com>



commit 8c7e49c402025a3db3675954377478bd832189dd
Author: José Fonseca <jfonseca@vmware.com>
Date:   Wed Dec 5 23:46:59 2012 +0000

    fbo-blending-formats: Correct precision of signed normalized types.
    
    Signed types have less precision due to the sign bit.
    
    Without this it is impossible to devise an efficient way of lerping
    signed normalized types that makes this test happy -- it would require
    32bit float/int multiply and divides to get exact results.
    
    Reviewed-by: Brian Paul <brianp@vmware.com>

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.