#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];
layout ( location = 21 ) uniform float float2dArray[2][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] ||
      mat2Array[1][1][1] >= float2dArray[0][0] ||
      float2dArray[0][0] >= float2dArray[0][1] ||
      float2dArray[0][1] >= float2dArray[1][0] ||
      float2dArray[1][0] >= float2dArray[1][1]) {
    oColor = badColor;
  } else {
    oColor = goodColor;
  }
}
