[06/17] drm/i915: Dont clear PIN_GLOBAL in the execbuf pinning fallback

Submitted by Daniel Vetter on April 14, 2015, 3:35 p.m.

Details

Message ID 1429025727-15380-7-git-send-email-daniel.vetter@ffwll.ch
State New
Headers show

Not browsing as part of any series.

Commit Message

Daniel Vetter April 14, 2015, 3:35 p.m.
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.

The important part of the fallback is to drop the restriction to
the mappable range.

This issue has been introduced in

commit edf4427b8055dc93eb5222d8174b07a75ba24fb5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jan 14 11:20:56 2015 +0000

    drm/i915: Fallback to using CPU relocations for large batch buffers

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Patch hide | download patch | download mbox

diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
index 48ac5608481e..a7ed9f695586 100644
--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
@@ -600,7 +600,7 @@  i915_gem_execbuffer_reserve_vma(struct i915_vma *vma,
 	    only_mappable_for_reloc(entry->flags))
 		ret = i915_gem_object_pin(obj, vma->vm,
 					  entry->alignment,
-					  flags & ~(PIN_GLOBAL | PIN_MAPPABLE));
+					  flags & ~PIN_MAPPABLE);
 	if (ret)
 		return ret;
 

Comments

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.
-Chris