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

Issue 642539 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Oct 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Bug-Regression



Sign in to add a comment

Canvas is really slow

Project Member Reported by sunn...@chromium.org, Aug 30 2016

Issue description

Go to vsynctester.com
Observe that it's really slow ("Catastrophic Vsync Failure").

This is on ToT (e1d19cbf88bf23ce09945335ba25b5a848f87299) on Linux. Also on dev channel 54.0.2837.0 (Official Build) dev (64-bit) but on an older version 54.0.2816.0 (Official Build) beta (64-bit). (goobuntu pushed M54 to beta by mistake).

WebGL (aquarium demo) seems to be OK.

GN args.gn:
is_component_build = true
is_debug = false
use_goma = true
enable_nacl = false
ffmpeg_branding = "Chrome"
proprietary_codecs = true
dcheck_always_on = true
 
I meant "but *not* on an older version 54.0.2816.0 (Official Build) beta (64-bit)" above.
Trace shows a lot of time being spent inside JS but also a lot inside CommandBufferProxyImpl::WaitForToken.
trace_vsynctester_bad.json.gz
2.0 MB Download
Cc: vmp...@chromium.org ericrk@chromium.org
Components: -Internals>GPU>Canvas2D
+ericrk, vmpstr in case this has something to do with images
Components: Internals>GPU>Canvas2D

Comment 5 by junov@chromium.org, Aug 31 2016

Owner: junov@chromium.org
Status: Assigned (was: Untriaged)
Investigating.  I suspect this could be related to recent changes in the use of mailboxes for accelerated 2D canvas.

Comment 6 by junov@chromium.org, Aug 31 2016

You are probably looking for a change made after 412918 (known good), but no later than 412921 (first known bad).
CHANGELOG URL:
  https://chromium.googlesource.com/chromium/src/+log/697e6fc2d3a21124b983953086d525576fdf15f5..7570c47baec364f3e0901d139e0fd1d74c00d6e2


Culprit is definitely: https://chromium.googlesource.com/chromium/src/+/15dd1c2199030d52529b74f2a13decdc3c60cdd1   "Allow 2D canvases to be GPU accelerated on linux"
Cc: sunn...@chromium.org
Issue 642610 has been merged into this issue.

Comment 8 by junov@chromium.org, Sep 13 2016

Components: -Internals>GPU>Canvas2D Blink>Canvas
Project Member

Comment 9 by bugdroid1@chromium.org, Oct 4 2016

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

commit 2b0d65c9311d7e87784e90d60bfc68efb5f03555
Author: junov <junov@chromium.org>
Date: Tue Oct 04 17:36:28 2016

Disable GPU acceleration on 2D canvas when readbacks are needed

We are already disabling GPU acceleration to avoid readbacks caused
by calls to getImageData. This change applies the same principle
to canvas-to-canvas drawImage calls in order to avoid probable
future readbacks.

BUG= 652126 ,  651517 ,  650116 ,  642539 ,  640144 

Review-Url: https://codereview.chromium.org/2388293002
Cr-Commit-Position: refs/heads/master@{#422848}

[modify] https://crrev.com/2b0d65c9311d7e87784e90d60bfc68efb5f03555/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp
[modify] https://crrev.com/2b0d65c9311d7e87784e90d60bfc68efb5f03555/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2DTest.cpp
[modify] https://crrev.com/2b0d65c9311d7e87784e90d60bfc68efb5f03555/third_party/WebKit/Source/platform/graphics/ExpensiveCanvasHeuristicParameters.h

Status: Fixed (was: Assigned)

Sign in to add a comment