Using BabylonJS v4.2.1, I am seeing a rendering issue on iOS Safari 15.4 Beta 5 on an iPad Pro when adding both a UtilityLayerRenderer
and DefaultRenderingPipeline
. The issue does not appear in the latest 5.0.0 of BabylonJS, or on my desktop non-beta version of Safari.
My project resembles a simple model viewer with a rotatable camera, so I have been able to recreate the issue in the default Babylon Playground example. You can view my example code here: https://playground.babylonjs.com/#SGLH1F
I have boiled the offending code down to 3 lines of code. When trying to rotate the camera using touch, the scene is not updated, though the code does reach the render loop every frame. I have commented directions in the code to get the scene working as expected, but the issue seems to present itself with some combination of UtilityLayerRenderer
and DefaultRenderingPipeline
with HDR textures enabled and a pipeline sampling value greater than 1.
I have also include the snippet below for reference:
// For BabylonJS v4.2.1 on iOS Safari 15.4 Beta 5 on an iPad Pro, I am witnessing a render issue.
// This example prevents rendering updates when attempting to rotate the camera in the Babylon basic demo.
// I have stripped down my code to the below 3 offending lines.
// To fix this example, you can perform any one of the below methods:
// 1. comment out the utilLayer line
// 2. change true to false in the pipeline instance
// 3. change pipeline.samples to 1 (anything > 1 fails)
const utilLayer = new BABYLON.UtilityLayerRenderer(scene);
const pipeline = new BABYLON.DefaultRenderingPipeline("default", true, scene, [camera]);
pipeline.samples = 8;
The problem also does not surface if I disable WebGL 2.0 in WebKit Experimental Features.
Thank you.