BabylonJS (5.0 - 5.5.5) & iOS 15.4 + Safari 15.4 issues

Hi guys,

I want to point out two different issues/bugs I have encountered with BabylonJS version (5.0 - 5.5.5) and iOS 15.4.1 and Safari 15.4 and BabylonJS version < 5.0.

  1. Basically SSAO2 does not properly work. You can try switching it on and off using the 1, 2, 3 keys on keyboard from the playground example and you will see that when pressing 3 (drawing only SSAO) with make the scene go completely blank/white. If you choose a BabylonJS version less than 5.0 it will work properly.
    https://playground.babylonjs.com/#7D2QDD#28

  2. Another issue is that on BabylonJS versions less than 5.0 the input controls will not work at all on iOS 15.4.1 and BabylonJS version less than 5.0. I have no idea why this happened but I had to upgrade to the latest BabylonJS version to fix this issue.
    https://playground.babylonjs.com/

The thing is, on my scene I am using SSAO2 and when upgrading to the latest BabylonJS version in order to fix the input control issue on iOS 15.4.1 I encounter the SSAO2 issue.

Can someone please tell me what is up with SSAO2 on BabylonJS 5.0 - 5.5.5?

I would really appreciate it. Thank you.

Regards,
Gerald

You need to disable antialiasing on IOS 15.4.1 as Safari as a huge webgl issue internally. It has been fixed on webkit but still Apple did not release the patch in a new IOS release. I have great hopes for 15.4.2…

antialiasing shoudl be disabled in the Engine constructor of Babylon.

Has this to do anything with the SSAO2 making the scene go blank when drawing only SSAO?
If you try the playground example you will know what I mean.

Thanks

Currently everything using Offscreen textures like post processes is impacted :frowning:

Alright, thank you for letting me know. :wink:

Sorry, but SSAO2 is not working properly for me even on chrome desktop(windows) as well. And this only happened after I upgraded BabylonJS to 5.0 and 5.5.5. So I think this is a bug in Babylon right?

Thanks.

Can you repro on the Playground? The repro you share works on Windows for me

cc @CraigFeldspar

Here(the same link actually): https://playground.babylonjs.com/#7D2QDD#28

Its the same, when you press 3 to draw only SSAO on BabylonJS v5.5.6 you get this result:

And, when you do the same on BabylonJS v4.2.1 you get this:

I already tested this and I can reproduce it on Windows(Chrome, Firefox, Edge, Opera) and MacOS (Safari).

This issue as in the first picture only happens on BabylonJS versions above 5.0.

Thanks a lot, and please let me know if this is going to be fixed.

Just to make this clear, you’re still speaking only about SSAO2, right?
Because for me, SSAO is still working the same (and I actually prefer the render from SSAO). Personal opinion only.

Yes, I am talking only about SSAO2.

Can you also reproduce the SSAO2 bug?

Thanks.

I believe I could. I haven’t tried but I trust you on this. I previously experienced similar issues with SSAO2 (where rendering the layer alone would do nothing) but in fact, that didn’t mean it was not working (in real or in combination with the other textures). But I believe you checked in your scene, right?

I actually cannot create a playground with my setup or how I’m actually using the SSAO2.
But the playground example alone shows that there is something wrong going on with SSAO2 when it goes completely blank when drawing only SSAO2 by pressing 3.

Basically on my scene I am attaching a camera to the SSAO2 Rendering pipeline and then trying to take a screenshot. The moment I try to screenshot I get an error as below:

I only encounter these errors on BabylonJS version above 5.0.

I hope there is a workaround or a fix for this from Babylon.

Thank you.

I’m pretty sure there will be (soon or one day). What about switching to SSAO for the time, would that be unacceptable for your scene/fx?

That is what i will try now.

Thanks and please let us now if there is any fix regarding this. :slightly_smiling_face:

cc @sebavan

in your case you can disable the prepass renderer: var ssao = new BABYLON.SSAO2RenderingPipeline("ssao", scene, ssaoRatio, undefined, true);

@CraigFeldspar is it intended in prepass ?

Ok this should be fixed in the next release: Fix NME Morph block with tangents by sebavan · Pull Request #12493 · BabylonJS/Babylon.js · GitHub

For me both version (prepass and GBR) work, am I missing something ?

OK I’ve just seen your fix, GG :slight_smile:

1 Like

It worked, but I also had to disable the depth write for transparent materials in my scene for it to work fine.

Thank you. :slightly_smiling_face: