From b3b691a25074abc8866c3ed5cd67cc8177e6418d Mon Sep 17 00:00:00 2001 From: Alex Nemeth Date: Thu, 31 May 2018 14:33:52 +0200 Subject: [PATCH] Fix blur on Wayland when scaling is used Summary: Blur should now work on Wayland when scaling is used. This does not affect X11 as `GLRenderTarget::virtualScreenScale()` is always 1 on X11 BUG: 391387 Depends on D12678 Test Plan: - log in in a Wayland session - turn display scaling to 2x - open a transparent window (for example: Konsole with transparent and blur enabled profile) - blurs the content under the window corretly Reviewers: davidedmundson, #kwin Reviewed By: davidedmundson, #kwin Subscribers: romangg, apol, zzag, kwin, #kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D12700 --- effects/blur/blur.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/effects/blur/blur.cpp b/effects/blur/blur.cpp index 3d3300878f..fd9d8a201b 100644 --- a/effects/blur/blur.cpp +++ b/effects/blur/blur.cpp @@ -681,15 +681,15 @@ void BlurEffect::upscaleRenderToScreen(GLVertexBuffer *vbo, int vboStart, int bl if (m_noiseStrength > 0) { m_shader->bind(BlurShader::NoiseSampleType); - m_shader->setTargetTextureSize(m_renderTextures[0].size()); - m_shader->setNoiseTextureSize(m_noiseTexture.size()); - m_shader->setTexturePosition(windowPosition); + m_shader->setTargetTextureSize(m_renderTextures[0].size() * GLRenderTarget::virtualScreenScale()); + m_shader->setNoiseTextureSize(m_noiseTexture.size() * GLRenderTarget::virtualScreenScale()); + m_shader->setTexturePosition(windowPosition * GLRenderTarget::virtualScreenScale()); glActiveTexture(GL_TEXTURE1); m_noiseTexture.bind(); } else { m_shader->bind(BlurShader::UpSampleType); - m_shader->setTargetTextureSize(m_renderTextures[0].size()); + m_shader->setTargetTextureSize(m_renderTextures[0].size() * GLRenderTarget::virtualScreenScale()); } m_shader->setOffset(m_offset);