From 321ca84db15812ffd5607fa51d488e3d59b4c0c7 Mon Sep 17 00:00:00 2001 From: notaz Date: Fri, 23 Sep 2011 01:47:33 +0300 Subject: [PATCH] frontend: fix a couple of annoyancies --- frontend/plugin_lib.c | 13 +++++++++++-- plugins/dfxvideo/gpu.c | 1 + 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/frontend/plugin_lib.c b/frontend/plugin_lib.c index 57b94222..fe9fad1d 100644 --- a/frontend/plugin_lib.c +++ b/frontend/plugin_lib.c @@ -111,7 +111,10 @@ static __attribute__((noinline)) void draw_active_chans(void) static void *pl_vout_set_mode(int w, int h, int bpp) { // special h handling, Wipeout likes to change it by 1-6 - h = (h + 7) & ~7; + static int vsync_cnt_ms_prev; + if ((unsigned int)(vsync_cnt - vsync_cnt_ms_prev) < 5*60) + h = (h + 7) & ~7; + vsync_cnt_ms_prev = vsync_cnt; if (w == pl_vout_w && h == pl_vout_h && bpp == pl_vout_bpp) return pl_vout_buf; @@ -171,7 +174,10 @@ static int pl_vout_open(void) omap_enable_layer(1); #if defined(VOUT_FBDEV) - pl_vout_buf = vout_fbdev_flip(layer_fb); + // force mode update + int h = pl_vout_h; + pl_vout_h--; + pl_vout_buf = pl_vout_set_mode(pl_vout_w, h, pl_vout_bpp); // try to align redraws to vsync vout_fbdev_wait_vsync(layer_fb); @@ -445,5 +451,8 @@ void pl_start_watchdog(void) void pl_init(void) { + pl_vout_w = pl_vout_h = 256; + pl_vout_bpp = 16; + ts = pl_gun_ts_init(); } diff --git a/plugins/dfxvideo/gpu.c b/plugins/dfxvideo/gpu.c index d80a265c..b5fdd975 100644 --- a/plugins/dfxvideo/gpu.c +++ b/plugins/dfxvideo/gpu.c @@ -1118,6 +1118,7 @@ long CALLBACK GPUfreeze(uint32_t ulGetFreezeData,GPUFreeze_t * pF) // RESET TEXTURE STORE HERE, IF YOU USE SOMETHING LIKE THAT + PreviousPSXDisplay.Height = 0; GPUwriteStatus(ulStatusControl[0]); GPUwriteStatus(ulStatusControl[1]); GPUwriteStatus(ulStatusControl[2]); -- 2.39.5