mirror of
https://github.com/DeeJanuz/frametop.git
synced 2026-10-06 04:00:06 +02:00
Gaze: ft-gaze's loop runs every 4 ms instead of 2
ft-gaze's loop slept 2 ms, so 500 times a second it read the head pose (GetDeviceToAbsoluteTrackingPose), checked the eye tracker's counter, and drained SteamVR's events, for samples that come 90 times a second. It now sleeps 4 ms. A new sample is printed within 4 ms of appearing, 2 on average (was 1), and the pose history still has a pose within 2 ms of any sample's time, which keeps the head-pose error under 0.2 degrees for a head turning 100 degrees a second. Sleeping until the next sample is due would have thinned the pose history to 11 ms. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
0c95d1d731
commit
95c5d056cf
1 file changed
+4
-1
+4
-1
@@ -690,7 +690,10 @@ int main(int argc, char **argv) {
|
||||
break;
|
||||
}
|
||||
if (stdinClosed) break;
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(2));
|
||||
// 250 passes a second: a new sample is printed within 4 ms (2 on average) of appearing,
|
||||
// and the pose history has a pose within 2 ms of any sample's time (a 0.2 degree head
|
||||
// turn at 100 degrees a second). Every 2 ms read the pose and the events twice as often.
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(4));
|
||||
}
|
||||
screens.Stop();
|
||||
vr::VR_Shutdown();
|
||||
|
||||
Reference in new issue
Block a user