From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: Mark CPU cache as dirty when used for rendering Date: Mon, 7 Nov 2016 18:35:57 +0200 Message-ID: <20161107163557.GZ4617@intel.com> References: <20161107154628.32474-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Return-path: Content-Disposition: inline In-Reply-To: <20161107154628.32474-1-chris@chris-wilson.co.uk> Sender: stable-owner@vger.kernel.org To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org, Jani Nikula , "# v4 . 0+" List-Id: intel-gfx@lists.freedesktop.org On Mon, Nov 07, 2016 at 03:46:28PM +0000, Chris Wilson wrote: > On LLC, or even snooped, machines rendering via the GPU ends up in the CPU > cache. This cacheline dirt also needs to be flushed to main memory when > moving to an incoherent domain, such as the display's scanout engine. > Mostly, this happens because either the object is marked as dirty from > its first use or is avoided by setting the object into the display > domain from the start. > > Fixes: 0f71979ab7fb ("drm/i915: Performed deferred clflush inside set-cache-level") > References: https://bugs.freedesktop.org/show_bug.cgi?id=95414 > Signed-off-by: Chris Wilson > Cc: Jani Nikula > Cc: Ville Syrjälä > Cc: # v4.0+ > --- > drivers/gpu/drm/i915/i915_gem_execbuffer.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c > index 30f6eb516ca3..30b684fecf09 100644 > --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c > +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c > @@ -1282,6 +1282,7 @@ void i915_vma_move_to_active(struct i915_vma *vma, > > /* update for the implicit flush after a batch */ > obj->base.write_domain &= ~I915_GEM_GPU_DOMAINS; > + obj->cache_dirty |= obj->cache_level != I915_CACHE_NONE; I915_CACHE_WT shouldn't dirty the cache either, so could be excluded as well. Everything else makes sense Reviewed-by: Ville Syrjälä > } > > if (flags & EXEC_OBJECT_NEEDS_FENCE) > -- > 2.10.2 -- Ville Syrjälä Intel OTC