https://bugs.freedesktop.org/show_bug.cgi?id=30007 --- Comment #24 from Tom Stellard <tstellar@xxxxxxxxx> 2010-09-12 19:46:10 PDT --- > uniform sampler2D texUnit; > uniform vec2 offsets[25]; > uniform vec4 kernel[25]; > uniform int kernelSize; > > void main(void) > { > vec4 sum = texture2D(texUnit, gl_TexCoord[0].st) * kernel[0]; > for (int i = 1; i < 25; i++) { > > sum += texture2D(texUnit, gl_TexCoord[0].st - offsets[i]) * kernel[i]; > sum += texture2D(texUnit, gl_TexCoord[0].st + offsets[i]) * kernel[i]; > } > gl_FragColor = sum; > } Oops, I submitted before I was done. This shader would be better, because the loop could be unrolled even if kernelSize is different in each execution: uniform sampler2D texUnit; uniform vec2 offsets[25]; uniform vec4 kernel[25]; uniform int kernelSize; void main(void) { vec4 sum = texture2D(texUnit, gl_TexCoord[0].st) * kernel[0]; for (int i = 1; i < 25; i++) { if ( i < kernelSize) { sum += texture2D(texUnit, gl_TexCoord[0].st - offsets[i]) * kernel[i]; sum += texture2D(texUnit, gl_TexCoord[0].st + offsets[i]) * kernel[i]; } } gl_FragColor = sum; } -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel