Bug 28833 - piglit/shaders/glsl-texcoord-array fail
piglit/shaders/glsl-texcoord-array fail
Status: VERIFIED FIXED
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i965
git
All All
: medium normal
Assigned To: Eric Anholt
:
Depends on:
Blocks: 29044
  Show dependency treegraph
 
Reported: 2010-06-29 20:01 UTC by Gordon Jin
Modified: 2010-09-25 19:35 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gordon Jin 2010-06-29 20:01:53 UTC
piglit tests/shaders/glsl-texcoord-array.shader_test has been fail since added in May 10.

Output:
Probe at (1,1)
  Expected: 0.500000 0.500000 0.500000
  Observed: 1.000000 1.000000 1.000000
PIGLIT: {'result': 'fail' }
Comment 1 Eric Anholt 2010-07-11 22:07:04 UTC
This will likely block on 965 VS codegen for glsl2.
Comment 2 Ian Romanick 2010-09-17 02:45:46 UTC
Fixed by these patches in Mesa master.  This will be cherry-picked to 7.9 branch shortly.

commit a6ecd1c3724a78b76ab9e81ea39632f1279021f8
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Thu Sep 16 14:40:26 2010 +0200

    glsl2: Add flags to enable variable index lowering

commit 6e4fe39da26bf101f5fe1103ba426c0903445352
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Thu Sep 16 12:12:22 2010 +0200

    glsl2: Refactor testing for whether a deref is of a matrix or array

commit a47539c7a155475de00fa812842721d239abb3f4
Author: Luca Barbieri <luca@luca-barbieri.com>
Date:   Wed Sep 8 01:35:44 2010 +0200

    glsl: add pass to lower variable array indexing to conditional assignments
    
    Currenly GLSL happily generates indirect addressing of any kind of
    arrays.
    
    Unfortunately DirectX 9 GPUs are not guaranteed to support any of them in
    general.
    
    This pass fixes that by lowering such constructs to a binary search on the
    values, followed at the end by vectorized generation of equality masks, and
    4 conditional assignments for each mask generation.
    
    Note that this requires the ir_binop_equal change so that we can emit SEQ
    to generate the boolean masks.
    
    Unfortunately, ir_structure_splitting is too dumb to turn the resulting
    constant array references to individual variables, so this will need to
    be added too before this pass can actually be effective for temps.
    
    Several patches in the glsl2-lower-variable-indexing were squashed
    into this commit.  These patches fix bugs in Luca's original
    implementation, and the individual patches can be seen in that branch.
    This was done to aid bisecting in the future.
    
    Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Comment 3 Gordon Jin 2010-09-18 18:15:52 UTC
Yes, it passed now these 2 days on my side.

I'll hold on marking it as verified until it hits 7.9 branch.
Comment 4 Gordon Jin 2010-09-25 19:35:03 UTC
verified with mesa:
(master)16a457bba6909d0c34036277eb3a56f27f425c3d
(7.9)361084ac4b16c6af59671b776b832034990766f0