From e9309bb70db88afa3b7bda26268b981ded9fa547 Mon Sep 17 00:00:00 2001 From: notaz Date: Thu, 6 Jul 2023 23:55:43 +0300 Subject: [PATCH] fix missed double resolution change --- plugins/gpulib/gpu.h | 1 + plugins/gpulib/vout_pl.c | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/plugins/gpulib/gpu.h b/plugins/gpulib/gpu.h index e03289b1..f710d3f1 100644 --- a/plugins/gpulib/gpu.h +++ b/plugins/gpulib/gpu.h @@ -78,6 +78,7 @@ struct psx_gpu { uint32_t hcnt; } last_list; uint32_t last_vram_read_frame; + uint32_t w_out_old, h_out_old, status_vo_old; } state; struct { int32_t set:3; /* -1 auto, 0 off, 1-3 fixed */ diff --git a/plugins/gpulib/vout_pl.c b/plugins/gpulib/vout_pl.c index 9e2d9007..ac55fa73 100644 --- a/plugins/gpulib/vout_pl.c +++ b/plugins/gpulib/vout_pl.c @@ -27,8 +27,6 @@ int vout_finish(void) static void check_mode_change(int force) { - static uint32_t old_status; - static int old_h; int w = gpu.screen.hres; int h = gpu.screen.h; int w_out = w; @@ -53,10 +51,12 @@ static void check_mode_change(int force) } // width|rgb24 change? - if (force || (gpu.status ^ old_status) & ((7<<16)|(1<<21)) || h != old_h) + if (force || (gpu.status ^ gpu.state.status_vo_old) & ((7<<16)|(1<<21)) + || w_out != gpu.state.w_out_old || h_out != gpu.state.h_out_old) { - old_status = gpu.status; - old_h = h; + gpu.state.status_vo_old = gpu.status; + gpu.state.w_out_old = w_out; + gpu.state.h_out_old = h_out; cbs->pl_vout_set_mode(w_out, h_out, w, h, (gpu.status & PSX_GPU_STATUS_RGB24) ? 24 : 16); -- 2.39.5