From 0545d840dbd4719c11949cb004a8cb782c6791fc Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Mon, 4 May 2020 19:11:50 -0700 Subject: [PATCH] Reduce timing jitter in the Metal backend --- metal/src/lib.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/metal/src/lib.rs b/metal/src/lib.rs index d2908e7c..bbf14262 100644 --- a/metal/src/lib.rs +++ b/metal/src/lib.rs @@ -728,13 +728,15 @@ impl Device for MetalDevice { let captured_query = query.clone(); let start_block = ConcreteBlock::new(move |_: *mut Object, _: u64| { + let start_time = Instant::now(); let mut guard = captured_query.0.mutex.lock().unwrap(); - guard.start_time = Some(Instant::now()); + guard.start_time = Some(start_time); }); let captured_query = query.clone(); let end_block = ConcreteBlock::new(move |_: *mut Object, _: u64| { + let end_time = Instant::now(); let mut guard = captured_query.0.mutex.lock().unwrap(); - guard.end_time = Some(Instant::now()); + guard.end_time = Some(end_time); captured_query.0.cond.notify_all(); }); self.shared_event.notify_listener_at_value(&self.shared_event_listener,