iris: Extend the cache tracker to handle L3 flushes and invalidates
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 2 Aug 2021 21:50:19 +0000 (14:50 -0700)
committerMarge Bot <emma+marge@anholt.net>
Wed, 13 Apr 2022 09:07:35 +0000 (09:07 +0000)
commit43e3747eea17659b5209dff48d337eff739ec3a0
tree194a141c43502b1148bd784936626b4964dbbb4e
parent8cd7e94ecaefbb4dfa7a55dbb404a9dbb36deee0
iris: Extend the cache tracker to handle L3 flushes and invalidates

Most clients are L3-coherent these days.  However, there are some
notable exceptions, such as push constants, stream output, and command
streamer memory reads and writes.

With the advent of the tile cache, flushing the render or depth caches
alone are no longer sufficient for memory to become globally-observable.
For those, we need to flush the tile cache as well.  However, we'd like
to avoid that for L3-coherent clients, as it shouldn't be necessary,
and is expensive.

Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15275>
src/gallium/drivers/iris/iris_batch.h
src/gallium/drivers/iris/iris_context.h
src/gallium/drivers/iris/iris_pipe_control.c
src/gallium/drivers/iris/iris_state.c