BabylonJS Broken on iPad safari browser? (when WebGL 2.0 is enabled)

#1

BabylonJS is unable to run when I enable WebGL 2.0. I understand it is an experimental feature on iOS.
Without WebGL 2.0 I’m having issues with the depth buffer. Any Ideas?

I’m testing on an iPad Pro.
Model #: ML0R2CL/A
iOS 12.2

-Brian

0 Likes

#2

Unfortunately safari does not support webGL2 (and this is not ready to change if you want my thoughts)

What issue do you have with depth buffer with webgl1?

0 Likes

#3

I’d like to clarify BabylonJS actually causes a crash in Safari when WebGL 2.0 is enabled. I get the following message: "A problem repeatedly occured on "https://playground.babylonjs.com/index.html".

With WebGL 1.0:
I have a room that is 6096 units across. I am having materials flicker which I believe have to do with the depth buffer.

0 Likes

#4

I found out the issue. This was the offending code:

private modify_engine_due_to_webgl_version(engine: BABYLON.Engine) {

    if (this.webgl_version === WEBGL_VERSION.V1) {
        engine.getCaps().highPrecisionShaderSupported = false;
    }

}

I turned off highPrecisionShaderSupported if WebGL 1.0 . This caused the flickering issue with materials on safari. I turned it off due to a samsung device(with no gpu) having a similar issue presented in this thread mesh rendered black on android models - Questions & Answers - HTML5 Game Devs Forum .

I guess WebGL 1.0 is an incorrect check. What would a reasonable check be to determine if highPrecisionShaderSupported should be true/false?

0 Likes

#5

this value is filled by the system actually. I mean that we are not generating it but instead we ask the system to see if this is supported:

0 Likes

#6

Okay thanks.

0 Likes