From: Marek Olšák Date: Sat, 29 Jun 2019 00:31:41 +0000 (-0400) Subject: radeonsi/gfx10: no need to invalidate L2 for framebuffer -> texture coherency X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5b50fb9b7f33a5acb5409b5e363a290ba856d509;p=mesa.git radeonsi/gfx10: no need to invalidate L2 for framebuffer -> texture coherency Acked-by: Pierre-Eric Pelloux-Prayer Acked-by: Dave Airlie --- diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h index 01a0ede4126..c63837e89fa 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.h +++ b/src/gallium/drivers/radeonsi/si_pipe.h @@ -1681,7 +1681,10 @@ si_make_CB_shader_coherent(struct si_context *sctx, unsigned num_samples, sctx->flags |= SI_CONTEXT_FLUSH_AND_INV_CB | SI_CONTEXT_INV_VCACHE; - if (sctx->chip_class >= GFX9) { + if (sctx->chip_class >= GFX10) { + 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 * L2 metadata must be flushed if shaders read metadata. * (DCC, CMASK). @@ -1704,7 +1707,10 @@ si_make_DB_shader_coherent(struct si_context *sctx, unsigned num_samples, sctx->flags |= SI_CONTEXT_FLUSH_AND_INV_DB | SI_CONTEXT_INV_VCACHE; - if (sctx->chip_class >= GFX9) { + if (sctx->chip_class >= GFX10) { + 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 * on GFX9, but L2 metadata must be flushed if shaders read * metadata.