<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#c49">Comment # 49</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:idr@freedesktop.org" title="Ian Romanick <idr@freedesktop.org>"> <span class="fn">Ian Romanick</span></a>
</span></b>
        <pre>After discussing <a href="https://github.com/KhronosGroup/OpenGL-API/issues/46">https://github.com/KhronosGroup/OpenGL-API/issues/46</a> in the
Khronos call today, I realized that my thinking about this bug may have been
slightly incorrect.  I believe that there are two separate issues here.

1. The issue with the array type and the maximum index.

2. The way the bindings are assigned to the elements that are used.

No matter what happens, if the shader says

   layout(packed, binding = 3) buffer Block
   {
           float b[1];
   } block[4];

Then the thing accessed in the shader as block[2].b[0] **must** be at binding
point 5 (from the API).  The user as explicitly set that to binding 5 by the
declaration in the shader, so we absolutely have to respect that.  Had the
application not explicitly set the bindings, I think we would be free to assign
whatever values we wanted.  I believe that means the bindings set by the CTS in
the problematic test are correct.

I think we also cannot reuse the intermediate bindings.  The app may have
expectations that those bindings are for elements of block, and it may blindly
bind buffers to those bindings.  If those bindings are used for other things,
only problems can result.  I think this means we effectively cannot eliminate
array elements from buffer block arrays that have explicit bindings.  85% sure,
anyway.</pre>
        </div>
      </p>


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

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