Basis Failed to transcode image (Safari 17.0, iOS 17.0)
Hello!
We recently upgraded to Playcanvas 1.64.4 and basis transcode has stopped working for some platforms.
- Safari 17.0. (OSX Ventura 13.4.1 (c))
- iOS 17.0.
(Console errors)
(basis-worker.js)
Our basisInitialize config:
{ “glueUrl":"(some url)/assets/lib/basis/basis.wasm.js", "wasmUrl":"(some url)/assets/lib/basis/basis.wasm.wasm", "fallbackUrl":"(some url)/assets/lib/basis/basis.js", "maxRetries":3, "rgbPriority":["etc1","etc2","astc","dxt","pvr","atc"], "rgbaPriority":["astc","dxt","etc2","pvr","atc"] }
If we force the fallback path (via hard coding wasmSupport to false) instead of compileStreaming / compileManual, our basis images do load properly.
(basis.js)
Let me know if there is any other info you’d like me to gather / follow up on. Any workarounds (other than forcing fallback) would be great!
Hi @cd-vaughamhong ,
I've run a few different projects which use basis and they all work fine for me (for example https://playcanv.as/p/SA7hVBLt/). This is on ventura (13.4.1 and 13.5) and safari technology preview (17.0).
Can you see if the above project works for you?
Are you able to give me access to the failing project? If I am not able to reproduce the problem then I am not able to investigate.
Thanks!
Hey @slimbuck,
Thanks for the quick reply!
- Tried the link you provided on my Safari 17, and it runs fine.
- Double checked that our basis.js, basis.wasm, basis.wasm.wasm files match with playcanvas 1.64.4.
- Checked that our basis file is valid - running it through basisu looks fine.
- Another member on our team tried on their Safari 17 (but with Ventura 13.4 instead of 13.4.1) and everything worked.
- Unfortunately we won't be able to provide our project, but I attached a basis file (grid.basis.zip) that didn't transcode.
We did implement a quick workaround which chains the wasm basis transcoder's failure into fallback (non-wasm) basis transcoder workers. This seems to be working for us at the moment.
Let me know if you can repro with the basis file I provided, otherwise.. umm.. Safari 17 / iOS 17 (beta) wasm regression?
I can reproduce it in this engine example: https://playcanvas.github.io/#/graphics/texture-basis
When running on Safari Tech Preview which is 17.0
I've logged an issue on webkit https://bugs.webkit.org/show_bug.cgi?id=260252
I just tested Safari Tech Preview (Release 179 (Safari 17.0, WebKit 18617.1.8.1)) and the issue is still there.
However a workaround for this has been added here: https://github.com/playcanvas/engine/pull/5657
another reference: https://forum.playcanvas.com/t/unhandled-promise-rejection-compileerror-webassembly-module-problem/37038
this is the actual workaround we tested as working: https://github.com/playcanvas/engine/pull/5674 use the newly compiled WASM files that do not seem to exhibit the issue
Closing since the solution was to update to the latest version of Basis.