X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=plugins%2Fgpulib%2Fgpu.c;h=f89e52d2eb9211f581fa987b6327ab2eedacd806;hb=5eaa13f14d486a661024cabf5448f3c194e76b1a;hp=ed37b7131978fc7dbf5b705b4037ee8a33a2a302;hpb=f770faad8e05014d16e9c1f3c46bfd76274695c6;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;