iris: Add texture cache flushing hacks for blit and resource_copy_region
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 5 Apr 2019 23:47:39 +0000 (16:47 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 16 Apr 2019 20:04:22 +0000 (13:04 -0700)
commitc4478889b7176ea5aed52d1630bedb43797a00f0
tree04374076ae35953c841f4c8cd10c3567c5fc3a89
parent697e2e1f268ef464cfbde01719757e865b86ecbf
iris: Add texture cache flushing hacks for blit and resource_copy_region

This is a port of Jason's 8379bff6c4456f8a77041eee225dcd44e5e00a76
from i965 to iris.  We can't find anything relevant in the documentation
and no one we've talked to has been able to help us pin down a solution.

Unfortunately, we have to put the hack in both iris_blit() and
iris_copy_region().  st/mesa's CopyImage() implementation sometimes
chooses to use pipe->blit() instead of pipe->resource_copy_region().
For blits, we only do the hack if the blit source format doesn't match
the underlying resource (i.e. it's reinterpreting the bits).  Hopefully
this should not be too common.
src/gallium/drivers/iris/iris_blit.c