drm/i915/gtt: Enable full-ppgtt by default everywhere
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 17 Jul 2018 09:57:50 +0000 (10:57 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 19 Jul 2018 16:03:59 +0000 (17:03 +0100)
We should we have all the kinks worked out and full-ppgtt now works
reliably on gen7 (Ivybridge, Valleyview/Baytrail and Haswell). If we can
let userspace have full control over their own ppgtt, it makes softpinning
far more effective, in turn making GPU dispatch far more efficient by
virtue of better mm segregation.  On the other hand, switching over to a
different GTT for every client does incur noticeable overhead, but only
for very lightweight tasks.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Matthew Auld <matthew.william.auld@gmail.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Jason Ekstrand <jason.ekstrand@intel.com>
Cc: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20180717095751.1034-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_gem_gtt.c

index 3d75f2bb5623390fc42fedb4090f537a03f977cc..dd09d4d8b0ede7b78dda0e2fd84bb846d6e16216 100644 (file)
@@ -179,13 +179,11 @@ int intel_sanitize_enable_ppgtt(struct drm_i915_private *dev_priv,
                return 0;
        }
 
-       if (HAS_LOGICAL_RING_CONTEXTS(dev_priv)) {
-               if (has_full_48bit_ppgtt)
-                       return 3;
+       if (has_full_48bit_ppgtt)
+               return 3;
 
-               if (has_full_ppgtt)
-                       return 2;
-       }
+       if (has_full_ppgtt)
+               return 2;
 
        return 1;
 }