Regression: WebGL image Flickers on dragging.
Reported by
lpa...@etouch.net,
Jan 23 2017
|
|||||||||||||||||
Issue descriptionChrome Version: 58.0.2989.0 (Official Build) canary 0e57e2b832467da3c87f665e641fafecddd40322-refs/heads/master@{#445281} (32/64-bit) OS: Mac(10.11.6, 10.12.1, 10.12), Windows(7,8,8.1,10), Linux (14.04 LTS) Test URL: http://www.khronos.org/registry/webgl/sdk/demos/webkit/WebGL+CSS.html Steps to reproduce: 1. Launch Chrome, go to above URL and open DEV Tools. 2. Click on Toggle Device Button and drag the image on the emulated window up/down. 3. Observe the bottom of the Emulated Window Actual Result: Unwanted black patch appears in bottom on rotating image. Expected Result: Image should appear properly. This is regression issue broken in 'M 56' and will soon update the bisect info: Manual Bisect Info: Good Build 56.0.2922.0 Bad Build 56.0.2924.0
,
Jan 23 2017
adding RB label, please change if required.
,
Jan 23 2017
If it took this long for this bug to be discovered then it does not block 56's release.
,
Jan 23 2017
Don't think the CL looks like it could have caused it. How to repro: - Get to device emulator mode. - Try hold and fling upwards multiple times. Investigated further: - Only repro on device emulator mode. Not on actual android device or Chromebook Pixel. - If trying hard enough w/ M56, there are few pixels high of badness, but M57 and onwards has been much worse. - Looks like it's fling action triggered scroll, and the bottom row of new tiles are not ready. - Sometimes the textures shown are corrupted. Other than black and sometimes white, there are also texture from the webgl image showing up at the bottom. cc'ing pfeldman@ as expert on dev tools: - What does device emulator tool do? Particularly in regarding to touch actions, and maybe resource management? (Mostly I could not repro on Chromebook Pixel unless I turned device emulator mode on, and on actual Android phones it doesn't look like the fling is triggering scroll) Passing ownership to vmpstr@ for any insight in what could have happened w/ rastering and/or texture between M56 and M57.
,
Jan 23 2017
We should be able to bisect to an exact CL now, how come the bisect is to a large range?
,
Jan 23 2017
If I run this in debug mode with layer borders, I see that the flicker that happens is cyan. Cyan color represents non-painted regions. That it, it seems that we are displaying portions of tiles that didn't have any valid paint. This does seem like an artifact of the devtools where it tries to scroll a page that isn't meant to be scrollable. I've also observed that it matters what size to make the devtools window. It's significantly harder to reproduce with smaller window sizes. I'm going to try and bisect to see if I come up with the same range as #1
,
Jan 23 2017
I get https://chromium.googlesource.com/chromium/src/+log/d9c529de305db6eb0dde1052a39c9dd4b06f9bc9..79d05bf972b24b752029c2d9c727bfe975f2f208 as the range. Note that for "good" revisions, the page still scrolls, except that the content that is revealed is properly painted/rasterized as grey. I'm suspecting that https://chromium.googlesource.com/chromium/src/+/f5a4f9d38de7403d172ad20f78c462048eae37bc might've affected this? bokan@ can you take a look?
,
Jan 23 2017
Yup, reverting my patch locally makes the problem go away. I'll put in a fix for 57.
,
Jan 24 2017
FYI: this repros on real Android devices, not just emulation.
,
Feb 8 2017
A friendly reminder that M57 Stable is launch is coming soon! Your bug is labelled as Stable ReleaseBlock, pls make sure to land the fix and get it merged into the release branch ASAP so it gets enough baking time in Beta (before Stable promotion). Thank you!
,
Feb 8 2017
,
Feb 8 2017
Got a patch up for review, hope to land tomorrow. I've attached a reduced test case which can be reproduced by: 1) start chrome with --enable-viewport 2) Click on the red box 3) Scroll down Note the exposed unpainted region.
,
Feb 16 2017
A friendly reminder that M57 Stable is launch is coming VERY soon! Your bug is labelled as Stable ReleaseBlock, pls make sure to land the fix and get it merged into the release branch (2987) ASAP so it gets enough baking time in Beta (before Stable promotion). Thank you!
,
Feb 21 2017
bokan@ Gentle Ping! Since this issue is marked as RB-Stable can we get any latest update on this issue? Thanks!
,
Feb 21 2017
Sorry, just got back from vacation. Will try to have this resolved in ToT today.
,
Feb 22 2017
URGENT - PTAL ASAP. We're getting VERY close to M57 Stable promotion. And this issue is marked as M57 stable release blocker. Pls make sure to land the fix and get it merged into the release branch ASAP so it gets enough baking time in Beta (before Stable promotion). Know that this issue shouldn't block the release? Remove the ReleaseBlock-Stable label or move to M58. Thank you.
,
Feb 22 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/717789e00f9ff34efe3a2ca23ebd69e802d8b6ec commit 717789e00f9ff34efe3a2ca23ebd69e802d8b6ec Author: bokan <bokan@chromium.org> Date: Wed Feb 22 19:56:19 2017 Explicitly invalidate LayoutView when overflow is recalculated. This bug occurs because during an animation we may change the amount of layout overflow (via FrameView::recalcOverflowAfterStyleChange). Previously, this would cause a change in scrollbar existance until r432965 made it so that the FrameView would prevent scrollbar creation earlier in cases where they're known to be unneeded. Changing scrollbar existence causes a layout so we'd implicitly invalidate and repaint. Since that change, we (correctly) don't bother doing a layout but because of that we no longer invalidate so the additionally exposed background region doesn't get painted. BUG= 683814 Review-Url: https://codereview.chromium.org/2685883004 Cr-Commit-Position: refs/heads/master@{#452170} [modify] https://crrev.com/717789e00f9ff34efe3a2ca23ebd69e802d8b6ec/third_party/WebKit/Source/core/frame/FrameView.cpp
,
Feb 22 2017
Fix landed - will request merge once it hits Canary.
,
Feb 23 2017
Rechecked this on chrome version 58.0.3021.0 on Windows 10, MAC 10.12.3, ubuntu 14.04. fix is working as intended. Flickering is not displayed when dragging the image. Adding TE-Verified labels.
,
Feb 23 2017
,
Feb 23 2017
Your change meets the bar and is auto-approved for M57. Please go ahead and merge the CL to branch 2987 manually. Please contact milestone owner if you have questions. Owners: amineer@(clank), cmasso@(bling), ketakid@(cros), govind@(desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Feb 23 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/78bc6d67a3b37244352915113e91b70c06448839 commit 78bc6d67a3b37244352915113e91b70c06448839 Author: David Bokan <bokan@google.com> Date: Thu Feb 23 13:57:56 2017 Explicitly invalidate LayoutView when overflow is recalculated. This bug occurs because during an animation we may change the amount of layout overflow (via FrameView::recalcOverflowAfterStyleChange). Previously, this would cause a change in scrollbar existance until r432965 made it so that the FrameView would prevent scrollbar creation earlier in cases where they're known to be unneeded. Changing scrollbar existence causes a layout so we'd implicitly invalidate and repaint. Since that change, we (correctly) don't bother doing a layout but because of that we no longer invalidate so the additionally exposed background region doesn't get painted. BUG= 683814 Review-Url: https://codereview.chromium.org/2685883004 Cr-Commit-Position: refs/heads/master@{#452170} (cherry picked from commit 717789e00f9ff34efe3a2ca23ebd69e802d8b6ec) Review-Url: https://codereview.chromium.org/2711033004 . Cr-Commit-Position: refs/branch-heads/2987@{#657} Cr-Branched-From: ad51088c0e8776e8dcd963dbe752c4035ba6dab6-refs/heads/master@{#444943} [modify] https://crrev.com/78bc6d67a3b37244352915113e91b70c06448839/third_party/WebKit/Source/core/frame/FrameView.cpp
,
Feb 23 2017
Fix has been merged. I landed a quick fix and am working on an improved one with a test so I'll leave this open until I land that.
,
Feb 23 2017
,
Feb 28 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/24a657a98b6352e7a3b4a4c121b2398d6d42c3be commit 24a657a98b6352e7a3b4a4c121b2398d6d42c3be Author: bokan <bokan@chromium.org> Date: Tue Feb 28 20:45:29 2017 Add test for paint underinvalidation fix with animated transform overflow. I landed a quick fix to merge in r452170 but omitted a test. This patch adds a test for that bug fix. BUG= 683814 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2713773003 Cr-Commit-Position: refs/heads/master@{#453692} [modify] https://crrev.com/24a657a98b6352e7a3b4a4c121b2398d6d42c3be/third_party/WebKit/Source/core/BUILD.gn [modify] https://crrev.com/24a657a98b6352e7a3b4a4c121b2398d6d42c3be/third_party/WebKit/Source/core/frame/FrameView.cpp [add] https://crrev.com/24a657a98b6352e7a3b4a4c121b2398d6d42c3be/third_party/WebKit/Source/core/paint/PaintInvalidationTest.cpp
,
Feb 28 2017
,
Mar 1 2017
Verified the issue on Mac 10.12.3,Win 10 and Ubuntu 14.04 using 57.0.2987.88 and its working fine now.Hence added the respective TE-verified labels for it. |
|||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||
Comment 1 by lpa...@etouch.net
, Jan 23 2017Owner: lushnikov@chromium.org
Status: Assigned (was: Unconfirmed)