From fd67ec238578f92f39e887106dc7396b05c33b0a Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Thu, 4 Feb 2021 21:30:08 +0100 Subject: [PATCH] vr:: improved performance? --- graph.cpp | 2 ++ vr.cpp | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/graph.cpp b/graph.cpp index 32d569f1..cba2dda4 100644 --- a/graph.cpp +++ b/graph.cpp @@ -5313,6 +5313,8 @@ EX void drawscreen() { #endif SDL_UpdateRect(s, 0, 0, vid.xres, vid.yres); #endif + + vrhr::handoff(); //printf("\ec"); } diff --git a/vr.cpp b/vr.cpp index 2cfa8a68..15258e66 100644 --- a/vr.cpp +++ b/vr.cpp @@ -302,11 +302,13 @@ vr_rendermodel *get_render_model(string name) { return md; } -void track_all() { - track_actions(); +EX bool need_poses = true; +void track_poses() { E4; - // println(hlog, "tracking"); + + if(!need_poses) return; + need_poses = false; vr::VRCompositor()->WaitGetPoses(vrdata.poses, vr::k_unMaxTrackedDeviceCount, NULL, 0 ); // println(hlog, "poses received"); @@ -405,7 +407,8 @@ EX void vr_control() { start_vr(); } if(state == 1) { - track_all(); + track_actions(); + need_poses = true; } static bool last_vr_clicked = false; @@ -935,7 +938,7 @@ EX void gen_mv() { } EX void render() { - + track_poses(); resetbuffer rb; state = 2; @@ -1418,6 +1421,11 @@ EX void submit() { } } +EX void handoff() { + if(!state) return; + vr::VRCompositor()->PostPresentHandoff(); + } + #endif EX }