On Sat, Sep 14, 2013 at 03:03:17PM -0700, Ben Widawsky wrote:
> +static void gen6_ggtt_bind_vma(struct i915_vma *vma,
> +                            enum i915_cache_level cache_level,
> +                            u32 flags)
> +{
> +     struct drm_device *dev = vma->vm->dev;
> +     struct drm_i915_private *dev_priv = dev->dev_private;
> +     struct drm_i915_gem_object *obj = vma->obj;
> +     const unsigned long entry = vma->node.start >> PAGE_SHIFT;
> +
> +     /* If there is an aliasing PPGTT, and the user didn't explicitly ask for
> +      * the global, just use aliasing */
> +     if (!dev_priv->mm.aliasing_ppgtt || flags & GLOBAL_BIND) {
> +             /* If the object is unbound, or we're change the cache bits */
> +             if (!obj->has_global_gtt_mapping ||
> +                 (cache_level != obj->cache_level)) {
> +                     gen6_ggtt_insert_entries(vma->vm, obj->pages, entry,
> +                                              cache_level);
> +                     obj->has_global_gtt_mapping = 1;
> +             }
> +     }
> +
> +     /* If put the mapping in the aliasing PPGTT as well as Global if we have
> +      * aliasing, but the user requested global. */

Why? As a proponent of full-ppgtt I thought you would be envisoning a
future where the aliasing_ppgtt was used far less (i.e. never), and the
ggtt would only continue to be used for the truly global entries such as
scanouts, contexts, pdes, execlists etc.

> +     if (dev_priv->mm.aliasing_ppgtt &&
> +         (!obj->has_aliasing_ppgtt_mapping ||
> +          (cache_level != obj->cache_level))) {
> +             gen6_ppgtt_insert_entries(&dev_priv->mm.aliasing_ppgtt->base,
> +                                       vma->obj->pages, entry, cache_level);
> +             vma->obj->has_aliasing_ppgtt_mapping = 1;
> +     }
> +}

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to