From b90c077c9d2ea3872df46456b226b8c0fb78e59c Mon Sep 17 00:00:00 2001
From: Fatih Uzunoglu <fuzun54@outlook.com>
Date: Mon, 17 Mar 2025 23:00:32 +0200
Subject: [PATCH 1/4] qt: introduce `FastBlend.frag`

---
 modules/gui/qt/Makefile.am                    |  6 ++-
 modules/gui/qt/shaders/FastBlend.frag         | 45 +++++++++++++++++
 .../gui/qt/shaders/FastBlend_additive.frag    | 49 +++++++++++++++++++
 .../gui/qt/shaders/FastBlend_multiply.frag    | 49 +++++++++++++++++++
 modules/gui/qt/shaders/FastBlend_screen.frag  | 49 +++++++++++++++++++
 modules/gui/qt/shaders/meson.build            |  6 ++-
 modules/gui/qt/shaders/shaders.qrc            |  4 ++
 7 files changed, 206 insertions(+), 2 deletions(-)
 create mode 100644 modules/gui/qt/shaders/FastBlend.frag
 create mode 100644 modules/gui/qt/shaders/FastBlend_additive.frag
 create mode 100644 modules/gui/qt/shaders/FastBlend_multiply.frag
 create mode 100644 modules/gui/qt/shaders/FastBlend_screen.frag

diff --git a/modules/gui/qt/Makefile.am b/modules/gui/qt/Makefile.am
index 54cb9c458ef6..7193059751fc 100644
--- a/modules/gui/qt/Makefile.am
+++ b/modules/gui/qt/Makefile.am
@@ -1356,7 +1356,11 @@ libqt_plugin_la_SHADER := shaders/FadingEdge.frag \
                           shaders/RectangularGlow.frag \
                           shaders/SDFAARoundedTexture.frag \
                           shaders/SDFAARoundedTexture_cropsupport_bordersupport.frag \
-                          shaders/DitheredTexture.frag
+                          shaders/DitheredTexture.frag \
+                          shaders/FastBlend.frag \
+                          shaders/FastBlend_additive.frag \
+                          shaders/FastBlend_multiply.frag \
+                          shaders/FastBlend_screen.frag
 if ENABLE_QT
 
 libqt_plugin_la_LIBADD += libqml_module_dialogs.a \
diff --git a/modules/gui/qt/shaders/FastBlend.frag b/modules/gui/qt/shaders/FastBlend.frag
new file mode 100644
index 000000000000..9139549edc4d
--- /dev/null
+++ b/modules/gui/qt/shaders/FastBlend.frag
@@ -0,0 +1,45 @@
+#version 440
+
+/*****************************************************************************
+ * Copyright (C) 2025 VLC authors and VideoLAN
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * ( at your option ) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
+layout(location = 0) out vec4 fragColor; // premultiplied
+
+layout(std140, binding = 0) uniform buf {
+  mat4 qt_Matrix;
+  float qt_Opacity;
+#if defined(MULTIPLY) || defined(SCREEN)
+  float grayscale;
+#else
+  vec4 color; // premultiplied
+#endif
+};
+
+void main() {
+#if defined(ADDITIVE)
+    fragColor = color * qt_Opacity;
+    fragColor.a = 0.0;
+#elif defined(MULTIPLY)
+    fragColor.rgb = vec3(0.0, 0.0, 0.0);
+    fragColor.a = (1.0 - (grayscale * qt_Opacity));
+#elif defined(SCREEN)
+    fragColor = vec4(grayscale, grayscale, grayscale, grayscale) * qt_Opacity;
+#else
+    fragColor = color * qt_Opacity;
+#endif
+}
diff --git a/modules/gui/qt/shaders/FastBlend_additive.frag b/modules/gui/qt/shaders/FastBlend_additive.frag
new file mode 100644
index 000000000000..365a304fae7b
--- /dev/null
+++ b/modules/gui/qt/shaders/FastBlend_additive.frag
@@ -0,0 +1,49 @@
+#version 440
+
+// WARNING: This file must be in sync with FastBlend.frag
+// TODO: Generate this shader at build time.
+#define ADDITIVE
+
+/*****************************************************************************
+ * Copyright (C) 2025 VLC authors and VideoLAN
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * ( at your option ) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
+layout(location = 0) out vec4 fragColor; // premultiplied
+
+layout(std140, binding = 0) uniform buf {
+  mat4 qt_Matrix;
+  float qt_Opacity;
+#if defined(MULTIPLY) || defined(SCREEN)
+  float grayscale;
+#else
+  vec4 color; // premultiplied
+#endif
+};
+
+void main() {
+#if defined(ADDITIVE)
+    fragColor = color * qt_Opacity;
+    fragColor.a = 0.0;
+#elif defined(MULTIPLY)
+    fragColor.rgb = vec3(0.0, 0.0, 0.0);
+    fragColor.a = (1.0 - (grayscale * qt_Opacity));
+#elif defined(SCREEN)
+    fragColor = vec4(grayscale, grayscale, grayscale, grayscale) * qt_Opacity;
+#else
+    fragColor = color * qt_Opacity;
+#endif
+}
diff --git a/modules/gui/qt/shaders/FastBlend_multiply.frag b/modules/gui/qt/shaders/FastBlend_multiply.frag
new file mode 100644
index 000000000000..40af5aea59f8
--- /dev/null
+++ b/modules/gui/qt/shaders/FastBlend_multiply.frag
@@ -0,0 +1,49 @@
+#version 440
+
+// WARNING: This file must be in sync with FastBlend.frag
+// TODO: Generate this shader at build time.
+#define MULTIPLY
+
+/*****************************************************************************
+ * Copyright (C) 2025 VLC authors and VideoLAN
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * ( at your option ) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
+layout(location = 0) out vec4 fragColor; // premultiplied
+
+layout(std140, binding = 0) uniform buf {
+  mat4 qt_Matrix;
+  float qt_Opacity;
+#if defined(MULTIPLY) || defined(SCREEN)
+  float grayscale;
+#else
+  vec4 color; // premultiplied
+#endif
+};
+
+void main() {
+#if defined(ADDITIVE)
+    fragColor = color * qt_Opacity;
+    fragColor.a = 0.0;
+#elif defined(MULTIPLY)
+    fragColor.rgb = vec3(0.0, 0.0, 0.0);
+    fragColor.a = (1.0 - (grayscale * qt_Opacity));
+#elif defined(SCREEN)
+    fragColor = vec4(grayscale, grayscale, grayscale, grayscale) * qt_Opacity;
+#else
+    fragColor = color * qt_Opacity;
+#endif
+}
diff --git a/modules/gui/qt/shaders/FastBlend_screen.frag b/modules/gui/qt/shaders/FastBlend_screen.frag
new file mode 100644
index 000000000000..86edb25563bb
--- /dev/null
+++ b/modules/gui/qt/shaders/FastBlend_screen.frag
@@ -0,0 +1,49 @@
+#version 440
+
+// WARNING: This file must be in sync with FastBlend.frag
+// TODO: Generate this shader at build time.
+#define SCREEN
+
+/*****************************************************************************
+ * Copyright (C) 2025 VLC authors and VideoLAN
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * ( at your option ) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
+layout(location = 0) out vec4 fragColor; // premultiplied
+
+layout(std140, binding = 0) uniform buf {
+  mat4 qt_Matrix;
+  float qt_Opacity;
+#if defined(MULTIPLY) || defined(SCREEN)
+  float grayscale;
+#else
+  vec4 color; // premultiplied
+#endif
+};
+
+void main() {
+#if defined(ADDITIVE)
+    fragColor = color * qt_Opacity;
+    fragColor.a = 0.0;
+#elif defined(MULTIPLY)
+    fragColor.rgb = vec3(0.0, 0.0, 0.0);
+    fragColor.a = (1.0 - (grayscale * qt_Opacity));
+#elif defined(SCREEN)
+    fragColor = vec4(grayscale, grayscale, grayscale, grayscale) * qt_Opacity;
+#else
+    fragColor = color * qt_Opacity;
+#endif
+}
diff --git a/modules/gui/qt/shaders/meson.build b/modules/gui/qt/shaders/meson.build
index 069230e334c7..0cb92b973619 100644
--- a/modules/gui/qt/shaders/meson.build
+++ b/modules/gui/qt/shaders/meson.build
@@ -18,7 +18,11 @@ shader_sources = [
     'RectangularGlow.frag',
     'SDFAARoundedTexture.frag',
     'SDFAARoundedTexture_cropsupport_bordersupport.frag',
-    'DitheredTexture.frag'
+    'DitheredTexture.frag',
+    'FastBlend.frag',
+    'FastBlend_additive.frag',
+    'FastBlend_multiply.frag',
+    'FastBlend_screen.frag'
 ]
 
 shader_files = files(shader_sources)
diff --git a/modules/gui/qt/shaders/shaders.qrc b/modules/gui/qt/shaders/shaders.qrc
index c7c8a99c4edc..e9114d26823b 100644
--- a/modules/gui/qt/shaders/shaders.qrc
+++ b/modules/gui/qt/shaders/shaders.qrc
@@ -13,5 +13,9 @@
         <file alias="SDFAARoundedTexture.frag.qsb">SDFAARoundedTexture.frag.qsb</file>
         <file alias="SDFAARoundedTexture_cropsupport_bordersupport.frag.qsb">SDFAARoundedTexture_cropsupport_bordersupport.frag.qsb</file>
         <file alias="DitheredTexture.frag.qsb">DitheredTexture.frag.qsb</file>
+        <file alias="FastBlend.frag.qsb">FastBlend.frag.qsb</file>
+        <file alias="FastBlend_additive.frag.qsb">FastBlend_additive.frag.qsb</file>
+        <file alias="FastBlend_multiply.frag.qsb">FastBlend_multiply.frag.qsb</file>
+        <file alias="FastBlend_screen.frag.qsb">FastBlend_screen.frag.qsb</file>
     </qresource>
 </RCC>
-- 
GitLab


From 05ffe9a23fd5ced2205281cd4390ba82975d25c5 Mon Sep 17 00:00:00 2001
From: Fatih Uzunoglu <fuzun54@outlook.com>
Date: Mon, 17 Mar 2025 23:00:54 +0200
Subject: [PATCH 2/4] qml: introduce `FastBlend.qml`

---
 modules/gui/qt/Makefile.am               |  3 +-
 modules/gui/qt/meson.build               |  1 +
 modules/gui/qt/widgets/qml/FastBlend.qml | 65 ++++++++++++++++++++++++
 3 files changed, 68 insertions(+), 1 deletion(-)
 create mode 100644 modules/gui/qt/widgets/qml/FastBlend.qml

diff --git a/modules/gui/qt/Makefile.am b/modules/gui/qt/Makefile.am
index 7193059751fc..d56917acbbd8 100644
--- a/modules/gui/qt/Makefile.am
+++ b/modules/gui/qt/Makefile.am
@@ -1301,7 +1301,8 @@ libqml_module_widgets_a_QML = \
 	widgets/qml/ProgressIndicator.qml \
 	widgets/qml/RectangularGlow.qml \
 	widgets/qml/ImageExt.qml \
-	widgets/qml/ScrollBarExt.qml
+	widgets/qml/ScrollBarExt.qml \
+	widgets/qml/FastBlend.qml
 if HAVE_QT65
 libqml_module_widgets_a_QML += \
 	widgets/qml/DynamicShadow.qml \
diff --git a/modules/gui/qt/meson.build b/modules/gui/qt/meson.build
index 6a86ffb73b37..6c6b3dbac48f 100644
--- a/modules/gui/qt/meson.build
+++ b/modules/gui/qt/meson.build
@@ -901,6 +901,7 @@ qml_modules += {
         qml_blureffect_file,
         'widgets/qml/ImageExt.qml',
         'widgets/qml/ScrollBarExt.qml',
+        'widgets/qml/FastBlend.qml',
     ),
 }
 
diff --git a/modules/gui/qt/widgets/qml/FastBlend.qml b/modules/gui/qt/widgets/qml/FastBlend.qml
new file mode 100644
index 000000000000..f1baf9056dbe
--- /dev/null
+++ b/modules/gui/qt/widgets/qml/FastBlend.qml
@@ -0,0 +1,65 @@
+/*****************************************************************************
+ * Copyright (C) 2025 VLC authors and VideoLAN
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * ( at your option ) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+import QtQuick
+
+// Premultiplied color allows making use of various blending modes (with restrictions)
+// without adjusting the pipeline state. This is not magic, but simple mathematics.
+// For this to work, the graphics pipeline blend mode is assumed to be source-over
+// which is the default mode of Qt Scene Graph.
+ShaderEffect {
+    id: root
+
+    enum Mode {
+        // default (S + D * (1 - S.a)), no restriction:
+        SourceOver,
+        // Additive (S + D), no restriction:
+        Additive,
+        // Multiply (S * D), only grayscale:
+        Multiply,
+        // Screen / Inverse Multiply (S + D - S * D), only grayscale:
+        Screen
+    }
+
+    property int mode: FastBlend.Mode.SourceOver
+
+    property color color
+    readonly property real grayscale: {
+        if (mode !== FastBlend.Mode.Multiply && mode !== FastBlend.Mode.Screen)
+            return 0.0 // no need to calculate
+        // Color to gray, `qGray()` algorithm:
+        return (root.color.r * 11 + root.color.g * 16 + root.color.b * 5) / 32
+    }
+
+    blending: true
+    supportsAtlasTextures: true // irrelevant for now. Do we want to support texture here? It should be trivial.
+
+    z: 99 // this is assumed to be the source, which means that it needs to be on top of the destination
+
+    fragmentShader: {
+        switch (mode) {
+        case FastBlend.Mode.Additive:
+            return "qrc:///shaders/FastBlend_additive.frag.qsb"
+        case FastBlend.Mode.Multiply:
+            return "qrc:///shaders/FastBlend_multiply.frag.qsb"
+        case FastBlend.Mode.Screen:
+            return "qrc:///shaders/FastBlend_screen.frag.qsb"
+        default:
+            return "qrc:///shaders/FastBlend.frag.qsb"
+        }
+    }
+}
-- 
GitLab


From 29dc8c5376110f0c455d0298257eb1c0850dbca9 Mon Sep 17 00:00:00 2001
From: Fatih Uzunoglu <fuzun54@outlook.com>
Date: Mon, 17 Mar 2025 23:02:05 +0200
Subject: [PATCH 3/4] qml: use `FastBlend` and get rid of layering in player
 background

---
 modules/gui/qt/player/qml/Player.qml | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/modules/gui/qt/player/qml/Player.qml b/modules/gui/qt/player/qml/Player.qml
index e7067d26bb52..3cf92f2c26d1 100644
--- a/modules/gui/qt/player/qml/Player.qml
+++ b/modules/gui/qt/player/qml/Player.qml
@@ -311,16 +311,13 @@ FocusScope {
                             source: cover
                         }
 
-                        layer.enabled: true
-                        layer.samplerName: "backgroundSource"
-                        layer.effect: ShaderEffect {
-                            readonly property color screenColor: bgtheme.bg.primary.alpha(.55)
-                            readonly property color overlayColor: Qt.tint(bgtheme.fg.primary, bgtheme.bg.primary).alpha(0.4)
+                        Widgets.FastBlend {
+                            anchors.fill: parent
 
-                            blending: false
-                            cullMode: ShaderEffect.BackFaceCulling
+                            color: Qt.rgba(0.5, 0.5, 0.5, 1.0)
 
-                            fragmentShader: "qrc:///shaders/PlayerBlurredBackground.frag.qsb"
+                            mode: bgtheme.palette.isDark ? Widgets.FastBlend.Mode.Multiply // multiply makes darker
+                                                         : Widgets.FastBlend.Mode.Screen // screen (inverse multiply) makes lighter
                         }
                     }
                 }
-- 
GitLab


From e4be71d6efc69d5d3d97cfef8093322d1d740faa Mon Sep 17 00:00:00 2001
From: Fatih Uzunoglu <fuzun54@outlook.com>
Date: Mon, 17 Mar 2025 23:02:59 +0200
Subject: [PATCH 4/4] qt: get rid of obsolete shader
 `PlayerBlurredBackground.frag`

---
 modules/gui/qt/Makefile.am                    |  1 -
 .../qt/shaders/PlayerBlurredBackground.frag   | 85 -------------------
 modules/gui/qt/shaders/meson.build            |  1 -
 modules/gui/qt/shaders/shaders.qrc            |  1 -
 4 files changed, 88 deletions(-)
 delete mode 100644 modules/gui/qt/shaders/PlayerBlurredBackground.frag

diff --git a/modules/gui/qt/Makefile.am b/modules/gui/qt/Makefile.am
index d56917acbbd8..daabd5e5508e 100644
--- a/modules/gui/qt/Makefile.am
+++ b/modules/gui/qt/Makefile.am
@@ -1352,7 +1352,6 @@ libqt_plugin_la_SHADER := shaders/FadingEdge.frag \
                           shaders/Noise.frag \
                           shaders/RectFilter.frag \
                           shaders/SubTexture.vert \
-                          shaders/PlayerBlurredBackground.frag \
                           shaders/HollowRectangularGlow.frag \
                           shaders/RectangularGlow.frag \
                           shaders/SDFAARoundedTexture.frag \
diff --git a/modules/gui/qt/shaders/PlayerBlurredBackground.frag b/modules/gui/qt/shaders/PlayerBlurredBackground.frag
deleted file mode 100644
index 28074150ee98..000000000000
--- a/modules/gui/qt/shaders/PlayerBlurredBackground.frag
+++ /dev/null
@@ -1,85 +0,0 @@
-#version 440
-/*****************************************************************************
- * Copyright (C) 2024 VLC authors and VideoLAN
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * ( at your option ) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-/****************************************************************************
-**
-** Copyright (C) 2015 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Graphical Effects module.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** You may use this file under the terms of the BSD license as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-**   * Redistributions of source code must retain the above copyright
-**     notice, this list of conditions and the following disclaimer.
-**   * Redistributions in binary form must reproduce the above copyright
-**     notice, this list of conditions and the following disclaimer in
-**     the documentation and/or other materials provided with the
-**     distribution.
-**   * Neither the name of The Qt Company Ltd nor the names of its
-**     contributors may be used to endorse or promote products derived
-**     from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#extension GL_GOOGLE_include_directive : enable
-
-#include "Common.glsl"
-
-layout(location = 0) in vec2 qt_TexCoord0;
-layout(location = 0) out vec4 fragColor;
-layout(std140, binding = 0) uniform buf {
-    mat4 qt_Matrix;
-    float qt_Opacity;
-    vec4 screenColor;
-    vec4 overlayColor;
-};
-layout(binding = 1) uniform sampler2D backgroundSource;
-
-void main() {
-    lowp vec4 result = vec4(0.0);
-    lowp vec4 colorP = fromPremult(texture(backgroundSource, qt_TexCoord0));
-    lowp vec4 screenColorP = fromPremult(screenColor);
-    lowp vec4 overlayColorP = fromPremult(overlayColor);
-
-    result = screen(colorP, screenColorP);
-    result = multiply(result, screenColorP);
-    result = normal(result, overlayColorP);
-
-    fragColor = vec4(result.rgb, 1.0) * qt_Opacity;
-}
diff --git a/modules/gui/qt/shaders/meson.build b/modules/gui/qt/shaders/meson.build
index 0cb92b973619..446ba7758a4e 100644
--- a/modules/gui/qt/shaders/meson.build
+++ b/modules/gui/qt/shaders/meson.build
@@ -13,7 +13,6 @@ shader_sources = [
     'Noise.frag',
     'RectFilter.frag',
     'SubTexture.vert',
-    'PlayerBlurredBackground.frag',
     'HollowRectangularGlow.frag',
     'RectangularGlow.frag',
     'SDFAARoundedTexture.frag',
diff --git a/modules/gui/qt/shaders/shaders.qrc b/modules/gui/qt/shaders/shaders.qrc
index e9114d26823b..769c728acd73 100644
--- a/modules/gui/qt/shaders/shaders.qrc
+++ b/modules/gui/qt/shaders/shaders.qrc
@@ -7,7 +7,6 @@
         <file alias="Noise.frag.qsb">Noise.frag.qsb</file>
         <file alias="RectFilter.frag.qsb">RectFilter.frag.qsb</file>
         <file alias="SubTexture.vert.qsb">SubTexture.vert.qsb</file>
-        <file alias="PlayerBlurredBackground.frag.qsb">PlayerBlurredBackground.frag.qsb</file>
         <file alias="HollowRectangularGlow.frag.qsb">HollowRectangularGlow.frag.qsb</file>
         <file alias="RectangularGlow.frag.qsb">RectangularGlow.frag.qsb</file>
         <file alias="SDFAARoundedTexture.frag.qsb">SDFAARoundedTexture.frag.qsb</file>
-- 
GitLab