RESOLVED FIXED 210524
OES_texture_float / OES_texture_half_float unavailable in WebGL 1.0 on iOS Simulator with ANGLE
https://bugs.webkit.org/show_bug.cgi?id=210524
Summary OES_texture_float / OES_texture_half_float unavailable in WebGL 1.0 on iOS Si...
Kenneth Russell
Reported 2020-04-14 16:47:23 PDT
Visiting https://webglreport.com/ on the iOS Simulator with both the current OpenGL ES and the forthcoming ANGLE backend, it appears that OES_texture_float and OES_texture_half_float are supported on the old (non-ANGLE) backend, but not supported on the ANGLE backend. This might be related indirectly to Chromium bug http://crbug.com/1067122 , where these extensions are not showing up on some other mobile devices, either. The problem might be overly strict renderability checks than required according to the extension specification - since framebuffer completeness is essentially allowed to fail per specification for almost any reason in OpenGL ES 2.0. In particular, RGB32F and RGB16F textures might not be color-renderable on this hardware, and ANGLE might be requiring them to be in order to expose these extensions.
Attachments
Logging output (27.41 KB, text/plain)
2020-05-13 23:09 PDT, Kenneth Russell
no flags
Patch (15.78 KB, patch)
2020-05-14 20:40 PDT, Kenneth Russell
no flags
Patch (20.94 KB, patch)
2020-05-15 15:44 PDT, Kenneth Russell
no flags
Patch (22.48 KB, patch)
2020-05-20 12:38 PDT, Kenneth Russell
no flags
Patch (22.48 KB, patch)
2020-05-20 16:04 PDT, Kenneth Russell
no flags
Kenneth Russell
Comment 1 2020-05-13 23:09:20 PDT
Created attachment 399334 [details] Logging output
Kenneth Russell
Comment 2 2020-05-13 23:09:35 PDT
Following the logging suggested by Geoff Lang from the ANGLE project in https://bugs.chromium.org/p/angleproject/issues/detail?id=4591 , here are the logs for why OES_texture_float and OES_texture_half_float aren't supported in the iOS Simulator. OES_texture_float is initially not supported because GL_LUMINANCE_ALPHA32F_EXT isn't texturable, and OES_texture_half_float is not supported because GL_LUMINANCE_ALPHA16F_EXT is not texturable.
Kenneth Russell
Comment 3 2020-05-13 23:17:46 PDT
Kenneth Russell
Comment 4 2020-05-14 17:00:10 PDT
Sidestepping the requirement of the texture formats that are supplied by EXT_texture_storage - which iOS doesn't provide - and fixing a bug caused by the fix for Bug 210994, the next issue is that support for luminance/alpha floating-point textures are going to need to be emulated inside ANGLE on top of red/green textures.
Kenneth Russell
Comment 5 2020-05-14 20:40:05 PDT
EWS Watchlist
Comment 6 2020-05-14 20:40:40 PDT
Note that there are important steps to take when updating ANGLE. See http://trac.webkit.org/wiki/UpdatingANGLE
Dean Jackson
Comment 7 2020-05-15 14:32:45 PDT
I've checked this on device and it passes the oes-texture-float tests.
Kenneth Russell
Comment 8 2020-05-15 15:44:57 PDT
Kenneth Russell
Comment 9 2020-05-15 15:46:00 PDT
Comment on attachment 399521 [details] Patch Updating this patch only for testing purposes - not for review or commit. Part of this change is being split off in Bug 211971. The other will likely be landed upstream in ANGLE and then rolled forward into WebKit.
Dean Jackson
Comment 10 2020-05-17 15:51:30 PDT
Unfortunately OES_texture_float_linear will need some work to enable too. ANGLE won't enable that because it believes RGBA32F is not filterable, based on the fact that iOS does not advertise the extension either. Since it is part of core in ES3, it shouldn't need to check for the extension (assuming it is using an ES3 context). https://bugs.webkit.org/show_bug.cgi?id=212005
Radar WebKit Bug Importer
Comment 11 2020-05-17 15:51:58 PDT
Justin Fan
Comment 12 2020-05-19 15:28:38 PDT
It appears fast/canvas/webgl/oes-texture-half-float-uint16.html is regressed on ANGLE due to this.
Kenneth Russell
Comment 13 2020-05-20 10:18:16 PDT
Thanks for the heads up Justin. On what platform did you see the regression?
Kenneth Russell
Comment 14 2020-05-20 11:24:39 PDT
Never mind, I see it's on iOS. Blocking Bug 207858.
Kenneth Russell
Comment 15 2020-05-20 12:38:33 PDT
Kenneth Russell
Comment 16 2020-05-20 12:50:15 PDT
Comment on attachment 399874 [details] Patch Uploaded this latest patch for testing purposes on the bots only. Will pick up this fix by rolling ANGLE forward instead.
Kenneth Russell
Comment 17 2020-05-20 16:03:04 PDT
Comment on attachment 399874 [details] Patch Not sure whether my own r- blocked some of the EWS bots from running. Removing it to see.
Kenneth Russell
Comment 18 2020-05-20 16:04:49 PDT
Kenneth Russell
Comment 19 2020-05-20 16:05:12 PDT
Clearly I shouldn't have used r- on the earlier patch.
Kenneth Russell
Comment 20 2020-05-20 16:36:08 PDT
Comment on attachment 399904 [details] Patch After offline discussion, we've decided to merge this fix directly into WebKit rather than roll ANGLE forward to pick it up. We'll roll ANGLE forward soon and subsume this individual patch. Requesting review.
EWS
Comment 21 2020-05-20 17:16:51 PDT
Committed r261975: <https://trac.webkit.org/changeset/261975> All reviewed patches have been landed. Closing bug and clearing flags on attachment 399904 [details].
Note You need to log in before you can comment on or make changes to this bug.