Re: [PATCH] drm/i915/display: Add an extra vblank wait before fbc activation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Aug 24, 2020 at 07:46:30PM +0000, Shankar, Uma wrote:
> 
> > -----Original Message-----
> > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
> > Sent: Monday, August 24, 2020 11:46 PM
> > To: Shankar, Uma <uma.shankar@xxxxxxxxx>
> > Cc: intel-gfx@xxxxxxxxxxxxxxxxxxxxx
> > Subject: Re:  [PATCH] drm/i915/display: Add an extra vblank wait
> > before fbc activation
> > 
> > On Mon, Aug 17, 2020 at 01:14:18PM +0530, Uma Shankar wrote:
> > > Add an extra vblank before fbc is activated.
> > > WA: 1409689360
> > > Corruption with FBC around plane 1A enabling. In the Frame Buffer
> > > Compression programming sequence "Display Plane Enabling with FBC"
> > > add a wait for vblank between plane enabling step 1 and FBC enabling
> > > step 2.
> > 
> > Already there due to drm_atomic_helper_wait_for_flip_done().
> 
> Hi Ville,
> __intel_fbc_post_update is also called through intel_fbc_flush. The extra wait at that point seem
> to be taking care of this case as well.
> 
> We can add it in vblank worker as suggested by Maarten or do you feel this should be handled differently.

There's already supposed to be something that prevents the frontbuffer
stuff from racing with plane updates.

> 
> Regards,
> Uma Shankar
> 
> > >
> > > Signed-off-by: Uma Shankar <uma.shankar@xxxxxxxxx>
> > > Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@xxxxxxxxx>
> > > ---
> > >  drivers/gpu/drm/i915/display/intel_fbc.c | 6 ++++--
> > >  1 file changed, 4 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c
> > > b/drivers/gpu/drm/i915/display/intel_fbc.c
> > > index 2ab32e6532ff..0ed252ff2c53 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> > > @@ -1085,10 +1085,12 @@ static void __intel_fbc_post_update(struct
> > intel_crtc *crtc)
> > >  	if (!intel_fbc_can_activate(crtc))
> > >  		return;
> > >
> > > -	if (!fbc->busy_bits)
> > > +	if (!fbc->busy_bits) {
> > > +		intel_wait_for_vblank(dev_priv, crtc->pipe);
> > >  		intel_fbc_hw_activate(dev_priv);
> > > -	else
> > > +	} else {
> > >  		intel_fbc_deactivate(dev_priv, "frontbuffer write");
> > > +	}
> > >  }
> > >
> > >  void intel_fbc_post_update(struct intel_atomic_state *state,
> > > --
> > > 2.22.0
> > >
> > > _______________________________________________
> > > Intel-gfx mailing list
> > > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
> > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> > 
> > --
> > Ville Syrjälä
> > Intel

-- 
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux