| uniform half4 color; | |
| half add(half a, half b) { | |
| half c = a + b; | |
| return c; | |
| } | |
| half mul(half a, half b) { | |
| return a * b; | |
| } | |
| half fused_multiply_add(half a, half b, half c) { | |
| return add(mul(a, b), c); | |
| } | |
| half4 main(float2 coords) { | |
| half a = fused_multiply_add(color.x, color.y, color.z); | |
| half b = fused_multiply_add(color.y, color.z, color.w); | |
| half c = fused_multiply_add(color.z, color.w, color.x); | |
| return half4(a, b, mul(c, c), mul(a, mul(b, c))); | |
| } |