+ // Run the value through any postprocessing steps we might have.
+ // Note that we need to give in the actual coordinates, since the
+ // effect could have multiple (non-compute) inputs, and would also
+ // be allowed to make effects based on the texture coordinate alone.
+ CS_OUTPUT_VAL = val;
+ val = CS_POSTPROC(NORMALIZE_TEXTURE_COORDS(coord));
+
+#if SQUARE_ROOT_TRANSFORMATION
+ // Make sure we don't give negative values to sqrt.
+ val.rgb = sqrt(max(val.rgb, 0.0));
+#endif
+
+#if FLIP_ORIGIN
+ coord.y = imageSize(tex_outbuf).y - coord.y - 1;
+#endif
+
+ imageStore(tex_outbuf, coord, val);