Regression: WebGL test conformance/state/state-uneffected-after-compositing.html fails with Intel Mesa driver |
||||||
Issue descriptionWhat steps will reproduce the problem? (1) open chrome with command line: --enable-unsafe-es3-apis --use-gl=egl on Linux installed Intel graphics card with mesa driver --use-gl=egl is required here to reproduce this bug because the driver supports GL_EXT_discard_framebuffer extension in gles context. (2) open https://www.khronos.org/registry/webgl/sdk/tests/conformance/state/state-uneffected-after-compositing.html?webglVersion=1 What is the expected output? All tests should pass. What do you see instead? The test fails at step3. This regression is introduced in https://codereview.chromium.org/1950053003. This failed case draws something into bound fbo, then checks that fbo is still available in next frame. But chrome wrongly discards the fbo when it really wants to clear the default fbo. I uploaded a fix for this bug: https://codereview.chromium.org/2145093003/.
,
Jul 15 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/fd383c4428d3a4e1041425214f001661dca8d173 commit fd383c4428d3a4e1041425214f001661dca8d173 Author: qiankun.miao <qiankun.miao@intel.com> Date: Fri Jul 15 03:26:30 2016 Discard correct drawing buffer This partly revert https://codereview.chromium.org/1950053003. On platform supported GL_EXT_discard_framebuffer extension, it causes a WebGL conformance test regression: conformance/state/state-uneffected-after-compositing.html The root cause is current bound fbo will be discarded other than the default fbo. We should discard default fbo correctly. BUG= 628472 Review-Url: https://codereview.chromium.org/2145093003 Cr-Commit-Position: refs/heads/master@{#405689} [modify] https://crrev.com/fd383c4428d3a4e1041425214f001661dca8d173/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp
,
Jul 15 2016
,
Jul 15 2016
This is a very interesting case, as we tried many combinations of OS and driver, and switched between GL and GLES mode, but only Linux+IntelMesa+GLES (with --use-gl=egl option) failed the case. After investigation, it turns out to be a bug inside Chromium, rather than a driver issue as we previously suspected. The issue is only triggered with extension "discard_framebuffer" valid. Below are the reasons why other combinations couldn't trigger the issue: Linux+NVIDIA+GL: no support of extension "discard_framebuffer" Linux+NVIDIA+GLES: has support of extension "discard_framebuffer", but it's disabled due to https://bugs.chromium.org/p/chromium/issues/detail?id=601753. Linux+IntelMesa+GL: no support of extension "discard_framebuffer" ChromeOS+IntelMesa+GLES: has support of extension "discard_framebuffer", but it's disabled due to https://bugs.chromium.org/p/chromium/issues/detail?id=301988 (a Mali issue, and I will follow up to see if Intel GEN GPU can work well). So the conclusion is this is an ES extension, but for NVIDIA ES and ChromeOS (implying ES), the extension was disabled for different reasons.
,
Jul 15 2016
Ha, you won the lottery :)
,
Jul 15 2016
Thanks for the thorough investigation!
,
Aug 24 2016
,
Aug 24 2016
Your change meets the bar and is auto-approved for M53 (branch: 2785)
,
Aug 24 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/87afbee2e2f123fc576d4274a563f2a628189501 commit 87afbee2e2f123fc576d4274a563f2a628189501 Author: erikchen <erikchen@chromium.org> Date: Wed Aug 24 17:12:40 2016 [Merge to 2785] Discard correct drawing buffer > This partly revert https://codereview.chromium.org/1950053003. On > platform supported GL_EXT_discard_framebuffer extension, it causes a > WebGL conformance test regression: > conformance/state/state-uneffected-after-compositing.html > > The root cause is current bound fbo will be discarded other than the > default fbo. We should discard default fbo correctly. > > BUG= 628472 > > Review-Url: https://codereview.chromium.org/2145093003 > Cr-Commit-Position: refs/heads/master@{#405689} > (cherry picked from commit fd383c4428d3a4e1041425214f001661dca8d173) Review URL: https://codereview.chromium.org/2267423004 . Cr-Commit-Position: refs/branch-heads/2785@{#738} Cr-Branched-From: 68623971be0cfc492a2cb0427d7f478e7b214c24-refs/heads/master@{#403382} [modify] https://crrev.com/87afbee2e2f123fc576d4274a563f2a628189501/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp
,
Aug 31 2016
Verified the fix on Ken's linux Machine(Thank you Ken) with Chrome M53(53.0.2785.89). Steps followed : 1. open chrome with command line: --enable-unsafe-es3-apis --use-gl=egl on Linux 2. open https://www.khronos.org/registry/webgl/sdk/tests/conformance/state/state-uneffected-after-compositing.html?webglVersion=1 Observed behavior : All tests passed.
,
Nov 14 2017
|
||||||
►
Sign in to add a comment |
||||||
Comment 1 by qiankun....@intel.com
, Jul 15 2016