blob: c1efea1833672ec9234ae1a82ac71e040c66f849 [file] [log] [blame]
#version 100 core
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
precision highp float;
layout ( location = 0 ) out vec4 oColor;
layout ( location = 1 ) uniform float floatArray[2];
layout ( location = 3 ) uniform vec2 vec2Array[2];
layout ( location = 7 ) uniform vec3 vec3Array[2];
layout ( location = 13 ) uniform mat2 mat2Array[2];
void main() {
vec4 badColor = vec4(1.0, 0, 0, 1.0);
vec4 goodColor = vec4(0, 1.0, 0, 1.0);
// The test populates the uniforms with strictly increasing values, so if
// out-of-order values are read out of the uniforms, then the bad color that
// causes the test to fail is returned.
if (floatArray[0] >= floatArray[1] ||
floatArray[1] >= vec2Array[0].x ||
vec2Array[0].x >= vec2Array[0].y ||
vec2Array[0].y >= vec2Array[1].x ||
vec2Array[1].x >= vec2Array[1].y ||
vec2Array[1].y >= vec3Array[0].x ||
vec3Array[0].x >= vec3Array[0].y ||
vec3Array[0].y >= vec3Array[0].z ||
vec3Array[0].z >= vec3Array[1].x ||
vec3Array[1].x >= vec3Array[1].y ||
vec3Array[1].y >= vec3Array[1].z ||
vec3Array[1].z >= mat2Array[0][0][0] ||
mat2Array[0][0][0] >= mat2Array[0][0][1] ||
mat2Array[0][0][1] >= mat2Array[0][1][0] ||
mat2Array[0][1][0] >= mat2Array[0][1][1] ||
mat2Array[0][1][1] >= mat2Array[1][0][0] ||
mat2Array[1][0][0] >= mat2Array[1][0][1] ||
mat2Array[1][0][1] >= mat2Array[1][1][0] ||
mat2Array[1][1][0] >= mat2Array[1][1][1]) {
oColor = badColor;
} else {
oColor = goodColor;
}
}