mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-22 10:49:05 +02:00
GPU: Pick up a changed Skip Buffer Effects even without a render resize
The framebuffer manager only switches between buffered and non-buffered rendering on a render resize. Turning on Auto FrameSkip clears Skip Buffer Effects without posting one, so after resuming, EmuScreen ran the buffered path with a GPU still in non-buffered mode. A frame displayed from RAM was then drawn straight to output with no render pass bound, crashing in VulkanRenderManager::SetScissor. Treat a mismatch as a resize in BeginHostFrame, whatever changed the setting. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
d3a23e94e9
commit
a5e5fc079a
1 file changed
+5
@@ -76,6 +76,11 @@ void GPUCommon::BeginHostFrame(const DisplayLayoutConfig &config) {
|
||||
UpdateMSAALevel(draw_);
|
||||
CheckConfigChanged(config);
|
||||
CheckDisplayResized();
|
||||
// Skip Buffer Effects only takes effect on a render resize, and not everything that changes it posts one
|
||||
// (turning on Auto FrameSkip clears it).
|
||||
if (framebufferManager_ && framebufferManager_->UseBufferedRendering() == g_Config.bSkipBufferEffects) {
|
||||
renderResized_ = true;
|
||||
}
|
||||
CheckRenderResized(config);
|
||||
|
||||
// After the resizes, which ask for the post shaders to be rebuilt at the new size.
|
||||
|
||||
Reference in new issue
Block a user