etnaviv: disable linear PE by default

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: 43eb5e777e ("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>
(cherry picked from commit c5231025be)
This commit is contained in:
Lucas Stach 2022-12-21 14:39:27 +01:00 committed by Eric Engestrom
parent 1010e2ca89
commit 72356c713e
3 changed files with 4 additions and 4 deletions

View file

@ -490,7 +490,7 @@
"description": "etnaviv: disable linear PE by default",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "43eb5e777e4b64fe1b143822ae8aaf709eaad42f"
},

View 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 */

View 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
};
@ -1133,7 +1133,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;