Add option to improve frame pacing through duplicate frames if below 60hz.#12602
Add option to improve frame pacing through duplicate frames if below 60hz.#12602
Conversation
LunaMoo
left a comment
There was a problem hiding this comment.
Seeing iota97 #12325 (comment) it seems disabling the flag on unthrottle might not be enough:c.
I wonder, maybe the actual problem causing this was also causing the bug with recording from "Current Framebuffer" in games running under 60fps as it looked similar ~ recorded old frames every other one.
UI/GameSettingsScreen.cpp
Outdated
| #endif | ||
| CheckBox *frameDuplication = graphicsSettings->Add(new CheckBox(&g_Config.bRenderDuplicateFrames, gr->T("Render duplicate frames to 60hz"))); | ||
| frameDuplication->OnClick.Add([=](EventParams &e) { | ||
| settingInfo_->Show(gr->T("RenderDuplicateFrames Tip", "Can make framerate smoother in games that run at 30hz"), e.v); |
There was a problem hiding this comment.
Maybe ".. in games that run under 60hz"? Since it will also affect 20 and other weird fps PSP games have.
|
Yeah, there still seems to be some kind of gremlin in the machinery related to this... |
|
I know that 60hz is the standard refresh rate, but perhaps tooltips should be a bit more "general" than that. |
|
Yeah, fair enough. Changed it again. |
|
It's whatever, but to make it clear. 60hz here came from about PSP being limited to max 60hz and the option affecting only things < 60hz. This option is not going do display differently on modern displays than it would on 60hz ones. If PPSSPP will ever allow more ie to support for example 120 fps patches, it might then differ, but currently it's not and most games would break horribly when patched to such framerates even if working fine with 60fps patch(and that would already be limited, since most of those patches break stuff). |
|
I think mirh was referring more to people maybe not knowing that 60hz is the standard PSP refresh rate. Though then again, if you don't know that, you might not be interested in the option anyway. Not sure which wording makes more sense. |
|
I think it's better to say something like: "game with frame rate capped below 60" Saying running lower might end up with user enabling this when the HW can't keep up with 60 fps. Not sure if it may help there as well tho'. |
|
I was actually thinking to the computer display... |
1dcd57f to
385c0a0
Compare
unknownbrackets
left a comment
There was a problem hiding this comment.
This may also have issues with alt speed over 100%, since that's partially unthrottled. Maybe when alt speed is above 100% we auto-disable?
Also, created #12665 for the flickering issue.
-[Unknown]
385c0a0 to
cfb99c6
Compare
|
Rebased on master, resolving the merge conflict. Will merge after CI is green, I think. |
cfb99c6 to
ad3c670
Compare
ad3c670 to
d385096
Compare
|
Rebased, merging shortly. I don't see much of an interesting improvement myself, but it might trigger various devices and drivers into better behavior if lucky I guess. as unknown mentions in #12101. So let's merge. |
|
Also, this fixes #12460 right (by way of an option, at least)? -[Unknown] |
|
Yeah, changed the initial post so it'll get linked. |
| // postEffectRequiresFlip is not compatible with frameskip unthrottling, see #12325. | ||
| if (shaderInfo && g_Config.iRenderingMode != FB_NON_BUFFERED_MODE) | ||
| postEffectRequiresFlip = shaderInfo->requires60fps; | ||
| postEffectRequiresFlip = (shaderInfo->requires60fps || g_Config.bRenderDuplicateFrames) && !(g_Config.bFrameSkipUnthrottle && !FrameTimingThrottled()); |
There was a problem hiding this comment.
Oops, the setting only applies if shaderInfo is not nullptr.
-[Unknown]
Should help #9736, and partially papers over #12325, and should help #12460 .