@@ -63,6 +63,15 @@ static const char vs_aofa[] =
" gl_Position = vs_input2[0][0] + vs_input3[0][0][0];\n"
"}";
+static const char vs_aofa2[] =
+ "#version 150\n"
+ "#extension GL_ARB_arrays_of_arrays : require\n"
+ "in vec4 vs_input2[2][2];\n"
+ "uniform vec4 vs_uni[2][2][2];\n"
+ "void main() {\n"
+ " gl_Position = vs_input2[1][0] + vs_uni[1][0][1];\n"
+ "}";
+
static const char vs_std[] =
"#version 150\n"
"struct vs_struct {\n"
@@ -175,6 +175,32 @@ static const struct subtest_index_t index_subtests[] = {
ST( vs_aofa, GL_PROGRAM_INPUT, "vs_input2[0][0]", 0, GL_NO_ERROR),
ST( vs_aofa, GL_PROGRAM_INPUT, "vs_input2[1][0]", -1, GL_NO_ERROR),
ST( vs_aofa, GL_PROGRAM_INPUT, "vs_input2[0][1]", -1, GL_NO_ERROR),
+ ST( vs_aofa, GL_PROGRAM_INPUT, "vs_input2[1][1]", -1, GL_NO_ERROR),
+ ST( vs_aofa, GL_PROGRAM_INPUT, "vs_input3", -1, GL_NO_ERROR),
+ ST( vs_aofa, GL_PROGRAM_INPUT, "vs_input3[0]", -1, GL_NO_ERROR),
+ ST( vs_aofa, GL_PROGRAM_INPUT, "vs_input3[0][0]", 0, GL_NO_ERROR),
+ ST( vs_aofa, GL_PROGRAM_INPUT, "vs_input3[0][0][0]", 0, GL_NO_ERROR),
+ ST( vs_aofa, GL_PROGRAM_INPUT,"vs_input3[0][0][00]", -1, GL_NO_ERROR),
+ ST( vs_aofa, GL_PROGRAM_INPUT,"vs_input3[0][00][0]", -1, GL_NO_ERROR),
+ ST( vs_aofa, GL_PROGRAM_INPUT,"vs_input3[00][0][0]", -1, GL_NO_ERROR),
+ ST( vs_aofa, GL_PROGRAM_INPUT, "vs_input3[0][0][1]", -1, GL_NO_ERROR),
+ ST( vs_aofa, GL_PROGRAM_INPUT, "vs_input3[0][1][0]", -1, GL_NO_ERROR),
+ ST( vs_aofa, GL_PROGRAM_INPUT, "vs_input3[1][0][0]", -1, GL_NO_ERROR),
+ ST( vs_aofa, GL_PROGRAM_INPUT, "vs_input3[1][0][1]", -1, GL_NO_ERROR),
+ ST( vs_aofa, GL_PROGRAM_INPUT, "vs_input3[1][1][0]", -1, GL_NO_ERROR),
+ ST( vs_aofa, GL_PROGRAM_INPUT, "vs_input3[1][1][1]", -1, GL_NO_ERROR),
+ ST( vs_aofa2, GL_UNIFORM, "vs_uni", -1, GL_NO_ERROR),
+ ST( vs_aofa2, GL_UNIFORM, "vs_uni[1]", -1, GL_NO_ERROR),
+ ST( vs_aofa2, GL_UNIFORM, "vs_uni[0]", -1, GL_NO_ERROR),
+ ST( vs_aofa2, GL_UNIFORM, "vs_uni[0][0]", -1, GL_NO_ERROR),
+ ST( vs_aofa2, GL_UNIFORM, "vs_uni[1][0]", 0, GL_NO_ERROR),
+ ST( vs_aofa2, GL_UNIFORM, "vs_uni[0][0][0]", -1, GL_NO_ERROR),
+ ST( vs_aofa2, GL_UNIFORM, "vs_uni[0][0][1]", -1, GL_NO_ERROR),
+ ST( vs_aofa2, GL_UNIFORM, "vs_uni[0][1][0]", -1, GL_NO_ERROR),
+ ST( vs_aofa2, GL_UNIFORM, "vs_uni[1][0][0]", 0, GL_NO_ERROR),
+ ST( vs_aofa2, GL_UNIFORM, "vs_uni[1][0][1]", -1, GL_NO_ERROR),
+ ST( vs_aofa2, GL_UNIFORM, "vs_uni[1][1][0]", -1, GL_NO_ERROR),
+ ST( vs_aofa2, GL_UNIFORM, "vs_uni[1][1][1]", -1, GL_NO_ERROR),
ST( vs_sub, GL_VERTEX_SUBROUTINE, "vss", 0, GL_NO_ERROR),
ST(vs_empty, GL_TRANSFORM_FEEDBACK_VARYING, "gl_NextBuffer", -1, GL_NO_ERROR),
ST(vs_empty, GL_TRANSFORM_FEEDBACK_VARYING, "gl_SkipComponents1", -1, GL_NO_ERROR),