i965: Invalidate state cache before L3 partitioning set-up.
authorFrancisco Jerez <currojerez@riseup.net>
Thu, 14 Jan 2016 20:17:01 +0000 (12:17 -0800)
committerFrancisco Jerez <currojerez@riseup.net>
Mon, 8 Feb 2016 23:47:21 +0000 (15:47 -0800)
The state cache is also L3-backed so it seems sensible to make sure
it's clean as we do for other RO caches before repartitioning the L3.
This wasn't part of my original L3 partitioning code because I was
able to reproduce hangs on Gen7 hardware when the state cache
invalidation happened asynchronously with previous 3D rendering, which
should no longer be possible after the previous change.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/gen7_l3_state.c

index 85f18d0e01265a822fb62f194fe7bbf7c2af2a5f..ff67c90fe8706fd488becdfbfe3cffb99854379e 100644 (file)
@@ -355,6 +355,7 @@ setup_l3_config(struct brw_context *brw, const struct brw_l3_config *cfg)
                                PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE |
                                PIPE_CONTROL_CONST_CACHE_INVALIDATE |
                                PIPE_CONTROL_INSTRUCTION_INVALIDATE |
+                               PIPE_CONTROL_STATE_CACHE_INVALIDATE |
                                PIPE_CONTROL_NO_WRITE);
 
    /* Now send a third stalling flush to make sure that invalidation is