[Intel-gfx] [PATCH 09/13] drm/i915: Extend I915_CONTEXT_PARAM_SSEU to support local ctx->engine[]

Chris Wilson chris at chris-wilson.co.uk
Mon Mar 11 10:33:14 UTC 2019


Quoting Tvrtko Ursulin (2019-03-11 07:14:48)
> 
> On 08/03/2019 16:57, Chris Wilson wrote:
> > Quoting Tvrtko Ursulin (2019-03-08 16:31:51)
> >>
> >> On 08/03/2019 14:12, Chris Wilson wrote:
> >>> Allow the user to specify a local engine index (as opposed to
> >>> class:index) that they can use to refer to a preset engine inside the
> >>> ctx->engine[] array defined by an earlier I915_CONTEXT_PARAM_ENGINES.
> >>> This will be useful for setting SSEU parameters on virtual engines that
> >>> are local to the context and do not have a valid global class:instance
> >>> lookup.
> >>>
> >>> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> >>> Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> >>> ---
> >>>    drivers/gpu/drm/i915/i915_gem_context.c | 24 ++++++++++++++++++++----
> >>>    include/uapi/drm/i915_drm.h             |  3 ++-
> >>>    2 files changed, 22 insertions(+), 5 deletions(-)
> >>>
> >>> diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c
> >>> index 86d9bea6f275..a581c01ffff1 100644
> >>> --- a/drivers/gpu/drm/i915/i915_gem_context.c
> >>> +++ b/drivers/gpu/drm/i915/i915_gem_context.c
> >>> @@ -1313,6 +1313,7 @@ static int set_sseu(struct i915_gem_context *ctx,
> >>>        struct drm_i915_gem_context_param_sseu user_sseu;
> >>>        struct intel_engine_cs *engine;
> >>>        struct intel_sseu sseu;
> >>> +     unsigned long lookup;
> >>
> >> Poor 32-bit builds. ;) And in lookup_user_engine as well.
> > 
> > It's an internal flags variable; not a direct part of the uABI. So it's
> > only use is to control lookup_user_engine() so limiting it to 32b
> > (natural register width) doesn't seem a like a concern for the
> > forseeable future? How many different ABI interfacing methods of looking
> > up an engine do you have planned?
> 
> I actually wanted to say we could get away with 32-bits for internal 
> representation but said the completely opposite thing. :)

Ah, but we use BIT() so my inertia says to use 'unsigned long' unless you
want to have to check for consistent type usage.
-Chris


More information about the Intel-gfx mailing list