From c2e321d29621568cf0ecf9417ac43d3b539f46f6 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Sun, 11 Dec 2016 13:05:51 +0100 Subject: [PATCH] app/retro_frontend: fix FPS sampling math Fix #54 --- src/app/retro_frontend/frontend.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/app/retro_frontend/frontend.h b/src/app/retro_frontend/frontend.h index cbf309e..db24253 100644 --- a/src/app/retro_frontend/frontend.h +++ b/src/app/retro_frontend/frontend.h @@ -346,11 +346,12 @@ struct Libretro::Frontend } else if (fb_sync_sample_count == quarter_fps) { fb_sync_sample_count = 0; - int sync_ms = (timer.elapsed_ms() - sample_start)/quarter_fps; - int want_ms = 250.0 / quarter_fps; + float sync_ms = (timer.elapsed_ms() - sample_start)/quarter_fps; + float want_ms = 250.0 / quarter_fps; + float diff = want_ms - sync_ms; - int diff = want_ms - sync_ms; - if (diff > 10 || diff < -10) { + /* allow a generous two millisecond difference in FPS */ + if (diff > 2.0 || diff < -2.0) { framebuffer->session.sync_sigh(Genode::Signal_context_capability()); Genode::warning("framebuffer sync unsuitable, " "using alternative timing source");