Overview

Hardware hsw
Architecture m64
Status fail
Matches Expectations Indicates whether the test status matches the status that CI expects for the test
fail
Time 0.039180

See also historical results for this test.

stdout

/tmp/build_root/m64/lib/piglit/bin/ext_transform_feedback-structs array-struct-array-elem run -auto -fbo
piglit: debug: Requested an OpenGL 3.2 Core Context, and received a matching 4.5 context

Output v[0].a[0] element 0: expected 1, got 0
Output v[0].a[1] element 0: expected 11, got 0
Output v[0].b[0] element 0: expected 2, got 0
Output v[0].b[1] element 0: expected 12, got 0
Output v[0].b[2] element 0: expected 22, got 0
Output v[1].a[0] element 0: expected 101, got 0
Output v[1].a[1] element 0: expected 111, got 0
Output v[1].b[0] element 0: expected 102, got 0
Output v[1].b[1] element 0: expected 112, got 0
Output v[1].b[2] element 0: expected 122, got 0
Output v[2].a[0] element 0: expected 201, got 0
Output v[2].a[1] element 0: expected 211, got 0
Output v[2].b[0] element 0: expected 202, got 0
Output v[2].b[1] element 0: expected 212, got 0
Output v[2].b[2] element 0: expected 222, got 0
Output v[3].a[0] element 0: expected 301, got 0
Output v[3].a[1] element 0: expected 311, got 0
Output v[3].b[0] element 0: expected 302, got 0
Output v[3].b[1] element 0: expected 312, got 0
Output v[3].b[2] element 0: expected 322, got 0
Probe color at (0,0)
  Expected: 0 255 0 255
  Observed: 255 0 0 255
Vertex shader:
#version 150
#define DECLARE_VARYING(DIR, TYPE, NAME) flat DIR TYPE NAME
#define VARYING(NAME) NAME
struct S { int[2] a; int[3] b; };
in vec4 pos;
DECLARE_VARYING(out, S[4], v);
void main()
{
  gl_Position = pos;
  for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 3; j++) {
      if (j < 2) VARYING(v)[i].a[j] = 100 * i + 10 * j + 1;
      if (j < 3) VARYING(v)[i].b[j] = 100 * i + 10 * j + 2;
    }
  }
}

Fragment shader:
#version 150
#define DECLARE_VARYING(DIR, TYPE, NAME) flat DIR TYPE NAME
#define VARYING(NAME) NAME
struct S { int[2] a; int[3] b; };
DECLARE_VARYING(in, S[4], v);
out vec4 color;
void main()
{
  bool pass = true;
  for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 3; j++) {
      if (j < 2 && VARYING(v)[i].a[j] != 100 * i + 10 * j + 1) pass = false;
      if (j < 3 && VARYING(v)[i].b[j] != 100 * i + 10 * j + 2) pass = false;
    }
  }
  if (pass)
    color = vec4(0.0, 1.0, 0.0, 1.0);
  else
    color = vec4(1.0, 0.0, 0.0, 1.0);
}

stderr


pid: [20288]
start time: 1626709669.2176237
end time: 1626709669.2568035