diff --git a/source/blender/compositor/COM_defines.h b/source/blender/compositor/COM_defines.h index 3b0e9f239bb..6c07aadc3aa 100644 --- a/source/blender/compositor/COM_defines.h +++ b/source/blender/compositor/COM_defines.h @@ -109,4 +109,13 @@ typedef enum OrderOfChunks { #define COM_BLUR_BOKEH_PIXELS 512 +/** + * The fast gaussien blur is not an accurate blur. + * This setting can be used to increase/decrease the + * amount of the input data. (dependent area of interest) + * + * Fix for: T39307 + */ +#define COM_FAST_GAUSSIAN_MULTIPLIER 3 + #endif /* __COM_DEFINES_H__ */ diff --git a/source/blender/compositor/operations/COM_FastGaussianBlurOperation.cpp b/source/blender/compositor/operations/COM_FastGaussianBlurOperation.cpp index a6be9254f6f..ff53ef22e29 100644 --- a/source/blender/compositor/operations/COM_FastGaussianBlurOperation.cpp +++ b/source/blender/compositor/operations/COM_FastGaussianBlurOperation.cpp @@ -47,10 +47,11 @@ bool FastGaussianBlurOperation::getDAI(rcti *rect, rcti *output) { // m_data->sizex * m_size should be enough? For some reason there // seem to be errors in the boundary between tiles. - int sx = this->m_data->sizex * this->m_size * 2; + float size = this->m_size * COM_FAST_GAUSSIAN_MULTIPLIER; + int sx = this->m_data->sizex * size; if (sx < 1) sx = 1; - int sy = this->m_data->sizey * this->m_size * 2; + int sy = this->m_data->sizey * size; if (sy < 1) sy = 1;