[Mesa-dev] [PATCH v2] r600g: Fix flat/smooth shade state toggle

Marek Olšák maraeo at gmail.com
Thu Aug 21 07:21:32 PDT 2014


Pushed, thanks.

Marek

On Wed, Aug 20, 2014 at 9:55 PM, Glenn Kennard <glenn.kennard at gmail.com> wrote:
> 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 <glenn.kennard at gmail.com>
> ---
> V2:
>  - No new shader variant created
>  - Also check for sprite coord enable since its state is updated
>    in similar fashion to flatshade.
>
>  src/gallium/drivers/r600/r600_state_common.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c
> index 7594d0e..028d800 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;
> --
> 1.9.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list