<html>
    <head>
      <base href="https://bugs.webkit.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - getBufferSubData() incorrectly returns all zeros for pixel buffers on iOS 15 with WebGL 2"
   href="https://bugs.webkit.org/show_bug.cgi?id=228192">228192</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>getBufferSubData() incorrectly returns all zeros for pixel buffers on iOS 15 with WebGL 2
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>WebKit
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>iPhone / iPad
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>Normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P2
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>WebGL
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>webkit-unassigned@lists.webkit.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>paris@8thwall.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>dino@apple.com, kbr@google.com, kkinnunen@apple.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>I have found a regression where a particular shading pipeline using pixel buffers on iOS 15 with WebGL 2 (with both WebGL via Metal = true & false) always returns all zeros from `getBufferSubData()`. Note that while this effect is 100% reliable on this particular pipeline, it does not reproduce on other simpler pipelines. If we switch from reading from a pixel buffer to directly reading from the frame buffer, the issue goes away and the same pipeline works correctly with 100% reliability.

Our code is relatively complex, involving multiple proprietary shaders drawing to multiple intermediate frame buffers before ultimately reaching the frame buffer that's bound to the pixel buffer. My attempts to write a simple repro for this using a non-proprietary shallow pipeline have failed to reproduce the issue, but opening this bug to put it on your radar. Perhaps you know of something that may cause this, or this is an area that may be somewhat untested?

Some extra details:
- There are no WebGL errors printed. 
- This same shader pipeline works with iOS 14 and below (with WebGL 2), and also on Android (with WebGL 2). Only on iOS 15 (with WebGL 2) did this code stop working.

I will update this bug with a simple repro if I am able to, thank you.</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>