etnaviv: remove flat shading workaround
authorLucas Stach <l.stach@pengutronix.de>
Thu, 8 Jun 2017 15:06:02 +0000 (17:06 +0200)
committerLucas Stach <l.stach@pengutronix.de>
Tue, 10 Oct 2017 10:30:34 +0000 (12:30 +0200)
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@pengutronix.de>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: Wladimir J. van der Laan <laanwj@gmail.com>
src/gallium/drivers/etnaviv/etnaviv_rasterizer.c

index 4990fd180257c4093758d206cdf55d7959a0f89f..56f2735e8a18291325d0206975366ffa4d6eac5e 100644 (file)
@@ -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) |