renderer_opengl: Fix SRGB presentation frame tracking.

- Fixes SRGB in Super Smash Bros. Ultimate.
merge-requests/60/head
bunnei 2020-02-28 01:10:41 +07:00
parent 969357af1a
commit 5056d23d0d
2 changed files with 2 additions and 5 deletions

@ -353,9 +353,9 @@ void RendererOpenGL::SwapBuffers(const Tegra::FramebufferConfig* framebuffer) {
// Recreate the frame if the size of the window has changed // Recreate the frame if the size of the window has changed
if (layout.width != frame->width || layout.height != frame->height || if (layout.width != frame->width || layout.height != frame->height ||
is_srgb != frame->is_srgb) { screen_info.display_srgb != frame->is_srgb) {
LOG_DEBUG(Render_OpenGL, "Reloading render frame"); LOG_DEBUG(Render_OpenGL, "Reloading render frame");
is_srgb = frame->is_srgb = screen_info.display_srgb; frame->is_srgb = screen_info.display_srgb;
frame_mailbox->ReloadRenderFrame(frame, layout.width, layout.height); frame_mailbox->ReloadRenderFrame(frame, layout.width, layout.height);
} }
state.draw.draw_framebuffer = frame->render.handle; state.draw.draw_framebuffer = frame->render.handle;

@ -111,9 +111,6 @@ private:
Tegra::FramebufferConfig::TransformFlags framebuffer_transform_flags; Tegra::FramebufferConfig::TransformFlags framebuffer_transform_flags;
Common::Rectangle<int> framebuffer_crop_rect; Common::Rectangle<int> framebuffer_crop_rect;
/// Represents if the final render frame is sRGB
bool is_srgb{};
/// Frame presentation mailbox /// Frame presentation mailbox
std::unique_ptr<FrameMailbox> frame_mailbox; std::unique_ptr<FrameMailbox> frame_mailbox;
}; };