mirror of
https://github.com/libretro/ppsspp.git
synced 2024-11-23 16:19:44 +00:00
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:
parent
d3b265a3e4
commit
c2f4fad56a
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user