Gaussian blur shader - two passes with back-buffer copy or one pass?

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By lukas
:warning: Old Version Published before Godot 3 was released.

I am curious how much processing power consume back-buffer copy of screen. I am considering Gaussian blur. There are two approaches:

  1. One pass filter: For each pixel make a weighted average (2D gaussian kernel) of n x n pixels surrounding the pixel. It costs O(n^2).
  2. Two passes filter: For each pixel make a horizontal weighted average (1D gaussian kernel) of 1 x n pixels. Then read the screen again (using back-buffer copy nodes) and make a vertical weighted average (1D gaussian kernel) of n x 1 pixels. It costs O(n). But I am not sure how efficient is to make back-buffer copy.

What approach is more efficient in Godot?