This commit is split out because it's a bit tricky (or at least it was
for me). It could very well be squashed in to the previous commits.

The map_and_fenceable tracking is per object. Map_and_fenceable however
only makes sense in the context of the global gtt. As such, VMAs created
for any other address space should ever modify these flags.

Signed-off-by: Ben Widawsky <b...@bwidawsk.net>
---
 drivers/gpu/drm/i915/i915_gem.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 8fe5f4e..83e2eb3 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2644,7 +2644,7 @@ i915_gem_object_unbind(struct drm_i915_gem_object *obj,
 
        trace_i915_gem_object_unbind(obj, vm);
 
-       if (obj->has_global_gtt_mapping)
+       if (obj->has_global_gtt_mapping && is_i915_ggtt(vm))
                i915_gem_gtt_unbind_object(obj);
        if (obj->has_aliasing_ppgtt_mapping) {
                i915_ppgtt_unbind_object(dev_priv->gtt.aliasing_ppgtt, obj);
@@ -2655,7 +2655,8 @@ i915_gem_object_unbind(struct drm_i915_gem_object *obj,
 
        list_del(&obj->mm_list);
        /* Avoid an unnecessary call to unbind on rebind. */
-       obj->map_and_fenceable = true;
+       if (is_i915_ggtt(vm))
+               obj->map_and_fenceable = true;
 
        vma = i915_gem_obj_to_vma(obj, vm);
        list_del(&vma->vma_link);
@@ -3223,7 +3224,9 @@ search_free:
                is_i915_ggtt(vm) &&
                vma->node.start + obj->base.size <= dev_priv->gtt.mappable_end;
 
-       obj->map_and_fenceable = mappable && fenceable;
+       /* Map and fenceable only changes if the VM is the global GGTT */
+       if (is_i915_ggtt(vm))
+               obj->map_and_fenceable = mappable && fenceable;
 
        trace_i915_gem_object_bind(obj, vm, map_and_fenceable);
        i915_gem_verify_gtt(dev);
-- 
1.8.3.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to