mesa/src/intel
Jason Ekstrand 0624d6c2a4 anv: Improve flushing around STATE_BASE_ADDRESS
It is not clear from the docs exactly how pipelined STATE_BASE_ADDRESS
actually is.  We know from experimentation that we need to flush the
render cache prior to emitting STATE_BASE_ADDRESS and invalidate the
texture cache afterwards.  The only thing the PRM says is that, on gen8+
we're supposed to invalidate the state cache after STATE_BASE_ADDRESS
but experimentation has indicated that doing so does nothing whatsoever.

Since we don't really know, let's do just a bit more flushing in the
hopes that this won't be a problem again.  In particular:

 1) Do a CS stall before we emit STATE_BASE_ADDRESS since we don't
    really know whether or not it's pipelined.

 2) Do a data cache flush in case what runs before STATE_BASE_ADDRESS
    is a compute shader.

 3) Invalidate the state and constant caches after STATE_BASE_ADDRESS
    because the state may be getting cached there (we don't really know).

Reported-by: Mark Janes <mark.a.janes@intel.com>
Tested-by: Mark Janes <mark.a.janes@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Cc: "13.0 17.0" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit 92128590bc)
2017-02-09 23:41:56 +00:00
..
blorp intel/blorp: Handle clearing of A4B4G4R4 on all platforms 2017-02-09 23:41:56 +00:00
common i965/glk: Add basic Geminilake support 2016-11-24 16:34:40 +00:00
genxml genxml/gen9: Change the default of MI_SEMAPHORE_WAIT::RegisterPoleMode 2016-12-14 19:03:11 +00:00
isl isl/formats: Only advertise sampling for A4B4G4R4 on Broadwell 2017-02-09 23:41:56 +00:00
tools intel: aubinator: use different colors to signal batch start/end 2016-10-17 18:16:38 +01:00
vulkan anv: Improve flushing around STATE_BASE_ADDRESS 2017-02-09 23:41:56 +00:00
Android.blorp.mk intel/blorp: fix typo in android makefile 2016-09-03 08:22:53 -07:00
Android.common.mk android: intel: fix include paths in new "common" library 2016-09-03 20:03:16 -07:00
Android.genxml.mk android: intel: Flatten the makefile structure 2016-08-29 12:17:34 -07:00
Android.isl.mk android: intel: Flatten the makefile structure 2016-08-29 12:17:34 -07:00
Android.mk intel: Add a new "common" library for more code sharing 2016-09-03 08:23:06 -07:00
Makefile.am intel: Add a new "common" library for more code sharing 2016-09-03 08:23:06 -07:00
Makefile.blorp.am i965: Move blorp into src/intel/blorp 2016-08-29 12:17:34 -07:00
Makefile.common.am intel: Add a new "common" library for more code sharing 2016-09-03 08:23:06 -07:00
Makefile.genxml.am genxml: add generated headers to EXTRA_DIST 2016-10-18 17:06:42 +01:00
Makefile.isl.am intel: Add a new "common" library for more code sharing 2016-09-03 08:23:06 -07:00
Makefile.sources intel/genxml: fix building rules for aubinator required headers 2016-10-11 13:53:19 +01:00