godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
91k stars 21.17k forks source link

iOS HTML5 Godot3 Threads won't load #86090

Open PeterMarques opened 11 months ago

PeterMarques commented 11 months ago

Tested versions

3.5.3

System information

iOS

Issue description

It start loading, then hangs on the "spinning whell" phase.

I know its something about the :

("Godot 4's HTML5 exports currently cannot run on macOS and iOS due to upstream bugs with SharedArrayBuffer and WebGL 2.0. We recommend using [macOS] and [iOS] native export functionality instead, as it will also result in better performance.

Godot 3's HTML5 exports are more compatible with various browsers in general, especially when using the GLES2 rendering backend (which only requires WebGL 1.0). ")

OK, i am using Godot3, GLES2, and all the headers needed to work on that safety level where put in place, hence on all platforms, including OSX, works kinda reliable.

But, that same link, wont finish loading on iPhones or iPads, i tested on several on a apple store, and the macs all worked, all this on safari.

Whats is happening? This is latest godot3 release. Its been years and still godot on the web is not viable for mass production.

What can do? I need the threads or html becames utter slow.

Thanks

Steps to reproduce

open threaded enable html5 export on ios

Minimal reproduction project (MRP)

none

PeterMarques commented 11 months ago

https://github.com/godotengine/godot/issues/83548 possibly related.

and i did not tested without threads, it may indeed be something on the SharedArrayBuffer bug on iOS.

Calinou commented 11 months ago

WebAssembly threads on iOS are pretty broken (which is one of the reasons https://github.com/godotengine/godot/pull/85939 is being developed), so I doubt anything can be done about it. Apple hasn't done much to improve WebAssembly on iOS lately, so it may take a while to be fixed.

https://github.com/godotengine/godot/issues/83548 possibly related.

The WASM_MAX_SIZE set at compile-time in the official HTML5 export templates could also be an issue, although I don't remember its value in 3.x. It's also not really viable to decrease it anyway, since it will make projects crash after they request more memory than this value.

PeterMarques commented 11 months ago

Ok, so today single thread only on iOS.

But that https://github.com/godotengine/godot/pull/85939 will afect godot3 as well?

But if yes, even with that, there still the gles3 only problem of godot4 on the web, and that is another problem if one wants to cover the most range of devices.

Having OpenGL1 on godot4 would be perfect for the old devices on the web, and would alow a complete migration of code base from 3 to 4.

But ok then, back to 3 and single thread, for now.

Thanks.

PeterMarques commented 4 months ago

https://github.com/godotengine/godot/issues/70652#issuecomment-2224238731