Fast blurring

So I’ve been trying to improve my blur function’s speed. Right now all it does is sample around the target pixel using an adjustable offset and steps in between then average the result. Looks fine but slow as hell at higher values.

I’m trying to work out if I can downsample the post-processing result. I guess because it’s calculated at runtime there’s no smaller mipmaps?

I also had a look at DDX/DDY but they don’t seem to be useful in this regard.

Any advice on fast blurring? Are there any kind of temporal buffers I can access from a material so that the results can be spread across multiple frames? Is there any way to access the PREVIOUS result of my current PP material?