[Intel-gfx] [PATCH 1/2] drm/i915: Only mark as map-and-fenceable when bound into the GGTT

Chris Wilson chris at chris-wilson.co.uk
Mon Nov 3 21:45:32 CET 2014


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



More information about the Intel-gfx mailing list