| Summary: | getBufferSubData() incorrectly returns all zeros for pixel buffers on iOS 15 with WebGL 2 | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Paris Morgan <paris> |
| Component: | WebGL | Assignee: | Kyle Piddington <kpiddington> |
| Status: | ASSIGNED --- | ||
| Severity: | Normal | CC: | dino, jean-yves.avenard, kbr, kkinnunen, kpiddington, smoley, tony, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | Other | ||
| Hardware: | iPhone / iPad | ||
| OS: | Other | ||
| Bug Depends on: | 228012 | ||
| Bug Blocks: | |||
|
Description
Paris Morgan
2021-07-22 13:03:08 PDT
Thanks for filing, please do update with a reduced test case :) Can you add explicit error checking code in your application (getError() calls) and double-check that no OpenGL errors are being generated? A reduced test case would be extremely helpful. The WebKit-side code for getBufferSubData is straightforward, so it's hard to guess where an error might be. There is a chance that the fix for Bug 228012 may have fixed this. In that bug, the implementation of fences in ANGLE's Metal backend wasn't working correctly because some IOKit calls weren't being allowed by the sandbox. There's a chance that the same synchronization primitives are used in ANGLE's implementation of glMapBuffer, which WebGL2RenderingContext.getBufferSubData calls. An issue where a fence gets incorrectly triggered before data is ready is possibly a good explanation for what we're seeing. Would you have expect the fix for Bug 228012 to improve both Metal and OpenGL backends? We are seeing the issue on both. I'm not sure but let me ask Kyle to triage this since only Apple employees can deploy builds to iOS devices. I will be keeping an eye on this, Please let me know if you have a repro, Paris! Thank you! (In reply to Paris Morgan from comment #4) > An issue where a fence gets incorrectly triggered before data is ready is > possibly a good explanation for what we're seeing. Would you have expect the > fix for Bug 228012 to improve both Metal and OpenGL backends? We are seeing > the issue on both. Unfortunately, no. The fencing fix should have only impacted the Metal backend. |