diff options
author | Glenn Kennard <[email protected]> | 2014-08-20 21:55:37 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2014-08-21 16:20:38 +0200 |
commit | 0fb221065eff3788e9bf607a5cf39bd0409740be (patch) | |
tree | 2b3cdf2fc3d551961c71d7efc2536da37da48fc2 /src/gallium/drivers/r600 | |
parent | bf7a60f41d897be4d9804ba7c46633e38501ffe7 (diff) |
r600g: Fix flat/smooth shade state toggle10.3-branchpoint
If only the flat/smooth shade state changed between
two render calls the prior code would miss updating the
hardware state.
Also add check for sprite coord, potentially same type
of issue otherwise for it.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=81967
Signed-off-by: Glenn Kennard <[email protected]>
Signed-off-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600')
-rw-r--r-- | src/gallium/drivers/r600/r600_state_common.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c index 7594d0ef75a..028d800981d 100644 --- a/src/gallium/drivers/r600/r600_state_common.c +++ b/src/gallium/drivers/r600/r600_state_common.c @@ -1227,7 +1227,9 @@ static bool r600_update_derived_state(struct r600_context *rctx) if (unlikely(!rctx->ps_shader->current)) return false; - if (unlikely(ps_dirty || rctx->pixel_shader.shader != rctx->ps_shader->current)) { + if (unlikely(ps_dirty || rctx->pixel_shader.shader != rctx->ps_shader->current || + rctx->rasterizer->sprite_coord_enable != rctx->ps_shader->current->sprite_coord_enable || + rctx->rasterizer->flatshade != rctx->ps_shader->current->flatshade)) { if (rctx->cb_misc_state.nr_ps_color_outputs != rctx->ps_shader->current->nr_ps_color_outputs) { rctx->cb_misc_state.nr_ps_color_outputs = rctx->ps_shader->current->nr_ps_color_outputs; |