iris: reduce redundant tile cache flushes
We are flushing tile cache more often than is necessary. In unified cache mode, tile cache flushing is expensive, evicting all depth/pixel data from the L3$. This is only need for a handful of cases, such as: making cpu or gpu changes globally visible (e.g. map), fast color clears, or slow depth clears. Tile cache flushing is a gen12+ feature. Remove blanket flushing of tile cache on all depth/RT flushes. Replace with selective tile cache flushing. Improves performance in several workloads: AztecRuins.ogl-high-offscreen-1440p 1% UnigineValley.ogl-g2 1% Dota 2 (replay Jul 2020).ogl-g2 1% Counter-Strike GO.ogl-g2 1% Manhattan.ogl-Off-19x10 2% CarChase.ogl-Off-19x10 1% Bioshock Infinite.ogl-g2 1% Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10217>
This commit is contained in:
@@ -336,6 +336,7 @@ enum pipe_control_flags
|
||||
#define PIPE_CONTROL_CACHE_FLUSH_BITS \
|
||||
(PIPE_CONTROL_DEPTH_CACHE_FLUSH | \
|
||||
PIPE_CONTROL_DATA_CACHE_FLUSH | \
|
||||
PIPE_CONTROL_TILE_CACHE_FLUSH | \
|
||||
PIPE_CONTROL_RENDER_TARGET_FLUSH)
|
||||
|
||||
#define PIPE_CONTROL_CACHE_INVALIDATE_BITS \
|
||||
|
Reference in New Issue
Block a user