diff options
author | Matt Turner <[email protected]> | 2016-08-01 12:18:45 -0700 |
---|---|---|
committer | Matt Turner <[email protected]> | 2016-08-02 10:37:13 -0700 |
commit | c3211ae093751fe1e144a96768dcb12af1a3a613 (patch) | |
tree | 3301f59b0c5027a5c78cd4ed4f928a1d6a0d3bf6 /src/mesa | |
parent | 6db93cd167d3ae04688c192806aad54a05a9d161 (diff) |
i965: Disable the unlit centroid workaround on Gen7.
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 but does not say
on which platform, though he cites the IVB PRM.
"3DSTATE_WM [DevIVB, DevHSW]" says
"[DevIVB]: Workaround: When Centroid Barycentric mode is required, HW
may produce incorrect interpolation results when a 2X2 pixels have
unlit pixels."
I later disabled it for Haswell (commit f6db414f3c) with no known ill
effects.
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.
Disabling the workaround indeed causes the tests Paul originally
mentioned to fail on Sandybridge but not on Ivybridge/Baytrail.
On Ivybridge:
total instructions in shared programs: 6914901 -> 6909599 (-0.08%)
instructions in affected programs: 106766 -> 101464 (-4.97%)
helped: 884
total cycles in shared programs: 70874764 -> 70813774 (-0.09%)
cycles in affected programs: 794144 -> 733154 (-7.68%)
helped: 688
HURT: 186
LOST: 1
GAINED: 6
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_device_info.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_device_info.c b/src/mesa/drivers/dri/i965/brw_device_info.c index 77bbe785580..56209771535 100644 --- a/src/mesa/drivers/dri/i965/brw_device_info.c +++ b/src/mesa/drivers/dri/i965/brw_device_info.c @@ -116,7 +116,6 @@ static const struct brw_device_info brw_device_info_snb_gt2 = { static const struct brw_device_info brw_device_info_ivb_gt1 = { GEN7_FEATURES, .is_ivybridge = true, .gt = 1, - .needs_unlit_centroid_workaround = true, .num_slices = 1, .max_vs_threads = 36, .max_hs_threads = 36, @@ -137,7 +136,6 @@ static const struct brw_device_info brw_device_info_ivb_gt1 = { static const struct brw_device_info brw_device_info_ivb_gt2 = { GEN7_FEATURES, .is_ivybridge = true, .gt = 2, - .needs_unlit_centroid_workaround = true, .num_slices = 1, .max_vs_threads = 128, .max_hs_threads = 128, @@ -158,7 +156,6 @@ static const struct brw_device_info brw_device_info_ivb_gt2 = { static const struct brw_device_info brw_device_info_byt = { GEN7_FEATURES, .is_baytrail = true, .gt = 1, - .needs_unlit_centroid_workaround = true, .num_slices = 1, .has_llc = false, .max_vs_threads = 36, |