Merge "Kawase blur feedback"
diff --git a/libs/renderengine/gl/filters/KawaseBlurFilter.cpp b/libs/renderengine/gl/filters/KawaseBlurFilter.cpp
index fc26bcc..7524c6d 100644
--- a/libs/renderengine/gl/filters/KawaseBlurFilter.cpp
+++ b/libs/renderengine/gl/filters/KawaseBlurFilter.cpp
@@ -106,21 +106,19 @@
precision mediump float;
uniform sampler2D uTexture;
- highp uniform vec2 uOffset;
+ uniform vec2 uOffset;
highp in vec2 vUV;
out vec4 fragColor;
- vec4 kawaseBlur() {
- return (texture(uTexture, vec2(-1.0, 1.0) * uOffset + vUV, 0.0)
- + texture(uTexture, uOffset + vUV, 0.0)
- + texture(uTexture, vec2(1.0, -1.0) * uOffset + vUV, 0.0)
- + texture(uTexture, vec2(-1.0) * uOffset + vUV, 0.0))
- * 0.25;
- }
-
void main() {
- fragColor = kawaseBlur();
+ fragColor = texture(uTexture, vUV, 0.0);
+ fragColor += texture(uTexture, vUV + vec2( uOffset.x, uOffset.y), 0.0);
+ fragColor += texture(uTexture, vUV + vec2( uOffset.x, -uOffset.y), 0.0);
+ fragColor += texture(uTexture, vUV + vec2(-uOffset.x, uOffset.y), 0.0);
+ fragColor += texture(uTexture, vUV + vec2(-uOffset.x, -uOffset.y), 0.0);
+
+ fragColor = vec4(fragColor.rgb * 0.2, 1.0);
}
)SHADER";
}
diff --git a/libs/renderengine/gl/filters/KawaseBlurFilter.h b/libs/renderengine/gl/filters/KawaseBlurFilter.h
index ec81f81..20009cf 100644
--- a/libs/renderengine/gl/filters/KawaseBlurFilter.h
+++ b/libs/renderengine/gl/filters/KawaseBlurFilter.h
@@ -30,7 +30,7 @@
class KawaseBlurFilter : public BlurFilter {
public:
- static constexpr uint32_t kMaxPasses = 8;
+ static constexpr uint32_t kMaxPasses = 6;
explicit KawaseBlurFilter(GLESRenderEngine& engine);
status_t prepare() override;