These tests regress when using ANGLE: conformance/glsl/misc/non-ascii-comments.vert.html conformance/ogles/GL/build/build_177_to_178.html conformance/renderbuffers/framebuffer-object-attachment.html (8 failures -> 23 failures) conformance/extensions/angle-instanced-arrays.html conformance/extensions/webgl-depth-texture.html (36 failures -> 76 failures) conformance/context/context-hidden-alpha.html
Updates: non-ascii-comments.vert is not a real regression when run in browser build_177_to_178 is addressed by https://chromium-review.googlesource.com/c/chromium/src/+/1842223/2/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc, but requires an ANGLE update angle-instanced-arrays is not a real regression
framebuffer-object-attachment: Several new failures, may not be on ANGLE side though: 1) When trying the framebuffer combination "COLOR_ATTACHMENT0 = RGBA/UNSIGNED_BYTE texture + DEPTH_STENCIL_ATTACHMENT = DEPTH_STENCIL renderbuffer", after the call to gl.framebufferRenderbuffer, status is reported as "FRAMEBUFFER_UNSUPPORTED" instead of "FRAMEBUFFER_COMPLETE". In ANGLE this validation error finds that the depth/stencil attachment is attached twice and sets "gl::FramebufferState.mWebGLDepthStencilConsistent" to false. This makes sense as for WebGL 1, WebKit currently sets a renderbuffer to both DEPTH_ATTACHMENT and STENCIL_ATTACHMENT when DEPTH_STENCIL_ATTACHMENT is requested. Directly forwarding the DEPTH_STENCIL_ATTACHMENT call to ANGLE does not fix this. 2) Attempting to "Attach depthStencil using DEPTH_STENCIL_ATTACHMENT" with a size of 2x2 results in "FRAMEBUFFER_INCOMPLETE_ATTACHMENT" status instead of expected "FRAMEBUFFER_COMPLETE" 3) Testing "DEPTH_STENCIL vs DEPTH_COMPONENT16 with delete/unbind" are broken 4) gl.readPixels(...) on an FBO with no color attachment is reporting "INVALID_ENUM" instead of "INVALID_OPERATION". This is due to incorrect WebKit-side validation. Removing validation in WebGLRenderingContextBase.cpp for readPixels fixes this.
Addressing conformance/extensions/webgl-depth-texture.html in https://bugs.webkit.org/show_bug.cgi?id=204433.
context-hidden-alpha.html: gl.blendFunc seems to have the wrong effect with the ANGLE backend. On release Safari, `gl.blendFunc(gl.ZERO, gl.DST_ALPHA)` produces the correct result, but fails with ANGLE With the ANGLE backend, `gl.blendFunc(gl.ZERO, gl.ONE_MINUS_DST_ALPHA)` produces the desired results, but fails in release Safari. The correct enums are being passed to ANGLE, so it might be something else in the pipeline that's misinterpreting them.
I believe these regressions are all fixed now after my recent changes.