etnaviv: zero shared TS metadata block
authorLucas Stach <l.stach@pengutronix.de>
Wed, 20 Sep 2023 19:49:53 +0000 (21:49 +0200)
committerMarge Bot <emma+marge@anholt.net>
Tue, 17 Oct 2023 13:34:19 +0000 (13:34 +0000)
Make sure to zero the shared TS metadata memory. Without this invalid
TS data may be mistaken as being valid, causing GPU hangs.

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/25751>

src/gallium/drivers/etnaviv/etnaviv_resource.c

index 0078013..aab21d9 100644 (file)
@@ -190,6 +190,7 @@ etna_screen_resource_alloc_ts(struct pipe_screen *pscreen,
    /* fill software meta */
    if (modifier & VIVANTE_MOD_TS_MASK) {
       lvl->ts_meta = etna_bo_map(rsc->ts_bo);
+      memset(lvl->ts_meta, 0, sizeof(struct etna_ts_sw_meta));
       lvl->ts_meta->version = 0;
       lvl->ts_meta->v0.data_size = ts_size;
       lvl->ts_meta->v0.data_offset = ts_data_offset;