[Intel-gfx] [PATCH] drm/i915/fbc: enable FBC by default on HSW and BDW

Daniel Vetter daniel at ffwll.ch
Wed Feb 17 16:23:23 UTC 2016


On Tue, Feb 16, 2016 at 06:47:21PM -0200, Paulo Zanoni wrote:
> These platforms should be fine now.
> 
> FBC can allow very significant power savings for screen-on idle
> systems, but it is worth mentioning that a lot of people won't get
> significant power savings by enabling this feature because they may
> have something else preventing the system from getting into the
> deepest sleep states. Examples may include a hungry wifi device or a
> max_performance SATA link power management policy. You can check your
> PC state residencies on the powertop "Idle stats" tab. I recommend
> trying to run "sudo powertop --auto-tune" and then seeing if the
> residencies improve.
> 
> Oh, and in case you - the person reading this commit message - found
> this commit through git bisect, please do the following:
>  - Check your dmesg and see if there are error messages mentioning
>    underruns around the time your problem started happening.
>  - Download intel-gpu-tools, compile it, and run:
>    $ sudo ./tests/kms_frontbuffer_tracking --run-subtest '*fbc-*' 2>&1 | tee fbc.txt
>    Then send us the fbc.txt file, especially if you get a failure.
>    This will really maximize your chances of getting the bug fixed
>    quickly.
>  - Try to find a reliable way to reproduce the problem, and tell us.
>  - Boot with drm.debug=0xe, reproduce the problem, then send us the
>    dmesg file.
> 
> v2: Don't enable by default on SKL.
> 
> Signed-off-by: Paulo Zanoni <paulo.r.zanoni at intel.com>

Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>

> ---
>  drivers/gpu/drm/i915/intel_fbc.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm/i915/intel_fbc.c
> index 3614a95..0f0492f 100644
> --- a/drivers/gpu/drm/i915/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/intel_fbc.c
> @@ -823,13 +823,15 @@ static bool intel_fbc_can_choose(struct intel_crtc *crtc)
>  {
>  	struct drm_i915_private *dev_priv = crtc->base.dev->dev_private;
>  	struct intel_fbc *fbc = &dev_priv->fbc;
> +	bool enable_by_default = IS_HASWELL(dev_priv) ||
> +				 IS_BROADWELL(dev_priv);
>  
>  	if (intel_vgpu_active(dev_priv->dev)) {
>  		fbc->no_fbc_reason = "VGPU is active";
>  		return false;
>  	}
>  
> -	if (i915.enable_fbc < 0) {
> +	if (i915.enable_fbc < 0 && !enable_by_default) {
>  		fbc->no_fbc_reason = "disabled per chip default";
>  		return false;
>  	}
> -- 
> 2.7.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the Intel-gfx mailing list