i965: Disable unlit-centroid workaround on Gen < 6.
authorMatt Turner <mattst88@gmail.com>
Tue, 9 Dec 2014 06:59:17 +0000 (22:59 -0800)
committerMatt Turner <mattst88@gmail.com>
Wed, 10 Dec 2014 18:18:39 +0000 (10:18 -0800)
Back to the original commit (8313f444) adding the workaround, we were
enabling it on gens <= 7, even though gens <= 5 can't do multisampling.

I cannot find documentation that says that Sandybridge needs this
workaround but in practice disabling it causes these piglit tests to
fail:

EXT_framebuffer_multisample/interpolation {2,4} centroid-deriv{,-disabled}

On Ironlake:

total instructions in shared programs: 4358478 -> 4349671 (-0.20%)
instructions in affected programs:     117680 -> 108873 (-7.48%)

A bunch of shaders in TF2, Portal 2, and L4D2 are cut by 25~30%.

Cc: "10.4" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
src/mesa/drivers/dri/i965/brw_device_info.c

index bbd907bf9e71cfb4d25f5f4bb203541099db7838..65942c2bace5e7ade1396e1a7e5f9142f8dbe08f 100644 (file)
@@ -28,7 +28,6 @@
 static const struct brw_device_info brw_device_info_i965 = {
    .gen = 4,
    .has_negative_rhw_bug = true,
-   .needs_unlit_centroid_workaround = true,
    .max_vs_threads = 16,
    .max_gs_threads = 2,
    .max_wm_threads = 8 * 4,
@@ -42,7 +41,6 @@ static const struct brw_device_info brw_device_info_g4x = {
    .has_pln = true,
    .has_compr4 = true,
    .has_surface_tile_offset = true,
-   .needs_unlit_centroid_workaround = true,
    .is_g4x = true,
    .max_vs_threads = 32,
    .max_gs_threads = 2,
@@ -57,7 +55,6 @@ static const struct brw_device_info brw_device_info_ilk = {
    .has_pln = true,
    .has_compr4 = true,
    .has_surface_tile_offset = true,
-   .needs_unlit_centroid_workaround = true,
    .max_vs_threads = 72,
    .max_gs_threads = 32,
    .max_wm_threads = 12 * 6,