Skip to content
Snippets Groups Projects
Commit ff01821f authored by Marek Olšák's avatar Marek Olšák Committed by Dylan Baker
Browse files

radeonsi: don't assume that TC_ACTION_ENA invalidates L1 cache on gfx9


Just got into a midnight discussion with a hw guy.
TC_ACTION_ENA apparently doesn't invalidate L1, so don't clear
the INV_VCACHE flag.

Fixes: 4056e953 - radeonsi: move emit_cache_flush functions into si_gfx_cs.c

Reviewed-by: default avatarPierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: default avatarDave Airlie <airlied@redhat.com>
Part-of: <mesa/mesa!17902>
(cherry picked from commit 279315fd)
parent 5c847c68
No related branches found
No related tags found
No related merge requests found
......@@ -1903,7 +1903,7 @@
"description": "radeonsi: don't assume that TC_ACTION_ENA invalidates L1 cache on gfx9",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "4056e953fe43bd667e1812c1c7075285d24b42c2"
},
......@@ -938,7 +938,7 @@ void si_emit_cache_flush(struct si_context *sctx, struct radeon_cmdbuf *cs)
* All operations that invalidate L2 also seem to invalidate
* metadata. Volatile (VOL) and WC flushes are not listed here.
*
* TC | TC_WB = writeback & invalidate L2 & L1
* TC | TC_WB = writeback & invalidate L2
* TC | TC_WB | TC_NC = writeback & invalidate L2 for MTYPE == NC
* TC_WB | TC_NC = writeback L2 for MTYPE == NC
* TC | TC_NC = invalidate L2 for MTYPE == NC
......@@ -957,7 +957,7 @@ void si_emit_cache_flush(struct si_context *sctx, struct radeon_cmdbuf *cs)
tc_flags = EVENT_TC_ACTION_ENA | EVENT_TC_WB_ACTION_ENA;
/* Clear the flags. */
flags &= ~(SI_CONTEXT_INV_L2 | SI_CONTEXT_WB_L2 | SI_CONTEXT_INV_VCACHE);
flags &= ~(SI_CONTEXT_INV_L2 | SI_CONTEXT_WB_L2);
sctx->num_L2_invalidates++;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment