diff --git a/GPU/GPUCommon.cpp b/GPU/GPUCommon.cpp index e0aa841df9..9dfe4781d4 100644 --- a/GPU/GPUCommon.cpp +++ b/GPU/GPUCommon.cpp @@ -484,7 +484,9 @@ void GPUCommon::BeginHostFrame() { gstate_c.Dirty(DIRTY_ALL); UpdateCmdInfo(); - CheckResized(); + CheckConfigChanged(); + CheckDisplayResized(); + CheckRenderResized(); } void GPUCommon::EndHostFrame() { @@ -625,7 +627,7 @@ void GPUCommon::NotifyDisplayResized() { // Called once per frame. Might also get called during the pause screen // if "transparent". -void GPUCommon::CheckResized() { +void GPUCommon::CheckConfigChanged() { if (configChanged_) { ClearCacheNextFrame(); gstate_c.useFlags = CheckGPUFeatures(); @@ -635,12 +637,16 @@ void GPUCommon::CheckResized() { BuildReportingInfo(); configChanged_ = false; } +} +void GPUCommon::CheckDisplayResized() { if (displayResized_) { framebufferManager_->NotifyDisplayResized(); displayResized_ = false; } +} +void GPUCommon::CheckRenderResized() { if (renderResized_) { framebufferManager_->NotifyRenderResized(); renderResized_ = false; diff --git a/GPU/GPUCommon.h b/GPU/GPUCommon.h index d9e7246d08..82ca294e07 100644 --- a/GPU/GPUCommon.h +++ b/GPU/GPUCommon.h @@ -77,7 +77,8 @@ public: return draw_; } virtual u32 CheckGPUFeatures() const; - void CheckResized() override; + + void CheckDisplayResized() override; void UpdateCmdInfo(); @@ -265,6 +266,9 @@ protected: void DeviceLost() override; void DeviceRestore() override; + void CheckConfigChanged(); + void CheckRenderResized(); + // Add additional common features dependent on other features, which may be backend-determined. u32 CheckGPUFeaturesLate(u32 features) const; diff --git a/GPU/GPUInterface.h b/GPU/GPUInterface.h index 8f7398aee6..8dfc89daa1 100644 --- a/GPU/GPUInterface.h +++ b/GPU/GPUInterface.h @@ -197,7 +197,8 @@ public: // Frame managment virtual void BeginHostFrame() = 0; virtual void EndHostFrame() = 0; - virtual void CheckResized() = 0; + + virtual void CheckDisplayResized() = 0; // Draw queue management virtual DisplayList* getList(int listid) = 0; diff --git a/UI/EmuScreen.cpp b/UI/EmuScreen.cpp index 0ff7a9f0a9..645f21064e 100644 --- a/UI/EmuScreen.cpp +++ b/UI/EmuScreen.cpp @@ -1398,7 +1398,7 @@ void EmuScreen::render() { // If we're paused and PauseScreen is transparent (will only be in buffered rendering mode), we just copy display to output. thin3d->BindFramebufferAsRenderTarget(nullptr, { RPAction::CLEAR, RPAction::DONT_CARE, RPAction::DONT_CARE }, "EmuScreen_Paused"); if (PSP_IsInited()) { - gpu->CheckResized(); + gpu->CheckDisplayResized(); gpu->CopyDisplayToOutput(true); }