diff --git a/modules/gui/qt/widgets/qml/FrostedGlassEffect.qml b/modules/gui/qt/widgets/qml/FrostedGlassEffect.qml
index ddf2e421d2c58f35e6a42e3cc3f2bc8256217ca1..e9b72493d5da5385c27fbc42d60260eec51c9f04 100644
--- a/modules/gui/qt/widgets/qml/FrostedGlassEffect.qml
+++ b/modules/gui/qt/widgets/qml/FrostedGlassEffect.qml
@@ -21,79 +21,98 @@ import QtGraphicalEffects 1.0
 
 import "qrc:///style/"
 
-Rectangle {
+Item {
     id: effect
 
-    property alias source: effectSource.sourceItem
-    property alias sourceRect: effectSource.sourceRect
-    property alias recursive: effectSource.recursive
-    property alias blurRadius: blurEffect.radius
-    property alias tint: effect.color
+    property Item source
+    property rect sourceRect: mapToItem(source, x, y, width, height)
+
+    property bool recursive: false
+    property real blurRadius: 64
+    property color tint
 
     property real tintStrength: 0.7
     property real noiseStrength: 0.02
     property real exclusionStrength: 0.09
 
+    readonly property bool effectAvailable: (GraphicsInfo.shaderType === GraphicsInfo.GLSL) &&
+                                            (GraphicsInfo.shaderSourceType & GraphicsInfo.ShaderSourceString)
+
     opacity: source.opacity
 
-    FastBlur {
-        id: blurEffect
+    Loader {
+        id: loader
 
         anchors.fill: parent
 
-        source: ShaderEffectSource {
-            id: effectSource
-            sourceItem: effect.source
-            sourceRect: effect.mapToItem(effect.source,
-                                         effect.x,
-                                         effect.y,
-                                         effect.width,
-                                         effect.height)
-            visible: false
-            samples: 0
+        sourceComponent: effect.effectAvailable ? effectComponent : rectComponent
+
+        Component {
+            id: rectComponent
+
+            Rectangle {
+                color: effect.tint
+            }
         }
 
-        radius: 64
+        Component {
+            id: effectComponent
 
-        layer.enabled: true
-        layer.effect: ShaderEffect {
-            readonly property color tint: effect.tint
-            readonly property real tintStrength: effect.tintStrength
-            readonly property real noiseStrength: effect.noiseStrength
-            readonly property real exclusionStrength: effect.exclusionStrength
+            FastBlur {
+                id: blurEffect
 
-            fragmentShader: "
-                uniform lowp sampler2D source; // this item
-                varying highp vec2 qt_TexCoord0;
+                source: ShaderEffectSource {
+                    id: effectSource
+                    sourceItem: effect.source
+                    sourceRect: effect.sourceRect
+                    visible: false
+                    samples: 0
+                }
 
-                uniform lowp float qt_Opacity;
-                
-                uniform lowp vec4  tint;
+                radius: effect.blurRadius
 
-                uniform lowp float exclusionStrength;
-                uniform lowp float noiseStrength;
-                uniform lowp float tintStrength;
+                layer.enabled: true
+                layer.effect: ShaderEffect {
+                    readonly property color tint: effect.tint
+                    readonly property real tintStrength: effect.tintStrength
+                    readonly property real noiseStrength: effect.noiseStrength
+                    readonly property real exclusionStrength: effect.exclusionStrength
 
-                mediump float rand(highp vec2 co){
-                    return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
-                }
+                    fragmentShader: "
+                        uniform lowp sampler2D source; // this item
+                        varying highp vec2 qt_TexCoord0;
 
-                mediump vec4 exclude(mediump vec4 src, mediump vec4 dst)
-                {
-                    return src + dst - 2.0 * src * dst;
-                }
+                        uniform lowp float qt_Opacity;
 
-                void main() {
-                   mediump float r = rand(qt_TexCoord0) - 0.5;
-                   mediump vec4 noise = vec4(r,r,r,1.0) * noiseStrength;
-                   mediump vec4 blurred  = texture2D(source, qt_TexCoord0);
+                        uniform lowp vec4  tint;
 
-                   mediump vec4 exclColor = vec4(exclusionStrength, exclusionStrength, exclusionStrength, 0.0);
+                        uniform lowp float exclusionStrength;
+                        uniform lowp float noiseStrength;
+                        uniform lowp float tintStrength;
 
-                   blurred = exclude(blurred, exclColor);
+                        mediump float rand(highp vec2 co){
+                            return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
+                        }
 
-                   gl_FragColor = (mix(blurred, tint, tintStrength) + noise) * qt_Opacity;
-                }"
+                        mediump vec4 exclude(mediump vec4 src, mediump vec4 dst)
+                        {
+                            return src + dst - 2.0 * src * dst;
+                        }
+
+                        void main() {
+                           mediump float r = rand(qt_TexCoord0) - 0.5;
+                           mediump vec4 noise = vec4(r,r,r,1.0) * noiseStrength;
+                           mediump vec4 blurred  = texture2D(source, qt_TexCoord0);
+
+                           mediump vec4 exclColor = vec4(exclusionStrength, exclusionStrength, exclusionStrength, 0.0);
+
+                           blurred = exclude(blurred, exclColor);
+
+                           gl_FragColor = (mix(blurred, tint, tintStrength) + noise) * qt_Opacity;
+                        }"
+                }
+            }
         }
+
     }
 }
diff --git a/modules/gui/qt/widgets/qml/OverlayMenu.qml b/modules/gui/qt/widgets/qml/OverlayMenu.qml
index 4ff8bdb3c4a388c0e81056a2fadc97dd11d3bde9..c87faa486fad2ffcbbffcc366934baada7d8a991 100644
--- a/modules/gui/qt/widgets/qml/OverlayMenu.qml
+++ b/modules/gui/qt/widgets/qml/OverlayMenu.qml
@@ -127,7 +127,7 @@ FocusScope {
 
             source: backgroundItem
 
-            color: VLCStyle.colors.topBanner
+            tint: VLCStyle.colors.topBanner
 
             tintStrength: 0.0
             exclusionStrength: 0.1