diff --git a/src/xrt/compositor/main/comp_compositor.c b/src/xrt/compositor/main/comp_compositor.c
index ea382d47f..467a10c0a 100644
--- a/src/xrt/compositor/main/comp_compositor.c
+++ b/src/xrt/compositor/main/comp_compositor.c
@@ -144,6 +144,7 @@ compositor_wait_frame(struct xrt_compositor *xc,
 	c->frame.waited.id = frame_id;
 	c->frame.waited.desired_present_time_ns = desired_present_time_ns;
 	c->frame.waited.present_slop_ns = present_slop_ns;
+	c->frame.waited.predicted_display_time_ns = predicted_display_time_ns;
 
 	uint64_t now_ns = os_monotonic_get_ns();
 	if (now_ns < wake_up_time_ns) {
diff --git a/src/xrt/compositor/main/comp_compositor.h b/src/xrt/compositor/main/comp_compositor.h
index 4ff1c558f..8e9d21f64 100644
--- a/src/xrt/compositor/main/comp_compositor.h
+++ b/src/xrt/compositor/main/comp_compositor.h
@@ -158,6 +158,7 @@ struct comp_shaders
 struct comp_frame
 {
 	int64_t id;
+	uint64_t predicted_display_time_ns;
 	uint64_t desired_present_time_ns;
 	uint64_t present_slop_ns;
 };
diff --git a/src/xrt/compositor/main/comp_renderer.c b/src/xrt/compositor/main/comp_renderer.c
index fe44c13d6..6aeb635cf 100644
--- a/src/xrt/compositor/main/comp_renderer.c
+++ b/src/xrt/compositor/main/comp_renderer.c
@@ -374,7 +374,11 @@ renderer_get_view_projection(struct comp_renderer *r)
 
 	struct xrt_space_relation relation;
 
-	xrt_device_get_tracked_pose(r->c->xdev, XRT_INPUT_GENERIC_HEAD_POSE, r->c->last_next_display_time, &relation);
+	xrt_device_get_tracked_pose(                         //
+	    r->c->xdev,                                      //
+	    XRT_INPUT_GENERIC_HEAD_POSE,                     //
+	    r->c->frame.rendering.predicted_display_time_ns, //
+	    &relation);                                      //
 
 	struct xrt_vec3 eye_relation = {
 	    0.063000f, /* TODO: get actual ipd_meters */