Summary: | REGRESSION (Safari 14): webgl_loader_texture_basis three.js example sometimes fails | ||
---|---|---|---|
Product: | WebKit | Reporter: | Michael Herzog <michael.herzog> |
Component: | WebKit2 | Assignee: | Nobody <webkit-unassigned> |
Status: | NEW --- | ||
Severity: | Normal | CC: | achristensen, ap, blascoburguillos, cdumez, dino, kkinnunen, sabouhallawa, simon.fraser, webkit-bug-importer |
Priority: | P2 | Keywords: | InRadar |
Version: | Safari 14 | ||
Hardware: | iPhone / iPad | ||
OS: | iOS 14 |
Description
Michael Herzog
2021-08-31 03:24:43 PDT
Thank you for the bug report and the test site. It looks like I can I am able to reproduce on Safari 15 on macOS. Hmm, I see the page sending 2 messages to the worker and us dispatching those 2 message events on the WorkerGlobalScope. However, I do not see any messages being sent *from* the worker (no WorkerGlobalScope.postMessage() or MessagePort.postMessage() calls). I don't think this is an issue with postMessage(). The worker simply doesn't call postMessage() to send back the results, even though it received 2 messages from the main thread. So presumably, whatever operation is happening between the worker receiving the messages and the worker calling postMessage() with the results is getting stuck, sometimes. Since canvas is involved, I tried disabling the GPU process but it didn't help. The worker definitely calls "postMessage()" at this place: https://github.com/mrdoob/three.js/blob/105bd07ffce14f8f8982417e16b99c0d066ce3f1/examples/jsm/loaders/BasisTextureLoader.js#L418 Interestingly, when I add a console.log() right before this line, you see a console log when the demo works. However, when the plane keeps white (so when the issue appears), there is no log in the console. Re-titling to say what we know about the issue, as it's been demonstrated to NOT be related to postMessage(), given that the execution doesn't even reach postMessage() in the worker. I´m also experiencing this issue. Any news or updates? |