New issue
Advanced search Search tips

Issue 661335 link

Starred by 1 user

Issue metadata

Status: Duplicate
Merged: issue 660929
Owner: ----
Closed: Nov 2016
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 1
Type: Bug-Regression



Sign in to add a comment

GPU-backed <canvas> elements flash sometimes on OS X

Project Member Reported by evan....@gmail.com, Nov 1 2016

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36

Steps to reproduce the problem:
1. Sign up for an account on https://www.figma.com/ (it's free)
2. Import the attached *.fig file by dropping it into the folder area
3. Open it by double-clicking on the newly-imported file
4. Select the objects shown in the video
5. Open the color picker

What is the expected behavior?

What went wrong?
Sometimes the whole screen flashes. Multiple <canvas> elements appear messed up during the flash: the main canvas (WebGL context) and the color picker (2D context). Note that this is very non-deterministic, although it usually happens within the first few interactions in a tab when it does happen (i.e. if it doesn't happen, load the page again in a new tab and try again).

Did this work before? Yes Not sure

Does this work in other browsers? Yes

Chrome version: 54.0.2840.71  Channel: stable
OS Version: OS X 10.11.6
Flash Version: Shockwave Flash 23.0 r0

This reproduces on both Chrome Stable and Chrome Canary on OS X. We can't reproduce this on Chrome for Windows or on any other browser on any platform, so I believe this to be a Chrome OS X WebGL bug. I'm not sure when exactly this problem started happening but it definitely hasn't always worked like this.

I imagine getting a reduced test case will be very challenging and time-consuming for us. Please let me know if there's any possibility of a workaround that we can attempt to apply since this issue is very visually disturbing for our users.

I'm happy to help bisect the change if there's a place to download old OS X Chromium builds to test with. I tried searching for such a place but I couldn't find anything official-looking.
 
gpu-flashing-chrome-osx.fig
3.3 KB Download
gpu-flashing-chrome-osx.mov
3.6 MB Download

Comment 1 by evan....@gmail.com, Nov 1 2016

I just found  http://crbug.com/660929  and it seems to be related. I tried a quick hack to avoid inserting any SVGs into the DOM in our app and the flashing mentioned above doesn't happen anymore.

This is a pretty terrible workaround for us because we use dynamically-generated SVGs heavily (icons, sliders, etc.) and converting everything over to statically-generated assets for all resolutions would be a huge overhaul of our entire app.

Does anyone know if the fix for this issue would be pushed out immediately? Or should we expect this to remain broken until sometime in 2017? Is there another workaround besides avoiding SVGs that might be easier for us? I'm trying to figure out if we should consider starting this overhaul or not.

Comment 2 by kbr@chromium.org, Nov 1 2016

Labels: -Pri-2 Pri-1
Mergedinto: 660929
Status: Duplicate (was: Unconfirmed)
Sorry for this bug. We need to add a regression test for this case. I'm quite sure this is the same as  Issue 660929  and am duplicating it into it.

Comment 3 by kbr@chromium.org, Nov 1 2016

Components: Internals>GPU>Rasterization

Comment 4 by kbr@chromium.org, Nov 2 2016

Asking about possible workarounds on  Issue 660929 . Please watch that bug for replies. If you can confirm that adding a 1x1 pixel SVG image to your page at the beginning of time works around it, that would be good to know.

Comment 5 by evan....@gmail.com, Nov 2 2016

I inserted that SVG right inside the <body> tag and it appears to have fixed everything! I was doubtful that it was going to work because our app already uses SVGs all over the place, but apparently those ones weren't complex enough to trigger the fallback rendering path. Thanks so much for the quick response. We really appreciate your help. It's a huge relief to have such a simple workaround!

Sign in to add a comment