svga: fix test for SVGA_NEW_STIPPLE

We only want to set the SVGA_NEW_STIPPLE dirty flag when the polygon
stipple state changes.  Before, we only set the flag when we were
enabling stipple, but not disabling.

We don't really have to add SVGA_NEW_STIPPLE to the dirty FS state
set since it's a subset of SVGA_NEW_RAST, but let's be explicit.

This doesn't fix any known bugs.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
This commit is contained in:
Brian Paul 2016-01-05 13:03:04 -07:00
parent 993b04ee2c
commit eec8d7e7e0
2 changed files with 8 additions and 4 deletions

View file

@ -368,13 +368,16 @@ static void svga_bind_rasterizer_state( struct pipe_context *pipe,
struct svga_context *svga = svga_context(pipe);
struct svga_rasterizer_state *raster = (struct svga_rasterizer_state *)state;
if (!raster ||
!svga->curr.rast ||
raster->templ.poly_stipple_enable !=
svga->curr.rast->templ.poly_stipple_enable) {
svga->dirty |= SVGA_NEW_STIPPLE;
}
svga->curr.rast = raster;
svga->dirty |= SVGA_NEW_RAST;
if (raster && raster->templ.poly_stipple_enable) {
svga->dirty |= SVGA_NEW_STIPPLE;
}
}
static void

View file

@ -452,6 +452,7 @@ struct svga_tracked_state svga_hw_fs =
SVGA_NEW_TEXTURE_BINDING |
SVGA_NEW_NEED_SWTNL |
SVGA_NEW_RAST |
SVGA_NEW_STIPPLE |
SVGA_NEW_REDUCED_PRIMITIVE |
SVGA_NEW_SAMPLER |
SVGA_NEW_FRAME_BUFFER |