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

Regression: Unwanted flashes are seen in Camera app

Project Member Reported by kebalaji@chromium.org, Feb 1 2018

Issue description

Chrome Version: 65.0.3325.35/10323.10.0 Candy, Celes, Reks
OS:Chrome OS

What steps will reproduce the problem?
(1)Sign-in to user>> Open camera app and observe

Actual: Unwanted black patches/flashes are seen 
Expected: No such behavior should be seen

This is a Regression issue as same is working fine on M64 Beta and M63 stable

NOTE: 1. Issue is not seen on Windows and Linux
      2. This seems to be working fine on the latest M66-66.0.3329.0/10360.0.0
         but still repro on M65-65.0.3325.36/10323.11.0.. We need to identify the CL that 
         fixed this and get this merged to M-65 branch
      3. Issue is seen on  65.0.3325.36/10323.11.0 Candy also.
 
ActualCameraFlash.webm
1.8 MB View Download

Comment 1 by y...@chromium.org, Feb 2 2018

Cc: jcliang@chromium.org wuchengli@chromium.org shenchao@chromium.org

Comment 2 by jcliang@google.com, Feb 2 2018

This looks like a dup of https://b.corp.google.com/issues/72236053

Comment 3 by y...@chromium.org, Feb 2 2018

Cc: junov@chromium.org xlai@chromium.org
I have checked this issue: it was fine on Chrome 65.0.3322.0/10320.0.0 but broken on 65.0.3324.0/10322.0.0.

There was a commit in Chrome 65.0.3323.0 about HTMLCanvasElement: https://chromium.googlesource.com/chromium/src/+/d02bb8346f13117d4a81d1124a3aeeaaed83ae99.

