i965: Thwack multisample enable bit in 3DSTATE_RASTER.
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 11 Feb 2014 02:17:10 +0000 (18:17 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 19 Feb 2014 23:43:22 +0000 (15:43 -0800)
The meaning and effects of this bit are surprisingly complicated.

See Rasterization > Windower > Multisampling > Multisample ModesState.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
src/mesa/drivers/dri/i965/brw_defines.h
src/mesa/drivers/dri/i965/gen8_sf_state.c

index dea0940..1cbbe67 100644 (file)
@@ -1707,6 +1707,7 @@ enum brw_message_target {
 # define GEN8_RASTER_CULL_FRONT                         (2 << 16)
 # define GEN8_RASTER_CULL_BACK                          (3 << 16)
 # define GEN8_RASTER_SMOOTH_POINT_ENABLE                (1 << 13)
+# define GEN8_RASTER_API_MULTISAMPLE_ENABLE             (1 << 12)
 # define GEN8_RASTER_LINE_AA_ENABLE                     (1 << 2)
 # define GEN8_RASTER_SCISSOR_ENABLE                     (1 << 1)
 # define GEN8_RASTER_VIEWPORT_Z_CLIP_TEST_ENABLE        (1 << 0)
index a5cd9f8..b31b17e 100644 (file)
@@ -209,6 +209,9 @@ upload_raster(struct brw_context *brw)
    if (ctx->Point.SmoothFlag)
       dw1 |= GEN8_RASTER_SMOOTH_POINT_ENABLE;
 
+   if (ctx->Multisample._Enabled)
+      dw1 |= GEN8_RASTER_API_MULTISAMPLE_ENABLE;
+
    if (ctx->Polygon.OffsetFill)
       dw1 |= GEN6_SF_GLOBAL_DEPTH_OFFSET_SOLID;
 
@@ -274,6 +277,7 @@ const struct brw_tracked_state gen8_raster_state = {
    .dirty = {
       .mesa  = _NEW_BUFFERS |
                _NEW_LINE |
+               _NEW_MULTISAMPLE |
                _NEW_POINT |
                _NEW_POLYGON |
                _NEW_SCISSOR |