On Thu, Sep 26, 2013 at 09:22:45AM +0100, Chris Wilson wrote: > commit c6916417c8575637659686ff0e4f744babf0cb4e > Author: Ben Widawsky <ben@xxxxxxxxxxxx> > Date: Tue Sep 24 09:58:00 2013 -0700 > > drm/i915: Use the new vm [un]bind functions > > changes the interpretation of the bind routines, and in particular we > only bind into the global GTT if we pass a flag to the routine. So upon > resume, we need to ask for whatever we thing is bound into the global > GTT (cursors, fences, scanouts) to be rebound or else glorious > corruption ensues. > > v2.1: Clear the is-bound flags before attempting to rebind. Probably wouldn't hurt to add a comment on why you are clearing flags on resume (which would seemingly want to be cleared on suspend, but for pretty good reason cannot). > > Fixes: i-g-t/gem_suspend > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=69834 > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: Ben Widawsky <ben@xxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_gem_gtt.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c > index e053f14..55a8d87 100644 > --- a/drivers/gpu/drm/i915/i915_gem_gtt.c > +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c > @@ -508,8 +508,14 @@ void i915_gem_restore_gtt_mappings(struct drm_device *dev) > list_for_each_entry(obj, &dev_priv->mm.bound_list, global_list) { > struct i915_vma *vma = i915_gem_obj_to_vma(obj, > &dev_priv->gtt.base); > + unsigned flags = obj->has_global_gtt_mapping ? GLOBAL_BIND : 0; > + > i915_gem_clflush_object(obj, obj->pin_display); > - vma->vm->bind_vma(vma, obj->cache_level, 0); > + > + obj->has_global_gtt_mapping = false; > + obj->has_aliasing_ppgtt_mapping = false; Actually, the aliasing PPGTT mapping may very well still be in tact. Unless I'm not seeing something that you are. > + > + vma->vm->bind_vma(vma, obj->cache_level, flags); > } > > i915_gem_chipset_flush(dev); > -- > 1.8.4.rc3 > -- Ben Widawsky, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx