GPU Blur Effects pack for Paint.NET

Bruce Bowyer-Smith has gone to the extraordinary effort to write a pack of GPU-accelerated effects for Paint.NET. It started out with a preview discussion in Plugin Developer’s Central that eventually led to a recent “public” release over in the normal Plugin publishing section.

The pack contains GPU accelerated versions of Gaussian Blur, Motion Blur, Radial Blur, Zoom Blur, as well as a new Channel Blur.

A GPU that supports DirectCompute is required along with Windows 7, or Windows Vista SP2 with the Platform Update (it needs DirectX 11, in other words). Most recent NVIDIA and ATI/AMD cards support this, although Intel’s do not. The latter is a big reason why I have not properly pursued this for Paint.NET yet – there is no high-performance software fallback for DirectCompute. (The “reference driver” does work, but is very slow because it’s intended to render “perfectly” without any regard to performance, and is mostly useful for GPU and driver engineers to make sure they are on the right track.)

It’s interesting to watch these effects execute, because they aren’t any faster on smaller images (and often slower). However, as the size of the image increases, the performance delta becomes very dramatic. The GPU versions just don’t seem to run any slower, while the CPU-based effects quickly lag far behind. These effects are probably hindered by Paint.NETs CPU-centric rendering model, so I wouldn’t be surprised if further performance jumps are possible.

The only downside I’m seeing is that, so far, it is limited to handling images that fit within the maximum texture size that your GPU supports. On a high end video card, that means 8,192 x 8,192 pixels (IIRC).

Advertisements

25 thoughts on “GPU Blur Effects pack for Paint.NET

  1. Yannis says:

    Argh, this just clogs up the menu, something Paint.NET has vowed against, if you will.

    KISS – Keep It Simple, Stupid. Please. You won’t believe how many ‘average’ users you have that do not really get the difference…

    But if you can intergrate it into the menu without taking all that space that would be awesome.

    Thanks!

  2. chesscanoe says:

    Even though I have a “‘lowly” 256 MB NVIDIA FX570 running Win7 Pro x64, the pack worked well for me.

  3. swiffer says:

    perhaps you can integrate a option in the new settings menu to use gpu accelerated versions of the plugins if available instead of the other ones ?

  4. -Pablo- says:

    So that means that my GPU must support DirectX 11 and I can’t run it even on the high-end nVIDIA card that I purchased last year? :S

  5. Bruce Bowyer-Smyth says:

    DirectCompute will run on many DirectX 10 level cards. NVIDIA supports it all the way back to their 8 series.

  6. Grijan says:

    The right way of integrating this would be to detect at boot if the system is compatible or not (Win7, DX11, capable GPU), and silently replacing the standard effects with the accelerated versions. You don’t need even an option in the Settings dialog.

    But I agree with Yannis: I don’t know how many users would notice it. Given that development time is finite and, as Raymond Chen states, all features start at level -100, maybe it would be better to invest time in developing other features for Paint.NET 4.0.

    • Rick Brewster says:

      Grijan, this is a plugin pack. This isn’t a Paint.NET v4 feature.

      I really don’t know why everyone thinks this is some Paint.NET v4 related blog post.

  7. csm725 says:

    As you mentioned on the forums, this will be a requirement for the 3.5.6… This means that any user with an old ATI or Intel GPU will not be able to download 3.5.6, and therefore, v4.0?

    • Rick Brewster says:

      That was a joke, mostly meant to freak out jerry533482.

      In any case, don’t get so caught up on system requirements for things that are months or years away. If Paint.NET “version X” requires you to buy a new video card, then don’t fret about it until the thing comes out. Computer hardware always gets cheaper over time.

  8. John Dangerbrooks says:

    Hmm… Rick, you’re doing everything Microsoft is doing. Except… Microsoft is chiefly developing applications for businesses, enterprises and developers; but you are developing for home users.

    GPU acceleration is good, but imitating Microsoft in general is not a good idea at all.

      • John Dangerbrooks says:

        I’m just saying that GPU acceleration has become fashionable in Microsoft products recently, just as “GUI over-simplification”, “use of DirectX 11”, “use of LINQ” and “discontinuation of support for past versions of Windows XP based on trends (rather than potentials)” have become fashionable. (Do I need to mention that Paint.NET has followed suit?)

        I am not here to pick a fight or to irritate you; I’m just reminding you of a long-proven principle: Imitation proves to be a very bad idea in the long run.

  9. DanTonyBrown says:

    John, I think you’re living in the 1990’s. Microsoft now-a-days is a innovative, but standard compliant company 😛 And, in recent months getting much better press than the likes of Apple or Adobe. So Rick, i think its good if you “imitate” Microsoft. Which, as a Microsoft engineer, you’re likely to do. But ive seen no evidence of any badness as a result of this so far 🙂

    Nice work, keep it up 🙂
    Danny.

    • John Dangerbrooks says:

      Well, keep your thinking in check, Danny. The only form of imitation is that of the brilliant. (No one imitates from the ordinary or sub-ordinary.) But imitation, being from the brilliant or from non-brilliant deters creativity.

      • scutterman says:

        It’s a *FREE* product, one which Rick works hard to keep updated and innovated. If you don’t like a decision he makes with his product then go use another one.

        Oh, and as has already been pointed out to you, the GPU acceleration isn’t part of a paint.net build but a community-built plugin, and hence you can’t say that Rick is imitating MS there. And obviously there’s a lot of people who like the plugin for it to get a mention here.

        -Scut

      • Olivier says:

        I disagree: one could argue that Java and .NET imitate one another for 10 years now. Is that a bad thing. Are both platforms’ creativity idle? I tend to think this rather gives us best of breeds…

        Imitation is Art: http://en.wikipedia.org/wiki/Imitation_(music)
        Let’s listen to some Bach music and you’ll get convinced

        @Rick: sorry for trolling, I couldn’t resist.

  10. John Dangerbrooks says:

    Rick’s hard work is much appreciated. Keep up the good work, Rick. But as always, if I found a flaw, bug or something that can be improved, I’ll report it. If it was major, it goes to the forum. If it was minor, like this one, I’ll mention it right on spot.

    This is what I do with software applications that I love. If I didn’t like Paint.NET, I’d have never participated in its blog or forum. You can safely assume good faith on my aim being that of improvement.

    • Rick Brewster says:

      How is anything I mentioned in the blog post a flaw? John, you’re still not making *any* sense. You seem to have a notion that everything must be “counter-culture” in order to maintain dignity. I have stated my reasons for dropping XP support, so don’t go telling me I’m doing it for “trendy” purposes. That’s a little insulting, honestly.

      Glad you like Paint.NET though.

      • John says:

        Any developer, whether he’s developing free, open source or commercial applications, has to make a call about what platforms he’s going to support. This will be based on things like how much it costs you to develop for a certain platform, whether it impacts support for other platforms, and how much revenue (or whatever metric you care to use) you get from supporting that platform.

        Rick’s made the call based on what data he has available that supporting XP will take more effort than it’s worth, and I’d be surprised if MS withdrawing XP support hasn’t had an influence on that – after all, if asked, I’d advise anyone to move from XP to W7 as early as possible. Of course, it’s not always that easy since in Europe you can’t upgrade from XP to a retail copy of W7, but it’s worth taking the time to do even without Paint.NET dropping XP support. XP losing Automatic Updates is enough of a reason for me.

        As for the new DirectX support, isn’t this simply a logical extension of what Paint.NET can do? Lots of computers these days come with some form of 2D graphical acceleration built in, and wouldn’t it make sense for graphic software like Paint.NET to take advantage of that where available?

        Maybe if it’s trendy, that’s just because lots of people are doing it, and maybe that’s just because it makes sense.

  11. Daniel says:

    Wow. Just wow.

    Never has a plugin saved me so much time. My pc has a 480gtx and only a 3.0ghz dualcore and motion blur on a 4k by 4k image (what i use most often) is 300 times faster!!!

    Is there anyway of intergrating this into paint.net so when someone clicks motion blur it just detects if the system has a dx10 gpu and windows vista/7?

    The difference is amazing, could this also accelerate image resizing? On my machine a 20 layer 4k by 4k image can take minutes to scale…

    Anyway thanks for pointing out this brilliant pack.

Comments are closed.