From dfb0b7beb3758fc7779733541338cecf32e53c20 Mon Sep 17 00:00:00 2001 From: greggameplayer Date: Sat, 9 Feb 2019 23:56:15 +0100 Subject: [PATCH] More correct implementation of RGB565 Framebuffer format --- src/video_core/gpu.cpp | 1 + src/video_core/renderer_opengl/renderer_opengl.cpp | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp index 08cf6268fc..be8c39c262 100644 --- a/src/video_core/gpu.cpp +++ b/src/video_core/gpu.cpp @@ -16,6 +16,7 @@ namespace Tegra { u32 FramebufferConfig::BytesPerPixel(PixelFormat format) { switch (format) { case PixelFormat::ABGR8: + case PixelFormat::RGB565: return 4; default: return 4; diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp index 235732d863..9d75dd20ee 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.cpp +++ b/src/video_core/renderer_opengl/renderer_opengl.cpp @@ -308,6 +308,12 @@ void RendererOpenGL::ConfigureFramebufferTexture(TextureInfo& texture, texture.gl_type = GL_UNSIGNED_INT_8_8_8_8_REV; gl_framebuffer_data.resize(texture.width * texture.height * 4); break; + case Tegra::FramebufferConfig::PixelFormat::RGB565: + internal_format = GL_RGB; + texture.gl_format = GL_RGB; + texture.gl_type = GL_UNSIGNED_SHORT_5_6_5; + gl_framebuffer_data.resize(texture.width * texture.height * 4); + break; default: internal_format = GL_RGBA; texture.gl_format = GL_RGBA;