drm/i915/bdw: conservative SBE VUE cache mode
authorBen Widawsky <ben@bwidawsk.net>
Sun, 3 Nov 2013 04:07:59 +0000 (21:07 -0700)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 8 Nov 2013 17:10:06 +0000 (18:10 +0100)
Hold vertex data in cache until last reference

BDW-A workaround

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/intel_pm.c

index c0b398572c2aec0c9eb29bcda13b6c8da3e20134..e1a1bb71896a6c59811dd3ff3f9055f16b398fd0 100644 (file)
 /* GEN7 chicken */
 #define GEN7_COMMON_SLICE_CHICKEN1             0x7010
 # define GEN7_CSC1_RHWO_OPT_DISABLE_IN_RCC     ((1<<10) | (1<<26))
+#define COMMON_SLICE_CHICKEN2                  0x7014
+# define GEN8_CSC2_SBE_VUE_CACHE_CONSERVATIVE  (1<<0)
 
 #define GEN7_L3CNTLREG1                                0xB01C
 #define  GEN7_WA_FOR_GEN7_L3_CONTROL                   0x3C4FFF8C
index 5dceb56f6ceb9174edd62181f2cf571557cd6947..ccd1b88bc24a6a502c6459ad9ae4d66f5d052fc9 100644 (file)
@@ -5297,6 +5297,9 @@ static void gen8_init_clock_gating(struct drm_device *dev)
        I915_WRITE(_3D_CHICKEN3,
                   _3D_CHICKEN_SDE_LIMIT_FIFO_POLY_DEPTH(2));
 
+       I915_WRITE(COMMON_SLICE_CHICKEN2,
+                  _MASKED_BIT_ENABLE(GEN8_CSC2_SBE_VUE_CACHE_CONSERVATIVE));
+
        /* WaSwitchSolVfFArbitrationPriority */
        I915_WRITE(GAM_ECOCHK, I915_READ(GAM_ECOCHK) | HSW_ECOCHK_ARB_PRIO_SOL);