From 057170928ce71fb262d4d9969b7889971dc7232a Mon Sep 17 00:00:00 2001 From: Subv Date: Wed, 18 Apr 2018 20:48:53 -0500 Subject: GPU: Add support for the DXT23 and DXT45 compressed texture formats. --- src/video_core/renderer_opengl/gl_rasterizer_cache.h | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src/video_core/renderer_opengl/gl_rasterizer_cache.h') diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.h b/src/video_core/renderer_opengl/gl_rasterizer_cache.h index 23e4d02d8..6861efe16 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer_cache.h +++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.h @@ -55,6 +55,8 @@ struct SurfaceParams { ABGR8 = 0, B5G6R5 = 1, DXT1 = 2, + DXT23 = 3, + DXT45 = 4, Max, Invalid = 255, @@ -84,9 +86,11 @@ struct SurfaceParams { return 0; constexpr std::array bpp_table = { - 32, // ABGR8 - 16, // B5G6R5 - 64, // DXT1 + 32, // ABGR8 + 16, // B5G6R5 + 64, // DXT1 + 128, // DXT23 + 128, // DXT45 }; ASSERT(static_cast(format) < bpp_table.size()); @@ -125,6 +129,10 @@ struct SurfaceParams { return PixelFormat::B5G6R5; case Tegra::Texture::TextureFormat::DXT1: return PixelFormat::DXT1; + case Tegra::Texture::TextureFormat::DXT23: + return PixelFormat::DXT23; + case Tegra::Texture::TextureFormat::DXT45: + return PixelFormat::DXT45; default: NGLOG_CRITICAL(HW_GPU, "Unimplemented format={}", static_cast(format)); UNREACHABLE(); @@ -140,6 +148,10 @@ struct SurfaceParams { return Tegra::Texture::TextureFormat::B5G6R5; case PixelFormat::DXT1: return Tegra::Texture::TextureFormat::DXT1; + case PixelFormat::DXT23: + return Tegra::Texture::TextureFormat::DXT23; + case PixelFormat::DXT45: + return Tegra::Texture::TextureFormat::DXT45; default: UNREACHABLE(); } -- cgit v1.2.3