i965: Use true AA line distance on G45/Ironlake.
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 26 Apr 2017 21:28:49 +0000 (14:28 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Sat, 29 Apr 2017 00:03:33 +0000 (17:03 -0700)
The original Broadwater and Crestline platforms computed antialiased
line distances using "manhattan" distance, aka a + b = c.  Eaglelake
and Cantiga added "true" distance, which apparently does something
like max(a, b) + min(a, b) / 4.  Not exactly "true", but at least
more accurate.

The G45 documentation indicates that the old manhattan distance setting
is "only for debug purposes" and should never be used.  The Ironlake
documentation no longer mentions AALINEDISTANCE_MANHATTAN, though it
does still contain the narrative about the feature.

At any rate, we should use the more accurate mode.

Reviewed-by: Plamena Manolova <plamena.manolova@intel.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
src/mesa/drivers/dri/i965/brw_sf_state.c

index e919f5d14b40dbed0e0374b56b06b7eb221fc9c9..d50ceb12133ef9a1da9987785d2f7cada51c23a9 100644 (file)
@@ -265,7 +265,7 @@ static void upload_sf_unit( struct brw_context *brw )
    /* _NEW_PROGRAM | _NEW_POINT */
    sf->sf7.use_point_size_state = !(ctx->VertexProgram.PointSizeEnabled ||
                                    ctx->Point._Attenuated);
-   sf->sf7.aa_line_distance_mode = 0;
+   sf->sf7.aa_line_distance_mode = brw->is_g4x || brw->gen == 5;
 
    /* might be BRW_NEW_PRIMITIVE if we have to adjust pv for polygons:
     * _NEW_LIGHT