| uniform half4 colorGreen, colorRed; |
| uniform float4 testInputs; // equals (-1.25, 0, 0.75, 2.25) |
| |
| half4 main(float2 coords) { |
| const float4 constVal = float4(-1.25, 0, 0.75, 2.25); |
| const float4 expected = clamp(constVal, -1, 1); |
| const uint constXY = packSnorm2x16(constVal.xy); |
| const uint constZW = packSnorm2x16(constVal.zw); |
| uint xy = packSnorm2x16(testInputs.xy); |
| uint zw = packSnorm2x16(testInputs.zw); |
| const float2 tolerance = float2(0.015625); |
| |
| return (all(lessThan(abs(unpackSnorm2x16(xy) - float2(expected.xy)), tolerance)) && |
| all(lessThan(abs(unpackSnorm2x16(zw) - float2(expected.zw)), tolerance)) && |
| all(lessThan(abs(unpackSnorm2x16(constXY) - float2(expected.xy)), tolerance)) && |
| all(lessThan(abs(unpackSnorm2x16(constZW) - float2(expected.zw)), tolerance))) |
| ? colorGreen : colorRed; |
| } |