engine icon indicating copy to clipboard operation
engine copied to clipboard

Basis Failed to transcode image (Safari 17.0, iOS 17.0)

Open cd-vaughamhong opened this issue 2 years ago • 7 comments

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) Screenshot 2023-07-26 at 11 10 41 AM

(basis-worker.js) Screenshot 2023-07-26 at 11 37 21 AM

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) Screenshot 2023-07-26 at 11 39 26 AM

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!

cd-vaughamhong avatar Jul 26 '23 18:07 cd-vaughamhong

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!

slimbuck avatar Jul 27 '23 09:07 slimbuck

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.
Screenshot 2023-07-27 at 3 31 31 PM

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?

cd-vaughamhong avatar Jul 27 '23 22:07 cd-vaughamhong

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 Screenshot 2023-08-16 at 10 00 32

mvaligursky avatar Aug 16 '23 08:08 mvaligursky

I've logged an issue on webkit https://bugs.webkit.org/show_bug.cgi?id=260252

slimbuck avatar Aug 16 '23 10:08 slimbuck

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

mvaligursky avatar Sep 21 '23 14:09 mvaligursky

another reference: https://forum.playcanvas.com/t/unhandled-promise-rejection-compileerror-webassembly-module-problem/37038

mvaligursky avatar Sep 23 '24 09:09 mvaligursky

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

mvaligursky avatar Sep 23 '24 09:09 mvaligursky

Closing since the solution was to update to the latest version of Basis.

willeastcott avatar Dec 21 '25 16:12 willeastcott