[Mesa-dev] [PATCH] i965: Fix move_interpolation_to_top() pass.

Matt Turner mattst88 at gmail.com
Sat Jul 30 00:44:30 UTC 2016

On Tue, Jul 26, 2016 at 1:19 PM, Kenneth Graunke <kenneth at whitecape.org> wrote:
> Papers over GPU hangs on Ivybridge and Baytrail caused by the
> recent NIR FS input rework by restoring the old behavior.
> (I'm not honestly sure why they hang with PLN not at the top.)

I think this is because of the unlit centroid workaround.

Once upon a time (commit 8313f44409) Paul added code for the unlit
centroid workaround (WaCopyUnlitCentroidBarys). His commit message
claims it fixed the EXT_framebuffer_multisample/interpolation {2,4}
{centroid-deriv,centroid-deriv-disabled} piglit tests.

I later disabled it for Haswell (commit f6db414f3c).

"3DSTATE_WM [DevIVB, DevHSW]" says

"Errata: When Centroid Barycentric mode is required, HW may
produce incorrect interpolation results when a 2X2 pixels have
unlit pixels."

The Sandybridge page does not have this text, but the workarounds
database (see WaCopyUnlitCentroidBarys) says the issues applies *only*
to Sandybridge, and in fact in commit 1a2de7dce8fc I note that
disabling the workaround on Sandybridge causes the tests Paul
originally mentioned to fail.

So this is, and always has been, a huge confusing mess.

My theory is that whatever code we're emitting for the centroid
workaround is causing the problems in conjunction with your original

deqp-gles31.functional.separate.shader.random wouldn't run on
Sandybridge, so you wouldn't see failures there, and the centroid
workaround is not enabled on Haswell+, so you wouldn't see the
failures there either.

More information about the mesa-dev mailing list