qt: optimize the frosted glass effect by not using second pass layering
Currently layering (second pass) is used to render the blurred source offscreen, and then apply the rest of the effects (tint, exclusion and noise) to the offscreen source when drawing the result in the interface.
This is not ideal, because layering requires allocating resources for offscreen rendering.
The most ideal solution would be to modify the fragment shader of the blur effect. But we currently do not do run time shader compilation, and MultiEffect does not accept overriding its shader effect.
At the same time, FastBlur from Qt 5 Compat is used as fallback when Qt Quick Effects is not available. In a hypothetical scenario where we could override the fragment shader, it would mean that we would need to handle these two cases differently because MultiEffect and FastBlur use different shaders.
As a workaround, I propose having an underlay filter rectangle that acts as exclusion (due to opacity) and colorization (tint), and having an overlay as the noise layer.
Request review @chub.
Merge request reports
Activity
added 1 commit
- 9f136acf - qt: optimize the frosted glass effect by not using second pass layering
added 1 commit
- 56e562ed - qt: optimize the frosted glass effect by not using second pass layering
- Resolved by Fatih Uzunoğlu
added 1 commit
- 988e3b76 - qt: optimize the frosted glass effect by not using second pass layering
added 1 commit
- 97f8ec29 - qt: optimize the frosted glass effect by not using second pass layering
added MRStatus::NotCompliant label
added MRStatus::Reviewable label and removed MRStatus::NotCompliant label
changed milestone to %4.0
added Component::Interface: Qt label
added 1 commit
- 248862f1 - qt: use lock file in ModelRecoveryAgent to consider multiple application instances
- Resolved by Pierre Lamot
- Resolved by Fatih Uzunoğlu
- Resolved by Fatih Uzunoğlu
fails on meson
modules/gui/qt/shaders/meson.build:22:15: ERROR: File FrostedGlass.frag does not exist.
- Resolved by Pierre Lamot
added MRStatus::InReview label and removed MRStatus::Reviewable label
added 58 commits
-
97f8ec29...fa60a909 - 57 commits from branch
videolan:master
- a551996f - qt: optimize the frosted glass effect by not using second pass layering
-
97f8ec29...fa60a909 - 57 commits from branch