nvdisp_disp0: Always flush and invalidate framebuffer region.

- Workaround for texture forwarding until we have a better place.
This commit is contained in:
bunnei 2018-03-22 23:18:04 -04:00
parent a0b1235f82
commit e12c2cf8c6

View File

@ -33,6 +33,13 @@ void nvdisp_disp0::flip(u32 buffer_handle, u32 offset, u32 format, u32 width, u3
addr, offset, width, height, stride, static_cast<PixelFormat>(format), flip_vertical}; addr, offset, width, height, stride, static_cast<PixelFormat>(format), flip_vertical};
Core::System::GetInstance().perf_stats.EndGameFrame(); Core::System::GetInstance().perf_stats.EndGameFrame();
// TODO(bunnei): The framebuffer region should only be flushed and invalidated if it is written
// to, not every frame. When we find the right place for this, the below line can be removed.
Memory::RasterizerFlushVirtualRegion(framebuffer.address,
framebuffer.width * framebuffer.height * 4,
Memory::FlushMode::FlushAndInvalidate);
VideoCore::g_renderer->SwapBuffers(framebuffer); VideoCore::g_renderer->SwapBuffers(framebuffer);
} }