etnaviv: check for valid TS as condition to create the staging resource

Presence of the TS buffer doesn't necessarily mean that there is valid
TS information that we need to take into account. This is pretty harmless
as the blit into the staging resource will just ignore invalid TS data
and most TS enabled resources are (super-)tiled anyways, which we will
handle with a staging resource nonetheless, but better not keep this bad
example around and replace with the appropriate check.

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/24164>
This commit is contained in:
Lucas Stach 2023-07-14 18:09:59 +02:00 committed by Marge Bot
parent 78a999ecfa
commit f6222a4b92

View file

@ -275,7 +275,7 @@ etna_transfer_map(struct pipe_context *pctx, struct pipe_resource *prsc,
* render resource. Use the texture resource, which avoids bouncing
* pixels between the two resources, and we can de-tile it in s/w. */
rsc = etna_resource(rsc->texture);
} else if (rsc->ts_bo ||
} else if (etna_resource_level_ts_valid(res_level) ||
(rsc->layout != ETNA_LAYOUT_LINEAR &&
etna_resource_hw_tileable(screen->specs.use_blt, prsc) &&
/* HALIGN 4 resources are incompatible with the resolve engine,