[Intel-gfx] [PATCH 2/4] drm/i915: Extract CFB threshold calculation
Rodrigo Vivi
rodrigo.vivi at gmail.com
Tue Jul 1 02:16:15 CEST 2014
Reviewed-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
On Thu, Jun 19, 2014 at 12:06 PM, Ben Widawsky <benjamin.widawsky at intel.com>
wrote:
> Right now, there is no threshold (0 means fail, 1 means 1:1 compression
> limit). This is to split the function/non-functional change of the next
> patch.
>
> The next patch will start to attempt to reduce the amount of CFB space
> we need for dire situations. It will be contained within this function.
>
> Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
> ---
> drivers/gpu/drm/i915/i915_gem_stolen.c | 26 ++++++++++++++++++++------
> 1 file changed, 20 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c
> b/drivers/gpu/drm/i915/i915_gem_stolen.c
> index 642fd36..a86b331 100644
> --- a/drivers/gpu/drm/i915/i915_gem_stolen.c
> +++ b/drivers/gpu/drm/i915/i915_gem_stolen.c
> @@ -103,22 +103,36 @@ static unsigned long i915_stolen_to_physical(struct
> drm_device *dev)
> return base;
> }
>
> -static int i915_setup_compression(struct drm_device *dev, int size)
> +static int find_compression_threshold(struct drm_device *dev,
> + struct drm_mm_node *node,
> + int size)
> {
> struct drm_i915_private *dev_priv = dev->dev_private;
> - struct drm_mm_node *uninitialized_var(compressed_llb);
> + const int compression_threshold = 1;
> int ret;
>
> /* Try to over-allocate to reduce reallocations and fragmentation
> */
> - ret = drm_mm_insert_node(&dev_priv->mm.stolen,
> - &dev_priv->fbc.compressed_fb,
> + ret = drm_mm_insert_node(&dev_priv->mm.stolen, node,
> size <<= 1, 4096, DRM_MM_SEARCH_DEFAULT);
> if (ret)
> - ret = drm_mm_insert_node(&dev_priv->mm.stolen,
> - &dev_priv->fbc.compressed_fb,
> + ret = drm_mm_insert_node(&dev_priv->mm.stolen, node,
> size >>= 1, 4096,
> DRM_MM_SEARCH_DEFAULT);
> if (ret)
> + return 0;
> + else
> + return compression_threshold;
> +}
> +
> +static int i915_setup_compression(struct drm_device *dev, int size)
> +{
> + struct drm_i915_private *dev_priv = dev->dev_private;
> + struct drm_mm_node *uninitialized_var(compressed_llb);
> + int ret;
> +
> + ret = find_compression_threshold(dev, &dev_priv->fbc.compressed_fb,
> + size);
> + if (!ret)
> goto err_llb;
>
> if (HAS_PCH_SPLIT(dev))
> --
> 2.0.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
--
Rodrigo Vivi
Blog: http://blog.vivi.eng.br
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20140630/193967ec/attachment.html>
More information about the Intel-gfx
mailing list