etnaviv: disable PE_COLOR_FORMAT_OVERWRITE with MSAA

This breaks MSAA, even when compression is not activated. The issue is
mostly theoretical, as we always enable color compression with MSAA, but
I ran into some GPU hangs when I disabled compression to run some tests.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19066>
This commit is contained in:
Lucas Stach
2022-10-13 23:21:44 +02:00
committed by Marge Bot
parent 1cdcf45ac8
commit 2f7a2ffde8
+5 -3
View File
@@ -167,8 +167,12 @@ etna_set_framebuffer_state(struct pipe_context *pctx,
cs->PE_COLOR_FORMAT |=
VIVS_PE_COLOR_FORMAT_COMPONENTS__MASK |
VIVS_PE_COLOR_FORMAT_OVERWRITE |
COND(color_supertiled, VIVS_PE_COLOR_FORMAT_SUPER_TILED);
nr_samples_color = cbuf->base.texture->nr_samples;
if (nr_samples_color <= 1)
cs->PE_COLOR_FORMAT |= VIVS_PE_COLOR_FORMAT_OVERWRITE;
if (VIV_FEATURE(screen, chipMinorFeatures6, CACHE128B256BPERLINE))
cs->PE_COLOR_FORMAT |= COND(color_supertiled, VIVS_PE_COLOR_FORMAT_SUPER_TILED_NEW);
/* VIVS_PE_COLOR_FORMAT_COMPONENTS() and
@@ -225,8 +229,6 @@ etna_set_framebuffer_state(struct pipe_context *pctx,
}
}
nr_samples_color = cbuf->base.texture->nr_samples;
if (util_format_is_srgb(cbuf->base.format))
pe_logic_op |= VIVS_PE_LOGIC_OP_SRGB;