[Intel-gfx] [PATCH 3/6] drm/i915: Set persistent-mode for ILK/SNB framebuffer compression

Jesse Barnes jbarnes at virtuousgeek.org
Thu Jul 7 18:14:57 CEST 2011


On Thu,  7 Jul 2011 12:48:08 +0100
Chris Wilson <chris at chris-wilson.co.uk> wrote:

> 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 at bwidawsk.net>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
>  drivers/gpu/drm/i915/i915_reg.h      |    1 +
>  drivers/gpu/drm/i915/intel_display.c |    2 ++
>  2 files changed, 3 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 5d5def7..86a75bc 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -579,6 +579,7 @@
>  #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)
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 0cbae6c..8ff0eae 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -1579,6 +1579,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);
>  

Yes, extra bits!  Looks like the latest specs don't restrict this bit
to being SNB only or anything, so setting it here looks good.

Reviewed-by: Jesse Barnes <jbarnes at virtuousgeek.org>

-- 
Jesse Barnes, Intel Open Source Technology Center



More information about the Intel-gfx mailing list