On Thu, Jun 11, 2020 at 01:34:47PM +0100, Chris Wilson wrote: > Since we have a precise start/end time for the sample, the actual time > the HW was read back is within that interval, and more likely closer to > the mean of the interval. Use the mean sample time when estimating the > vblank time. > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Seems reasonable. Reviewed-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/drm_vblank.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c > index da7b0b0c1090..a7043d268cca 100644 > --- a/drivers/gpu/drm/drm_vblank.c > +++ b/drivers/gpu/drm/drm_vblank.c > @@ -710,15 +710,18 @@ drm_crtc_vblank_helper_get_vblank_timestamp_internal( > delta_ns = div_s64(1000000LL * (vpos * mode->crtc_htotal + hpos), > mode->crtc_clock); > > + /* Estimate when the sample was taken */ > + stime += (etime - stime) >> 1; > + > /* Subtract time delta from raw timestamp to get final > * vblank_time timestamp for end of vblank. > */ > - *vblank_time = ktime_sub_ns(etime, delta_ns); > + *vblank_time = ktime_sub_ns(stime, delta_ns); > > if (!drm_debug_enabled(DRM_UT_VBL)) > return true; > > - ts_etime = ktime_to_timespec64(etime); > + ts_etime = ktime_to_timespec64(stime); > ts_vblank_time = ktime_to_timespec64(*vblank_time); > > DRM_DEBUG_VBL("crtc %u : v p(%d,%d)@ %lld.%06ld -> %lld.%06ld [e %d us, %d rep]\n", > -- > 2.27.0 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Ville Syrjälä Intel _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx