From ffac542f95561a98c7f4e5fae643cc7b359a4bfb Mon Sep 17 00:00:00 2001 From: LunaMoo Date: Sun, 1 Apr 2018 18:47:26 +0200 Subject: [PATCH] Change to int to allow higher supersampling scale. --- GPU/Common/FramebufferCommon.cpp | 10 +++++----- GPU/Common/FramebufferCommon.h | 2 +- GPU/Common/PostShader.cpp | 4 ++-- GPU/Common/PostShader.h | 2 +- assets/shaders/defaultshaders.ini | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/GPU/Common/FramebufferCommon.cpp b/GPU/Common/FramebufferCommon.cpp index 98c71639e5..8e8a023351 100644 --- a/GPU/Common/FramebufferCommon.cpp +++ b/GPU/Common/FramebufferCommon.cpp @@ -1752,20 +1752,20 @@ void FramebufferManagerCommon::Resized() { } postShaderIsUpscalingFilter_ = shaderInfo ? shaderInfo->isUpscalingFilter : false; - postShaderIsSSAAFilter_ = shaderInfo ? shaderInfo->isSSAAFilter : false; + postShaderSSAAFilterLevel_ = shaderInfo ? shaderInfo->SSAAFilterLevel : 0; // Actually, auto mode should be more granular... // Round up to a zoom factor for the render size. int zoom = g_Config.iInternalResolution; - if (zoom == 0 || postShaderIsSSAAFilter_) { + if (zoom == 0 || postShaderSSAAFilterLevel_ >= 2) { // auto mode, use the longest dimension if (!g_Config.IsPortrait()) { zoom = (PSP_CoreParameter().pixelWidth + 479) / 480; } else { zoom = (PSP_CoreParameter().pixelHeight + 479) / 480; } - if (postShaderIsSSAAFilter_) - zoom *= 2; + if (postShaderSSAAFilterLevel_ >= 2) + zoom *= postShaderSSAAFilterLevel_; } if (zoom <= 1 || postShaderIsUpscalingFilter_) zoom = 1; @@ -1874,7 +1874,7 @@ void FramebufferManagerCommon::ShowScreenResolution() { messageStream << PSP_CoreParameter().renderWidth << "x" << PSP_CoreParameter().renderHeight << " "; if (postShaderIsUpscalingFilter_) { messageStream << gr->T("(upscaling)") << " "; - } else if (postShaderIsSSAAFilter_) { + } else if (postShaderSSAAFilterLevel_ >= 2) { messageStream << gr->T("(supersampling)") << " "; } messageStream << gr->T("Window Size") << ": "; diff --git a/GPU/Common/FramebufferCommon.h b/GPU/Common/FramebufferCommon.h index ccbcf8cb0c..f96174c0c3 100644 --- a/GPU/Common/FramebufferCommon.h +++ b/GPU/Common/FramebufferCommon.h @@ -379,7 +379,7 @@ protected: bool usePostShader_ = false; bool postShaderAtOutputResolution_ = false; bool postShaderIsUpscalingFilter_ = false; - bool postShaderIsSSAAFilter_ = false; + int postShaderSSAAFilterLevel_ = 0; std::vector vfbs_; std::vector bvfbs_; // blitting framebuffers (for download) diff --git a/GPU/Common/PostShader.cpp b/GPU/Common/PostShader.cpp index 4d9cee4993..df30f76df7 100644 --- a/GPU/Common/PostShader.cpp +++ b/GPU/Common/PostShader.cpp @@ -42,7 +42,7 @@ void LoadPostShaderInfo(std::vector directories) { off.section = "Off"; off.outputResolution = false; off.isUpscalingFilter = false; - off.isSSAAFilter = false; + off.SSAAFilterLevel = 0; off.requires60fps = false; shaderInfo.push_back(off); @@ -88,7 +88,7 @@ void LoadPostShaderInfo(std::vector directories) { info.vertexShaderFile = path + "/" + temp; section.Get("OutputResolution", &info.outputResolution, false); section.Get("Upscaling", &info.isUpscalingFilter, false); - section.Get("SSAA", &info.isSSAAFilter, false); + section.Get("SSAA", &info.SSAAFilterLevel, 0); section.Get("60fps", &info.requires60fps, false); // Let's ignore shaders we can't support. TODO: Not a very good check diff --git a/GPU/Common/PostShader.h b/GPU/Common/PostShader.h index d315d4f13e..f848e14802 100644 --- a/GPU/Common/PostShader.h +++ b/GPU/Common/PostShader.h @@ -37,7 +37,7 @@ struct ShaderInfo { // Use x1 rendering res + nearest screen scaling filter bool isUpscalingFilter; // Use 2x display resolution for supersampling with blurry shaders. - bool isSSAAFilter; + int SSAAFilterLevel; // Force constant/max refresh for animated filters bool requires60fps; diff --git a/assets/shaders/defaultshaders.ini b/assets/shaders/defaultshaders.ini index bb5898f937..f000589e5b 100644 --- a/assets/shaders/defaultshaders.ini +++ b/assets/shaders/defaultshaders.ini @@ -92,4 +92,4 @@ Name=Super Sampling AA(Gauss) Fragment=GaussianDownscale.fsh Vertex=fxaa.vsh OutputResolution=True -SSAA=True +SSAA=2