#pragma MSP stage(compute) layout(local_size_x=8, local_size_y=8) in; uniform sampler2D variance_in; layout(r16f) uniform image2D variance_out; void main() { ivec2 coord = ivec2(gl_GlobalInvocationID.xy)+ivec2(1, 4); float variance = 0.0; for(int i=-3; i<=3; ++i) variance += texelFetch(variance_in, coord+ivec2(0, i), 0).x; imageStore(variance_out, coord, vec4(variance/7.0, 0.0, 0.0, 0.0)); }