summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/TextureConverter.cpp
diff options
context:
space:
mode:
authorScott Mansell <phiren@gmail.com>2016-09-07 17:44:16 +1200
committerGitHub <noreply@github.com>2016-09-07 17:44:16 +1200
commit42e91dd8158debea2fc0cde3991092a233ced137 (patch)
tree3c50eae42d0efb06450d2812f82ebe5a86a3cb3c /Source/Core/VideoBackends/OGL/TextureConverter.cpp
parent62d7a698da178307c43a54f1342754277380417f (diff)
parentf5c70a4b2706a153580ffe2f7d6b6a4a03c67b99 (diff)
Merge pull request #4189 from phire/efb_linear_downsampling
EFB2RAM: Downsample higher resolutions with linear filtering.
Diffstat (limited to 'Source/Core/VideoBackends/OGL/TextureConverter.cpp')
-rw-r--r--Source/Core/VideoBackends/OGL/TextureConverter.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/Source/Core/VideoBackends/OGL/TextureConverter.cpp b/Source/Core/VideoBackends/OGL/TextureConverter.cpp
index 361a51c266..8ea8cd5d8b 100644
--- a/Source/Core/VideoBackends/OGL/TextureConverter.cpp
+++ b/Source/Core/VideoBackends/OGL/TextureConverter.cpp
@@ -227,7 +227,11 @@ static void EncodeToRamUsingShader(GLuint srcTexture, u8* destAddr, u32 dst_line
glActiveTexture(GL_TEXTURE9);
glBindTexture(GL_TEXTURE_2D_ARRAY, srcTexture);
- if (linearFilter)
+ // We also linear filtering for both box filtering and downsampling higher resolutions to 1x
+ // TODO: This only produces perfect downsampling for 1.5x and 2x IR, other resolution will
+ // need more complex down filtering to average all pixels and produce the correct result.
+ // Also, box filtering won't be correct for anything other than 1x IR
+ if (linearFilter || g_ActiveConfig.iEFBScale != SCALE_1X)
g_sampler_cache->BindLinearSampler(9);
else
g_sampler_cache->BindNearestSampler(9);