On Wed, Mar 29, 2017 at 10:36:17PM +0100, Chris Wilson wrote: > Make i915_gem_wait_for_idle() be a little heavier in order to try and > guarantee that the GPU is indeed idle (by checking each engine > individually is idle, i.e. all writes are complete and the rings > stopped) after waiting for in-flight requests to be completed. > > References: https://bugs.freedesktop.org/show_bug.cgi?id=98836 > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_gem.c | 17 +++++++++++++++-- > 1 file changed, 15 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > index ec194d3e6cd3..5f0aff016eb1 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -3054,6 +3054,19 @@ static int wait_for_timeline(struct i915_gem_timeline *tl, unsigned int flags) > return 0; > } > > +static int wait_for_engines(struct drm_i915_private *i915) > +{ > + struct intel_engine_cs *engine; > + enum intel_engine_id id; > + > + for_each_engine(engine, i915, id) { > + if (GEM_WARN_ON(wait_for(intel_engine_is_idle(engine), 50))) And I might want to consider an inline for wait_for(intel_engine_is_idle)) to avoid the hideous string :) -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx