<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED - SSO: wrong interface validation between GS and VS (regresion due to latest gles 3.1)"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=96358#c6">Comment # 6</a>
              on <a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED - SSO: wrong interface validation between GS and VS (regresion due to latest gles 3.1)"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=96358">bug 96358</a>
              from <span class="vcard"><a class="email" href="mailto:gregory.hainaut@gmail.com" title="gregory.hainaut@gmail.com">gregory.hainaut@gmail.com</a>
</span></b>
        <pre>Using "strcpy(s, t + 1)" is better. But another check is failling below.

      if (producer_var->type != consumer_var->type ||
          producer_var->interpolation != consumer_var->interpolation ||
          producer_var->precision != consumer_var->precision) {
         valid = false;
         goto out;
      }

Here some debug info. So you can't compare type pointer due to arrayness. And I
don't know what interpolation is different it ought to be the same. Likely Mesa
set the FLAT status to some IO.

(gdb) p *producer_var 
$18 = {
  type = 0xf4c0d5e0 <glsl_type::_vec4_type>, 
  interface_type = 0x8b08d38, 
  outermost_struct_type = 0x0, 
  name = 0x8b02028 "SHADER.c", 
  location = -1, 
  component = 0, 
  index = 0, 
  patch = 0, 
  mode = 5, 
  interpolation = 0, 
  explicit_location = 0, 
  precision = 0
}

(gdb) p *consumer_var
$19 = {
  type = 0x8ac14e8, 
  interface_type = 0x8b0fb80, 
  outermost_struct_type = 0x0, 
  name = 0x8ad36a0 "SHADER[2].c", 
  location = -1, 
  component = 0, 
  index = 0, 
  patch = 0, 
  mode = 4, 
  interpolation = 2, 
  explicit_location = 0, 
  precision = 0
}


(gdb) p *consumer_var->type
$25 = {
  gl_type = 35666, 
  base_type = GLSL_TYPE_ARRAY, 
  sampler_dimensionality = 0, 
  sampler_shadow = 0, 
  sampler_array = 0, 
  sampled_type = 0, 
  interface_packing = 0, 
  vector_elements = 0 '\000', 
  matrix_columns = 0 '\000', 
  length = 2, 
  name = 0x8ac1520 "vec4[2]", 
  fields = {
    array = 0xf4c0d5e0 <glsl_type::_vec4_type>, 
    parameters = 0xf4c0d5e0 <glsl_type::_vec4_type>, 
    structure = 0xf4c0d5e0 <glsl_type::_vec4_type>
  }, 

(gdb) p *producer_var->type
$27 = {
  gl_type = 35666, 
  base_type = GLSL_TYPE_FLOAT, 
  sampler_dimensionality = 0, 
  sampler_shadow = 0, 
  sampler_array = 0, 
  sampled_type = 0, 
  interface_packing = 0, 
  vector_elements = 4 '\004', 
  matrix_columns = 1 '\001', 
  length = 0, 
  name = 0x87932c8 "vec4", 
  fields = {
    array = 0x0, 
    parameters = 0x0, 
    structure = 0x0
  },</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>