1uniform half4 colorGreen, colorRed; 2 3bool test_float() { 4 bool ok = true; 5 6 ok = ok && ((float3x3(2) + 4) == float3x3(6, 4, 4, 4, 6, 4, 4, 4, 6)); 7 ok = ok && ((float3x3(2) - 4) == float3x3(-2, -4, -4, -4, -2, -4, -4, -4, -2)); 8 ok = ok && ((float3x3(2) * 4) == float3x3(8)); 9 ok = ok && ((float3x3(2) / 4) == float3x3(0.5)); 10 11 ok = ok && (4 + (float3x3(2)) == float3x3(6, 4, 4, 4, 6, 4, 4, 4, 6)); 12 ok = ok && (4 - (float3x3(2)) == float3x3(2, 4, 4, 4, 2, 4, 4, 4, 2)); 13 ok = ok && (4 * (float3x3(2)) == float3x3(8)); 14 ok = ok && (4 / (float2x2(2, 2, 2, 2)) == float2x2(2, 2, 2, 2)); 15 16 return ok; 17} 18 19bool test_half() { 20 bool ok = true; 21 22 ok = ok && ((half3x3(2) + 4) == half3x3(6, 4, 4, 4, 6, 4, 4, 4, 6)); 23 ok = ok && ((half3x3(2) - 4) == half3x3(-2, -4, -4, -4, -2, -4, -4, -4, -2)); 24 ok = ok && ((half3x3(2) * 4) == half3x3(8)); 25 ok = ok && ((half3x3(2) / 4) == half3x3(0.5)); 26 27 ok = ok && (4 + (half3x3(2)) == half3x3(6, 4, 4, 4, 6, 4, 4, 4, 6)); 28 ok = ok && (4 - (half3x3(2)) == half3x3(2, 4, 4, 4, 2, 4, 4, 4, 2)); 29 ok = ok && (4 * (half3x3(2)) == half3x3(8)); 30 ok = ok && (4 / (half2x2(2, 2, 2, 2)) == half2x2(2, 2, 2, 2)); 31 32 return ok; 33} 34 35half4 main(float2 coords) { 36 return test_float() && test_half() ? colorGreen : colorRed; 37} 38