[Mesa-dev] [PATCH] i965: Unroll SIMD16 DDY_FINE on Sandybridge.

Matt Turner mattst88 at gmail.com
Wed Mar 30 00:00:28 UTC 2016


On Tue, Mar 29, 2016 at 1:32 AM, Kenneth Graunke <kenneth at whitecape.org> wrote:
> I'm not sure why this is necessary, but it fixes 10 dEQP-GLES3 subtests
> from dEQP-GLES3.functional.shaders.derivate.dfdy.texture.float_nicest.*.

Okay, so we have to suspect that this is working around some related
problem and it isn't that SIMD16 align16 instructions simply don't
work on SNB. If this were the case we should have seen any of the
piglit dfdy tests failing.

If I had to guess, it could be that we're not accounting for
even-register alignment, which I think applies to Sandybridge.

I do notice that the add(16) instruction generated by the deqp tests
you cite writes to an odd register, and the piglit tests write to an
even register.

If that is indeed the problem, it should apply to Gen5 (where we
currently emit a SIMD16 align16 instruction) as well.

Maybe we can hack up the deqp test to run on Gen5? If we could show
that this code can't work in all circumstances on Gen5, we can
simplify that condition greatly.


More information about the mesa-dev mailing list