diff options
author | Marek Olšák <[email protected]> | 2019-09-24 16:56:57 -0400 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2019-09-30 13:36:20 -0400 |
commit | 235ebe91633e7f47518118983e0e6f5c632b25a4 (patch) | |
tree | 268b89014acfd8f823a569419269988a0d4d49f6 | |
parent | 8cbe83445b2ec78fab1f303918c79268713500b5 (diff) |
radeonsi/gfx10: fix corruption for chips with harvested TCCs
Cc: 19.2 <[email protected]>
Reviewed-by: Bas Nieuwenhuizen <[email protected]>
-rw-r--r-- | src/gallium/drivers/radeonsi/si_pipe.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h index 2c3471de9ea..1906bdf16b2 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.h +++ b/src/gallium/drivers/radeonsi/si_pipe.h @@ -1684,7 +1684,9 @@ si_make_CB_shader_coherent(struct si_context *sctx, unsigned num_samples, SI_CONTEXT_INV_VCACHE; if (sctx->chip_class >= GFX10) { - if (shaders_read_metadata) + if (sctx->screen->info.tcc_harvested) + sctx->flags |= SI_CONTEXT_INV_L2; + else if (shaders_read_metadata) sctx->flags |= SI_CONTEXT_INV_L2_METADATA; } else if (sctx->chip_class == GFX9) { /* Single-sample color is coherent with shaders on GFX9, but @@ -1710,7 +1712,9 @@ si_make_DB_shader_coherent(struct si_context *sctx, unsigned num_samples, SI_CONTEXT_INV_VCACHE; if (sctx->chip_class >= GFX10) { - if (shaders_read_metadata) + if (sctx->screen->info.tcc_harvested) + sctx->flags |= SI_CONTEXT_INV_L2; + else if (shaders_read_metadata) sctx->flags |= SI_CONTEXT_INV_L2_METADATA; } else if (sctx->chip_class == GFX9) { /* Single-sample depth (not stencil) is coherent with shaders |