etnaviv: warn when imported TS buffer is the same as color buffer
authorLucas Stach <l.stach@pengutronix.de>
Tue, 25 Oct 2022 16:38:12 +0000 (18:38 +0200)
committerMarge Bot <emma+marge@anholt.net>
Thu, 3 Nov 2022 20:24:41 +0000 (20:24 +0000)
Color and TS buffers are allocated separately for each etnaviv resource, so
getting the same base and TS buffer at import time is unexpected and a strong
hint at the application doing something wrong, like passing in the same GEM
handle for all planes on a GBM import. Print a warning to give the user some
feedback.

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

src/gallium/drivers/etnaviv/etnaviv_resource.c

index 7e730a3..cd688af 100644 (file)
@@ -601,6 +601,10 @@ static void etna_resource_finish_ts_import(struct etna_screen *screen,
    uint64_t ts_modifier = rsc->modifier & VIVANTE_MOD_TS_MASK;
    uint8_t ts_mode = 0;
 
+   if (ts_rsc->bo == rsc->bo)
+      fprintf(stderr, "etnaviv: application bug: importing shared TS resource "
+              "with TS BO matching color BO, expect rendering corruption!\n");
+
    if (ts_modifier == VIVANTE_MOD_TS_256_4)
       ts_mode = TS_MODE_256B;