From 4ecfe639b3cb5c670722d78d7f951eccad3d6c7d Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 9 May 2015 15:41:10 +0200 Subject: [PATCH] Create local frame_count variables again in video_drivers --- gfx/d3d/d3d.cpp | 2 ++ gfx/d3d/d3d.h | 1 + gfx/drivers/ctr_gfx.c | 4 ++++ gfx/drivers/dispmanx_gfx.c | 29 ++++++++++++++++------------- gfx/drivers/exynos_gfx.c | 2 ++ gfx/drivers/gl.c | 2 ++ gfx/drivers/gl_common.h | 3 +-- gfx/drivers/gx_gfx.c | 3 +++ gfx/drivers/omap_gfx.c | 6 ++++-- gfx/drivers/psp1_gfx.c | 2 ++ gfx/drivers/sdl2_gfx.c | 3 +++ gfx/drivers/sdl_gfx.c | 3 +++ gfx/drivers/sunxi_gfx.c | 3 +++ gfx/drivers/vg.c | 5 +++-- gfx/drivers/xenon360_gfx.c | 3 +++ gfx/drivers/xvideo.c | 3 +++ 16 files changed, 55 insertions(+), 19 deletions(-) diff --git a/gfx/d3d/d3d.cpp b/gfx/d3d/d3d.cpp index 805d1f5f63..f68e97e523 100644 --- a/gfx/d3d/d3d.cpp +++ b/gfx/d3d/d3d.cpp @@ -1737,6 +1737,8 @@ static bool d3d_frame(void *data, const void *frame, gfx_ctx_swap_buffers(d3d); + d3d->frame_count++; + return true; } diff --git a/gfx/d3d/d3d.h b/gfx/d3d/d3d.h index dcede2f2c3..8d4189263f 100644 --- a/gfx/d3d/d3d.h +++ b/gfx/d3d/d3d.h @@ -95,6 +95,7 @@ typedef struct gl_shader_backend gl_shader_backend_t; typedef struct d3d_video { + uint64_t frame_count; bool should_resize; bool quitting; diff --git a/gfx/drivers/ctr_gfx.c b/gfx/drivers/ctr_gfx.c index 6309aee971..f2c080a7c1 100644 --- a/gfx/drivers/ctr_gfx.c +++ b/gfx/drivers/ctr_gfx.c @@ -63,6 +63,7 @@ typedef struct ctr_video ctr_vertex_t* frame_coords; }menu; + uint64_t frame_count; uint32_t* display_list; int display_list_size; void* texture_linear; @@ -360,6 +361,9 @@ static bool ctr_frame(void* data, const void* frame, gfxGetFramebuffer(GFX_TOP, GFX_LEFT, NULL, NULL), 240,400,CTRGU_RGB8, CTRGU_MULTISAMPLE_NONE); RARCH_PERFORMANCE_STOP(ctrframe_f); + + ctr->frame_count++; + return true; } diff --git a/gfx/drivers/dispmanx_gfx.c b/gfx/drivers/dispmanx_gfx.c index d1f0f12c3d..d1b55c4b9c 100644 --- a/gfx/drivers/dispmanx_gfx.c +++ b/gfx/drivers/dispmanx_gfx.c @@ -36,7 +36,8 @@ #define NUMPAGES 2 struct dispmanx_video -{ +{ + uint64_t frame_count; DISPMANX_DISPLAY_HANDLE_T display; DISPMANX_MODEINFO_T amode; DISPMANX_UPDATE_HANDLE_T update; @@ -382,19 +383,19 @@ static bool dispmanx_gfx_frame(void *data, const void *frame, unsigned width, if (width != _dispvars->width || height != _dispvars->height) { - /* Sanity check. */ - if (width == 0 || height == 0) - return true; + /* Sanity check. */ + if (width == 0 || height == 0) + return true; - RARCH_LOG("video_dispmanx: internal frame resolution changed by core\n"); - - if (!dispmanx_setup_scale(_dispvars, width, height, pitch)) - { - RARCH_ERR("video_dispmanx: frame resolution set failed\n"); - return false; - } - - dispmanx_blank_console (_dispvars); + RARCH_LOG("video_dispmanx: internal frame resolution changed by core\n"); + + if (!dispmanx_setup_scale(_dispvars, width, height, pitch)) + { + RARCH_ERR("video_dispmanx: frame resolution set failed\n"); + return false; + } + + dispmanx_blank_console (_dispvars); } if (_dispvars->menu_active) @@ -406,6 +407,8 @@ static bool dispmanx_gfx_frame(void *data, const void *frame, unsigned width, /* Update main game screen: locate free page, blit and flip. */ dispmanx_update_main(_dispvars, frame); + _dispvars->frame_count++; + return true; } diff --git a/gfx/drivers/exynos_gfx.c b/gfx/drivers/exynos_gfx.c index b316cc863f..be133201cd 100644 --- a/gfx/drivers/exynos_gfx.c +++ b/gfx/drivers/exynos_gfx.c @@ -1471,6 +1471,8 @@ static bool exynos_gfx_frame(void *data, const void *frame, unsigned width, if (exynos_flip(vid->data, page) != 0) goto fail; + vid->frame_count++; + return true; fail: diff --git a/gfx/drivers/gl.c b/gfx/drivers/gl.c index 71f83c478f..7d41f39dd1 100644 --- a/gfx/drivers/gl.c +++ b/gfx/drivers/gl.c @@ -1708,6 +1708,8 @@ static bool gl_frame(void *data, const void *frame, context_bind_hw_render(gl, true); + gl->frame_count++; + return true; } diff --git a/gfx/drivers/gl_common.h b/gfx/drivers/gl_common.h index 0d83d41cc6..761406c8ad 100644 --- a/gfx/drivers/gl_common.h +++ b/gfx/drivers/gl_common.h @@ -245,6 +245,7 @@ struct gl_font_renderer; typedef struct gl { + uint64_t frame_count; const shader_backend_t *shader; bool vsync; @@ -262,8 +263,6 @@ typedef struct gl void *conv_buffer; struct scaler_ctx scaler; - unsigned frame_count; - #ifdef HAVE_FBO /* Render-to-texture, multipass shaders. */ GLuint fbo[MAX_SHADERS]; diff --git a/gfx/drivers/gx_gfx.c b/gfx/drivers/gx_gfx.c index 3e900b825d..c646c5a905 100644 --- a/gfx/drivers/gx_gfx.c +++ b/gfx/drivers/gx_gfx.c @@ -46,6 +46,7 @@ struct gx_overlay_data typedef struct gx_video { + uint64_t frame_count; bool should_resize; bool keep_aspect; bool double_strike; @@ -1158,6 +1159,8 @@ static bool gx_frame(void *data, const void *frame, RARCH_PERFORMANCE_STOP(gx_frame); + gx->frame_count++; + return true; } diff --git a/gfx/drivers/omap_gfx.c b/gfx/drivers/omap_gfx.c index d416cec178..5062a29af4 100644 --- a/gfx/drivers/omap_gfx.c +++ b/gfx/drivers/omap_gfx.c @@ -770,6 +770,7 @@ static void omapfb_blit_frame(omapfb_data_t *pdata, const void *src, typedef struct omap_video { + uint64_t frame_count; omapfb_data_t *omap; void *font; @@ -981,11 +982,10 @@ fail: static bool omap_gfx_frame(void *data, const void *frame, unsigned width, unsigned height, unsigned pitch, const char *msg) { - omap_video_t *vid; + omap_video_t *vid = (omap_video_t*)data; if (!frame) return true; - vid = data; if (width > 4 && height > 4 && (width != vid->width || height != vid->height)) { @@ -1010,6 +1010,8 @@ static bool omap_gfx_frame(void *data, const void *frame, unsigned width, if (msg) omap_render_msg(vid, msg); + vid->frame_count++; + return true; } diff --git a/gfx/drivers/psp1_gfx.c b/gfx/drivers/psp1_gfx.c index aca60b0308..7db644b9ba 100644 --- a/gfx/drivers/psp1_gfx.c +++ b/gfx/drivers/psp1_gfx.c @@ -85,6 +85,7 @@ typedef struct psp1_menu_frame typedef struct psp1_video { + uint64_t frame_count; void* main_dList; void* frame_dList; void* draw_buffer; @@ -525,6 +526,7 @@ static bool psp_frame(void *data, const void *frame, #endif psp->draw_buffer = FROM_GU_POINTER(sceGuSwapBuffers()); + psp->frame_count++; RARCH_PERFORMANCE_INIT(psp_frame_run); RARCH_PERFORMANCE_START(psp_frame_run); diff --git a/gfx/drivers/sdl2_gfx.c b/gfx/drivers/sdl2_gfx.c index 9b38d44e5b..03f6e6b48d 100644 --- a/gfx/drivers/sdl2_gfx.c +++ b/gfx/drivers/sdl2_gfx.c @@ -51,6 +51,7 @@ typedef struct sdl2_tex typedef struct _sdl2_video { + uint64_t frame_count; SDL_Window *window; SDL_Renderer *renderer; @@ -518,6 +519,8 @@ static bool sdl2_gfx_frame(void *data, const void *frame, unsigned width, if (video_monitor_get_fps(buf, sizeof(buf), NULL, 0)) SDL_SetWindowTitle(vid->window, buf); + vid->frame_count++; + return true; } diff --git a/gfx/drivers/sdl_gfx.c b/gfx/drivers/sdl_gfx.c index aff012b8ae..e1054efc20 100644 --- a/gfx/drivers/sdl_gfx.c +++ b/gfx/drivers/sdl_gfx.c @@ -46,6 +46,7 @@ typedef struct sdl_menu_frame typedef struct sdl_video { + uint64_t frame_count; SDL_Surface *screen; bool quitting; @@ -377,6 +378,8 @@ static bool sdl_gfx_frame(void *data, const void *frame, unsigned width, SDL_Flip(vid->screen); + vid->frame_count++; + return true; } diff --git a/gfx/drivers/sunxi_gfx.c b/gfx/drivers/sunxi_gfx.c index 40769df328..e0cca39bc7 100644 --- a/gfx/drivers/sunxi_gfx.c +++ b/gfx/drivers/sunxi_gfx.c @@ -498,6 +498,7 @@ struct sunxi_page struct sunxi_video { + uint64_t frame_count; void *font; const font_renderer_driver_t *font_driver; @@ -802,6 +803,8 @@ static bool sunxi_gfx_frame(void *data, const void *frame, unsigned width, sunxi_update_main(frame, _dispvars); + _dispvars->frame_count++; + return true; } diff --git a/gfx/drivers/vg.c b/gfx/drivers/vg.c index 505ba2bc68..4f33bf7d63 100644 --- a/gfx/drivers/vg.c +++ b/gfx/drivers/vg.c @@ -34,6 +34,7 @@ typedef struct { + uint64_t frame_count; bool should_resize; float mScreenAspect; bool mKeepAspect; @@ -364,9 +365,7 @@ static void vg_copy_frame(void *data, const void *frame, } } else - { vgImageSubData(vg->mImage, frame, pitch, vg->mTexType, 0, 0, width, height); - } } static bool vg_frame(void *data, const void *frame, @@ -415,6 +414,8 @@ static bool vg_frame(void *data, const void *frame, gfx_ctx_swap_buffers(vg); + vg->frame_count++; + return true; } diff --git a/gfx/drivers/xenon360_gfx.c b/gfx/drivers/xenon360_gfx.c index 549fd1ff37..5fd5f00a00 100644 --- a/gfx/drivers/xenon360_gfx.c +++ b/gfx/drivers/xenon360_gfx.c @@ -84,6 +84,7 @@ static bool g_quitting; typedef struct gl { + uint64_t frame_count; unsigned char *screen; struct XenosVertexBuffer *vb; struct XenosDevice * gl_device; @@ -238,6 +239,8 @@ static bool xenon360_gfx_frame(void *data, const void *frame, unsigned width, un Xe_Resolve(vid->gl_device); Xe_Sync(vid->gl_device); + vid->frame_count++; + return true; } diff --git a/gfx/drivers/xvideo.c b/gfx/drivers/xvideo.c index e2c5d61adc..b9c0008042 100644 --- a/gfx/drivers/xvideo.c +++ b/gfx/drivers/xvideo.c @@ -39,6 +39,7 @@ typedef struct xv { + uint64_t frame_count; Display *display; GC gc; Window window; @@ -787,6 +788,8 @@ static bool xv_frame(void *data, const void *frame, unsigned width, if (video_monitor_get_fps(buf, sizeof(buf), NULL, 0)) XStoreName(xv->display, xv->window, buf); + xv->frame_count++; + return true; }