Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dual-kawase blur algorithm for new OpenGL backend #382

Merged
merged 5 commits into from
Aug 31, 2020

Commits on Aug 31, 2020

  1. backend: gl_common: support arbitrary number of aux. blur textures/fbos

    Support an arbitrary number of auxiliary textures and framebuffers for
    blur. Preparation for the dual-filter kawase algorithm.
    tryone144 committed Aug 31, 2020
    Configuration menu
    Copy the full SHA
    0000cc1 View commit details
    Browse the repository at this point in the history
  2. Add support for new blur method dual_kawase [WIP]

    **Work-in-Progress**
    
    Add `dual_kawase` to configuration and argument parsing. Allow `kawase`
    for backward compatibility. Add `--blur-strength` parameter for
    blur-method `dual_kawase`.
    
    Update documentation to reflect the new blur-method and parameters.
    tryone144 committed Aug 31, 2020
    Configuration menu
    Copy the full SHA
    33c5a5a View commit details
    Browse the repository at this point in the history
  3. backend: create dual_kawase blur parameters from selected strength [WIP]

    **Work-in-Progress**
    
    Generate suitable parameters for dual-filter kawase blur based on the
    selected `blur-strength` or approximate a gauss blur with the selected
    `blur-size` and std-deviation.
    tryone144 committed Aug 31, 2020
    Configuration menu
    Copy the full SHA
    d45d0ca View commit details
    Browse the repository at this point in the history
  4. backend: gl_common: split kernel-blur code from general init/blur cod…

    …e [WIP]
    
    **Work-in-Progress**
    
    Split-off kernel-blur specific initialization and rendering from common
    OpenGL setup. Add stub functions for dual_kawase-blur initialization and
    rendering.
    tryone144 committed Aug 31, 2020
    Configuration menu
    Copy the full SHA
    89c18af View commit details
    Browse the repository at this point in the history
  5. backend: gl_common: implement dual-filter kawase blur method

    Implement the dual-filter kawase blur algorithm for the new OpenGL backend
    as seen in kwin [1]. Use with `--blur-method dual_kawase` and set the
    desired strength with `--blur-strength level` (1-20).
    
    The dual-filter kawase algorithm produces results close to a traditional
    gaussian blur with higher performace, especially at high blur radii. The
    supported strength levels provide an effect similar to gauss-radii between
    4 and 500 pixels.
    
    As this algorithm relies heavily on the texture-filtering units of a
    GPU, there is no support for the xrender backend — at least for now.
    
    [1](https://kwin.kde.narkive.com/aSqRYYw7/d9848-updated-the-blur-method-to-use-the-more-efficient-dual-kawase-blur-algorithm)
    tryone144 committed Aug 31, 2020
    Configuration menu
    Copy the full SHA
    5e0215a View commit details
    Browse the repository at this point in the history