uniform half4 colorGreen, colorRed; uniform float3x3 testMatrix3x3; uniform float4x4 testMatrix4x4; bool test3x3() { float3x3 matrix; float3 values = float3(3, 2, 1); for (int index=0; index<3; ++index) { matrix[index].zx = values.xz; matrix[index].y = values.y; values += 3; } return matrix == testMatrix3x3; } bool test4x4() { float4x4 matrix; float4 values = float4(4, 3, 2, 1); for (int index=0; index<4; ++index) { matrix[index].wx = values.xw; matrix[index].zy = values.yz; values += 4; } return matrix == testMatrix4x4; } half4 main(float2 coords) { return test3x3() && test4x4() ? colorGreen : colorRed; }