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.
Created attachment 399334 [details] Logging output
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.
Filed ANGLE bug https://bugs.chromium.org/p/angleproject/issues/detail?id=4636 about this.
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.
Created attachment 399451 [details] Patch
Note that there are important steps to take when updating ANGLE. See http://trac.webkit.org/wiki/UpdatingANGLE
I've checked this on device and it passes the oes-texture-float tests.
Created attachment 399521 [details] Patch
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.
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
<rdar://problem/63321618>
It appears fast/canvas/webgl/oes-texture-half-float-uint16.html is regressed on ANGLE due to this.
Thanks for the heads up Justin. On what platform did you see the regression?
Never mind, I see it's on iOS. Blocking Bug 207858.
Created attachment 399874 [details] Patch
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.
Comment on attachment 399874 [details] Patch Not sure whether my own r- blocked some of the EWS bots from running. Removing it to see.
Created attachment 399904 [details] Patch
Clearly I shouldn't have used r- on the earlier patch.
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.
Committed r261975: <https://trac.webkit.org/changeset/261975> All reviewed patches have been landed. Closing bug and clearing flags on attachment 399904 [details].