WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
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
Details
View All
Add attachment
proposed patch, testcase, etc.
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
<
rdar://problem/127242438
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug