<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - ir_variable has maximum access out of bounds -- but it's not out of bounds"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=109532#c21">Comment # 21</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - ir_variable has maximum access out of bounds -- but it's not out of bounds"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=109532">bug 109532</a>
              from <span class="vcard"><a class="email" href="mailto:andrey.simiklit@gmail.com" title="asimiklit <andrey.simiklit@gmail.com>"> <span class="fn">asimiklit</span></a>
</span></b>
        <pre>So the previously mentioned issue was due to issue in my fix. 
I fixed my it and locally I have the following results:

./deqp-gles31 -n dEQP-GLES31.functional.ssbo.*

Test run totals:
  Passed:        2061/2061 (100.0%)
  Failed:        0/2061 (0.0%)
  Not supported: 0/2061 (0.0%)
  Warnings:      0/2061 (0.0%)


It with mesa assertion fix and with deqp fix.
Without the mesa fix it is still crashes even if the deqp fix is applied:
   Test case
'dEQP-GLES31.functional.ssbo.layout.random.all_per_block_buffers.18'..
   ir_variable has maximum access out of bounds (1 vs 0)
   Aborted (core dumped)

deqp: 
  
<a href="https://github.com/asimiklit/deqp/commit/91cff8150944213f6da533e281ee76d95ca00f21">https://github.com/asimiklit/deqp/commit/91cff8150944213f6da533e281ee76d95ca00f21</a>

mesa:
  
<a href="https://gitlab.freedesktop.org/GL/mesa/commit/526a9fee0e40a450bc71092b27a3b89cbbf93fd7">https://gitlab.freedesktop.org/GL/mesa/commit/526a9fee0e40a450bc71092b27a3b89cbbf93fd7</a>

So I am actually not 100% sure about which binding point should be assigned 
for BlockB[1] instance in the following case:

   layout(local_size_x = 1) in;

   layout(packed, binding = 0) buffer BlockB
   {
           float b[1];
   } blockB[2];

   void main (void)
   {
       blockB[1].b[0] = 77777.77777;
   }

But according to next comment it should be 0 because of the BlockB[0] was
optimized
and there is the BlockB[1] only:

   /* The ARB_shading_language_420pack spec says:
    *
    *    If the binding identifier is used with a uniform block instanced as
    *    an array then the first element of the array takes the specified
    *    block binding and each subsequent element takes the next consecutive
    *    uniform block binding point.
    */

<a href="https://gitlab.freedesktop.org/mesa/mesa/blob/master/src/compiler/glsl/link_uniform_blocks.cpp#L279-310">https://gitlab.freedesktop.org/mesa/mesa/blob/master/src/compiler/glsl/link_uniform_blocks.cpp#L279-310</a>

Mark is it possible to check both patches under Intel CI?

mesa:
   fork: <a href="https://gitlab.freedesktop.org/asimiklit/mesa/">https://gitlab.freedesktop.org/asimiklit/mesa/</a>
   branch: max_array_access

deqp:
   fork: <a href="https://github.com/asimiklit/deqp/">https://github.com/asimiklit/deqp/</a>
   branch: array_instance_binding_fix</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>