diff --git a/src/FrameBuffer.cpp b/src/FrameBuffer.cpp index ff1306ce..79824894 100644 --- a/src/FrameBuffer.cpp +++ b/src/FrameBuffer.cpp @@ -1254,9 +1254,6 @@ void FrameBufferList::OverscanBuffer::draw(u32 _fullHeight, bool _PAL) void FrameBufferList::renderBuffer() { - if (VI.width == 0 || *REG.VI_WIDTH == 0 || *REG.VI_H_START == 0) // H width is zero. Don't draw - return; - if (g_debugger.isDebugMode()) { g_debugger.draw(); return; @@ -1268,8 +1265,14 @@ void FrameBufferList::renderBuffer() } RdpUpdateResult rdpRes; - if (!rdp_update(rdpRes)) + if (!rdp_update(rdpRes)) { + gfxContext.bindFramebuffer(bufferTarget::DRAW_FRAMEBUFFER, ObjectHandle::defaultFramebuffer); + gfxContext.clearColorBuffer(0.0f, 0.0f, 0.0f, 0.0f); + dwnd().swapBuffers(); + if (m_pCurrent != nullptr) + gfxContext.bindFramebuffer(bufferTarget::DRAW_FRAMEBUFFER, m_pCurrent->m_FBO); return; + } FrameBuffer *pBuffer = findBuffer(rdpRes.vi_origin); if (pBuffer == nullptr)