summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/common/meta.c
diff options
context:
space:
mode:
authorPaul Berry <[email protected]>2012-06-21 11:21:22 -0700
committerPaul Berry <[email protected]>2012-07-02 13:27:36 -0700
commit8313f44409ceb733e9f8835926364164237b3111 (patch)
tree32f7d08f69d5e620dfebe6e62a32dddf4a98c2dd /src/mesa/drivers/common/meta.c
parent3f929efa2872aa5a4402520ec9fd551392e2413a (diff)
i965/msaa: Fix centroid interpolation of unlit pixels.
From the Ivy Bridge PRM, Vol 2 Part 1 p280-281 (3DSTATE_WM: Barycentric Interpolation Mode): "Errata: When Centroid Barycentric mode is required, HW may produce incorrect interpolation results when a 2X2 pixels have unlit pixels." To work around this problem, after doing centroid interpolation, we replace the centroid-interpolated values for unlit pixels with non-centroid-interpolated values (which are interpolated at pixel centers). This produces correct rendering at the expense of a slight increase in shader execution time. I've conditioned the workaround with a runtime flag (brw->needs_unlit_centroid_workaround) in the hopes that we won't need it in future chip generations. Fixes piglit tests "EXT_framebuffer_multisample/interpolation {2,4} {centroid-deriv,centroid-deriv-disabled}". All MSAA interpolation tests pass now. Reviewed-by: Eric Anholt <[email protected]>
Diffstat (limited to 'src/mesa/drivers/common/meta.c')
0 files changed, 0 insertions, 0 deletions