From 2392b548bee87553b39f50c1159640b0dabc4b13 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 26 Dec 2019 01:07:34 -0300 Subject: gl_state: Remove clamp framebuffer color tracking This commit doesn't reset it for screen draws because clamping doesn't change anything there. --- src/video_core/renderer_opengl/gl_rasterizer.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_rasterizer.cpp') diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index dc2d60156..d7971f86f 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp @@ -415,6 +415,11 @@ void RasterizerOpenGL::Clear() { clear_state.color_mask[0].green_enabled = regs.clear_buffers.G ? GL_TRUE : GL_FALSE; clear_state.color_mask[0].blue_enabled = regs.clear_buffers.B ? GL_TRUE : GL_FALSE; clear_state.color_mask[0].alpha_enabled = regs.clear_buffers.A ? GL_TRUE : GL_FALSE; + + // TODO: Signal state tracker about these changes + SyncFramebufferSRGB(); + // TODO(Rodrigo): Determine if clamping is used on clears + SyncFragmentColorClampState(); } if (regs.clear_buffers.Z) { ASSERT_MSG(regs.zeta_enable != 0, "Tried to clear Z but buffer is not enabled!"); @@ -454,9 +459,6 @@ void RasterizerOpenGL::Clear() { } } - // TODO: Signal state tracker about these changes - SyncFramebufferSRGB(); - if (!use_color && !use_depth && !use_stencil) { // No color surface nor depth/stencil surface are enabled return; @@ -1089,7 +1091,7 @@ void RasterizerOpenGL::SyncMultiSampleState() { void RasterizerOpenGL::SyncFragmentColorClampState() { const auto& regs = system.GPU().Maxwell3D().regs; - state.fragment_color_clamp.enabled = regs.frag_color_clamp != 0; + glClampColor(GL_CLAMP_FRAGMENT_COLOR, regs.frag_color_clamp ? GL_TRUE : GL_FALSE); } void RasterizerOpenGL::SyncBlendState() { -- cgit v1.2.3