/*#pragma settings SkVMDebugTrace NoES2Restrictions NoTraceVarInSkVMDebugTrace*/ // We use bitwise ops below, which SkVM supports but ES2 technically does not. uniform half4 colorGreen, colorRed; uniform int a, b; uniform float c, d; half4 main(float2 xy) { bool ok = true; int a_and_b = a & b; int b_and_a = b & a; ok = ok && (a_and_b == b_and_a); int a_or_b = a | b; int b_or_a = b | a; ok = ok && (a_or_b == b_or_a); int a_xor_b = a ^ b; int b_xor_a = b ^ a; ok = ok && (a_xor_b == b_xor_a); bool a_eq_b = a == b; bool b_eq_a = b == a; ok = ok && (a_eq_b == b_eq_a); bool a_neq_b = a != b; bool b_neq_a = b != a; ok = ok && (a_neq_b == b_neq_a); int a_add_b = a + b; int b_add_a = b + a; ok = ok && (a_add_b == b_add_a); float c_add_d = c + d; float d_add_c = d + c; ok = ok && (c_add_d == d_add_c); int a_mul_b = a * b; int b_mul_a = b * a; ok = ok && (a_mul_b == b_mul_a); float c_mul_d = c * d; float d_mul_c = d * c; ok = ok && (c_mul_d == d_mul_c); return ok ? colorGreen : colorRed; }