[Mesa-dev] [PATCH 2/2] etnaviv: remove flat shading workaround

Philipp Zabel p.zabel at pengutronix.de
Fri Jun 9 13:33:42 UTC 2017


On Thu, 2017-06-08 at 18:25 +0200, Lucas Stach wrote:
> It turned out not to be a hardware bug, but the shader compiler
> emitting wrong varying component use information. With that fixed
> we can turn flat shading back on.
> 
> Signed-off-by: Lucas Stach <l.stach at pengutronix.de>
> ---
>  src/gallium/drivers/etnaviv/etnaviv_rasterizer.c | 6 +-----
>  1 file changed, 1 insertion(+), 5 deletions(-)
> 
> diff --git a/src/gallium/drivers/etnaviv/etnaviv_rasterizer.c b/src/gallium/drivers/etnaviv/etnaviv_rasterizer.c
> index 4990fd180257..56f2735e8a18 100644
> --- a/src/gallium/drivers/etnaviv/etnaviv_rasterizer.c
> +++ b/src/gallium/drivers/etnaviv/etnaviv_rasterizer.c
> @@ -38,10 +38,6 @@ etna_rasterizer_state_create(struct pipe_context *pctx,
>     struct etna_rasterizer_state *cs;
>     struct etna_context *ctx = etna_context(pctx);
>  
> -    /* Disregard flatshading on GC880+, as a HW bug there seem to disable all
> -     * varying interpolation if it's enabled */
> -   bool flatshade = ctx->screen->model < 880 ? so->flatshade : false;
> -
>     if (so->fill_front != so->fill_back)
>        DBG("Different front and back fill mode not supported");
>  
> @@ -51,7 +47,7 @@ etna_rasterizer_state_create(struct pipe_context *pctx,
>  
>     cs->base = *so;
>  
> -   cs->PA_CONFIG = (flatshade ? VIVS_PA_CONFIG_SHADE_MODEL_FLAT : VIVS_PA_CONFIG_SHADE_MODEL_SMOOTH) |
> +   cs->PA_CONFIG = (so->flatshade ? VIVS_PA_CONFIG_SHADE_MODEL_FLAT : VIVS_PA_CONFIG_SHADE_MODEL_SMOOTH) |
>                     translate_cull_face(so->cull_face, so->front_ccw) |
>                     translate_polygon_mode(so->fill_front) |
>                     COND(so->point_quad_rasterization, VIVS_PA_CONFIG_POINT_SPRITE_ENABLE) |

Reviewed-by: Philipp Zabel <p.zabel at pengutronix.de>

regards
Philipp



More information about the mesa-dev mailing list