[Intel-gfx] [PATCH] drm/i915: Add missing CCS documentation.

Matt Roper matthew.d.roper at intel.com
Wed Aug 23 22:22:07 UTC 2023


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?

> 
> 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.

> +- 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.


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


More information about the Intel-gfx mailing list