renderer_opengl: Fix SRGB presentation frame tracking.
- Fixes SRGB in Super Smash Bros. Ultimate.
This commit is contained in:
parent
969357af1a
commit
5056d23d0d
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue