]> git.openfabrics.org - ~shefty/rdma-dev.git/commitdiff
drm/i915: Set persistent-mode for ILK/SNB framebuffer compression
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 8 Jul 2011 11:22:40 +0000 (12:22 +0100)
committerKeith Packard <keithp@keithp.com>
Fri, 8 Jul 2011 17:23:12 +0000 (10:23 -0700)
Persistent mode is intended for use with front-buffer rendering, such as
X, where it is necessary to detect writes to the scanout either by the
GPU or through the CPU's fence, and recompress the dirty regions on the
fly. (By comparison to the back-buffer rendering, the scanout is always
recompressed after a page-flip.)

References: https://bugs.freedesktop.org/show_bug.cgi?id=33487
References: https://bugs.freedesktop.org/show_bug.cgi?id=31742
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Keith Packard <keithp@keithp.com>
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/intel_display.c

index 4a446b116e6aa1b5a12bf10cd2002ba42aea9576..96fb0fa47c40e7794eb984bb35f5f3d7e61cff9f 100644 (file)
 #define   DPFC_CTL_PLANEA      (0<<30)
 #define   DPFC_CTL_PLANEB      (1<<30)
 #define   DPFC_CTL_FENCE_EN    (1<<29)
+#define   DPFC_CTL_PERSISTENT_MODE     (1<<25)
 #define   DPFC_SR_EN           (1<<10)
 #define   DPFC_CTL_LIMIT_1X    (0<<6)
 #define   DPFC_CTL_LIMIT_2X    (1<<6)
index 31c75266a4562bca407b44dd325510f0a858f303..9df96bdc002ed15c01409e3f7aaf8dc7b7313fd3 100644 (file)
@@ -1581,6 +1581,8 @@ static void ironlake_enable_fbc(struct drm_crtc *crtc, unsigned long interval)
 
        dpfc_ctl &= DPFC_RESERVED;
        dpfc_ctl |= (plane | DPFC_CTL_LIMIT_1X);
+       /* Set persistent mode for front-buffer rendering, ala X. */
+       dpfc_ctl |= DPFC_CTL_PERSISTENT_MODE;
        dpfc_ctl |= (DPFC_CTL_FENCE_EN | dev_priv->cfb_fence);
        I915_WRITE(ILK_DPFC_CHICKEN, DPFC_HT_MODIFY);