[Intel-gfx] [PATCH] drm/i915: Add missing CCS documentation.
Matt Roper
matthew.d.roper at intel.com
Thu Aug 24 22:16:28 UTC 2023
On Thu, Aug 24, 2023 at 06:06:10PM -0400, Rodrigo Vivi wrote:
> On Wed, Aug 23, 2023 at 03:22:07PM -0700, Matt Roper wrote:
> > On Wed, Aug 23, 2023 at 05:39:01PM -0400, Rodrigo Vivi wrote:
> > > Let's introduce the basic documentation about CCS.
> > > While doing that, also removed the legacy execution flag name. That flag
> > > simply doesn't exist for CCS and it is not needed on current context
> > > submission. Those flag names are only needed on legacy context,
> > > while on new ones we only need to pass the engine ID.
> > >
> > > It is worth mention that this documentation should probably live with
> > > the engine definitions rather than in the i915.rst file directly and
> > > that more updates are likely need in this section. But this should
> > > come later.
> >
> > It may be better to just delete this completely and instead provide a
> > reference to the better engine documentation we already have in
> > include/uapi/drm/i915_drm.h?
>
> I thought about that, but I believe the 2 different documentation have
> different reader targets, although there are some overlapping.
>
> But probably the right way is indeed to move these things to the .h where
> they are defined... or we are sentenced to keep forgetting to update
> this one way or another.
>
> >
> > >
> > > Fixes: 944823c94639 ("drm/i915/xehp: Define compute class and engine")
> > > Cc: Matt Roper <matthew.d.roper at intel.com>
> > > Cc: Sushma Venkatesh Reddy <sushma.venkatesh.reddy at intel.com>
> > > Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> > > Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> > > Signed-off-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
> > > ---
> > > Documentation/gpu/i915.rst | 24 +++++++++++-------------
> > > 1 file changed, 11 insertions(+), 13 deletions(-)
> > >
> > > diff --git a/Documentation/gpu/i915.rst b/Documentation/gpu/i915.rst
> > > index 60ea21734902..87bdcd616944 100644
> > > --- a/Documentation/gpu/i915.rst
> > > +++ b/Documentation/gpu/i915.rst
> > > @@ -267,19 +267,17 @@ i915 driver.
> > > Intel GPU Basics
> > > ----------------
> > >
> > > -An Intel GPU has multiple engines. There are several engine types.
> > > -
> > > -- RCS engine is for rendering 3D and performing compute, this is named
> > > - `I915_EXEC_RENDER` in user space.
> > > -- BCS is a blitting (copy) engine, this is named `I915_EXEC_BLT` in user
> > > - space.
> > > -- VCS is a video encode and decode engine, this is named `I915_EXEC_BSD`
> > > - in user space
> > > -- VECS is video enhancement engine, this is named `I915_EXEC_VEBOX` in user
> > > - space.
> > > -- The enumeration `I915_EXEC_DEFAULT` does not refer to specific engine;
> > > - instead it is to be used by user space to specify a default rendering
> > > - engine (for 3D) that may or may not be the same as RCS.
> > > +An Intel GPU has multiple engines. There are several engine types:
> > > +
> > > +- Render Command Streamer (RCS). An engine for rendering 3D and
> > > + performing compute on platforms without CCS.
> >
> > I don't think the "without CCS" here is accurate; even platforms with
> > CCS engines can still access the GPGPU pipeline via the RCS.
>
> indeed.
>
> >
> > > +- Blitting Command Streamer (BCS). An engine for performing blitting and/or
> > > + copying operations.
> > > +- Video Command Streamer. An engine used for video decoding. For historical
> > > + reasons this engine was alsso called 'BCS'.
> >
> > I don't think this is true? As far as I recall, BCS has always referred
> > to the blitter/copy engines, not the VCS.
>
> doh! I meant 'BSD' to reflect the removed I915_EXEC_BSD... I can't even
> recall why that ever got the BSD name to start with.
BSD = "Bitstream decode"
Matt
>
> >
> >
> > Matt
> >
> > > +- Video Enhancement Command Streamer (VECS). The engine used only by media.
> > > +- Compute Command Streamer (CCS). An engine that has access to the media and
> > > + GPGPU pipelines, but not the 3D pipeline.
> > >
> > > The Intel GPU family is a family of integrated GPU's using Unified
> > > Memory Access. For having the GPU "do work", user space will feed the
> > > --
> > > 2.41.0
> > >
> >
> > --
> > Matt Roper
> > Graphics Software Engineer
> > Linux GPU Platform Enablement
> > Intel Corporation
--
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation
More information about the Intel-gfx
mailing list