Message ID | 1447444424-17168-2-git-send-email-paulo.r.zanoni@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Nov 13, 2015 at 05:53:33PM -0200, Paulo Zanoni wrote: > In function find_compression_threshold() we try to over-allocate CFB > space in order to reduce reallocations and fragmentation, and we're > not considering that at the CFB size check. Consider it. > > There is also a longer-term plan to kill > dev_priv->fbc.uncompressed_size, but this will come later. > > Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> > --- > drivers/gpu/drm/i915/intel_fbc.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm/i915/intel_fbc.c > index 11fc528..611672f 100644 > --- a/drivers/gpu/drm/i915/intel_fbc.c > +++ b/drivers/gpu/drm/i915/intel_fbc.c > @@ -720,7 +720,8 @@ static int intel_fbc_setup_cfb(struct intel_crtc *crtc) > size = intel_fbc_calculate_cfb_size(crtc); > cpp = drm_format_plane_cpp(fb->pixel_format, 0); > > - if (size <= dev_priv->fbc.uncompressed_size) > + if (dev_priv->fbc.compressed_fb.allocated && > + size <= dev_priv->fbc.compressed_fb.size * dev_priv->fbc.threshold) > return 0; Hmm, not sure if it would be worth just clearing compressed_fb.size after remove. But at any rate, you want to use drm_mm_node_allocated(&fbc.compressed_fb). With that minor change, Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> -Chris
diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm/i915/intel_fbc.c index 11fc528..611672f 100644 --- a/drivers/gpu/drm/i915/intel_fbc.c +++ b/drivers/gpu/drm/i915/intel_fbc.c @@ -720,7 +720,8 @@ static int intel_fbc_setup_cfb(struct intel_crtc *crtc) size = intel_fbc_calculate_cfb_size(crtc); cpp = drm_format_plane_cpp(fb->pixel_format, 0); - if (size <= dev_priv->fbc.uncompressed_size) + if (dev_priv->fbc.compressed_fb.allocated && + size <= dev_priv->fbc.compressed_fb.size * dev_priv->fbc.threshold) return 0; /* Release any current block */
In function find_compression_threshold() we try to over-allocate CFB space in order to reduce reallocations and fragmentation, and we're not considering that at the CFB size check. Consider it. There is also a longer-term plan to kill dev_priv->fbc.uncompressed_size, but this will come later. Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> --- drivers/gpu/drm/i915/intel_fbc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)