OSDN Git Service

i965: Fix cache pollution race during L3 partitioning set-up.
authorFrancisco Jerez <currojerez@riseup.net>
Thu, 14 Jan 2016 19:22:46 +0000 (11:22 -0800)
committerFrancisco Jerez <currojerez@riseup.net>
Mon, 8 Feb 2016 23:45:44 +0000 (15:45 -0800)
commit0aa4f99f562a05880a779707cbcd46be459863bf
treea9c02bfad7ae5798eb63aee57f3be178101e4ea7
parent1817e3c07a63c6404d6df323fbd443ccd9304b02
i965: Fix cache pollution race during L3 partitioning set-up.

We need to split the stalling flush from the RO cache invalidation
into a different PIPE_CONTROL command to make sure that the top of the
pipe invalidation happens after any previous rendering is complete.
Otherwise it's possible for previous rendering to pollute the L3 cache
in the short window of time between RO invalidation and the completion
of the stalling flush.  Fixes rendering artifacts on Unigine Heaven,
Metro Last Light Redux and Metro 2033 Redux.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93540
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93599
Tested-by: Darius Spitznagel <d.spitznagel@goodbytez.de>
Tested-by: Martin Peres <martin.peres@linux.intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/gen7_l3_state.c