All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH 1/2] drm/vblank: Estimate sample time
@ 2020-06-11 12:30 Chris Wilson
  2020-06-11 12:30 ` [Intel-gfx] [PATCH 2/2] drm/i915: Tighten timestamp around vblank sampling Chris Wilson
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Chris Wilson @ 2020-06-11 12:30 UTC (permalink / raw)
  To: intel-gfx; +Cc: Chris Wilson

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@chris-wilson.co.uk>
---
 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..79a5461d3773 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) >> 2;
+
 	/* 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@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2020-06-11 18:02 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-11 12:30 [Intel-gfx] [PATCH 1/2] drm/vblank: Estimate sample time Chris Wilson
2020-06-11 12:30 ` [Intel-gfx] [PATCH 2/2] drm/i915: Tighten timestamp around vblank sampling Chris Wilson
2020-06-11 12:36   ` Chris Wilson
2020-06-11 16:15   ` Ville Syrjälä
2020-06-11 12:34 ` [Intel-gfx] [PATCH 1/2] drm/vblank: Estimate sample time Chris Wilson
2020-06-11 12:34 ` [Intel-gfx] [PATCH v2] " Chris Wilson
2020-06-11 16:09   ` Ville Syrjälä
2020-06-11 14:00 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v2] drm/vblank: Estimate sample time (rev2) Patchwork
2020-06-11 18:02 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork

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.