|Summary:||[965 bisected] Array look-ups broken on GM45|
|Product:||Mesa||Reporter:||Ian Romanick <idr>|
|Component:||Drivers/DRI/i965||Assignee:||Eric Anholt <eric>|
|Status:||RESOLVED FIXED||QA Contact:|
|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 <firstname.lastname@example.org> 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 <email@example.com> 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.