Switch system_clock to high_resolution_clock, work around win32 sleep_for/sleep_until bug when clocks go backwards

This commit is contained in:
Mr-Wiseguy
2024-04-05 21:06:04 -04:00
parent 65ced0c594
commit bd537728e3
6 changed files with 62 additions and 25 deletions
+3 -3
View File
@@ -3,10 +3,10 @@
static ultramodern::input_callbacks_t input_callbacks;
std::chrono::system_clock::time_point input_poll_time;
std::chrono::high_resolution_clock::time_point input_poll_time;
void update_poll_time() {
input_poll_time = std::chrono::system_clock::now();
input_poll_time = std::chrono::high_resolution_clock::now();
}
extern "C" void recomp_set_current_frame_poll_id(uint8_t* rdram, recomp_context* ctx) {
@@ -18,7 +18,7 @@ extern "C" void recomp_measure_latency(uint8_t* rdram, recomp_context* ctx) {
}
void ultramodern::measure_input_latency() {
// printf("Delta: %ld micros\n", std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::system_clock::now() - input_poll_time));
// printf("Delta: %ld micros\n", std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::high_resolution_clock::now() - input_poll_time));
}
void set_input_callbacks(const ultramodern::input_callbacks_t& callbacks) {
+1 -2
View File
@@ -429,8 +429,7 @@ void recomp::start(ultramodern::WindowHandle window_handle, const ultramodern::a
}, window_handle, rdram_buffer.get()};
while (!exited) {
using namespace std::chrono_literals;
std::this_thread::sleep_for(1ms);
ultramodern::sleep_milliseconds(1);
if (gfx_callbacks.update_gfx != nullptr) {
gfx_callbacks.update_gfx(gfx_data);
}
+1 -4
View File
@@ -322,10 +322,7 @@ public:
throw std::runtime_error("Failed to make RmlUi data model for the graphics config menu");
}
{
using namespace std::chrono_literals;
std::this_thread::sleep_for(50ms);
}
ultramodern::sleep_milliseconds(50);
new_options = ultramodern::get_graphics_config();
bind_config_list_events(constructor);