On 12/15/2014 2:28 PM, Daniel Vetter wrote: > On Mon, Dec 15, 2014 at 03:22:08PM +0100, Daniel Vetter wrote: >> On Mon, Dec 15, 2014 at 12:47:14PM +0000, Michel Thierry wrote: >>> On 12/15/2014 10:11 AM, Daniel Vetter wrote: >>>> On Thu, Dec 11, 2014 at 12:07:18PM +0000, Michel Thierry wrote: >>>>> When execlists submission is enabled, try full ppgtt by default. >>>>> >>>>> Note, this patch considers that execlist support has been enabled by >>>>> default on Gen8. >>>>> >>>>> Signed-off-by: Michel Thierry >>>>> --- >>>>> drivers/gpu/drm/i915/i915_gem_gtt.c | 9 ++++++--- >>>>> 1 file changed, 6 insertions(+), 3 deletions(-) >>>>> >>>>> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c >>>>> index 171f6ea..4ed3904 100644 >>>>> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c >>>>> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c >>>>> @@ -40,8 +40,8 @@ static int sanitize_enable_ppgtt(struct drm_device *dev, int enable_ppgtt) >>>>> has_aliasing_ppgtt = INTEL_INFO(dev)->gen >= 6; >>>>> has_full_ppgtt = INTEL_INFO(dev)->gen >= 7; >>>>> - if (IS_GEN8(dev)) >>>>> - has_full_ppgtt = false; /* XXX why? */ >>>>> + if (IS_GEN8(dev) && !i915.enable_execlists) >>>>> + has_full_ppgtt = false; /* Only enforce with execlists */ >>>> Imo this has outlived it's usefulness - enable_ppgtt is an unsafe >>>> parameter so everyone setting it themselves gets what they need. >>>> Afair this was just because of the execlist depency on gen8 for ppgtt. >>>> -Daniel >>> Not sure if I'm following you up on this... >>> The aim was to change the default value to _full_ only when execlists are >>> also enable (after Thomas' patch). In gen8, we don't want to have full >>> ppgtt with legacy ring submission. >> Yeah I gotten confused. The comment is a bit misleading thought, maybe >> "Full ppgtt needs execlist since otherwise the ctx switch can hang"? > Actually I wasnt' confused: gen8+ has full ppgtt, like gen7. It's broken > without execlist though, so what we should do is just change the default > below. Otherwise if a user explicitly sets execlist=0 and ppgtt=2 we won't > obey that, which doesn't make sense - for isolating bugs this might be a > valid testcase (even when we know there's problems). So your patch should > do two things: > - Generally allow full ppgtt on gen8 - the current restriction doesn't > make sense. > - Switch the default to full ppgtt when execlist is enabled on gen8+, leave > the default to aliasing/disabled everywhere else as is. > -Daniel Thanks for clarifying. I'll send a new patch. -Michel