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