diff options
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 1 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/renderer_opengl.cpp | 9 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/renderer_opengl.h | 1 |
3 files changed, 2 insertions, 9 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index 7cf24e1ad..279e5a4e0 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp | |||
| @@ -726,7 +726,6 @@ bool RasterizerOpenGL::AccelerateDisplay(const Tegra::FramebufferConfig& config, | |||
| 726 | screen_info.texture.width = image_view->size.width; | 726 | screen_info.texture.width = image_view->size.width; |
| 727 | screen_info.texture.height = image_view->size.height; | 727 | screen_info.texture.height = image_view->size.height; |
| 728 | screen_info.display_texture = image_view->Handle(Shader::TextureType::Color2D); | 728 | screen_info.display_texture = image_view->Handle(Shader::TextureType::Color2D); |
| 729 | screen_info.display_srgb = VideoCore::Surface::IsPixelFormatSRGB(image_view->format); | ||
| 730 | return true; | 729 | return true; |
| 731 | } | 730 | } |
| 732 | 731 | ||
diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp index 6bfed08a1..7a4f0c5c1 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.cpp +++ b/src/video_core/renderer_opengl/renderer_opengl.cpp | |||
| @@ -653,11 +653,7 @@ void RendererOpenGL::DrawScreen(const Layout::FramebufferLayout& layout) { | |||
| 653 | }; | 653 | }; |
| 654 | glNamedBufferSubData(vertex_buffer.handle, 0, sizeof(vertices), std::data(vertices)); | 654 | glNamedBufferSubData(vertex_buffer.handle, 0, sizeof(vertices), std::data(vertices)); |
| 655 | 655 | ||
| 656 | if (screen_info.display_srgb) { | 656 | glDisable(GL_FRAMEBUFFER_SRGB); |
| 657 | glEnable(GL_FRAMEBUFFER_SRGB); | ||
| 658 | } else { | ||
| 659 | glDisable(GL_FRAMEBUFFER_SRGB); | ||
| 660 | } | ||
| 661 | glViewportIndexedf(0, 0.0f, 0.0f, static_cast<GLfloat>(layout.width), | 657 | glViewportIndexedf(0, 0.0f, 0.0f, static_cast<GLfloat>(layout.width), |
| 662 | static_cast<GLfloat>(layout.height)); | 658 | static_cast<GLfloat>(layout.height)); |
| 663 | 659 | ||
| @@ -710,8 +706,7 @@ void RendererOpenGL::RenderScreenshot() { | |||
| 710 | GLuint renderbuffer; | 706 | GLuint renderbuffer; |
| 711 | glGenRenderbuffers(1, &renderbuffer); | 707 | glGenRenderbuffers(1, &renderbuffer); |
| 712 | glBindRenderbuffer(GL_RENDERBUFFER, renderbuffer); | 708 | glBindRenderbuffer(GL_RENDERBUFFER, renderbuffer); |
| 713 | glRenderbufferStorage(GL_RENDERBUFFER, screen_info.display_srgb ? GL_SRGB8 : GL_RGB8, | 709 | glRenderbufferStorage(GL_RENDERBUFFER, GL_SRGB8, layout.width, layout.height); |
| 714 | layout.width, layout.height); | ||
| 715 | glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, renderbuffer); | 710 | glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, renderbuffer); |
| 716 | 711 | ||
| 717 | DrawScreen(layout); | 712 | DrawScreen(layout); |
diff --git a/src/video_core/renderer_opengl/renderer_opengl.h b/src/video_core/renderer_opengl/renderer_opengl.h index f1d5fd954..b70607635 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.h +++ b/src/video_core/renderer_opengl/renderer_opengl.h | |||
| @@ -53,7 +53,6 @@ struct TextureInfo { | |||
| 53 | struct ScreenInfo { | 53 | struct ScreenInfo { |
| 54 | GLuint display_texture{}; | 54 | GLuint display_texture{}; |
| 55 | bool was_accelerated = false; | 55 | bool was_accelerated = false; |
| 56 | bool display_srgb{}; | ||
| 57 | const Common::Rectangle<float> display_texcoords{0.0f, 0.0f, 1.0f, 1.0f}; | 56 | const Common::Rectangle<float> display_texcoords{0.0f, 0.0f, 1.0f, 1.0f}; |
| 58 | TextureInfo texture; | 57 | TextureInfo texture; |
| 59 | }; | 58 | }; |