From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: Re: [PATCH 01/13] drm/i915: Flush the context object from the CPU caches upon creation Date: Fri, 13 Jul 2012 08:28:48 -0700 Message-ID: <20120713082848.0828302a@bwidawsk.net> References: <1342185256-16024-1-git-send-email-chris@chris-wilson.co.uk> <1342185256-16024-2-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from cloud01.chad-versace.us (184-106-247-128.static.cloud-ips.com [184.106.247.128]) by gabe.freedesktop.org (Postfix) with ESMTP id E948BA1151 for ; Fri, 13 Jul 2012 08:28:55 -0700 (PDT) In-Reply-To: <1342185256-16024-2-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Fri, 13 Jul 2012 14:14:04 +0100 Chris Wilson wrote: > Signed-off-by: Chris Wilson > Cc: Ben Widawsky I guess setting the read_domains is now superfluous. Reviewed-by: Ben Widawsky > --- > drivers/gpu/drm/i915/i915_gem_context.c | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c > index 9ae3f2c..90857f8 100644 > --- a/drivers/gpu/drm/i915/i915_gem_context.c > +++ b/drivers/gpu/drm/i915/i915_gem_context.c > @@ -225,6 +225,13 @@ static int create_default_context(struct drm_i915_private *dev_priv) > return ret; > } > > + ret = i915_gem_object_set_to_gtt_domain(ctx->obj, true); > + if (ret) { > + i915_gem_object_unpin(ctx->obj); > + do_destroy(ctx); > + return ret; > + } > + > ret = do_switch(NULL, ctx, 0); > if (ret) { > i915_gem_object_unpin(ctx->obj); > @@ -396,8 +403,6 @@ static int do_switch(struct drm_i915_gem_object *from_obj, > * MI_SET_CONTEXT instead of when the next seqno has completed. > */ > if (from_obj != NULL) { > - from_obj->base.read_domains = I915_GEM_DOMAIN_INSTRUCTION; > - i915_gem_object_move_to_active(from_obj, ring, seqno); > /* As long as MI_SET_CONTEXT is serializing, ie. it flushes the > * whole damn pipeline, we don't need to explicitly mark the > * object dirty. The only exception is that the context must be > @@ -405,6 +410,9 @@ static int do_switch(struct drm_i915_gem_object *from_obj, > * able to defer doing this until we know the object would be > * swapped, but there is no way to do that yet. > */ > + from_obj->base.write_domain = I915_GEM_DOMAIN_INSTRUCTION; > + from_obj->base.read_domains = I915_GEM_DOMAIN_INSTRUCTION; > + i915_gem_object_move_to_active(from_obj, ring, seqno); > from_obj->dirty = 1; > BUG_ON(from_obj->ring != to->ring); > i915_gem_object_unpin(from_obj); -- Ben Widawsky, Intel Open Source Technology Center