diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-08-21 07:22:54 +0200 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-08-21 07:28:31 +0200 |
commit | 80702aa88f6f448decfbb06dc14db470c221dd38 (patch) | |
tree | 564386e3afa4a28ac7028f10805e7671fbed26ee | |
parent | renderer_opengl: Use block linear swizzling for CPU framebuffers (diff) | |
download | yuzu-80702aa88f6f448decfbb06dc14db470c221dd38.tar yuzu-80702aa88f6f448decfbb06dc14db470c221dd38.tar.gz yuzu-80702aa88f6f448decfbb06dc14db470c221dd38.tar.bz2 yuzu-80702aa88f6f448decfbb06dc14db470c221dd38.tar.lz yuzu-80702aa88f6f448decfbb06dc14db470c221dd38.tar.xz yuzu-80702aa88f6f448decfbb06dc14db470c221dd38.tar.zst yuzu-80702aa88f6f448decfbb06dc14db470c221dd38.zip |
-rw-r--r-- | src/video_core/gpu.h | 1 | ||||
-rw-r--r-- | src/video_core/renderer_opengl/renderer_opengl.cpp | 6 | ||||
-rw-r--r-- | src/video_core/surface.cpp | 5 |
3 files changed, 9 insertions, 3 deletions
diff --git a/src/video_core/gpu.h b/src/video_core/gpu.h index dea9dfef0..1a7f5bdf2 100644 --- a/src/video_core/gpu.h +++ b/src/video_core/gpu.h @@ -91,6 +91,7 @@ class DebugContext; struct FramebufferConfig { enum class PixelFormat : u32 { ABGR8 = 1, + RGB565 = 4, BGRA8 = 5, }; diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp index 8c44b330e..af9684839 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.cpp +++ b/src/video_core/renderer_opengl/renderer_opengl.cpp @@ -285,7 +285,11 @@ void RendererOpenGL::ConfigureFramebufferTexture(TextureInfo& texture, internal_format = GL_RGBA8; texture.gl_format = GL_RGBA; texture.gl_type = GL_UNSIGNED_INT_8_8_8_8_REV; - + break; + case Tegra::FramebufferConfig::PixelFormat::RGB565: + internal_format = GL_RGB565; + texture.gl_format = GL_RGB; + texture.gl_type = GL_UNSIGNED_SHORT_5_6_5; break; default: internal_format = GL_RGBA8; diff --git a/src/video_core/surface.cpp b/src/video_core/surface.cpp index c50f6354d..4ceb219be 100644 --- a/src/video_core/surface.cpp +++ b/src/video_core/surface.cpp @@ -445,11 +445,12 @@ PixelFormat PixelFormatFromGPUPixelFormat(Tegra::FramebufferConfig::PixelFormat switch (format) { case Tegra::FramebufferConfig::PixelFormat::ABGR8: return PixelFormat::ABGR8U; + case Tegra::FramebufferConfig::PixelFormat::RGB565: + return PixelFormat::B5G6R5U; case Tegra::FramebufferConfig::PixelFormat::BGRA8: return PixelFormat::BGRA8; default: - LOG_CRITICAL(HW_GPU, "Unimplemented format={}", static_cast<u32>(format)); - UNREACHABLE(); + UNIMPLEMENTED_MSG("Unimplemented format={}", static_cast<u32>(format)); return PixelFormat::ABGR8U; } } |