diff mbox

[1/2] intel: Add accessor to get HW context ID from a drm_intel_context

Message ID 1384192107-14314-1-git-send-email-idr@freedesktop.org (mailing list archive)
State New, archived
Headers show

Commit Message

Ian Romanick Nov. 11, 2013, 5:48 p.m. UTC
From: Ian Romanick <ian.d.romanick@intel.com>

The drm_intel_context structure is, wisely, opaque.  However, libdrm
users may want to know the hardware context ID associated with the
structure.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Cc: Ben Widawsky <ben@bwidawsk.net>
---
 intel/intel_bufmgr.h     | 1 +
 intel/intel_bufmgr_gem.c | 6 ++++++
 2 files changed, 7 insertions(+)

Comments

Eric Anholt Nov. 11, 2013, 7:58 p.m. UTC | #1
Ian Romanick <idr@freedesktop.org> writes:

> From: Ian Romanick <ian.d.romanick@intel.com>
>
> The drm_intel_context structure is, wisely, opaque.  However, libdrm
> users may want to know the hardware context ID associated with the
> structure.

We've had a bunch of our other structures be partially transparent.  The
context id to be passed to the kernel could easily be public just like
the gem handle in a BO is public.  I would lean slightly toward that.

But I don't feel strongly either way, so these two are:

Reviewed-by: Eric Anholt <eric@anholt.net>
Ben Widawsky Nov. 13, 2013, 7:08 a.m. UTC | #2
On Mon, Nov 11, 2013 at 11:58:59AM -0800, Eric Anholt wrote:
> Ian Romanick <idr@freedesktop.org> writes:
> 
> > From: Ian Romanick <ian.d.romanick@intel.com>
> >
> > The drm_intel_context structure is, wisely, opaque.  However, libdrm
> > users may want to know the hardware context ID associated with the
> > structure.
> 
> We've had a bunch of our other structures be partially transparent.  The
> context id to be passed to the kernel could easily be public just like
> the gem handle in a BO is public.  I would lean slightly toward that.
> 
> But I don't feel strongly either way, so these two are:
> 
> Reviewed-by: Eric Anholt <eric@anholt.net>

I think my preference would be to add a "context" argument to a libdrm
get_hangstats function, but if you feel this way is better, it is fine
with me.

My only [slight, unjustified] concern is that once you make the id
transparent, we can't play any games. Since the DDX doesn't use libdrm
however, I think it is fairly moot.

Acked-by: Ben Widawsky <ben@bwidawsk.net>
diff mbox

Patch

diff --git a/intel/intel_bufmgr.h b/intel/intel_bufmgr.h
index 15f818e..7b28a70 100644
--- a/intel/intel_bufmgr.h
+++ b/intel/intel_bufmgr.h
@@ -194,6 +194,7 @@  drm_intel_context *drm_intel_gem_context_create(drm_intel_bufmgr *bufmgr);
 void drm_intel_gem_context_destroy(drm_intel_context *ctx);
 int drm_intel_gem_bo_context_exec(drm_intel_bo *bo, drm_intel_context *ctx,
 				  int used, unsigned int flags);
+unsigned int drm_intel_gem_context_get_hw_context_id(const drm_intel_context *);
 
 int drm_intel_bo_gem_export_to_prime(drm_intel_bo *bo, int *prime_fd);
 drm_intel_bo *drm_intel_bo_gem_create_from_prime(drm_intel_bufmgr *bufmgr,
diff --git a/intel/intel_bufmgr_gem.c b/intel/intel_bufmgr_gem.c
index 029ca5d..5b64a7f 100644
--- a/intel/intel_bufmgr_gem.c
+++ b/intel/intel_bufmgr_gem.c
@@ -3020,6 +3020,12 @@  drm_intel_gem_context_destroy(drm_intel_context *ctx)
 	free(ctx);
 }
 
+unsigned int
+drm_intel_gem_context_get_hw_context_id(const drm_intel_context *ctx)
+{
+	return ctx->ctx_id;
+}
+
 int
 drm_intel_reg_read(drm_intel_bufmgr *bufmgr,
 		   uint32_t offset,