i965: add CS stall on VF invalidation workaround
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Thu, 3 Jan 2019 16:18:48 +0000 (16:18 +0000)
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>
Fri, 4 Jan 2019 11:18:54 +0000 (11:18 +0000)
commit31e4c9ce400341df9b0136419b3b3c73b8c9eb7e
tree72c7a56dd886f68e4f8f6a75fc096cb57dea048d
parent92b7407090b1f11af49133968b63d583eba9b803
i965: add CS stall on VF invalidation workaround

Even with the previous commit, hangs are still happening. The problem
there is that the VF cache invalidate do happen immediately without
waiting for previous rendering to complete. What happens is that we
invalidate the cache the moment the PIPE_CONTROL is parsed but we
still have old rendering in the pipe which continues to pull data into
the cache with the old high address bits. The later rendering with the
new high address bits then doesn't have the clean cache that it
expects/needs.

v2: Update commit message/explanation with Jason's

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Fixes: a363bb2cd0e2a1 ("i965: Allocate VMA in userspace for full-PPGTT systems.")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109072
src/mesa/drivers/dri/i965/genX_blorp_exec.c
src/mesa/drivers/dri/i965/genX_state_upload.c