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

Rewrite the blur shader to remove the variable-length loop and to use the texture filtering hardware more effectively. #3028

Closed
wants to merge 4 commits into from

Commits on Sep 6, 2018

  1. Add a new benchmark, `large-blur-image`.

    This benchmark tests the performance of large blur radii combined with large
    images.
    pcwalton committed Sep 6, 2018
  2. Rewrite the blur shader to remove the variable-length loop and to use…

    … the
    
    texture filtering hardware more effectively.
    
    This new shader performs Gaussian *resampling* instead of regular convolution.
    It samples in between texels to reduce the number of taps.
    
    The speed is about the same as the existing technique. It is nevertheless the
    fastest blur method that I could come up with. In particular, it exceeds the
    performance of the Kawase and dual Kawase blur techniques. The speed comes from
    working at lower resolution and incurring fewer downsampling and upsampling
    passes. As is often the case, ALU performance does not really seem to be the
    limiting factor; it's mostly memory bandwidth, which is why downsampling is so
    important. Further improvements should come from not doing the downsampling at
    all and instead rendering the blurred content at low resolution to begin with.
    
    Closes #2821.
    pcwalton committed Sep 6, 2018
You can’t perform that action at this time.