On Tue, Apr 14, 2015 at 04:53:24PM +0100, Chris Wilson wrote: > On Tue, Apr 14, 2015 at 05:35:16PM +0200, Daniel Vetter wrote: > > PIN_GLOBAL is set only when userspace asked for it, and that > > is only the case for the gen6 PIPE_CONTROL workaround. We're not > > allowed to just clear this. > > Nope. See only_mappable_for_reloc(). There is an issue here, but this is > not it. Less cyptic, I think you want: diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c index a60bfeadc4fb..8599cd87cce5 100644 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c @@ -735,14 +735,14 @@ i915_gem_execbuffer_reserve_vma(struct i915_vma *vma, int ret; flags = 0; + if (entry->flags & EXEC_OBJECT_NEEDS_GTT) + flags |= PIN_GLOBAL; if (!drm_mm_node_allocated(&vma->node)) { if (entry->flags & __EXEC_OBJECT_NEEDS_MAP) { flags |= PIN_GLOBAL | PIN_MAPPABLE; if (only_mappable_for_reloc(entry->flags)) flags |= PIN_NONBLOCK; } - if (entry->flags & EXEC_OBJECT_NEEDS_GTT) - flags |= PIN_GLOBAL; if (entry->flags & __EXEC_OBJECT_NEEDS_BIAS) flags |= BATCH_OFFSET_BIAS | PIN_OFFSET_BIAS; if (entry->flags & EXEC_OBJECT_PINNED) -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx