etnaviv: disable 64bpp render/sampler formats

Vivante hardware handles 64bpp render targets and samplers in a odd way
by splitting the buffer and using a pair of texture samplers or a pair
of MRT outputs to access those resources. This isn't implemented in the
driver right now, so we should not advertise support for those formats.

CC: mesa-stable
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26982>
This commit is contained in:
Lucas Stach
2024-01-09 17:31:03 +01:00
committed by Marge Bot
parent 6febec12e4
commit e481c1269c

View File

@@ -458,6 +458,11 @@ gpu_supports_texture_format(struct etna_screen *screen, uint32_t fmt,
{ {
bool supported = true; bool supported = true;
/* Requires split sampler support, which the driver doesn't support, yet. */
if (!util_format_is_compressed(format) &&
util_format_get_blocksizebits(format) > 32)
return false;
if (fmt == TEXTURE_FORMAT_ETC1) if (fmt == TEXTURE_FORMAT_ETC1)
supported = VIV_FEATURE(screen, chipFeatures, ETC1_TEXTURE_COMPRESSION); supported = VIV_FEATURE(screen, chipFeatures, ETC1_TEXTURE_COMPRESSION);
@@ -500,6 +505,10 @@ gpu_supports_render_format(struct etna_screen *screen, enum pipe_format format,
if (fmt == ETNA_NO_MATCH) if (fmt == ETNA_NO_MATCH)
return false; return false;
/* Requires split target support, which the driver doesn't support, yet. */
if (util_format_get_blocksizebits(format) > 32)
return false;
if (sample_count > 1) { if (sample_count > 1) {
/* Explicitly enabled. */ /* Explicitly enabled. */
if (!DBG_ENABLED(ETNA_DBG_MSAA)) if (!DBG_ENABLED(ETNA_DBG_MSAA))