From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Matt Roper <matthew.d.roper@intel.com>
Cc: "intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>,
"Syrjala, Ville" <ville.syrjala@intel.com>,
"intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>
Subject: Re: [Intel-gfx] [Intel-xe] [PATCH 3/4] drm/i915/lnl: support FBC on any plane
Date: Wed, 30 Aug 2023 09:06:04 +0300 [thread overview]
Message-ID: <ZO7cTDAqAPDFp5qi@intel.com> (raw)
In-Reply-To: <20230829160428.GI1529860@mdroper-desk1.amr.corp.intel.com>
On Tue, Aug 29, 2023 at 09:04:28AM -0700, Matt Roper wrote:
> On Tue, Aug 29, 2023 at 06:50:02AM -0700, Govindapillai, Vinod wrote:
> > On Mon, 2023-08-28 at 17:16 -0700, Matt Roper wrote:
> > > On Mon, Aug 28, 2023 at 09:20:34AM +0300, Vinod Govindapillai wrote:
> > > > In LNL onwards, FBC can be associated to the first three planes.
> > >
> > > The title of this patch shouldn't say "any plane" when the reality is
> > > that only the first three support FBC (the upper two do not).
> > >
> > > > The FBC will be enabled for first FBC capable visible plane
> > > > until the userspace can select one of these FBC capable plane
> > > > explicitly
> > >
> > > Even if we add new Intel-specific uapi to select this explicitly, is any
> > > userspace actually going to use it? Would it make more sense to try to
> > > come up with a heuristic to guess which plane would benefit the most and
> > > switch to that automatically without userspace needing to be involved in
> > > the decision? For that matter, do we have a real-world use case lined
> > > up where we can see that switching FBC to a higher plane is beneficial?
> > > Even if the hardware suddenly has this capability, it isn't necessarily
> > > worth adding the extra complexity to the driver if we don't expect to
> > > get real-world benefit from it.
> > >
> > > BTW, I'm not super familiar with all the FBC-specific details, but it
> > > feels like if we do go forward with this, the decision to select a
> > > specific plane for FBC usage should be handled more deliberately during
> > > the atomic check phase. Right now it doesn't seem like we're really
> > > making a firm decision on which plane to use, and we're probably not
> > > handling all the cases where the register needs to be reprogrammed
> > > if/when the FBC moves from one plane to another (potentially on a
> > > per-frame basis).
> >
> > Hi Matt,
> >
> > Agree with the comments about the subject line and also about your suggestions about some code
> > changes, will update accordingly.
> >
> > Yes.. the logic for how to choose a plane for FBC is still open.
> >
> > While discussing with Uma, it was decided that we split this task into two where we first have this
> > possibility to associate FBC to first three planes and then decide on this logic to select the plane
> > for fbc after discussing with Ville. ( Jira VLK-19372 / VLK-21508)
> >
> > In this patch, "fbc" pointer is associated with first three plane implying those three are FBC
> > capable. And because there is no selection logic there, I choose the first available fbc capable
> > plane for FBC and the rest two to have a no_fbc_reason as "fbc enabled on another plane" which will
> > prevent them from being configured for FBC.
> >
> > Ville has done refactoring to FBC code earlier and I think the current code flow should handle
> > disable/enable/register handling etc. Ville had some comments about the approach I explained above,
> > I have asked for some clarifications
> >
> > BR
> > Vinod
>
> I also just noticed that there's a workaround (Wa_14019417088) that
> requires us to always bind FBC to plane 3.
>
> "Plane - FBC binding is fixed to Plane 3."
>
> And it's marked as a permanent workaround for Xe2_LPD. So it sounds
> like even though the hardware was designed to support FBC on any of the
> three planes, the reality is that we can only use it on one specific
> plane for this platform; moving it around will have to wait for the next
> platform down the road.
That w/a is a mess. Trawling the HSD confirmed my hunch that it's
"plane 3" because of Windows compositor behaviour. So for us that
is just nonsense.
And looks like we can avoid the whole mess by simply programming
FBC_CTL twice; first without the enable bit set so the plane
binding gets updated, and then again with the with enable bit
set. That is in fact documented as the "alternate w/a".
--
Ville Syrjälä
Intel
WARNING: multiple messages have this Message-ID (diff)
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Matt Roper <matthew.d.roper@intel.com>
Cc: "intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>,
"Syrjala, Ville" <ville.syrjala@intel.com>,
"intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>
Subject: Re: [Intel-xe] [Intel-gfx] [PATCH 3/4] drm/i915/lnl: support FBC on any plane
Date: Wed, 30 Aug 2023 09:06:04 +0300 [thread overview]
Message-ID: <ZO7cTDAqAPDFp5qi@intel.com> (raw)
In-Reply-To: <20230829160428.GI1529860@mdroper-desk1.amr.corp.intel.com>
On Tue, Aug 29, 2023 at 09:04:28AM -0700, Matt Roper wrote:
> On Tue, Aug 29, 2023 at 06:50:02AM -0700, Govindapillai, Vinod wrote:
> > On Mon, 2023-08-28 at 17:16 -0700, Matt Roper wrote:
> > > On Mon, Aug 28, 2023 at 09:20:34AM +0300, Vinod Govindapillai wrote:
> > > > In LNL onwards, FBC can be associated to the first three planes.
> > >
> > > The title of this patch shouldn't say "any plane" when the reality is
> > > that only the first three support FBC (the upper two do not).
> > >
> > > > The FBC will be enabled for first FBC capable visible plane
> > > > until the userspace can select one of these FBC capable plane
> > > > explicitly
> > >
> > > Even if we add new Intel-specific uapi to select this explicitly, is any
> > > userspace actually going to use it? Would it make more sense to try to
> > > come up with a heuristic to guess which plane would benefit the most and
> > > switch to that automatically without userspace needing to be involved in
> > > the decision? For that matter, do we have a real-world use case lined
> > > up where we can see that switching FBC to a higher plane is beneficial?
> > > Even if the hardware suddenly has this capability, it isn't necessarily
> > > worth adding the extra complexity to the driver if we don't expect to
> > > get real-world benefit from it.
> > >
> > > BTW, I'm not super familiar with all the FBC-specific details, but it
> > > feels like if we do go forward with this, the decision to select a
> > > specific plane for FBC usage should be handled more deliberately during
> > > the atomic check phase. Right now it doesn't seem like we're really
> > > making a firm decision on which plane to use, and we're probably not
> > > handling all the cases where the register needs to be reprogrammed
> > > if/when the FBC moves from one plane to another (potentially on a
> > > per-frame basis).
> >
> > Hi Matt,
> >
> > Agree with the comments about the subject line and also about your suggestions about some code
> > changes, will update accordingly.
> >
> > Yes.. the logic for how to choose a plane for FBC is still open.
> >
> > While discussing with Uma, it was decided that we split this task into two where we first have this
> > possibility to associate FBC to first three planes and then decide on this logic to select the plane
> > for fbc after discussing with Ville. ( Jira VLK-19372 / VLK-21508)
> >
> > In this patch, "fbc" pointer is associated with first three plane implying those three are FBC
> > capable. And because there is no selection logic there, I choose the first available fbc capable
> > plane for FBC and the rest two to have a no_fbc_reason as "fbc enabled on another plane" which will
> > prevent them from being configured for FBC.
> >
> > Ville has done refactoring to FBC code earlier and I think the current code flow should handle
> > disable/enable/register handling etc. Ville had some comments about the approach I explained above,
> > I have asked for some clarifications
> >
> > BR
> > Vinod
>
> I also just noticed that there's a workaround (Wa_14019417088) that
> requires us to always bind FBC to plane 3.
>
> "Plane - FBC binding is fixed to Plane 3."
>
> And it's marked as a permanent workaround for Xe2_LPD. So it sounds
> like even though the hardware was designed to support FBC on any of the
> three planes, the reality is that we can only use it on one specific
> plane for this platform; moving it around will have to wait for the next
> platform down the road.
That w/a is a mess. Trawling the HSD confirmed my hunch that it's
"plane 3" because of Windows compositor behaviour. So for us that
is just nonsense.
And looks like we can avoid the whole mess by simply programming
FBC_CTL twice; first without the enable bit set so the plane
binding gets updated, and then again with the with enable bit
set. That is in fact documented as the "alternate w/a".
--
Ville Syrjälä
Intel
next prev parent reply other threads:[~2023-08-30 6:06 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-28 6:20 [Intel-gfx] [PATCH 0/4] fbc on any plane Vinod Govindapillai
2023-08-28 6:20 ` [Intel-xe] " Vinod Govindapillai
2023-08-28 6:20 ` [Intel-gfx] [PATCH 1/4] drm/i915/lnl: FBC can be enabled with PSR2 Vinod Govindapillai
2023-08-28 6:20 ` [Intel-xe] " Vinod Govindapillai
2023-08-28 23:58 ` [Intel-gfx] " Matt Roper
2023-08-28 23:58 ` Matt Roper
2023-08-29 12:16 ` [Intel-gfx] " Govindapillai, Vinod
2023-08-29 12:16 ` Govindapillai, Vinod
2023-08-28 6:20 ` [Intel-gfx] [PATCH 2/4] drm/i915/lnl: update FBC debugfs to include plane information Vinod Govindapillai
2023-08-28 6:20 ` [Intel-xe] " Vinod Govindapillai
2023-08-29 0:01 ` [Intel-gfx] " Matt Roper
2023-08-29 0:01 ` Matt Roper
2023-08-29 7:46 ` [Intel-gfx] " Ville Syrjälä
2023-08-29 7:46 ` Ville Syrjälä
2023-08-28 6:20 ` [Intel-gfx] [PATCH 3/4] drm/i915/lnl: support FBC on any plane Vinod Govindapillai
2023-08-28 6:20 ` [Intel-xe] " Vinod Govindapillai
2023-08-28 9:00 ` [Intel-gfx] " Jani Nikula
2023-08-28 9:00 ` Jani Nikula
2023-08-28 10:10 ` [Intel-gfx] " Govindapillai, Vinod
2023-08-28 10:10 ` Govindapillai, Vinod
2023-08-29 0:16 ` [Intel-gfx] " Matt Roper
2023-08-29 0:16 ` Matt Roper
2023-08-29 13:50 ` [Intel-gfx] " Govindapillai, Vinod
2023-08-29 13:50 ` Govindapillai, Vinod
2023-08-29 16:04 ` [Intel-gfx] " Matt Roper
2023-08-29 16:04 ` Matt Roper
2023-08-30 6:06 ` Ville Syrjälä [this message]
2023-08-30 6:06 ` [Intel-xe] [Intel-gfx] " Ville Syrjälä
2023-08-29 7:50 ` [Intel-gfx] [Intel-xe] " Ville Syrjälä
2023-08-29 7:50 ` Ville Syrjälä
2023-08-29 13:34 ` [Intel-gfx] " Govindapillai, Vinod
2023-08-29 13:34 ` Govindapillai, Vinod
2023-08-30 5:34 ` [Intel-gfx] " Ville Syrjälä
2023-08-30 5:34 ` Ville Syrjälä
2023-08-28 6:20 ` [Intel-gfx] [PATCH 4/4] drm/i915/lnl: FBC is supported with per pixel alpha Vinod Govindapillai
2023-08-28 6:20 ` [Intel-xe] " Vinod Govindapillai
2023-08-28 7:24 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for fbc on any plane Patchwork
2023-08-28 7:24 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2023-08-28 7:43 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-08-28 9:04 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2023-09-01 3:28 ` [Intel-xe] ✓ CI.Patch_applied: success for fbc on any plane (rev2) Patchwork
2023-09-01 3:28 ` [Intel-xe] ✗ CI.checkpatch: warning " Patchwork
2023-09-01 3:29 ` [Intel-xe] ✓ CI.KUnit: success " Patchwork
2023-09-01 3:36 ` [Intel-xe] ✓ CI.Build: " Patchwork
2023-09-01 3:36 ` [Intel-xe] ✗ CI.Hooks: failure " Patchwork
2023-09-01 3:37 ` [Intel-xe] ✗ CI.checksparse: warning " Patchwork
2023-09-01 4:09 ` [Intel-xe] ✓ CI.BAT: success " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZO7cTDAqAPDFp5qi@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=matthew.d.roper@intel.com \
--cc=ville.syrjala@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.