diff options
author | twinaphex | 2012-12-04 14:36:01 +0100 |
---|---|---|
committer | notaz | 2012-12-10 23:20:59 +0200 |
commit | bcbe4aa4b45d8d37a6a3f1d80b4da1f3beb2be16 (patch) | |
tree | f97db3042809bee7b4a3322537fb0ba303058e5d /frontend | |
parent | 46aa5b98890412bca8487b28809df3ece137dba9 (diff) | |
download | pcsx_rearmed-bcbe4aa4b45d8d37a6a3f1d80b4da1f3beb2be16.tar.gz pcsx_rearmed-bcbe4aa4b45d8d37a6a3f1d80b4da1f3beb2be16.tar.bz2 pcsx_rearmed-bcbe4aa4b45d8d37a6a3f1d80b4da1f3beb2be16.zip |
libretro: call video_cb on every frame
We need to do video_cb in retro_run every frame instead of
just once every time the video callback is called - otherwise
we will get very bad/skippy framerates.
Performance is much improved now in nearly all games.
Diffstat (limited to 'frontend')
-rw-r--r-- | frontend/libretro.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/frontend/libretro.c b/frontend/libretro.c index 49e346b..e505804 100644 --- a/frontend/libretro.c +++ b/frontend/libretro.c @@ -62,6 +62,9 @@ static void convert(void *buf, size_t bytes) } #endif +static unsigned game_width; +static unsigned game_height; + static void vout_flip(const void *vram, int stride, int bgr24, int w, int h) { unsigned short *dest = vout_buf; @@ -94,8 +97,8 @@ out: #ifndef FRONTEND_SUPPORTS_RGB565 convert(vout_buf, w * h * 2); #endif - video_cb(vout_buf, w, h, w * 2); - pl_rearmed_cbs.flip_cnt++; + game_width = w; + game_height = h; } static void vout_close(void) @@ -353,6 +356,8 @@ void retro_run(void) psxCpu->Execute(); samples_to_send += 44100 / 60; + video_cb(vout_buf, game_width, game_height, game_width * 2); + pl_rearmed_cbs.flip_cnt++; } void retro_init(void) |