On Mon, Nov 03, 2014 at 04:17:57PM +0100, Daniel Vetter wrote: > On Fri, Oct 31, 2014 at 01:53:52PM +0000, Chris Wilson wrote: > > @@ -4091,6 +4078,7 @@ i915_gem_object_pin(struct drm_i915_gem_object *obj, > > } > > } > > > > + bound = vma ? vma->bound : 0; > > if (vma == NULL || !drm_mm_node_allocated(&vma->node)) { > > vma = i915_gem_object_bind_to_vm(obj, vm, alignment, flags); > > if (IS_ERR(vma)) > > @@ -4100,6 +4088,29 @@ i915_gem_object_pin(struct drm_i915_gem_object *obj, > > if (flags & PIN_GLOBAL && !(vma->bound & GLOBAL_BIND)) > > vma->bind_vma(vma, obj->cache_level, GLOBAL_BIND); > > > > + if ((bound ^ vma->bound) & GLOBAL_BIND) { > > Shouldn't we have a && i915_is_ggtt(vma->vm) check here too? vma->bound & GLOBAL_BIND => i915_is_ggtt(). > Then we could just look at the vma's drm_mm node instead of jumping > through the helpers here. Which gets us one inch closer to tracking > mappable in the ggtt vma, without increasing the diff ;-) Oh, that's just copy and paste without thinking. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx