forums.PPSSPP.org
Frame skip interface issue. - Printable Version

+- forums.PPSSPP.org (https://forums.ppsspp.org)
+-- Forum: PPSSPP - Playstation Portable Simulator Suitable for Playing Portably (/forumdisplay.php?fid=1)
+--- Forum: Development (/forumdisplay.php?fid=3)
+--- Thread: Frame skip interface issue. (/showthread.php?tid=11752)



Frame skip interface issue. - Nightquaker - 05-10-2014 03:37 PM

Hello there :3

I have a question about later builds of PPSSPP (starting from 0.9.7 or so).

I noticed that I can't use auto frameskip with frameskip 0 at the same time. Minimum frameskip setting is 1.
I often don't need to skip 1 frame, but I use auto just to compensate random chugs that happen in some games and now I'm forced to skip one frame because there's no option to use auto frameskip with fixed frameskip value of 0.
If I set fixed frameskip to "off", it turns frameskip off entirely, including automatic frameskip, even if it's enabled.

Is it intended to be that way?


RE: Frame skip interface issue. - [Unknown] - 05-10-2014 08:26 PM

If you have frameskip set to auto, the frameskip value is the maximal number of frames to skip.

If you set this to 0, it would mean "skip at most 0 frames." That is the same as frameskip off, so it makes no sense. That's why you're not allowed to configure it that way.

If you want a fixed frameskip at 1 frame, turn off auto. If you want to skip at most 1 frame, but never 2 frames and sometimes 0, turn on auto and set it to 1.

-[Unknown]

By the way, you are not the first person to ask this. What do you expect auto frameskip set to 0 to actually do? I don't even understand that concept. What do you think the 0 means?

I can understand you might not realize it's the maximum allowed frameskip, but what do you think it would indicate otherwise?

-[Unknown]


RE: Frame skip interface issue. - Nightquaker - 05-10-2014 08:44 PM

(05-10-2014 08:26 PM)[Unknown] Wrote:  If you have frameskip set to auto, the frameskip value is the maximal number of frames to skip.

If you set this to 0, it would mean "skip at most 0 frames." That is the same as frameskip off, so it makes no sense. That's why you're not allowed to configure it that way.

If you want a fixed frameskip at 1 frame, turn off auto. If you want to skip at most 1 frame, but never 2 frames and sometimes 0, turn on auto and set it to 1.

-[Unknown]

By the way, you are not the first person to ask this. What do you expect auto frameskip set to 0 to actually do? I don't even understand that concept. What do you think the 0 means?

I can understand you might not realize it's the maximum allowed frameskip, but what do you think it would indicate otherwise?

-[Unknown]

I probably haven't formatted my question properly, sorry about that.
What I meant is that there was an option to set frameskip to auto and set no fixed value at all, so the maximum frameskip was unlimited. It worked very well that way and I don't really understand why interface was changed to the way it is in newest versions.

Also: either Wipeout Pulse runs alot worse on 0.9.8 than on 0.9.6, or frameskip on 0.9.8 is broken. There is a severe framerate inconsistense while using various max frameskip values with auto frameskip enabled on 0.9.8 and no problems on version 0.9.6 with exactly same settings and frameskip set to auto.
I also want to mention that if I set frameskip to auto and set a max frames skipped to 1, emulator always skips 1 frame, even where it's not needed.
Maybe there's something wrong with automatic frameskip algorithm?

P.S. Please, don't move the thread to Wipeout Pulse section as it might actually be related to a frameskip and so, the issue with emulator itself.


RE: Frame skip interface issue. - [Unknown] - 05-11-2014 05:53 AM

In the previous interface, the maximum frameskip was fixed to 1. This was actually a mistake an unintentional.

Many settings can affect the performance of Wipeout. I don't have Pulse, only Pure, but I know that the "Timer Hack" can have really improve or hurt it, and I know messing with the cpu clock can as well. If you've fiddled with any of these settings they could've affected it.

-[Unknown]


RE: Frame skip interface issue. - Nightquaker - 05-12-2014 03:45 AM

I know that CPU clock can be particularly effective with Pulse, but it wasn't in my case. Enabling timer hack also didn't work. The issue seems to be pretty well known, though, and might have something to do with texture caching, but I'm not sure.

Also, I don't think that in previous interface maximum frameskip was fixed to 1 as I had more than 1 frames skipped while using auto frameskip in really demanding games like Gundam VS Gundam Next Plus or God of War.


RE: Frame skip interface issue. - [Unknown] - 05-12-2014 05:20 AM

I'm aware that there's a small number of people who seem quite convinced of this. Unfortunately, there's no evidence to prove this or to prove aliens. Conviction doesn't make truth.

Here's the relevant change:
https://github.com/hrydgard/ppsspp/commit/9e9c6c0719d85d9e3a95e4f59068c625b1a7680d#diff-4a63423fd3c6e0ac181a90222b514dd8R562

If you can understand code, it'll be important for you to understand that at this time, g_Config.iFrameSkip had the following values:

0 = do not frameskip
1 = auto frameskip
2 = frameskip 1 frame (fixed)
3 = frameskip 2 frame (fixed)

This was confusing, and has been since changed. Anyway, the relevant change I made was in v0.9.7, and corrected auto frameskip to allow more than one frame to be skipped in a row. It was quite clear, for example using softgpu (which in many games, runs at 25% speed on my computer), that it was only capable of skipping one frame.

In this line:

int maxFrameskip = throttle ? g_Config.iFrameSkip : 8;

The throttle value is true when you're not pressing fast forward. So, maxFrameskip was always 1, if you used auto. Also, if you had frameskipping set to a fixed value, it was one higher than it ought to be (incorrectly.) This was a mistake whoever added auto frameskipping made.

In my change, I made it skip up to 4 frames in auto (this made softgpu way more bearable.) Some people complained that this was too much skipping, and so we changed it to use the slider, allowing you to pick the maximal number of frames you would like to skip.

As always, there have been changes that have improved and hurt preformance along the way. There have been thousands of individual changes since then, and even before then. Maybe some other change has affected your favorite game and made its performance worse, and you are thinking that this perceived decrease in performance is caused by framekskip changes.

-[Unknown]


RE: Frame skip interface issue. - Nightquaker - 05-12-2014 03:55 PM

Yes, what I meant is that I skipped more than 1 frame in auto frameskip (max is 4, as you stated) in version 0.9.6 (proof of that can be captured on a video with framerate counter and such), not that I skipped more than 1 frame with fixed frameskip set to 1. I suppose, I incorrectly formatted my response.
But anyway, thank you for the indepth insight on the issue and it is indeed, most likely a problem related to different aspect of the emulator.

Thank you, thread can be closed :3


RE: Frame skip interface issue. - vnctdj - 05-12-2014 07:17 PM

As requested by the thread's owner :

Closed.