[Intel-gfx] [PATCH v2] drm/vblank: Estimate sample time
Ville Syrjälä
ville.syrjala at linux.intel.com
Thu Jun 11 16:09:29 UTC 2020
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 at chris-wilson.co.uk>
Seems reasonable.
Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
> 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 at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Ville Syrjälä
Intel
More information about the Intel-gfx
mailing list