mirror of
https://github.com/hrydgard/ppsspp.git
synced 2024-11-23 13:30:02 +00:00
GPU: Remove clear framebuf on first use speedhack.
Wasn't helping much.
This commit is contained in:
parent
b99951811f
commit
e08e0cba33
@ -820,8 +820,6 @@ static ConfigSetting graphicsSettings[] = {
|
|||||||
ConfigSetting("InflightFrames", &g_Config.iInflightFrames, 3, true, false),
|
ConfigSetting("InflightFrames", &g_Config.iInflightFrames, 3, true, false),
|
||||||
ConfigSetting("RenderDuplicateFrames", &g_Config.bRenderDuplicateFrames, false, true, true),
|
ConfigSetting("RenderDuplicateFrames", &g_Config.bRenderDuplicateFrames, false, true, true),
|
||||||
|
|
||||||
ConfigSetting("ClearFramebuffersOnFirstUseHack", &g_Config.bClearFramebuffersOnFirstUseHack, false, true, true),
|
|
||||||
|
|
||||||
ConfigSetting(false),
|
ConfigSetting(false),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -167,7 +167,6 @@ public:
|
|||||||
int iFrameSkipType;
|
int iFrameSkipType;
|
||||||
int iUnthrottleMode; // See UnthrottleMode in ConfigValues.h.
|
int iUnthrottleMode; // See UnthrottleMode in ConfigValues.h.
|
||||||
bool bAutoFrameSkip;
|
bool bAutoFrameSkip;
|
||||||
bool bClearFramebuffersOnFirstUseHack;
|
|
||||||
|
|
||||||
bool bEnableCardboardVR; // Cardboard Master Switch
|
bool bEnableCardboardVR; // Cardboard Master Switch
|
||||||
int iCardboardScreenSize; // Screen Size (in %)
|
int iCardboardScreenSize; // Screen Size (in %)
|
||||||
|
@ -703,20 +703,7 @@ void FramebufferManagerCommon::NotifyRenderFramebufferSwitched(VirtualFramebuffe
|
|||||||
if (useBufferedRendering_) {
|
if (useBufferedRendering_) {
|
||||||
if (vfb->fbo) {
|
if (vfb->fbo) {
|
||||||
shaderManager_->DirtyLastShader();
|
shaderManager_->DirtyLastShader();
|
||||||
if (g_Config.bClearFramebuffersOnFirstUseHack) {
|
draw_->BindFramebufferAsRenderTarget(vfb->fbo, { Draw::RPAction::KEEP, Draw::RPAction::KEEP, Draw::RPAction::KEEP }, "FramebufferSwitch");
|
||||||
// HACK: Some tiled mobile GPUs benefit IMMENSELY from clearing an FBO before rendering
|
|
||||||
// to it (or in Vulkan, clear during framebuffer load). This is a hack to force this
|
|
||||||
// the first time a framebuffer is bound for rendering in a frame.
|
|
||||||
//
|
|
||||||
// Quite unsafe as it might kill some feedback effects.
|
|
||||||
if (vfb->last_frame_render != gpuStats.numFlips) {
|
|
||||||
draw_->BindFramebufferAsRenderTarget(vfb->fbo, { Draw::RPAction::CLEAR, Draw::RPAction::CLEAR, Draw::RPAction::CLEAR }, "FramebufferSwitch");
|
|
||||||
} else {
|
|
||||||
draw_->BindFramebufferAsRenderTarget(vfb->fbo, { Draw::RPAction::KEEP, Draw::RPAction::KEEP, Draw::RPAction::KEEP }, "FramebufferSwitch");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
draw_->BindFramebufferAsRenderTarget(vfb->fbo, { Draw::RPAction::KEEP, Draw::RPAction::KEEP, Draw::RPAction::KEEP }, "FramebufferSwitch");
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
// This should only happen very briefly when toggling useBufferedRendering_.
|
// This should only happen very briefly when toggling useBufferedRendering_.
|
||||||
ResizeFramebufFBO(vfb, vfb->width, vfb->height, true);
|
ResizeFramebufFBO(vfb, vfb->width, vfb->height, true);
|
||||||
|
@ -448,15 +448,6 @@ void GameSettingsScreen::CreateViews() {
|
|||||||
return !g_Config.bSoftwareRendering && g_Config.bHardwareTransform;
|
return !g_Config.bSoftwareRendering && g_Config.bHardwareTransform;
|
||||||
});
|
});
|
||||||
|
|
||||||
CheckBox *clearHack = graphicsSettings->Add(new CheckBox(&g_Config.bClearFramebuffersOnFirstUseHack, gr->T("Clear Speedhack", "Clear framebuffers on first use (speedhack)")));
|
|
||||||
clearHack->OnClick.Add([=](EventParams &e) {
|
|
||||||
settingInfo_->Show(gr->T("ClearSpeedhack Tip", "Sometimes faster (mostly on mobile devices), may cause glitches"), e.v);
|
|
||||||
return UI::EVENT_CONTINUE;
|
|
||||||
});
|
|
||||||
clearHack->SetEnabledFunc([] {
|
|
||||||
return !g_Config.bSoftwareRendering;
|
|
||||||
});
|
|
||||||
|
|
||||||
CheckBox *texBackoff = graphicsSettings->Add(new CheckBox(&g_Config.bTextureBackoffCache, gr->T("Lazy texture caching", "Lazy texture caching (speedup)")));
|
CheckBox *texBackoff = graphicsSettings->Add(new CheckBox(&g_Config.bTextureBackoffCache, gr->T("Lazy texture caching", "Lazy texture caching (speedup)")));
|
||||||
texBackoff->SetDisabledPtr(&g_Config.bSoftwareRendering);
|
texBackoff->SetDisabledPtr(&g_Config.bSoftwareRendering);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user