X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=plugins%2Fgpulib%2Fgpu.c;h=f89e52d2eb9211f581fa987b6327ab2eedacd806;hb=5201e92fd5476d5022d0e74521c50334ebf94935;hp=ed37b7131978fc7dbf5b705b4037ee8a33a2a302;hpb=accedc82b01fe5834a805a9872405d51de1d5c06;p=pcsx_rearmed.git diff --git a/plugins/gpulib/gpu.c b/plugins/gpulib/gpu.c index ed37b713..f89e52d2 100644 --- a/plugins/gpulib/gpu.c +++ b/plugins/gpulib/gpu.c @@ -90,6 +90,8 @@ static noinline void update_height(void) static noinline void decide_frameskip(void) { + *gpu.frameskip.dirty = 1; + if (gpu.frameskip.active) gpu.frameskip.cnt++; else { @@ -97,7 +99,9 @@ static noinline void decide_frameskip(void) gpu.frameskip.frame_ready = 1; } - if (!gpu.frameskip.active && *gpu.frameskip.advice) + if (*gpu.frameskip.force) + gpu.frameskip.active = 1; + else if (!gpu.frameskip.active && *gpu.frameskip.advice) gpu.frameskip.active = 1; else if (gpu.frameskip.set > 0 && gpu.frameskip.cnt < gpu.frameskip.set) gpu.frameskip.active = 1; @@ -805,6 +809,8 @@ void GPUrearmedCallbacks(const struct rearmed_cbs *cbs) { gpu.frameskip.set = cbs->frameskip; gpu.frameskip.advice = &cbs->fskip_advice; + gpu.frameskip.force = &cbs->fskip_force; + gpu.frameskip.dirty = &cbs->fskip_dirty; gpu.frameskip.active = 0; gpu.frameskip.frame_ready = 1; gpu.state.hcnt = cbs->gpu_hcnt;