From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: [PATCH 04/18] drm/i915: add context information to objects Date: Sun, 18 Mar 2012 13:39:44 -0700 Message-ID: <1332103198-25852-5-git-send-email-ben@bwidawsk.net> References: <1332103198-25852-1-git-send-email-ben@bwidawsk.net> 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 CABC99EF79 for ; Sun, 18 Mar 2012 13:41:21 -0700 (PDT) In-Reply-To: <1332103198-25852-1-git-send-email-ben@bwidawsk.net> 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: intel-gfx@lists.freedesktop.org Cc: Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org Handy mostly for assertions. Signed-off-by: Ben Widawsky --- drivers/gpu/drm/i915/i915_drv.h | 5 +++++ drivers/gpu/drm/i915/i915_gem.c | 1 + drivers/gpu/drm/i915/i915_gem_context.c | 3 +++ 3 files changed, 9 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index e49e2f7..f458a8f 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -953,6 +953,11 @@ struct drm_i915_gem_object { * reaches 0, dev_priv->pending_flip_queue will be woken up. */ atomic_t pending_flip; + + /** + * >= 0 if this object is the object for a context. + */ + int context_id; }; #define to_intel_bo(x) container_of(x, struct drm_i915_gem_object, base) diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 6343a82..0985aa5 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -3629,6 +3629,7 @@ struct drm_i915_gem_object *i915_gem_alloc_object(struct drm_device *dev, obj->madv = I915_MADV_WILLNEED; /* Avoid an unnecessary call to unbind on the first bind. */ obj->map_and_fenceable = true; + obj->context_id = -1; return obj; } diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c index 2c9116d..321bafd 100644 --- a/drivers/gpu/drm/i915/i915_gem_context.c +++ b/drivers/gpu/drm/i915/i915_gem_context.c @@ -127,6 +127,7 @@ again: } else if (ret) goto err_out; + (*ctx_out)->obj->context_id = (*ctx_out)->id; return 0; err_out: @@ -171,6 +172,8 @@ static int create_default_context(struct drm_i915_private *dev_priv) * default context. */ ctx = dev_priv->ring[RCS].default_context; + ctx->id = DEFAULT_CONTEXT_ID; + ctx->obj->context_id = DEFAULT_CONTEXT_ID; ret = i915_gem_object_pin(ctx->obj, CONTEXT_ALIGN, false); if (ret) do_destroy(ctx); -- 1.7.9.4