New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 683814 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Mac
Pri: 1
Type: Bug-Regression



Sign in to add a comment

Regression: WebGL image Flickers on dragging.

Reported by lpa...@etouch.net, Jan 23 2017

Issue description

Chrome 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 

 
Actual Result.mp4
853 KB View Download
Expected Result.mp4
1.4 MB View Download

Comment 1 by lpa...@etouch.net, Jan 23 2017

Labels: hasbisect
Owner: lushnikov@chromium.org
Status: Assigned (was: Unconfirmed)
Narrow Bisect Info:
https://chromium.googlesource.com/chromium/src/+log/94faf217e86b28190f56e29420afba0eb8c3972a..f62ae16d39451b1d505268d0bcf157a35b86fe84?pretty=fuller&n=10000


Suspecting: r432559?

@lushnikov: Kindly help to reassign if your change is not the cause for this issue.
Labels: ReleaseBlock-Stable
adding RB label, please change if required.

Comment 3 by kbr@chromium.org, Jan 23 2017

Labels: -Pri-1 -M-56 -ReleaseBlock-Stable M-57 Pri-2
If it took this long for this bug to be discovered then it does not block 56's release.

Cc: danakj@chromium.org weiliangc@chromium.org pfeldman@chromium.org
Owner: vmp...@chromium.org
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.


Comment 5 by danakj@chromium.org, Jan 23 2017

Labels: Needs-Bisect
We should be able to bisect to an exact CL now, how come the bisect is to a large range?

Comment 6 by vmp...@chromium.org, Jan 23 2017

Cc: chrishtr@chromium.org
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

Comment 7 by vmp...@chromium.org, Jan 23 2017

Cc: vmp...@chromium.org
Owner: bokan@chromium.org
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?

Comment 8 by bokan@chromium.org, Jan 23 2017

Labels: -Pri-2 ReleaseBlock-Stable Pri-1
Yup, reverting my patch locally makes the problem go away. I'll put in a fix for 57.

Comment 9 by bokan@chromium.org, Jan 24 2017

Labels: -Needs-Bisect OS-Android
Summary: Regression: WebGL image Flickers on dragging. (was: Regression: WebGL image Flickers in Emulation mode on dragging.)
FYI: this repros on real Android devices, not just emulation.
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!

Status: Started (was: Assigned)
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.
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!
bokan@ Gentle Ping! Since this issue is marked as RB-Stable can we get any latest update on this issue?

Thanks!

Comment 15 by bokan@chromium.org, Feb 21 2017

Sorry, just got back from vacation. Will try to have this resolved in ToT today.

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.
Project Member

Comment 17 by bugdroid1@chromium.org, 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

Comment 18 by bokan@chromium.org, Feb 22 2017

Fix landed - will request merge once it hits Canary.
Labels: TE-Verified-M58 TE-Verified-58.0.3021.0
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.

Comment 20 by bokan@chromium.org, Feb 23 2017

Labels: Merge-Request-57
Project Member

Comment 21 by sheriffbot@chromium.org, Feb 23 2017

Labels: -Merge-Request-57 Hotlist-Merge-Approved Merge-Approved-57
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
Project Member

Comment 22 by bugdroid1@chromium.org, Feb 23 2017

Labels: -merge-approved-57 merge-merged-2987
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

Comment 23 by bokan@chromium.org, 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.

Comment 24 by bokan@chromium.org, Feb 23 2017

Labels: -ReleaseBlock-Stable
Project Member

Comment 25 by bugdroid1@chromium.org, 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

Comment 26 by bokan@chromium.org, Feb 28 2017

Status: Fixed (was: Started)
Labels: TE-Verified-57.0.2987.88 TE-Verified-M57
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.
683814_Mar_1.mp4
2.1 MB View Download

Sign in to add a comment