The issue have been fixed since Chrome 66.0.3326/10326.0.0. There was another commit in Chrome 66.0.3326 about HTMLCanvasElement: https://chromium.googlesource.com/chromium/src/+/2ea1a7e41007c09bead29157cda85f781889622e. 
(This commit was also merged into M64: https://chromium.googlesource.com/chromium/src/+/9f67f6324fa0dfe4a7e5485f8bb7c1761d105ffe)

xlai@, junov@, would you please help to take a look if these commits are relevant to this issue and if commit 2ea1a7e41007c09bead29157cda85f781889622e also needs being cherry picked for M65? Thanks much.

Comment 4 by xlai@chromium.org, Feb 2 2018

Labels: Needs-Bisect
If the commit you said is really the fix, then M65 should work fine now because the commit is not only merged to M64, but also cherry-picked and merged to M65 as in here: https://chromium-review.googlesource.com/c/chromium/src/+/883901, which is released in 65.0.3325.18.

Maybe there is another different fix CL in M66? 

Comment 5 by y...@chromium.org, Feb 5 2018

xlai@, Yes, you're right; I only tested this issue on 65.0.3325.0 but didn't test it on 65.0.3325.18.

Would you know which other commits are more possible fixes to the flickering problem:
https://chromium.googlesource.com/chromium/src/+log/65.0.3325.35..66.0.3326.0?pretty=fuller&n=10000? Thanks much.

If this is a duplicate of https://b.corp.google.com/issues/72236053, then the Chrome error messages are:

[1584:1584:0122/182944.329379:ERROR:gles2_cmd_decoder.cc(18268)] [.DisplayCompositor-0x36892b93e700]GL ERROR :GL_INVALID_OPERATION : glCreateAndConsumeTextureCHROMIUM: invalid mailbox name
[1584:1584:0122/182944.329480:ERROR:gles2_cmd_decoder.cc(10094)] [.DisplayCompositor-0x36892b93e700]RENDER WARNING: texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering.

and from another duplicate of 72236053 (https://b.corp.google.com/issues/72675679), the errors on the JavaScript console are:

3glfx.js:361 WebGL: INVALID_VALUE: texImage2D: no video
Texture.loadContentsOf @ glfx.js:361
camera.js:1952 OverconstrainedError
(anonymous) @ camera.js:1952
camera.js:1952 OverconstrainedError
(anonymous) @ camera.js:1952
128 [.Offscreen-For-WebGL-0xdec6010a500]GL ERROR :GL_INVALID_OPERATION : glCreateAndConsumeTextureCHROMIUM: invalid mailbox name
127 [.Offscreen-For-WebGL-0xdec6010a500]GL ERROR :GL_INVALID_VALUE : glCopySubTextureCHROMIUM: invalid source texture target binding
camera.js:1952 OverconstrainedError
(anonymous) @ camera.js:1952
camera.js:1952 OverconstrainedError
(anonymous) @ camera.js:1952
main.html:1 WebGL: too many errors, no more errors will be reported to the console for this context.

Could it be a buffer alignment issue?
xlai@ Is there an existing test that can catch this bug? If not, how to write a test to catch this?

Comment 8 by y...@chromium.org, Feb 7 2018

junov@,
https://bugs.chromium.org/p/chromium/issues/detail?id=797636#c14
Per your suggestion about canvas rendering glitches fixes, I have tried Chrome 65.0.3325.56/10323.21.0 for this canvas flickering issue. However, this camera app's canvas flickering issue has not yet been fixed in 65.0.3325.56. (a build later than commit position 298 on the 3325 branch?)

Would you know which other commits might also be possible fixes to this flickering problem? Thanks much.

Comment 9 by y...@chromium.org, Feb 8 2018

Cc: y...@chromium.org
Owner: khushals...@chromium.org
Bisected:
chrome at 60916ba1169d9207e048e2eca290c946ba37fcad fixed
chrome at b0e3c370f735edef8128ae377f6fe163e02df2b0 flickering

The fix seems in 60916ba1169d9207e048e2eca290c946ba37fcad.
Cc: -junov@chromium.org khushals...@chromium.org
Owner: junov@chromium.org
Its odd that the change above would fix this. May be we weren't managing the lifetime of an image texture correctly before this, since this change only shifts caching of uploaded image textures from skia to cc. I don't think this would be a good change to merge either, I've had to made a few changes after this to fix regressions and am still looking at the remaining ones. We need to investigate what the original bug was. junov@, could you take a look?
I agree. The fix pointed out in #9 is probably just masking the bug.  We probably need to investigate directly on the M65 branch.
If the bug in #9 does actually fix it, you can get the old behaviour by disabling the cc cache (just return null here: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/platform/graphics/CanvasResourceProvider.cpp?q=CanvasResourceProvider.cpp&dr&l=505) on ToT. That will also verify if that patch did fix it.
Status: Fixed (was: Assigned)
I can repro the bug in 65.0.3325.56 but not in 65.0.3325.60

Suspecting it was fixed by this merge:
https://chromium.googlesource.com/chromium/src/+/3ffbc5859a88276f0c64d2448772f267fd958f6c
Labels: Merge-TBD
[Auto-generated comment by a script] We noticed that this issue is targeted for M-65; it appears the fix may have landed after branch point, meaning a merge might be required. Please confirm if a merge is required here - if so add Merge-Request-65 label, otherwise remove Merge-TBD label. Thanks.
Labels: -Merge-TBD
Removing Merge-TBD label because merge already happened for another bug.

Comment 16 by y...@chromium.org, Feb 9 2018

Cc: pgangishetty@chromium.org ka...@chromium.org matthewjoseph@chromium.org
 Issue 805617  has been merged into this issue.
Cc: sontis@chromium.org conradlo@chromium.org
Status: Assigned (was: Fixed)
Per Intel on https://b.corp.google.com/issues/72236053 , this is still seen on 65.0.3325.63 .

Kalin/Sridhar, can you please test this with 65.0.3325.63 to confirm?
Cc: omrilio@chromium.org elizabethchiu@chromium.org
From https://b.corp.google.com/issues/72236053, here's my test result on soraka:

65.0.3325.70
- the preview flashes in camera app

65.0.3325.70 w/ 60916ba1169d9207e048e2eca290c946ba37fcad
- the issue is gone

ToT w/ the code change suggested in https://bugs.chromium.org/p/chromium/issues/detail?id=807974#c12
- the preview flashes in camera app
This looks like the possible suspect between 65.0.3325.65 and 65.0.3325.70: https://chromium-review.googlesource.com/c/chromium/src/+/911608
This could be related to timing of when the context state is reset, cc's image cache does this whenever an image is unlocked (https://cs.chromium.org/chromium/src/cc/tiles/gpu_image_decode_cache.cc?l=1531), which is likely happening in this case.

Comment 22 by junov@chromium.org, Feb 14 2018

So we're probably missing a yet another resetContext() somewhere.

FWIW: I am working on completely eliminating this class of bug (see:  issue 810159 ).  Unfortunately, that fix will be way too complex to consider for a merge to M65.
Cc: bhthompson@chromium.org pucchakayala@chromium.org
 Issue 812722  has been merged into this issue.
Cc: jansson@chromium.org rantonysamy@chromium.org
 Issue 813019  has been merged into this issue.
 Issue 811337  has been merged into this issue.
I'm seeing reports about this issue (camera app flashing/flickering) from users on 65.0.3325.65 beta:
- Banjo http://listnr/product/208/report/85068003173
- Banjo http://listnr/product/208/report/85069276321
- Samus http://listnr/product/208/report/85088769026

And one other report each from Reks & Swanky.
Ping.

This bug is affecting all Chrome devices on M-65 and is a stable release blocker.
Labels: -Pri-1 Pri-0
Just tested on 65.0.3325.101, and the issue is still reproducible. What's the plan for fixing this on M65?

If it's too compilcated to fix it in Chrome, is there anything we can do in the camera app to eliminate the issue? 

Comment 29 by junov@chromium.org, Feb 27 2018

Status: Started (was: Assigned)
Cc: gov...@chromium.org
+govind too

bhthompson/govind - this is blocking M65 stable release, just a heads up
This applicable to Chrome OS so bhthompson@  (Chrome OS TPM) will handle it. Pls let me know if this is applicable to Desktop. Thanks.


Right, I don't think this impacts any non Chrome OS devices.

We have another week before we try to cut a Chrome OS stable so we have some time to fix it, but we should fix it soon.
Components: Blink>WebGL
Progress update:

It turns out that all of the leads documented in this thread so far were red herrings. 

At this point I know with pretty good confidence that the problem is not related to GrContext state: I've tried resetting it aggressively on different instances (main thread's shared context, the compositor's context, webgl's context). 

I found that forcing the preserve drawing buffer to be "true" on all WebGL contexts increases the rate of the flickering.  This is my best lead so far.  My best guess is that we have a synchronization bug with a WebGL context.  I tried forcing context flushes in various places in DrawingBuffer.cpp, but nothing works so far.

I think the results of all the bisect experiments performed by various people are not pointing to the source of the problem, they're just a bunch of CLs that change the command sequences sent to the GL command buffer, which affect timing.

I will be OOO form March 2 (tomorrow) to March 6. If I don't find a fix soon (before leaving tonight), I will hand off the bug to someone else.

Flagging as a WebGL bug, since that's what it looks like so far.
Cc: piman@chromium.org sunn...@chromium.org
+sunnyps +piman in case they have any insight?
I found it!  It is a synchronization bug in the code that uploads a video frame from an HTMLVideoElement to a WebGL texture (deep inside WebGL's TexImage2D method).  I have a very simple low risk way of fixing this for M65.

Even thought the bug is not reproducible with the camera app in M66, it is nonetheless still there, we're just getting lucky with the timing of events, so it needs to be fixed in both places.
Project Member

Comment 36 by bugdroid1@chromium.org, Mar 2 2018

Labels: merge-merged-3325
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bb77d47faf51fe795e4e51e9ac3c82430f7125d5

commit bb77d47faf51fe795e4e51e9ac3c82430f7125d5
Author: Justin Novosad <junov@chromium.org>
Date: Fri Mar 02 03:05:22 2018

Fix synchronization bug in video to webgl texture upload

TexImage2D calls with a video element as a source were sometimes
failing because of a texture copy that was missing posterior
synchronization. This meant that it was possible for the source
texture to be recycled by skia (in a different command stream)
before the copy is executed.

BUG= 807974 
TBR=xlai@chromium.org

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I5f5124e45e803240507a676e75b2183cf564e1ab
Reviewed-on: https://chromium-review.googlesource.com/945331
Reviewed-by: Justin Novosad <junov@chromium.org>
Cr-Commit-Position: refs/branch-heads/3325@{#644}
Cr-Branched-From: bc084a8b5afa3744a74927344e304c02ae54189f-refs/heads/master@{#530369}
[modify] https://crrev.com/bb77d47faf51fe795e4e51e9ac3c82430f7125d5/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp

Labels: -Pri-0 Pri-1
Owner: xlai@chromium.org
Okay, I'm leaving on vacation now. (It's past 10pm over here). I just submitted a tiny safe fix directly in the M65 release branch.

I will do something more comprehensive (a CL that includes tests!) for the trunk when I get back form vacation.

Flagging for M66 to remind myself that whatever I do in trunk will need to be merged to M66, which will probably have branched by the time I get back.

TestEngineers: You can downgrade the priority as soon as this is verified in the M65 branch, but leave the bug open since there is still work to be done in other branches.

Delegating to xlai@ to follow-up in my absence, just in case.

Ciao!
Thanks Justin! Have a good vacation!
Labels: -M-65 M-66
Moving to M-66 per #37

Comment 40 by kbr@chromium.org, Mar 5 2018

There's a bug just reported by users of the Three.js library in https://github.com/mrdoob/three.js/issues/13379 which looks like a video-to-WebGL-texture synchronization problem. The issue is still reproducible with this test case:

https://rawgit.com/mrdoob/three.js/dev/examples/webvr_video.html

on current Canary:

Google Chrome	67.0.3362.0 (Official Build) canary (64-bit)
Revision	bc0fc7083e5466f5227bc868c2543957672def9a-refs/heads/master@{#540777}

Not sure whether it's the same underlying problem.

Comment 41 by cmasso@google.com, Mar 6 2018

#36 was merged without any merge approval from a TPM. Any reason why?
It has been happening to my Acer Chromebook 15 CB3-532.
Owner: junov@chromium.org
@#41: That was not a merge, it was a direct commit.  Fix had to be implemented directly against the M65 release branch because repro steps did not work in other branches. I realize should have put a TPM as reviewer on the code review. Sorry about that.

Looks like we now have repro steps for ToT though (comment #40). That's great!

Comment 44 by kbr@chromium.org, Mar 8 2018

Blocking: 819914

Comment 45 by kbr@chromium.org, Mar 8 2018

Note:  Issue 819914  has a test case using only 2D canvas that exhibits the same stuttering as in WebGL on top-of-tree. We might want to duplicate that bug into this one.

Possibly. I will check it out to verify whether it is the same root cause.
 Issue 819914  is not a duplicate. It was reported against 65.0.3325.146 Which has the fix from #36
Blocking: -819914
Verified the fix on 65.0.3325.148/10323.52.0 - Peppy, Paine.  
Project Member

Comment 50 by bugdroid1@chromium.org, Mar 14 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d1ec13c61c5dc35d003e691ceab84a103510f4d9

commit d1ec13c61c5dc35d003e691ceab84a103510f4d9
Author: Justin Novosad <junov@chromium.org>
Date: Wed Mar 14 19:52:06 2018

Fix synchronization bug in video to webgl texture upload

TexImage2D calls with a video element as a source were sometimes
failing because of a texture copy that was missing posterior
synchronization. This meant that it was possible for the source
texture to be recycled by skia (in a different command stream)
before the copy is executed.

BUG= 807974 
R=xlai@chromium.org

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I5f5124e45e803240507a676e75b2183cf564e1ab
Reviewed-on: https://chromium-review.googlesource.com/945331
Reviewed-by: Justin Novosad <junov@chromium.org>
Cr-Original-Commit-Position: refs/branch-heads/3325@{#644}
Cr-Original-Branched-From: bc084a8b5afa3744a74927344e304c02ae54189f-refs/heads/master@{#530369}
Reviewed-on: https://chromium-review.googlesource.com/960423
Commit-Queue: Justin Novosad <junov@chromium.org>
Reviewed-by: Olivia Lai <xlai@chromium.org>
Cr-Commit-Position: refs/heads/master@{#543166}
[modify] https://crrev.com/d1ec13c61c5dc35d003e691ceab84a103510f4d9/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp
[modify] https://crrev.com/d1ec13c61c5dc35d003e691ceab84a103510f4d9/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImageTest.cpp
[modify] https://crrev.com/d1ec13c61c5dc35d003e691ceab84a103510f4d9/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp
[modify] https://crrev.com/d1ec13c61c5dc35d003e691ceab84a103510f4d9/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.h
[modify] https://crrev.com/d1ec13c61c5dc35d003e691ceab84a103510f4d9/third_party/WebKit/Source/platform/graphics/TextureHolder.h

Comment 51 by junov@chromium.org, Mar 15 2018

Labels: Merge-Request-66
Requesting permission to merge the CL from #50 to M66.
Project Member

Comment 52 by sheriffbot@chromium.org, Mar 15 2018

Labels: -Merge-Request-66 Merge-Review-66 Hotlist-Merge-Review
This bug requires manual review: M66 has already been promoted to the beta branch, so this requires manual review
Please contact the milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), josafat@(ChromeOS), abdulsyed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Cc: -gov...@chromium.org
Labels: -Merge-Review-66 Merge-Approved-66
Project Member

Comment 55 by bugdroid1@chromium.org, Mar 16 2018

Labels: -merge-approved-66 merge-merged-3359
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d1d677063fe909a41d1a194f57e4cca71a4d5edb

commit d1d677063fe909a41d1a194f57e4cca71a4d5edb
Author: Justin Novosad <junov@chromium.org>
Date: Fri Mar 16 22:02:41 2018

Fix synchronization bug in video to webgl texture upload

TexImage2D calls with a video element as a source were sometimes
failing because of a texture copy that was missing posterior
synchronization. This meant that it was possible for the source
texture to be recycled by skia (in a different command stream)
before the copy is executed.

BUG= 807974 
R=xlai@chromium.org
TBR=junov@chromium.org

(cherry picked from commit d1ec13c61c5dc35d003e691ceab84a103510f4d9)

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I5f5124e45e803240507a676e75b2183cf564e1ab
Reviewed-on: https://chromium-review.googlesource.com/945331
Reviewed-by: Justin Novosad <junov@chromium.org>
Cr-Original-Original-Commit-Position: refs/branch-heads/3325@{#644}
Cr-Original-Original-Branched-From: bc084a8b5afa3744a74927344e304c02ae54189f-refs/heads/master@{#530369}
Reviewed-on: https://chromium-review.googlesource.com/960423
Commit-Queue: Justin Novosad <junov@chromium.org>
Reviewed-by: Olivia Lai <xlai@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#543166}
Reviewed-on: https://chromium-review.googlesource.com/967365
Cr-Commit-Position: refs/branch-heads/3359@{#291}
Cr-Branched-From: 66afc5e5d10127546cc4b98b9117aff588b5e66b-refs/heads/master@{#540276}
[modify] https://crrev.com/d1d677063fe909a41d1a194f57e4cca71a4d5edb/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImage.cpp
[modify] https://crrev.com/d1d677063fe909a41d1a194f57e4cca71a4d5edb/third_party/WebKit/Source/platform/graphics/AcceleratedStaticBitmapImageTest.cpp
[modify] https://crrev.com/d1d677063fe909a41d1a194f57e4cca71a4d5edb/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.cpp
[modify] https://crrev.com/d1d677063fe909a41d1a194f57e4cca71a4d5edb/third_party/WebKit/Source/platform/graphics/MailboxTextureHolder.h
[modify] https://crrev.com/d1d677063fe909a41d1a194f57e4cca71a4d5edb/third_party/WebKit/Source/platform/graphics/TextureHolder.h

Comment 56 by junov@chromium.org, Mar 17 2018

Status: Fixed (was: Started)
Project Member

Comment 57 by bugdroid1@chromium.org, Mar 18 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c8f117ce2885070675675564dc39be7e92c6853d

commit c8f117ce2885070675675564dc39be7e92c6853d
Author: Justin Novosad <junov@chromium.org>
Date: Sun Mar 18 07:48:52 2018

Automate calls to GrContext::resetContext

The purpose of this change is to prevent the re-occurrence of flaky
rendering bugs caused by missing calls to GrContext::resetContext. This
change uses a new subclass of GLES2Implementation called
GLES2ImplementationWithGrContextSupport, which takes care of calling
GrContext::resetContext() whenever the gl state is changed. These
calls are lightweight: they just perform an 'or' on an integer.

To avoid calling GrContext::resetContext() when gl calls are made from
within skia, the bindings were modified in CreateGLES2InterfaceBindings
in order to signal the GLES2ImplementationWithGrContextSupport so that
it knows the the current GL call is made from skia.

Cq-Include-Trybots: luci.chromium.try:linux_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I59470a8188df235a36d6de0e9aaff57b69ff9d6a
Bug:  807974 ,  810159 
Reviewed-on: https://chromium-review.googlesource.com/924616
Commit-Queue: Justin Novosad <junov@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Fredrik Hubinette <hubbe@chromium.org>
Reviewed-by: Brian Salomon <bsalomon@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Bo <boliu@chromium.org>
Reviewed-by: Fernando Serboncini <fserb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#543955}
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/android_webview/browser/aw_render_thread_context_provider.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/android_webview/browser/aw_render_thread_context_provider.h
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/cc/raster/gpu_raster_buffer_provider.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/cc/raster/raster_buffer_provider_perftest.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/cc/raster/scoped_gpu_raster.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/cc/test/test_in_process_context_provider.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/cc/test/test_in_process_context_provider.h
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/cc/tiles/gpu_image_decode_cache.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/components/viz/common/gl_helper.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/components/viz/common/gl_helper.h
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/components/viz/common/gpu/context_provider.h
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/components/viz/common/gpu/in_process_context_provider.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/components/viz/common/gpu/in_process_context_provider.h
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/components/viz/common/gpu/raster_context_provider.h
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/components/viz/test/test_context_provider.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/components/viz/test/test_context_provider.h
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/components/viz/test/test_context_support.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/components/viz/test/test_context_support.h
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/content/browser/compositor/gpu_process_transport_factory.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/content/browser/compositor/gpu_process_transport_factory.h
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/content/browser/compositor/viz_process_transport_factory.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/content/browser/gpu/gpu_ipc_browsertests.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/content/browser/renderer_host/compositor_impl_android.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/content/renderer/media_capture_from_element/canvas_capture_handler.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/content/renderer/pepper/video_decoder_shim.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/content/renderer/render_thread_impl.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/content/renderer/renderer_blink_platform_impl.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/content/renderer/webgraphicscontext3d_provider_impl.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/content/renderer/webgraphicscontext3d_provider_impl.h
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/content/shell/test_runner/test_plugin.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/content/test/layouttest_support.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/gpu/command_buffer/client/context_support.h
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/gpu/command_buffer/client/implementation_base.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/gpu/command_buffer/client/implementation_base.h
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/gpu/command_buffer/client/raster_implementation_gles_unittest.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/gpu/ipc/BUILD.gn
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/gpu/ipc/gl_in_process_context.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/gpu/skia_bindings/BUILD.gn
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/gpu/skia_bindings/gl_bindings_skia_cmd_buffer.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/gpu/skia_bindings/gl_bindings_skia_cmd_buffer.h
[add] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/gpu/skia_bindings/gles2_implementation_with_grcontext_support.cc
[add] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/gpu/skia_bindings/gles2_implementation_with_grcontext_support.h
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/gpu/skia_bindings/grcontext_for_gles2_interface.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/gpu/skia_bindings/grcontext_for_gles2_interface.h
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/media/renderers/paint_canvas_video_renderer.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/services/ui/public/cpp/gpu/context_provider_command_buffer.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/services/ui/public/cpp/gpu/context_provider_command_buffer.h
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/services/ui/public/cpp/gpu/gpu.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/third_party/WebKit/Source/modules/webgl/WebGLContextAttributeHelpers.cpp
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/third_party/WebKit/Source/platform/graphics/CanvasResource.cpp
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/third_party/WebKit/Source/platform/graphics/gpu/DrawingBufferTestHelpers.h
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/third_party/WebKit/Source/platform/graphics/gpu/GraphicsContext3DUtils.cpp
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.cpp
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/third_party/WebKit/Source/platform/graphics/test/FakeWebGraphicsContext3DProvider.h
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/third_party/WebKit/public/platform/Platform.h
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/third_party/WebKit/public/platform/WebGraphicsContext3DProvider.h
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/ui/compositor/test/in_process_context_provider.cc
[modify] https://crrev.com/c8f117ce2885070675675564dc39be7e92c6853d/ui/compositor/test/in_process_context_provider.h

Status: Verified (was: Fixed)
Not Reproducible: Tested on Candy, Celes, Kevin, Eve, Bob with Chrome OS 10452.19.0/66.0.3359.43 (dev)(Full/small screen)
Project Member

Comment 59 by bugdroid1@chromium.org, Mar 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5

commit 7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5
Author: Justin Novosad <junov@chromium.org>
Date: Tue Mar 27 18:55:38 2018

Reland "Automate calls to GrContext::resetContext"

This reverts commit 60f840e7e212c79d76e5e7fa32667214e050e20b.
This re-land resolves rendering regression in AndroidWebView by
restoring a context reset in ScopedGpuRaster, which was the cause of
crbug.com/823232, and the reason for the revert.

TBR=piman@chromium.org

Bug:  807974 ,  810159 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I8112ab4e25c9dbf40aa386368815b986e7d4a9d9
Reviewed-on: https://chromium-review.googlesource.com/982098
Commit-Queue: Justin Novosad <junov@chromium.org>
Reviewed-by: Justin Novosad <junov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#546189}
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/android_webview/browser/aw_render_thread_context_provider.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/android_webview/browser/aw_render_thread_context_provider.h
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/cc/raster/gpu_raster_buffer_provider.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/cc/raster/raster_buffer_provider_perftest.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/cc/raster/scoped_gpu_raster.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/cc/test/test_in_process_context_provider.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/cc/test/test_in_process_context_provider.h
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/cc/tiles/gpu_image_decode_cache.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/components/viz/common/gl_helper.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/components/viz/common/gl_helper.h
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/components/viz/common/gpu/context_provider.h
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/components/viz/common/gpu/in_process_context_provider.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/components/viz/common/gpu/in_process_context_provider.h
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/components/viz/common/gpu/raster_context_provider.h
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/components/viz/test/test_context_provider.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/components/viz/test/test_context_provider.h
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/components/viz/test/test_context_support.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/components/viz/test/test_context_support.h
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/content/browser/compositor/gpu_process_transport_factory.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/content/browser/compositor/gpu_process_transport_factory.h
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/content/browser/compositor/viz_process_transport_factory.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/content/browser/renderer_host/compositor_impl_android.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/content/renderer/media_capture_from_element/canvas_capture_handler.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/content/renderer/pepper/video_decoder_shim.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/content/renderer/render_thread_impl.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/content/renderer/renderer_blink_platform_impl.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/content/renderer/webgraphicscontext3d_provider_impl.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/content/renderer/webgraphicscontext3d_provider_impl.h
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/content/shell/test_runner/test_plugin.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/content/test/gpu_browsertest_helpers.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/content/test/layouttest_support.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/gpu/command_buffer/client/context_support.h
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/gpu/command_buffer/client/implementation_base.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/gpu/command_buffer/client/implementation_base.h
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/gpu/command_buffer/client/raster_implementation_gles_unittest.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/gpu/ipc/BUILD.gn
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/gpu/ipc/gl_in_process_context.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/gpu/skia_bindings/BUILD.gn
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/gpu/skia_bindings/gl_bindings_skia_cmd_buffer.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/gpu/skia_bindings/gl_bindings_skia_cmd_buffer.h
[add] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/gpu/skia_bindings/gles2_implementation_with_grcontext_support.cc
[add] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/gpu/skia_bindings/gles2_implementation_with_grcontext_support.h
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/gpu/skia_bindings/grcontext_for_gles2_interface.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/gpu/skia_bindings/grcontext_for_gles2_interface.h
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/media/renderers/paint_canvas_video_renderer.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/services/ui/public/cpp/gpu/context_provider_command_buffer.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/services/ui/public/cpp/gpu/context_provider_command_buffer.h
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/services/ui/public/cpp/gpu/gpu.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/third_party/WebKit/Source/modules/webgl/WebGLContextAttributeHelpers.cpp
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/third_party/WebKit/Source/platform/graphics/CanvasResource.cpp
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/third_party/WebKit/Source/platform/graphics/gpu/DrawingBufferTestHelpers.h
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/third_party/WebKit/Source/platform/graphics/gpu/GraphicsContext3DUtils.cpp
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.cpp
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/third_party/WebKit/Source/platform/graphics/test/FakeWebGraphicsContext3DProvider.h
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/third_party/WebKit/public/platform/Platform.h
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/third_party/WebKit/public/platform/WebGraphicsContext3DProvider.h
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/ui/compositor/test/in_process_context_provider.cc
[modify] https://crrev.com/7d3d2502e2e1dbcb42aec4b8f50b2677c1c29ed5/ui/compositor/test/in_process_context_provider.h

Comment 60 by junov@chromium.org, Apr 13 2018

Cc: junov@chromium.org dhadd...@chromium.org dchan@chromium.org abod...@chromium.org sdantul...@chromium.org
 Issue 820217  has been merged into this issue.

Sign in to add a comment