diff --git a/gfx/common/x11_common.c b/gfx/common/x11_common.c
index 6020024ffd..ad7bcda613 100644
--- a/gfx/common/x11_common.c
+++ b/gfx/common/x11_common.c
@@ -726,7 +726,8 @@ void x11_update_window_title(void *data, video_frame_info_t video_info)
buf[0] = buf_fps[0] = '\0';
- if (video_monitor_get_fps(buf, sizeof(buf), buf_fps, sizeof(buf_fps)))
+ if (video_monitor_get_fps(video_info,
+ buf, sizeof(buf), buf_fps, sizeof(buf_fps)))
XStoreName(g_x11_dpy, g_x11_win, buf);
if (video_info.fps_show)
runloop_msg_queue_push(buf_fps, 1, 1, false);
diff --git a/gfx/drivers/drm_gfx.c b/gfx/drivers/drm_gfx.c
index 5ccbeac671..6382682b96 100644
--- a/gfx/drivers/drm_gfx.c
+++ b/gfx/drivers/drm_gfx.c
@@ -782,7 +782,9 @@ static bool drm_gfx_frame(void *data, const void *frame, unsigned width,
if (_drmvars->menu_active)
{
char buf[128];
- video_monitor_get_fps(buf, sizeof(buf), NULL, 0);
+ buf[0] = '\0';
+
+ video_monitor_get_fps(video_info, buf, sizeof(buf), NULL, 0);
}
/* Update main surface: locate free page, blit and flip. */
diff --git a/gfx/drivers/exynos_gfx.c b/gfx/drivers/exynos_gfx.c
index 36d6e0d8d0..ddf6ed0c72 100644
--- a/gfx/drivers/exynos_gfx.c
+++ b/gfx/drivers/exynos_gfx.c
@@ -1311,7 +1311,7 @@ static bool exynos_gfx_frame(void *data, const void *frame, unsigned width,
buffer[0] = buffer_fps[0] = '\0';
- video_monitor_get_fps(buffer, sizeof(buffer),
+ video_monitor_get_fps(video_info, buffer, sizeof(buffer),
video_info.fps_show ? buffer_fps : NULL, sizeof(buffer_fps));
runloop_msg_queue_push(buffer_fps, 1, 1, false);
}
diff --git a/gfx/drivers/gx_gfx.c b/gfx/drivers/gx_gfx.c
index 4fcaf45918..5cb4b31d98 100644
--- a/gfx/drivers/gx_gfx.c
+++ b/gfx/drivers/gx_gfx.c
@@ -1537,7 +1537,7 @@ static bool gx_frame(void *data, const void *frame,
GX_DrawDone();
- video_monitor_get_fps(fps_txt, sizeof(fps_txt),
+ video_monitor_get_fps(video_info, fps_txt, sizeof(fps_txt),
fps_text_buf, sizeof(fps_text_buf));
if (video_info.fps_show)
diff --git a/gfx/drivers/psp1_gfx.c b/gfx/drivers/psp1_gfx.c
index 19364a1a2a..fd72786fb0 100644
--- a/gfx/drivers/psp1_gfx.c
+++ b/gfx/drivers/psp1_gfx.c
@@ -494,7 +494,7 @@ static bool psp_frame(void *data, const void *frame,
pspDebugScreenSetXY(0,0);
- video_monitor_get_fps(fps_txt, sizeof(fps_txt),
+ video_monitor_get_fps(video_info, fps_txt, sizeof(fps_txt),
video_info.fps_show ? fps_text_buf : NULL,
video_info.fps_show ? sizeof(fps_text_buf) : 0);
diff --git a/gfx/drivers/sdl2_gfx.c b/gfx/drivers/sdl2_gfx.c
index abed41587a..83f2de83ec 100644
--- a/gfx/drivers/sdl2_gfx.c
+++ b/gfx/drivers/sdl2_gfx.c
@@ -536,7 +536,7 @@ static bool sdl2_gfx_frame(void *data, const void *frame, unsigned width,
SDL_RenderPresent(vid->renderer);
- if (video_monitor_get_fps(buf, sizeof(buf), NULL, 0))
+ if (video_monitor_get_fps(video_info, buf, sizeof(buf), NULL, 0))
SDL_SetWindowTitle(vid->window, buf);
return true;
diff --git a/gfx/drivers/sdl_gfx.c b/gfx/drivers/sdl_gfx.c
index 572b971738..dc7d62e3ea 100644
--- a/gfx/drivers/sdl_gfx.c
+++ b/gfx/drivers/sdl_gfx.c
@@ -369,7 +369,7 @@ static bool sdl_gfx_frame(void *data, const void *frame, unsigned width,
if (SDL_MUSTLOCK(vid->screen))
SDL_UnlockSurface(vid->screen);
- if (video_monitor_get_fps(buf, sizeof(buf), NULL, 0))
+ if (video_monitor_get_fps(video_info, buf, sizeof(buf), NULL, 0))
SDL_WM_SetCaption(buf, NULL);
SDL_Flip(vid->screen);
diff --git a/gfx/drivers/sunxi_gfx.c b/gfx/drivers/sunxi_gfx.c
index 8c62172f2d..7b426e484a 100644
--- a/gfx/drivers/sunxi_gfx.c
+++ b/gfx/drivers/sunxi_gfx.c
@@ -781,9 +781,11 @@ static bool sunxi_gfx_frame(void *data, const void *frame, unsigned width,
if (_dispvars->menu_active)
{
- char buf[128] = {0};
+ char buf[128];
- video_monitor_get_fps(buf, sizeof(buf), NULL, 0);
+ buf[0] = '\0';
+
+ video_monitor_get_fps(video_info, buf, sizeof(buf), NULL, 0);
ioctl(_dispvars->sunxi_disp->fd_fb, FBIO_WAITFORVSYNC, 0);
return true;
}
diff --git a/gfx/drivers/vita2d_gfx.c b/gfx/drivers/vita2d_gfx.c
index 69f24a2169..7216895202 100644
--- a/gfx/drivers/vita2d_gfx.c
+++ b/gfx/drivers/vita2d_gfx.c
@@ -209,7 +209,7 @@ static bool vita2d_gfx_frame(void *data, const void *frame,
buffer[0] = buffer_fps[0] = '\0';
- video_monitor_get_fps(buffer, sizeof(buffer),
+ video_monitor_get_fps(video_info, buffer, sizeof(buffer),
video_info.fps_show ? buffer_fps : NULL, sizeof(buffer_fps));
runloop_msg_queue_push(buffer_fps, 1, 1, false);
}
diff --git a/gfx/drivers/xshm_gfx.c b/gfx/drivers/xshm_gfx.c
index 6221405a36..8bb8ec9478 100644
--- a/gfx/drivers/xshm_gfx.c
+++ b/gfx/drivers/xshm_gfx.c
@@ -14,7 +14,7 @@
* If not, see .
*/
-#define _XOPEN_SOURCE 700 // TODO: this doesn't really belong here.
+#define _XOPEN_SOURCE 700 /* TODO: this doesn't really belong here. */
#include
#include
diff --git a/gfx/drivers/xvideo.c b/gfx/drivers/xvideo.c
index 0083a746a2..40797e4e68 100644
--- a/gfx/drivers/xvideo.c
+++ b/gfx/drivers/xvideo.c
@@ -412,6 +412,7 @@ static void *xv_init(const video_info_t *video,
{
unsigned i;
XWindowAttributes target;
+ video_frame_info_t video_info;
char buf[128] = {0};
XSetWindowAttributes attributes = {0};
XVisualInfo visualtemplate = {0};
@@ -527,7 +528,17 @@ static void *xv_init(const video_info_t *video,
XMapWindow(g_x11_dpy, g_x11_win);
- if (video_monitor_get_fps(buf, sizeof(buf), NULL, 0))
+ video_info.refresh_rate = settings->video.refresh_rate;
+ video_info.black_frame_insertion =
+ settings->video.black_frame_insertion;
+ video_info.hard_sync = settings->video.hard_sync;
+ video_info.hard_sync_frames = settings->video.hard_sync_frames;
+ video_info.fps_show = settings->fps_show;
+ video_info.scale_integer = settings->video.scale_integer;
+ video_info.aspect_ratio_idx = settings->video.aspect_ratio_idx;
+ video_info.max_swapchain_images = settings->video.max_swapchain_images;
+
+ if (video_monitor_get_fps(video_info, buf, sizeof(buf), NULL, 0))
XStoreName(g_x11_dpy, g_x11_win, buf);
x11_set_window_attr(g_x11_dpy, g_x11_win);
diff --git a/gfx/drivers_context/android_ctx.c b/gfx/drivers_context/android_ctx.c
index 0c3493a260..fc9a41f9cf 100644
--- a/gfx/drivers_context/android_ctx.c
+++ b/gfx/drivers_context/android_ctx.c
@@ -319,7 +319,7 @@ static void android_gfx_ctx_update_window_title(void *data, video_frame_info_t v
buf[0] = buf_fps[0] = '\0';
- video_monitor_get_fps(buf, sizeof(buf),
+ video_monitor_get_fps(video_info, buf, sizeof(buf),
buf_fps, sizeof(buf_fps));
if (video_info.fps_show)
runloop_msg_queue_push(buf_fps, 1, 1, false);
diff --git a/gfx/drivers_context/cgl_ctx.c b/gfx/drivers_context/cgl_ctx.c
index 2f47daeaa7..4214e32be9 100644
--- a/gfx/drivers_context/cgl_ctx.c
+++ b/gfx/drivers_context/cgl_ctx.c
@@ -117,7 +117,7 @@ static void gfx_ctx_cgl_update_window_title(void *data, video_frame_info_t video
buf[0] = buf_fps[0] = '\0';
- video_monitor_get_fps(buf, sizeof(buf),
+ video_monitor_get_fps(video_info, buf, sizeof(buf),
buf_fps, sizeof(buf_fps));
if (video_info.fps_show)
runloop_msg_queue_push(buf_fps, 1, 1, false);
diff --git a/gfx/drivers_context/d3d_ctx.cpp b/gfx/drivers_context/d3d_ctx.cpp
index ae20d1354d..d6f3e99901 100644
--- a/gfx/drivers_context/d3d_ctx.cpp
+++ b/gfx/drivers_context/d3d_ctx.cpp
@@ -92,7 +92,7 @@ static void gfx_ctx_d3d_update_title(void *data, video_frame_info_t video_info)
buf[0] = buffer_fps[0] = '\0';
- if (window && video_monitor_get_fps(buf, sizeof(buf),
+ if (window && video_monitor_get_fps(video_info, buf, sizeof(buf),
buffer_fps, sizeof(buffer_fps)))
{
#ifndef _XBOX
diff --git a/gfx/drivers_context/drm_ctx.c b/gfx/drivers_context/drm_ctx.c
index 5463573528..57602d9327 100644
--- a/gfx/drivers_context/drm_ctx.c
+++ b/gfx/drivers_context/drm_ctx.c
@@ -278,7 +278,7 @@ static void gfx_ctx_drm_update_window_title(void *data, video_frame_info_t video
buf[0] = buf_fps[0] = '\0';
- video_monitor_get_fps(buf, sizeof(buf),
+ video_monitor_get_fps(video_info, buf, sizeof(buf),
buf_fps, sizeof(buf_fps));
if (video_info.fps_show)
diff --git a/gfx/drivers_context/emscriptenegl_ctx.c b/gfx/drivers_context/emscriptenegl_ctx.c
index ac194f34cc..fc852bc913 100644
--- a/gfx/drivers_context/emscriptenegl_ctx.c
+++ b/gfx/drivers_context/emscriptenegl_ctx.c
@@ -97,7 +97,7 @@ static void gfx_ctx_emscripten_update_window_title(void *data, video_frame_info_
buf[0] = buf_fps[0] = '\0';
- video_monitor_get_fps(buf, sizeof(buf),
+ video_monitor_get_fps(video_info, buf, sizeof(buf),
buf_fps, sizeof(buf_fps));
if (video_info.fps_show)
runloop_msg_queue_push(buf_fps, 1, 1, false);
diff --git a/gfx/drivers_context/khr_display_ctx.c b/gfx/drivers_context/khr_display_ctx.c
index f3c0dc1b84..339bd0c32d 100644
--- a/gfx/drivers_context/khr_display_ctx.c
+++ b/gfx/drivers_context/khr_display_ctx.c
@@ -117,7 +117,7 @@ static void gfx_ctx_khr_display_update_window_title(void *data, video_frame_info
buf[0] = buf_fps[0] = '\0';
- video_monitor_get_fps(buf, sizeof(buf),
+ video_monitor_get_fps(video_info, buf, sizeof(buf),
buf_fps, sizeof(buf_fps));
if (video_info.fps_show)
runloop_msg_queue_push(buf_fps, 1, 1, false);
diff --git a/gfx/drivers_context/mali_fbdev_ctx.c b/gfx/drivers_context/mali_fbdev_ctx.c
index 413713e802..260d1b7ea7 100644
--- a/gfx/drivers_context/mali_fbdev_ctx.c
+++ b/gfx/drivers_context/mali_fbdev_ctx.c
@@ -165,7 +165,7 @@ static void gfx_ctx_mali_fbdev_update_window_title(void *data, video_frame_info_
buf[0] = buf_fps[0] = '\0';
- video_monitor_get_fps(buf, sizeof(buf),
+ video_monitor_get_fps(video_info, buf, sizeof(buf),
buf_fps, sizeof(buf_fps));
if (video_info.fps_show)
runloop_msg_queue_push(buf_fps, 1, 1, false);
diff --git a/gfx/drivers_context/opendingux_fbdev_ctx.c b/gfx/drivers_context/opendingux_fbdev_ctx.c
index 5c61086ab9..8711de8830 100644
--- a/gfx/drivers_context/opendingux_fbdev_ctx.c
+++ b/gfx/drivers_context/opendingux_fbdev_ctx.c
@@ -148,7 +148,7 @@ static void gfx_ctx_opendingux_update_window_title(void *data, video_frame_info_
buf[0] = buf_fps[0] = '\0';
- video_monitor_get_fps(buf, sizeof(buf),
+ video_monitor_get_fps(video_info, buf, sizeof(buf),
buf_fps, sizeof(buf_fps));
if (video_info.fps_show)
runloop_msg_queue_push(buf_fps, 1, 1, false);
diff --git a/gfx/drivers_context/osmesa_ctx.c b/gfx/drivers_context/osmesa_ctx.c
index c283ed06b9..852e4ae96e 100644
--- a/gfx/drivers_context/osmesa_ctx.c
+++ b/gfx/drivers_context/osmesa_ctx.c
@@ -316,7 +316,8 @@ static void osmesa_ctx_update_window_title(void *data, video_frame_info_t video_
if (!osmesa)
return;
- video_monitor_get_fps(buf, sizeof(buf), buf_fps, sizeof(buf_fps));
+ video_monitor_get_fps(video_info, buf,
+ sizeof(buf), buf_fps, sizeof(buf_fps));
if (video_info.fps_show)
runloop_msg_queue_push(buf_fps, 1, 1, false);
diff --git a/gfx/drivers_context/ps3_ctx.c b/gfx/drivers_context/ps3_ctx.c
index d967dc8107..c4b9025cb1 100644
--- a/gfx/drivers_context/ps3_ctx.c
+++ b/gfx/drivers_context/ps3_ctx.c
@@ -207,7 +207,7 @@ static void gfx_ctx_ps3_update_window_title(void *data, video_frame_info_t video
(void)data;
- video_monitor_get_fps(buf, sizeof(buf),
+ video_monitor_get_fps(video_info, buf, sizeof(buf),
buf_fps, sizeof(buf_fps));
if (video_info.fps_show)
runloop_msg_queue_push(buf_fps, 1, 1, false);
diff --git a/gfx/drivers_context/sdl_gl_ctx.c b/gfx/drivers_context/sdl_gl_ctx.c
index 39181f8743..8197c7d4bb 100644
--- a/gfx/drivers_context/sdl_gl_ctx.c
+++ b/gfx/drivers_context/sdl_gl_ctx.c
@@ -274,7 +274,7 @@ static void sdl_ctx_update_window_title(void *data, video_frame_info_t video_inf
buf[0] = buf_fps[0] = '\0';
- if (video_monitor_get_fps(buf, sizeof(buf),
+ if (video_monitor_get_fps(video_info, buf, sizeof(buf),
buf_fps, sizeof(buf_fps)))
{
#ifdef HAVE_SDL2
diff --git a/gfx/drivers_context/vc_egl_ctx.c b/gfx/drivers_context/vc_egl_ctx.c
index 45603bd6bf..51bdf0e9f6 100644
--- a/gfx/drivers_context/vc_egl_ctx.c
+++ b/gfx/drivers_context/vc_egl_ctx.c
@@ -112,7 +112,7 @@ static void gfx_ctx_vc_update_window_title(void *data, video_frame_info_t video_
buf[0] = buf_fps[0] = '\0';
- video_monitor_get_fps(buf, sizeof(buf),
+ video_monitor_get_fps(video_info, buf, sizeof(buf),
buf_fps, sizeof(buf_fps));
if (video_info.fps_show)
runloop_msg_queue_push(buf_fps, 1, 1, false);
diff --git a/gfx/drivers_context/vivante_fbdev_ctx.c b/gfx/drivers_context/vivante_fbdev_ctx.c
index 17abc79b05..0c4f7ff230 100644
--- a/gfx/drivers_context/vivante_fbdev_ctx.c
+++ b/gfx/drivers_context/vivante_fbdev_ctx.c
@@ -152,7 +152,7 @@ static void gfx_ctx_vivante_update_window_title(void *data, video_frame_info_t v
buf[0] = buf_fps[0] = '\0';
- video_monitor_get_fps(buf, sizeof(buf),
+ video_monitor_get_fps(video_info, buf, sizeof(buf),
buf_fps, sizeof(buf_fps));
if (video_info.fps_show)
runloop_msg_queue_push(buf_fps, 1, 1, false);
diff --git a/gfx/drivers_context/wayland_ctx.c b/gfx/drivers_context/wayland_ctx.c
index ab30e3ba45..cea36b8685 100644
--- a/gfx/drivers_context/wayland_ctx.c
+++ b/gfx/drivers_context/wayland_ctx.c
@@ -728,7 +728,7 @@ static void gfx_ctx_wl_update_window_title(void *data, video_frame_info_t video_
buf[0] = buf_fps[0] = '\0';
- if (video_monitor_get_fps(buf, sizeof(buf),
+ if (video_monitor_get_fps(video_info, buf, sizeof(buf),
buf_fps, sizeof(buf_fps)))
wl_shell_surface_set_title(wl->shell_surf, buf);
diff --git a/gfx/drivers_context/wgl_ctx.cpp b/gfx/drivers_context/wgl_ctx.cpp
index 15766f0733..6075f9cafc 100644
--- a/gfx/drivers_context/wgl_ctx.cpp
+++ b/gfx/drivers_context/wgl_ctx.cpp
@@ -393,7 +393,7 @@ static void gfx_ctx_wgl_update_window_title(void *data, video_frame_info_t video
buf[0] = buf_fps[0] = '\0';
- if (window && video_monitor_get_fps(buf, sizeof(buf),
+ if (window && video_monitor_get_fps(video_info, buf, sizeof(buf),
buf_fps, sizeof(buf_fps)))
window->set_title(&main_window, buf);
if (video_info.fps_show)
diff --git a/gfx/video_driver.c b/gfx/video_driver.c
index 2b77282e71..470475e72d 100644
--- a/gfx/video_driver.c
+++ b/gfx/video_driver.c
@@ -1023,7 +1023,9 @@ bool video_monitor_fps_statistics(double *refresh_rate,
* otherwise false.
*
**/
-bool video_monitor_get_fps(char *buf, size_t size,
+bool video_monitor_get_fps(
+ video_frame_info_t video_info,
+ char *buf, size_t size,
char *buf_fps, size_t size_fps)
{
static retro_time_t curr_time;
@@ -1036,7 +1038,6 @@ bool video_monitor_get_fps(char *buf, size_t size,
{
static float last_fps;
bool ret = false;
- settings_t *settings = config_get_ptr();
unsigned write_index = video_driver_frame_time_count++ &
(MEASURE_FRAME_TIME_SAMPLES_COUNT - 1);
@@ -1055,7 +1056,7 @@ bool video_monitor_get_fps(char *buf, size_t size,
" || ",
size);
- if (settings->fps_show)
+ if (video_info.fps_show)
{
char fps_text[64];
snprintf(fps_text, sizeof(fps_text), " FPS: %6.1f || ", last_fps);
@@ -1071,7 +1072,7 @@ bool video_monitor_get_fps(char *buf, size_t size,
ret = true;
}
- if (buf_fps && settings->fps_show)
+ if (buf_fps && video_info.fps_show)
snprintf(buf_fps, size_fps, "FPS: %6.1f || %s: " STRING_REP_UINT64,
last_fps,
msg_hash_to_str(MSG_FRAMES),
@@ -1098,7 +1099,8 @@ void video_driver_set_aspect_ratio_value(float value)
video_driver_aspect_ratio = value;
}
-static bool video_driver_frame_filter(const void *data,
+static bool video_driver_frame_filter(
+ const void *data,
unsigned width, unsigned height,
size_t pitch,
unsigned *output_width, unsigned *output_height,
diff --git a/gfx/video_driver.h b/gfx/video_driver.h
index febf512bd7..16b9b0224f 100644
--- a/gfx/video_driver.h
+++ b/gfx/video_driver.h
@@ -465,7 +465,9 @@ bool video_monitor_fps_statistics(double *refresh_rate,
* otherwise false.
*
**/
-bool video_monitor_get_fps(char *buf, size_t size,
+bool video_monitor_get_fps(
+ video_frame_info_t video_info,
+ char *buf, size_t size,
char *buf_fps, size_t size_fps);
unsigned video_pixel_get_alignment(unsigned pitch);