NEW 273074
Screen-space refraction demo doesn't work on iPhone 15
https://bugs.webkit.org/show_bug.cgi?id=273074
Summary Screen-space refraction demo doesn't work on iPhone 15
Kenneth Russell
Reported 2024-04-22 10:54:53 PDT
Created attachment 471043 [details] Screen shot of incorrect rendering https://domenicobrz.github.io/webgl/projects/SSRefractionDepthPeeling/ renders incorrectly on an iPhone 15 Pro Max running iOS 17.4.1. It renders correctly on desktop Safari on Apple Silicon. Could this be related to GPU register pressure, and failure to compile certain shaders? I don't have a DevTools debugging environment set up for this configuration.
Attachments
Screen shot of incorrect rendering (344.14 KB, image/jpeg)
2024-04-22 10:54 PDT, Kenneth Russell
no flags
Kenneth Russell
Comment 1 2024-04-22 12:54:28 PDT
Note: source code for this demo is https://github.com/Domenicobrz/Domenicobrz.github.io/tree/master/webgl/projects/SSRefractionDepthPeeling . I've contacted the demo author; he won't be able to debug this soon, but if it's possible to narrow down the cause of the failure on iPhones, this might inform more general fixes to ANGLE.
Kimmo Kinnunen
Comment 2 2024-04-22 20:32:19 PDT
The doubleDepthBuffer has this: this.ping = new THREE.WebGLRenderTarget(innerWidth, innerHeight, { type: THREE.FloatType, depthBuffer: false, stencilBuffer: false, }); this.pong = new THREE.WebGLRenderTarget(innerWidth, innerHeight, { type: THREE.FloatType, depthBuffer: false, stencilBuffer: false, }); this.frontFaceRT = new THREE.WebGLRenderTarget(innerWidth, innerHeight, { type: THREE.FloatType, }); It may use the EXT_float_blend to do the rendering, which iOS doesn't support..
Kenneth Russell
Comment 3 2024-04-25 16:44:10 PDT
For the record, Alexey Knyazev diagnosed this and it seems to be a bug in the demo where it assumes the presence of OES_texture_float_linear, which doesn't exist on iOS. This is a common problem causing un-portability of WebGL apps to iOS so we're going to update the WebGL Best Practices on MDN to highlight this, and also try to propose a PR against the upstream demo to use fp16 textures rather than fp32, which will also implicitly fix this problem.
Radar WebKit Bug Importer
Comment 4 2024-04-29 10:55:16 PDT
Note You need to log in before you can comment on or make changes to this bug.