Overview

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

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 150997056
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 150996992
Output v[3].b[0] element 0: expected 302, got -2147352576
Output v[3].b[2] element 0: expected 322, got 20973184
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: [25491]
start time: 1626709981.258379
end time: 1626709981.327914