etnaviv: disable linear PE by default
authorLucas Stach <l.stach@pengutronix.de>
Wed, 21 Dec 2022 13:39:27 +0000 (14:39 +0100)
committerMarge Bot <emma+marge@anholt.net>
Fri, 23 Dec 2022 13:50:53 +0000 (13:50 +0000)
Linear PE causes a lot of issues in the ZS stage. While some of those issues
can be worked around on newer GPU cores by doing all ZS operations in the
late stage, GC600 r4653 exhibits spurious Z fails when linear PE is active
even though this GPU does not even have a early Z stage.

Disable linear PE for now, until the issue can be analyzed further. Leave the
debug option in place to allow to enable linear PE for testing.

Fixes: 43eb5e777e4b ("etnaviv: add debug option to disable linear PE feature")
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20405>

src/gallium/drivers/etnaviv/etnaviv_debug.h
src/gallium/drivers/etnaviv/etnaviv_screen.c

index 298f2dd..e520dcf 100644 (file)
@@ -54,7 +54,7 @@
 #define ETNA_DBG_NO_SINGLEBUF    0x400000 /* disable single buffer feature */
 #define ETNA_DBG_DEQP            0x800000 /* Hacks to run dEQP GLES3 tests */
 #define ETNA_DBG_NOCACHE         0x1000000 /* Disable shader cache */
-#define ETNA_DBG_NO_LINEAR_PE    0x2000000 /* Disable linear PE */
+#define ETNA_DBG_LINEAR_PE       0x2000000 /* Enable linear PE */
 #define ETNA_DBG_MSAA            0x4000000 /* Enable MSAA */
 
 extern int etna_mesa_debug; /* set in etnaviv_screen.c from ETNA_MESA_DEBUG */
index e728cc2..2b641fb 100644 (file)
@@ -72,7 +72,7 @@ static const struct debug_named_value etna_debug_options[] = {
    {"no_singlebuffer",ETNA_DBG_NO_SINGLEBUF, "Disable single buffer feature"},
    {"deqp",           ETNA_DBG_DEQP, "Hacks to run dEQP GLES3 tests"}, /* needs MESA_GLES_VERSION_OVERRIDE=3.0 */
    {"nocache",        ETNA_DBG_NOCACHE,    "Disable shader cache"},
-   {"no_linear_pe",   ETNA_DBG_NO_LINEAR_PE, "Disable linear PE"},
+   {"linear_pe",      ETNA_DBG_LINEAR_PE, "Enable linear PE"},
    {"msaa",           ETNA_DBG_MSAA, "Enable MSAA support"},
    DEBUG_NAMED_VALUE_END
 };
@@ -1208,7 +1208,7 @@ etna_screen_create(struct etna_device *dev, struct etna_gpu *gpu,
       screen->specs.can_supertile = 0;
    if (DBG_ENABLED(ETNA_DBG_NO_SINGLEBUF))
       screen->specs.single_buffer = 0;
-   if (DBG_ENABLED(ETNA_DBG_NO_LINEAR_PE))
+   if (!DBG_ENABLED(ETNA_DBG_LINEAR_PE))
       screen->features[viv_chipMinorFeatures2] &= ~chipMinorFeatures2_LINEAR_PE;
 
    pscreen->destroy = etna_screen_destroy;