T39307: The fast gaussian blur is not an accurate formula. When deciding

which tiles are selected for input there was always a constant for correcting
the accuracy.

It seems that the constant was not enough and has been adjusted. (2 => 3).
This commit is contained in:
Jeroen Bakker 2014-03-26 21:08:58 +01:00
parent fd3de8b042
commit d9557d01bd
2 changed files with 12 additions and 2 deletions

@ -109,4 +109,13 @@ typedef enum OrderOfChunks {
#define COM_BLUR_BOKEH_PIXELS 512 #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__ */ #endif /* __COM_DEFINES_H__ */

@ -47,10 +47,11 @@ bool FastGaussianBlurOperation::getDAI(rcti *rect, rcti *output)
{ {
// m_data->sizex * m_size should be enough? For some reason there // m_data->sizex * m_size should be enough? For some reason there
// seem to be errors in the boundary between tiles. // 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) if (sx < 1)
sx = 1; sx = 1;
int sy = this->m_data->sizey * this->m_size * 2; int sy = this->m_data->sizey * size;
if (sy < 1) if (sy < 1)
sy = 1; sy = 1;