etnaviv: blt: set TS dirty after clear
authorJonathan Marek <jonathan@marek.ca>
Tue, 2 Jul 2019 21:05:27 +0000 (17:05 -0400)
committerChristian Gmeiner <christian.gmeiner@gmail.com>
Mon, 18 Nov 2019 19:59:02 +0000 (20:59 +0100)
RS engine does this already, it is missing for BLT engine. This fixes
cases where a clear isn't immediately at the start of the frame.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
src/gallium/drivers/etnaviv/etnaviv_blt.c

index c3e9da846f80f94fb7a7069aae39d1eea706c238..ef0bbe92a8f49718ceeba26e05000578197e077e 100644 (file)
@@ -252,6 +252,7 @@ etna_blit_clear_color_blt(struct pipe_context *pctx, struct pipe_surface *dst,
    if (surf->surf.ts_size) {
       ctx->framebuffer.TS_COLOR_CLEAR_VALUE = new_clear_value;
       surf->level->ts_valid = true;
+      ctx->dirty |= ETNA_DIRTY_TS | ETNA_DIRTY_DERIVE_TS;
    }
 
    surf->level->clear_value = new_clear_value;
@@ -325,6 +326,7 @@ etna_blit_clear_zs_blt(struct pipe_context *pctx, struct pipe_surface *dst,
    if (surf->surf.ts_size) {
       ctx->framebuffer.TS_DEPTH_CLEAR_VALUE = new_clear_value;
       surf->level->ts_valid = true;
+      ctx->dirty |= ETNA_DIRTY_TS | ETNA_DIRTY_DERIVE_TS;
    }
 
    surf->level->clear_value = new_clear_value;