Bug 32311

Summary: [965 bisected] Array look-ups broken on GM45
Product: Mesa Reporter: Ian Romanick <idr>
Component: Drivers/DRI/i965Assignee: Eric Anholt <eric>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: high    
Version: git   
Hardware: Other   
OS: All   
i915 platform: i915 features:

Description Ian Romanick 2010-12-10 19:48:59 UTC
Several test cases fail on GM45.  It seems likely that this problem is restricted to GPUs older than Ironlake.  I bisected this to the commit listed below.  I assume that Eric ran these piglit tests on his Ironlake system before push this change. :)

The failing tests include:

    - glsl1-constant array of vec4 with variable indexing, vertex shader
    - glsl1-constant array with variable indexing, vertex shader
    - glsl1-constant array with variable indexing, vertex shader (2)
    - vp1-ARL test
    - glsl-vs-arrays-3
    - glsl-vs-texturematrix-2
    - vp-address-01
    - arl
    - nv-arl
    - nv-init-zero-addr
    - vp-arl-constant-array
    - vp-arl-constant-array-varying
    - vp-arl-env-array
    - vp-arl-local-array
    - vp-arl-neg-array
    - vp-arl-neg-array-2

Unsurprisingly, these tests pass on swrast.

Testing was done with 834cc8e5 which includes some fixes for pre-GEN6 problems.

commit 05e534e6c4395269b1ca3a9694a1f437363dd186
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Dec 8 17:00:54 2010 -0800

    i965: Drop push-mode reladdr constant loading and always use constant_map.
    This eases the gen6 implementation, which can only handle up to 32
    registers of constants, while likely not penalizing real apps using
    reladdr since all of those I've seen also end up hitting the pull
    constant buffer.  On gen6, the constant map means that simple NV VPs
    fit under the 32-reg limit and now succeed.  Fixes around 10 testcases.
Comment 1 Eric Anholt 2010-12-20 16:06:53 UTC
interestingly, this doesn't seem to apply to GM965, though it's sure got plenty of issues
Comment 2 Eric Anholt 2010-12-23 02:01:56 UTC
commit 5dc53444c8323c1787dddbe6b67048828df9c684
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Dec 22 22:46:12 2010 -0800

    i965: Correct the dp_read message descriptor setup on g4x.
    It's mostly like gen4 message descriptor setup, except that the sizes
    of type/control changed to be like gen5.  Fixes 21 piglit cases on
    gm45, including the regressions in bug #32311 from increased VS
    constant buffer usage.

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.