iris: Don't bother with PIPE_CONTROLs for CPU writes and no history
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 20 Jun 2019 04:30:52 +0000 (23:30 -0500)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 20 Jun 2019 18:32:16 +0000 (13:32 -0500)
commit1d63af0f2c6be12d134357670c32c47ace2c8da2
tree60b58284f54e5e3a75ca1f5922f7031409db115a
parentdfff6e10b4296592bae0034e91c633a31b2d2b90
iris: Don't bother with PIPE_CONTROLs for CPU writes and no history

If a buffer has no usage history, we don't have any read only cache
invalidates to do.  If we've written it with the CPU, we don't need
to flush the render cache.  The only bit remaining is the CS stall
from iris_flush_bits_for_history.  We can just skip the PIPE_CONTROL
in this case.

This is pretty common - an app creates a buffer, fills it with data,
and then binds it for some purpose.

Cuts 36% of the flushes in Manhattan 3.0 on Kabylake GT2.
src/gallium/drivers/iris/iris_resource.c