RESOLVED FIXED 204102
[WebGL] Analyze remaining non texture-to-video ANGLE conformance regressions
https://bugs.webkit.org/show_bug.cgi?id=204102
Summary [WebGL] Analyze remaining non texture-to-video ANGLE conformance regressions
Justin Fan
Reported 2019-11-11 22:15:21 PST
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
Attachments
Justin Fan
Comment 1 2019-11-20 15:04:02 PST
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
Justin Fan
Comment 2 2019-11-20 15:04:06 PST
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.
Justin Fan
Comment 3 2019-11-20 17:40:27 PST
Addressing conformance/extensions/webgl-depth-texture.html in https://bugs.webkit.org/show_bug.cgi?id=204433.
Justin Fan
Comment 4 2019-11-21 17:42:37 PST
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.
James Darpinian
Comment 5 2019-12-27 15:16:40 PST
I believe these regressions are all fixed now after my recent changes.
Note You need to log in before you can comment on or make changes to this bug.