Re: [PATCH v3 1/2] drm/xe/mcr: Take vcs1/vecs1 into account for first media slice

"Dixit, Ashutosh" <[email protected]>
Newsgroups org.freedesktop.lists.intel-xe
Message-ID <[email protected]>
On Tue, 28 Jul 2026 13:57:10 -0700, Matt Roper wrote:
>
> On Mon, Jul 27, 2026 at 10:27:11AM -0700, Ashutosh Dixit wrote:
> > vcs1 and vecs1 may also be present on the first media slice, so take
> > vcs1/vecs1 also into account when determining if the first media slice is
> > absent.
> >
> > Bspec: 67103, 77977
> >
> > Cc: Gustavo Sousa <[email protected]>
> > Cc: Matt Roper <[email protected]>
> > Signed-off-by: Ashutosh Dixit <[email protected]>
> > ---
> > v2: Bug fix
> > v3: Fix for BMG (Matt Roper)
> > ---
> >  drivers/gpu/drm/xe/xe_gt_mcr.c | 8 ++++++--
> >  1 file changed, 6 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/xe/xe_gt_mcr.c b/drivers/gpu/drm/xe/xe_gt_mcr.c
> > index 9799ffadf85d2..8beb4006cd891 100644
> > --- a/drivers/gpu/drm/xe/xe_gt_mcr.c
> > +++ b/drivers/gpu/drm/xe/xe_gt_mcr.c
> > @@ -452,11 +452,15 @@ static void init_steering_dss(struct xe_gt *gt)
> >
> >  static void init_steering_oaddrm(struct xe_gt *gt)
> >  {
> > +	u64 hwe_mask = XE_HW_ENGINE_VCS0 | XE_HW_ENGINE_VECS0;
> > +
> > +	if (MEDIA_VERx100(gt_to_xe(gt)) >= 3500)
>
> This will work as a short-term bandaid, but fundamentally the media
> configuration isn't really a case where "old platforms were always 1/1/1
> and new platforms will probably always be 2/2/2."  It's something that
> can easily vary platform-by-platform or even SKU-by-SKU (e.g., bspec
> 70819 still shows some what was originally planned in the past for
> different SKUs of a platform, even though that platform eventually
> settled on something simpler).  If I recall correctly, there were also
> configurations like 2/1/1 used on older platforms like DG2, but we
> didn't need to worry about SCMI or OADDRM steering for MCR purposes on
> those platforms so it just never came up in the code.
>
> I'm okay landing this patch as a short-term fix for NVL and CRI, but we
> should add a TODO comment or something indicating that we really should
> move the "VD per SCMI" and "VE per SCMI" values into our media
> descriptors so that we can easily pick the appropriate config on a
> per-release / per-SKU manner to ensure we think about it on a
> release-by-release basis when enabling new platforms and IP versions in
> the future.

Thanks Matt, I have added the TODO in v4, I prefer to merge this for now as
a short-term fix for NVL and CRI. Thanks.

>
> > +		hwe_mask |= XE_HW_ENGINE_VCS1 | XE_HW_ENGINE_VECS1;
> >	/*
> >	 * First instance is only terminated if the entire first media slice
> > -	 * is absent (i.e., no VCS0 or VECS0).
> > +	 * is absent (i.e., no engines in hwe_mask).
> >	 */
> > -	if (gt->info.engine_mask & (XE_HW_ENGINE_VCS0 | XE_HW_ENGINE_VECS0))
> > +	if (gt->info.engine_mask & hwe_mask)
> >		gt->steering[OADDRM].group_target = 0;
> >	else
> >		gt->steering[OADDRM].group_target = 1;
> > --
> > 2.54.0
> >
>
> --
> Matt Roper
> Graphics Software Engineer
> Linux GPU Platform Enablement
> Intel Corporation
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.