Overview

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

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.6 context

Output v[0].b[1] element 0: expected 12, got 0
Output v[1].b[0] element 0: expected 102, got 1
Output v[1].b[2] element 0: expected 122, got 2
Output v[2].b[1] element 0: expected 212, got 0
Output v[3].b[0] element 0: expected 302, got 0
Output v[3].b[2] element 0: expected 322, got 0
Probe color at (0,0)
  Expected: 0 255 0 255
  Observed: 0 0 0 0
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: [440]
start time: 1626710572.1850739
end time: 1626710572.2426035