drm/i915: Don't check for NEEDS_GTT when deciding the address space
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 18 Dec 2013 16:46:18 +0000 (17:46 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 18 Dec 2013 16:50:40 +0000 (17:50 +0100)
This means something different and is only relevant for gen6 and the
reason why we cant use anything else than aliasing ppgtt there.

Note that the currently implemented logic for secure batches is
broken: Userspace wants the buffer both in ppgtt (for self-referencing
relocations) and in ggtt (for priveledge operations).

This is the same issue the command parser is also facing.
Unfortunately our coverage for corner-cases of self-referencing
batches is spotty.

Note that this will break vsync'ed Xv and DRI2 copies.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_gem_execbuffer.c

index 277485505bcabd09e4726ef5c97c10e75348274b..a36511db14168060adc0aea4cd7fc3a865d3858b 100644 (file)
@@ -137,8 +137,7 @@ eb_lookup_vmas(struct eb_vmas *eb,
                /* If we have secure dispatch, or the userspace assures us that
                 * they know what they're doing, use the GGTT VM.
                 */
-               if (exec[i].flags & EXEC_OBJECT_NEEDS_GTT ||
-                   ((args->flags & I915_EXEC_SECURE) &&
+               if (((args->flags & I915_EXEC_SECURE) &&
                    (i == (args->buffer_count - 1))))
                        bind_vm = &dev_priv->gtt.base;