Fix another framebuffer race condition affecting #8002 (with postprocessing)

We can only wipe framebuffers at end of frame time when we react to the resolution change.
If we wipe at any other time, they can get recreated early and thus at the previous size.
This commit is contained in:
Henrik Rydgard 2015-09-29 22:10:01 +02:00
parent d3b265a3e4
commit c2f4fad56a

View File

@ -1016,12 +1016,6 @@ void FramebufferManager::CopyDisplayToOutput() {
}
displayFramebuf_ = vfb;
if (resized_) {
ClearBuffer();
DestroyDraw2DProgram();
SetLineWidth();
}
if (vfb->fbo) {
DEBUG_LOG(SCEGE, "Displaying FBO %08x", vfb->fb_address);
DisableState();
@ -1661,6 +1655,7 @@ void FramebufferManager::EndFrame() {
if (resized_) {
// TODO: Only do this if the new size actually changed the renderwidth/height.
DestroyAllFBOs();
// Probably not necessary
glstate.viewport.set(0, 0, PSP_CoreParameter().pixelWidth, PSP_CoreParameter().pixelHeight);
@ -1692,6 +1687,9 @@ void FramebufferManager::EndFrame() {
#ifdef _WIN32
ShowScreenResolution();
#endif
ClearBuffer();
DestroyDraw2DProgram();
SetLineWidth();
}
#ifndef USING_GLES2